![]() |
Поделиться |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Поделиться |
![]()
Сообщение
#1
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1479 Регистрация: 7.6.2011 Вставить ник Цитата Пользователь №: 2118 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
По мотивам http://forum.altlinux.org/index.php/topic,....html#msg221130. Набросал спек, собираю, а эта гадина пытается класть бинарники в /usr/local/bin, т.е. prefix не тот. Можно, конечно, установить в ручном режиме, но я не уверен, что prefix не прибит будет гвоздями и после установки бинарник может не найти сопутствующие компоненты (иконку там, файл перевода).
Кто подскажет, как всему этому хозяйству (в виде fpc) передать нужный префикс (нужные параметры), чтобы ставилось нормально, а не куда вздумается ? Ну и кусок лога сборки (ближе к концу): Код Компоновка ./transgui
/usr/bin/ld: warning: ./link.res contains output sections; did you forget -T? 36099 строк скомпилиpовано, 4.10 сек. 5 предупреждений make: Leaving directory `/home/sb/RPM/BUILD/TransGUI' + exit 0 Выполняется(%install): /bin/sh -e /home/sb/tmp/rpm-tmp.42475 + umask 022 + /bin/mkdir -p /home/sb/RPM/BUILD + cd /home/sb/RPM/BUILD + /bin/chmod -Rf u+rwX -- /home/sb/tmp/transmission-remote-gui-buildroot + : + /bin/rm -rf -- /home/sb/tmp/transmission-remote-gui-buildroot + cd TransGUI + mkdir -p /home/sb/tmp/transmission-remote-gui-buildroot/transmission-remote-gui + make 'INSTALL=/bin/install -p' DESTDIR=/home/sb/tmp/transmission-remote-gui-buildroot/transmission-remote-gui install Using Lazarus dir: /usr/lib/lazarus/ make: Entering directory `/home/sb/RPM/BUILD/TransGUI' /usr/bin/ginstall -m 755 -d /usr/local/bin /usr/bin/ginstall -c -m 755 transgui /usr/local/bin /usr/bin/ginstall: cannot create regular file '/usr/local/bin/transgui': Permission denied make: *** [fpc_install] Error 1 make: Leaving directory `/home/sb/RPM/BUILD/TransGUI' ошибка: Неверный код возврата из /home/sb/tmp/rpm-tmp.42475 (%install) Сообщение отредактировал ksa - 5.1.2014, 11:42 -------------------- Пакеты на яндекс.диске
|
|
|
![]() |
![]()
Сообщение
#2
|
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 1764 Регистрация: 28.7.2010 Вставить ник Цитата Из: Берислав, Херсонщина Пользователь №: 1879 Страна: Украина Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Ну вы, блин, даете... А это что? Но для него нужен демон transmission. Если нужно быстро, просто и наглядно - я бы посмотрел на flush.
Сообщение отредактировал Drool - 5.1.2014, 14:25 -------------------- |
|
|
![]()
Сообщение
#3
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 228 Регистрация: 11.7.2010 Вставить ник Цитата Пользователь №: 1867 Страна: Россия Город: Москва Пол: Муж. Репутация: ![]() ![]() ![]() |
Ну вы, блин, даете... Ну вы, блин, даете... ![]() На "заборе" было написано так: Код %build Это с какого перепугу и кто сюда gcc прилепил, да ещё и СРР с optflags. cd TransGUI %make_build CC="gcc %optflags" CPP="g++ %optflags" execstack -c %name Софтина-то на паскале сделана. Ей сиськи вроде как без надобности (даже пусть они с 4-мя плюсами будут). Я переписал пока так: Код %build cd TransGUI make ##execstack -c %name Собирается как и положено. Покопаюсь еще немного. Может "штатные" Makefile повыкидываю и свой напишу. А может и не буду (это ведь никому не нужно, т. к. всё что надо есть на "заборе"). |
|
|
![]()
Сообщение
#4
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 228 Регистрация: 11.7.2010 Вставить ник Цитата Пользователь №: 1867 Страна: Россия Город: Москва Пол: Муж. Репутация: ![]() ![]() ![]() |
... Покопаюсь еще немного. Может "штатные" Makefile повыкидываю и свой напишу. ... Написал. Размер Makefile уменьшился более чем в 10 раз. ![]() Теперь там можно делать: 1. make [transgui] ...параметр необязательный - (дефолтный). 2. make clean 3. make install [путь] ... тут по дефолту в /usr/... 4. make uninstall (чистое и полное удаление из системы) (3 и 4 из под рута, естественно). Должно сработать и в Дебиане (проверял аналогичное на др. программах). Фрагмент спека: Код ... %build make %install cp %SOURCE1 transgui.desktop cp %SOURCE2 transgui.1 make install DESTDIR=%buildroot%_prefix ... НУ и т. д. ЗЫ. To Drool. Если будешь софтину поддерживать - пришлю сорцы на мыло. Может пригодится. Мало-ли еще что-то на паскакале попадется, где сборка пакетов не предусмотрена... ![]() |
|
|
![]()
Сообщение
#5
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Активный Пользователь Сообщений: 1479 Регистрация: 7.6.2011 Вставить ник Цитата Пользователь №: 2118 Страна: Россия Город: Не указан Пол: Муж. Репутация: ![]() ![]() ![]() |
Написал. Размер Makefile уменьшился более чем в 10 раз. ![]() Хм, а может автору закинуть, чтобы применил в апстриме ? -------------------- Пакеты на яндекс.диске
|
|
|
![]()
Сообщение
#6
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 228 Регистрация: 11.7.2010 Вставить ник Цитата Пользователь №: 1867 Страна: Россия Город: Москва Пол: Муж. Репутация: ![]() ![]() ![]() |
Хм, а может автору закинуть, чтобы применил в апстриме ? Пожалуй не стоит. Т. к. софтина кроссплатформенная, а мой Makefile будет работать только под Linux (проверял на ALT-e и Debian-e, других у меня нет). Тут надо делать как в DC сделано. Там автор написал сборочные скрипты под всё, причем весьма грамотные, уже несколько лет не корректирует по большому счету. Т. е. с пониманием относится к пользователям. В отличие от ... ![]() Да и спек там весьма простой. Хотя поначалу были и там проблемы. Насколько я помню Шенцев с ними намучался, когда первый раз собирал DC (где-то в рассылке читал длинный тред). ЗЫ. Сделаю как Гена посоветовал. Положу сорцы transgui на киевский сервер (это хороший пример того - как неплохую софтину можно плохо приготовить). А в этой теме напишу небольшой хелп, как это понимать и на что обращать внимание при сборке паскальных программ. Там есть некоторые тонкости. Только поэкспериментирую еще немного. ![]() Сообщение отредактировал NotHAM - 7.1.2014, 18:21 |
|
|
![]()
Сообщение
#7
|
|
Специалист ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 228 Регистрация: 11.7.2010 Вставить ник Цитата Пользователь №: 1867 Страна: Россия Город: Москва Пол: Муж. Репутация: ![]() ![]() ![]() |
... Только поэкспериментирую еще немного... Поэкспериментировал. ftp://ftp.linux.kiev.ua/pub/Linux/ALT/peo...kages/transgui/ Там лежат 2 пакета с исходниками - *.1.src.rpm и *.2.src.rpm. 1-й с замененными Makefile и transgui.lpi, 2-й с дополнительным скриптом install.sh. Просматриваются 3 варианта сборки пакета transgui. 1. Подмена Makefile и transgui.lpi. Используется lazbuild (фактически после подготовки тут будет вызван fpc с параметрами, которые ему передаст лазарь в файле transgui.lpi). Ключевые параметры оптимизации кода: -CX Умная компоновка при генерации кода (полезно почти всегда). -O3 (O1,O2) 1-быстро и дружественно к отладчику, 2-плюс быстрые оптимизации, 3-плюс медленные оптимизации. В transgui.lpi передан ключ О3. -Xs Вырезать символы из исполняемого файла. -XX Умная компоновка при сборке, полезна всегда. -g Генерация отладочной информации для GDB (в разы увеличивает размер бинарника), поэтому отключен. Поскольку сам lazbuild эти параметры не понимает, их нужно передать через *.lpi, потому его и подменял (новый сгенерирован в Lazarus-е). Примечание: в Makefile вызов strip можно отключить (убрать, закомментировать), так как всё что нужно - передано сборочными ключами. ДОСТОИНСТВА варианта: - Очень удобно для отладки. Можно отлаживать даже в хомяке, если в системе установлены fpc и Lazarus. - Работают команды make clean и др. (см. в одном из предыдущих постов). А также make help (про неё там забыл упомянуть). - Можно сразу установить в систему и попробовать без сборки пакета, а если что не так - сразу удалить без всяких там apt-ов/синаптиков. - Makefile можно как угодно редактировать, там всё просто и понятно (должно быть! ![]() НЕДОСТАТКИ. - Работает только под Линуксом (правда не только под АЛЬТом). - Размер бинарника чуть великоват (4.32 МБ), хотя это и не принципиально (см. ниже). - Серьезное вмешательство в исходники. - Не знаю насколько это годится для сложных проектов. 2. Написание инсталляционного скрипта. Что и было сделано на базе того-же Makefile. Тут все работает как задумано автором (никаких подмен нет). А именно: Используется не lazbuild (fpc), а ppc386 с параметрами -O2 -g- -CX -XX -Xs, которые передаются через "штатный" Makefile, сгенерированный из Makefile.fpc c помощью FPCmake. ДОСТОИНСТВА. - Бинарник чуть поменьше (4.24 МБ), возможно потому, что в процессе компиляции многократно вызывается lazres над файлами *.lrs. См. "нечитабельный" Makefile и лог сборки. (Чтобы посмотреть лог - нужно собрать в хашере, или ещё где либо). - Никакого вмешательства в исходники нет. Скрипт подкладывается "с боку". - Должен работать не только в АЛЬте, а и в др. Линуксах, где такие-же установочные каталоги (например в Федоре и Дебиане - не проверял). - Скрипт просто редактировать под себя (если руки не кривые). - Годится для сложных проектов. НЕДОСТАТКИ. - Работает только под Линуксом (правда должен не только под АЛЬТом). - Крайне неудобен в отладке (почти всё пересборкой проверяется). Это проблема не скрипта а Makefile, в котором не предусмотрен даже make install (про остальное молчу). - Редактировать Makefile низя, только через правку Makefile.fpc с последующей перегенерацией, что весьма хлопотно. 3. Всё делать в спеке, как это сделал Гена. Практически совпадает с вариантом 2, но без скрипта. ДОСТОИНСТВА. Те же что и в 2 (кроме тех, что касаются скрипта). НЕДОСТАТКИ. Те же. Плюс ... - Работает только под АЛЬТом. Другим линуксоидам сначала нужно разучивать что означают АЛЬТовские макросы из спека. ЗЫ. Надеюсь что Гена будет не в претензии за то, что в спеках в качестве майнтейнера я оставил его, да и в changelog-ах ничего не отразил. И еще - исходники перепаковал в tar-архивы, как это в АЛЬТе принято. Сообщение отредактировал NotHAM - 8.1.2014, 21:38 |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.8.2025, 12:01 |