IPB

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в эту темуОткрыть новую тему
> Сборка пакета с исходниками на fpc\lazarus (Transmission Remote GUI)
Поделиться
NotHAM
сообщение 7.1.2014, 11:14
Сообщение #31


Специалист
****

Группа: Пользователь
Сообщений: 228
Регистрация: 11.7.2010
Вставить ник
Цитата
Пользователь №: 1867
Страна: Россия
Город: Москва
Пол: Муж.



Репутация: 2


Цитата(NotHAM @ 5.1.2014, 18:47) *
...
Покопаюсь еще немного. Может "штатные" Makefile повыкидываю и свой напишу.
...

Написал.
Размер Makefile уменьшился более чем в 10 раз. biggrin.gif
Теперь там можно делать:
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. Если будешь софтину поддерживать - пришлю сорцы на мыло. Может пригодится.
Мало-ли еще что-то на паскакале попадется, где сборка пакетов не предусмотрена... wink.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Drool
сообщение 7.1.2014, 14:33
Сообщение #32


Профессионал
*******

Группа: Пользователь
Сообщений: 1764
Регистрация: 28.7.2010
Вставить ник
Цитата
Из: Берислав, Херсонщина
Пользователь №: 1879
Страна: Украина
Город: Не указан
Пол: Муж.



Репутация: 9


Так приложи его сюда, не потеряется.


--------------------

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ksa
сообщение 7.1.2014, 15:05
Сообщение #33


Профессионал
*******

Группа: Активный Пользователь
Сообщений: 1479
Регистрация: 7.6.2011
Вставить ник
Цитата
Пользователь №: 2118
Страна: Россия
Город: Не указан
Пол: Муж.



Репутация: 5


Цитата(NotHAM @ 7.1.2014, 12:14) *
Написал.
Размер Makefile уменьшился более чем в 10 раз. biggrin.gif

Хм, а может автору закинуть, чтобы применил в апстриме ?


--------------------
Пакеты на яндекс.диске
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
NotHAM
сообщение 7.1.2014, 16:37
Сообщение #34


Специалист
****

Группа: Пользователь
Сообщений: 228
Регистрация: 11.7.2010
Вставить ник
Цитата
Пользователь №: 1867
Страна: Россия
Город: Москва
Пол: Муж.



Репутация: 2


Цитата(ksa @ 7.1.2014, 15:05) *
Хм, а может автору закинуть, чтобы применил в апстриме ?

Пожалуй не стоит. Т. к. софтина кроссплатформенная, а мой Makefile будет работать
только под Linux (проверял на ALT-e и Debian-e, других у меня нет).
Тут надо делать как в DC сделано. Там автор написал сборочные скрипты под всё,
причем весьма грамотные, уже несколько лет не корректирует по большому счету.
Т. е. с пониманием относится к пользователям. В отличие от ... wink.gif
Да и спек там весьма простой.
Хотя поначалу были и там проблемы. Насколько я помню Шенцев с ними намучался,
когда первый раз собирал DC (где-то в рассылке читал длинный тред).

ЗЫ. Сделаю как Гена посоветовал. Положу сорцы transgui на киевский сервер
(это хороший пример того - как неплохую софтину можно плохо приготовить).
А в этой теме напишу небольшой хелп, как это понимать и на что обращать
внимание при сборке паскальных программ. Там есть некоторые тонкости.
Только поэкспериментирую еще немного. smile.gif

Сообщение отредактировал NotHAM - 7.1.2014, 18:21
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
NotHAM
сообщение 8.1.2014, 21:32
Сообщение #35


Специалист
****

Группа: Пользователь
Сообщений: 228
Регистрация: 11.7.2010
Вставить ник
Цитата
Пользователь №: 1867
Страна: Россия
Город: Москва
Пол: Муж.



Репутация: 2


Цитата(NotHAM @ 7.1.2014, 16:37) *
...
Только поэкспериментирую еще немного...

Поэкспериментировал.

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 можно как угодно редактировать, там всё просто и понятно (должно быть! smile.gif )

НЕДОСТАТКИ.
- Работает только под Линуксом (правда не только под АЛЬТом).
- Размер бинарника чуть великоват (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
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Drool
сообщение 12.1.2014, 18:23
Сообщение #36


Профессионал
*******

Группа: Пользователь
Сообщений: 1764
Регистрация: 28.7.2010
Вставить ник
Цитата
Из: Берислав, Херсонщина
Пользователь №: 1879
Страна: Украина
Город: Не указан
Пол: Муж.



Репутация: 9


Заметил косяк в desktop-файле - нет перехвата magnet-ссылок и торрент-файлов. Добавил это дело, отправляю сборку в сизиф/t7/t6. Ну и заодно почистил spec-файл.


--------------------

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
NotHAM
сообщение 12.1.2014, 20:20
Сообщение #37


Специалист
****

Группа: Пользователь
Сообщений: 228
Регистрация: 11.7.2010
Вставить ник
Цитата
Пользователь №: 1867
Страна: Россия
Город: Москва
Пол: Муж.



Репутация: 2


А СС= ... и СРР= ... таки оставил. smile.gif
Ну не нужно это там. Это-же Паскаль.
Хотя в данном случае это всёравно игнорируется. smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Drool
сообщение 12.1.2014, 20:34
Сообщение #38


Профессионал
*******

Группа: Пользователь
Сообщений: 1764
Регистрация: 28.7.2010
Вставить ник
Цитата
Из: Берислав, Херсонщина
Пользователь №: 1879
Страна: Украина
Город: Не указан
Пол: Муж.



Репутация: 9


От, беда smile.gif В хашере прогнал без этих ключей, а в сизиф запушил с ними smile.gif Хорошо хоть, desktop-файл отправил исправленный biggrin.gif


--------------------

Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
NotHAM
сообщение 12.1.2014, 21:04
Сообщение #39


Специалист
****

Группа: Пользователь
Сообщений: 228
Регистрация: 11.7.2010
Вставить ник
Цитата
Пользователь №: 1867
Страна: Россия
Город: Москва
Пол: Муж.



Репутация: 2


Это разве беда ???
Вот у меня со скриптом была беда - так беда! biggrin.gif
Сначала забыл его в /gear/rules прописать, правда быстро сообразил (после первого же облома).
Потом собираю - не собирается.
Ошибка в скрипте, который автоматически генерится в %buildroot для сборки пакета.
Ищу по номеру строки - мой скрипт не вызывается (ошибка - нет его). Чудеса. wink.gif
Иду в shell - там скрипт есть.
Запускаю руками - всё работает, всё правильно раскладывает.
Иду обратно - опять облом. Твою мать.
И тут до меня медленно так доходит - я ведь в спеке забыл при вызове скрипта прописать ./<скрипт>,
т. е точку со слэшем. Руками пишу, а в спеке забыл. biggrin.gif
От расстройства плюнул и пошел в машине лампочку в фаре менять.
И что ты думаешь - умудрился её поставить кверху ногами (ближний свет начал работать
как дальний). И ведь загнал же, Невзирая на то что там пазы есть, и пружину сжал (правда шла почему-то
туговато). Вот это была беда. biggrin.gif
Назавтра поправил ...

ЗЫ. Прошу сильно не ржать. wink.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

2 страниц V  < 1 2
Ответить в эту темуОткрыть новую тему
( Гостей: 1 )
Пользователей: 0

 



RSS Текстовая версия Сейчас: 18.8.2025, 4:07