* Re: [newbies] [join] Проверка корректности пакетирования @ 2021-01-29 2:01 ` Andrey Savchenko 0 siblings, 1 reply; 7+ messages in thread From: Andrey Savchenko @ 2021-01-29 2:01 UTC (permalink / raw) To: Николай Бурыкин Cc: devel-newbies [-- Attachment #1: Type: text/plain, Size: 1947 bytes --] Доброго времени суток! On Wed, 27 Jan 2021 15:24:56 +0300 Николай Бурыкин wrote: > Добрый день! > Попробовал дописать init-скрипт для пакета. Работоспособности вроде > достиг (проверял в стартерките Xfce с SysV), но в правильности написания > не уверен. В целом выглядит хорошо. Я бы посоветовал общий код по проверке конфига в start() и stop() куда-нибудь в checkconfig() засунуть. Пример можно посмотреть в init для sshd или unbound. > Немного завис с попытками изменить в спеке %make_build на scons. Не > совсем понятно как с его использованием построить структуру аналогичную > %make_build PRODUCT_PREFIX=/ PRODUCT_BIN_PREFIX=%_usr > Пробую провести компиляцию с такой конструкцией: > scons -j%__nprocs PREFIX=/ BIN_PREFIX=%_usr > Компиляция проходит успешно, пакет собирается и устанавливается в ВМ, > однако при попытке запуска сервера командой freelan > --security.passphrase "test_pass" служба не может найти конфигурацию, и > ищет ее по странному пути ..RPM/BUILD... scons не понимает {BIN_,}PREFIX — это переменные, используемые внутри Makefile пакета. Следует испольовать {bin_,}prefix= как это делается в Makefile. Например: scons %_smp_mflags --mode=release apps prefix=/ bin_prefix=%_usr --upnp=yes --mongoose=no Best regards, Andrew Savchenko [-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <20210204135022.8efeee9d9d0ef34c1926b323@altlinux.org>]
[parent not found: <df6a7370-b7d9-43b3-142b-d5c937ae4528@basealt.ru>]
[parent not found: <20210204184758.GW720@imap.altlinux.org>]
[parent not found: <20210204222951.faef9f06742728e385e4fbb1@altlinux.org>]
[parent not found: <c95cad25-2af9-dc07-0aae-e9b72148761a@basealt.ru>]
* Re: [newbies] [join] Проверка корректности пакетирования @ 2021-02-08 12:38 ` Michael Shigorin 2021-02-08 20:26 ` Andrey Savchenko 1 sibling, 1 reply; 7+ messages in thread From: Michael Shigorin @ 2021-02-08 12:38 UTC (permalink / raw) To: devel-newbies; +Cc: Andrey Savchenko On Mon, Feb 08, 2021 at 03:27:07PM +0300, Николай Бурыкин wrote: > Попытался собрать еще один пакет. https://github.com/burykinne/edbrowse. > В полуручном режиме собрать в итоге удалось. Но автоматизированной > сборки добиться не получилось. > Столкнулся с тем, что в сборочной среде не находился модуль pcre.h, хотя > в BuildRequires libpcre-devel есть. > Решил вопрос зайдя в hsh-shell с правами псевдорута и сделав > # ln -s /usr/include/pcre/pcre.h /usr/include/pcre.h Я бы проверил на эффективность %add_optflags -I%_includedir/pcre ...а вообще научить бы их пользоваться pkgconfig, что ли... > И правильно ли я понимаю, что строку > sed -i 's/TidyStyleTags/TidyPreTags/' src/html-tidy.c > лучше оформить как патч? Зависит. Сам так порой делаю, но патч в случае изменения контекста хотя бы отвалится (что и морока, и сигнал). -- ---- WBR, Michael Shigorin / http://altlinux.org ------ http://opennet.ru / http://anna-news.info ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [newbies] [join] Проверка корректности пакетирования 2021-02-08 12:38 ` Michael Shigorin @ 2021-02-08 20:26 ` Andrey Savchenko 2021-02-09 7:27 ` Michael Shigorin 0 siblings, 1 reply; 7+ messages in thread From: Andrey Savchenko @ 2021-02-08 20:26 UTC (permalink / raw) To: devel@ where you _can_ ask [-- Attachment #1: Type: text/plain, Size: 3320 bytes --] On Mon, 8 Feb 2021 15:38:43 +0300 Michael Shigorin wrote: > On Mon, Feb 08, 2021 at 03:27:07PM +0300, Николай Бурыкин wrote: > > Попытался собрать еще один пакет. https://github.com/burykinne/edbrowse. > > В полуручном режиме собрать в итоге удалось. Но автоматизированной > > сборки добиться не получилось. > > Столкнулся с тем, что в сборочной среде не находился модуль pcre.h, хотя > > в BuildRequires libpcre-devel есть. > > Решил вопрос зайдя в hsh-shell с правами псевдорута и сделав > > # ln -s /usr/include/pcre/pcre.h /usr/include/pcre.h > > Я бы проверил на эффективность > > %add_optflags -I%_includedir/pcre Поддерживаю. > ...а вообще научить бы их пользоваться pkgconfig, что ли... > > > И правильно ли я понимаю, что строку > > sed -i 's/TidyStyleTags/TidyPreTags/' src/html-tidy.c > > лучше оформить как патч? > > Зависит. Сам так порой делаю, но патч в случае изменения > контекста хотя бы отвалится (что и морока, и сигнал). Здесь дело вкуса мейнтенера, безусловно. Я обычно делаю так (это не жесткие правила, но общие критерии разделения): 1) Если нужно наложить несколько (т.е. немного) патчей или патчи берутся в виде файлов с патчами из внешнего источника, то использую патчи. 2) Когда патчей очень много, или используются разные источники, где доступны гиты репозиториев — я использую ветки гита и патчи хранятся в виде коммитов в тематических ветках. Это сильно облегчает обновление таких пакетов, т.к. можно сделать git rebase или cherry-pick без головной боли с правкой или обновлением каждого патча по отдельности. 3) sed или awk использую когда нужно: 3.1) сделать одну и ту же замену в большом количестве файлов (например, массово поправить CFLAGS во всем Makefile); 3.2) сделать подстановку, зависящую от параметра (переменной) в spec. Например, sed 's/%name_%version/%name-%version/' version.h Миша правильно сказал, что sed — обоюдоострый меч: этот способ проще автоматизировать при обновлениях, чем файлы с патчами, но он может внезапно выстрелить в ногу, сработав не там где нужно. Best regards, Andrew Savchenko [-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [newbies] [join] Проверка корректности пакетирования 2021-02-08 20:26 ` Andrey Savchenko @ 2021-02-09 7:27 ` Michael Shigorin 2021-02-09 9:49 ` Andrey Savchenko 0 siblings, 1 reply; 7+ messages in thread From: Michael Shigorin @ 2021-02-09 7:27 UTC (permalink / raw) To: devel-newbies On Mon, Feb 08, 2021 at 11:26:23PM +0300, Andrey Savchenko wrote: > > Зависит. Сам так порой делаю, но патч в случае изменения > > контекста хотя бы отвалится (что и морока, и сигнал). > Миша правильно сказал, что sed — обоюдоострый меч: этот способ > проще автоматизировать при обновлениях, чем файлы с патчами, но он > может внезапно выстрелить в ногу, сработав не там где нужно. apt-get install fortunes-ALT % Свойство патчей "отваливаться в случае изменений" - это важное преимущество, а вовсе не недостаток, как полагают многие. -- ldv in devel@ % -- ---- WBR, Michael Shigorin / http://altlinux.org ------ http://opennet.ru / http://anna-news.info ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [newbies] [join] Проверка корректности пакетирования 2021-02-09 7:27 ` Michael Shigorin @ 2021-02-09 9:49 ` Andrey Savchenko 0 siblings, 0 replies; 7+ messages in thread From: Andrey Savchenko @ 2021-02-09 9:49 UTC (permalink / raw) To: devel@ where you _can_ ask [-- Attachment #1: Type: text/plain, Size: 1365 bytes --] On Tue, 9 Feb 2021 10:27:14 +0300 Michael Shigorin wrote: > On Mon, Feb 08, 2021 at 11:26:23PM +0300, Andrey Savchenko wrote: > > > Зависит. Сам так порой делаю, но патч в случае изменения > > > контекста хотя бы отвалится (что и морока, и сигнал). > > Миша правильно сказал, что sed — обоюдоострый меч: этот способ > > проще автоматизировать при обновлениях, чем файлы с патчами, но он > > может внезапно выстрелить в ногу, сработав не там где нужно. > > apt-get install fortunes-ALT > > % > Свойство патчей "отваливаться в случае изменений" - это важное преимущество, > а вовсе не недостаток, как полагают многие. > -- ldv in devel@ > % Зависит от обстоятельств. Бывает, что да, полезно, ловит проблемы. А бывает, что сверху строчка, которая всё время меняется, на патченый код не влияет, а diff всё время ломает. Best regards, Andrew Savchenko [-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <59565a38-d845-b697-f613-d25ea75c4c41@basealt.ru>]
* Re: [newbies] [join] Проверка корректности пакетирования @ 2021-02-16 15:20 ` Andrey Savchenko 0 siblings, 1 reply; 7+ messages in thread From: Andrey Savchenko @ 2021-02-16 15:20 UTC (permalink / raw) To: devel@ where you _can_ ask Cc: Николай Бурыкин [-- Attachment #1: Type: text/plain, Size: 5505 bytes --] Добрый день! On Mon, 15 Feb 2021 14:05:16 +0300 Николай Бурыкин wrote: > Добрый день. > Решил проблемы, мешающие сборке. Поправил заголовочные файлы в исходном > коде. > Все исправления оформил в патч. > Сейчас наверное нужна только оценка спека, с точки зрения корректности > написания. > В этот раз делал с оглядкой на > https://www.altlinux.org/ALT_Packaging_HOWTO, но всё равно мог что-то > пропустить. > Если не будет проблем, тогда потихоньку буду переходить к плановой > сборке Fleet. Речь про https://github.com/burykinne/edbrowse , верно? 1) Поправка по лицензии: - License: GPL and MPL + License: GPL-1.0+ Поясню по чему так. Случай сложный, на самом деле. Давайте посмотрим файл COPYING: This program is copyright (C) Karl Dahlke, 2000-2014. It is made available by the author under the terms of the GNU General Public License (GPL), as articulated by the Free Software Foundation. http://www.fsf.org/licensing/licenses/gpl.html It may be used for any purpose, and redistributed, provided this copyright notice is included. This program uses libcurl.so for http/ftp access. This is released under the Mozilla public license (mpl). I didn't change any of the source; I merely link to these libraries. However, if you wish to release a version of edbrowse with these shared libraries included, or a statically linked executable, you will need to specify both gpl and mpl. Первая часть говорит просто GPL без указания версии и даёт ссылку. Пройдём по ней, пункт 14, параграф 2: If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. В Альте следует указывать одну из лицензий из /usr/share/license*. В данном случае подходит GPL1.0+ — т.е. любая из существующих версий GPL. Вторая часть про линковку с libcurl. Во-первых, эта часть применима только для статической линковки (а у edbrowse динамическая) или при совместном распространении с libcurl.so (в Вашем пакете её нет, её исходников тоже нет, используется системная версия). Во-вторых, у libcurl поменялась лицензия и комментарий автора edbrowse устарел. Там сейчас MITX: $ rpm -qi libcurl | grep License License : MITX Текст можно посмотреть в /usr/share/license/MITX. С ней можно без дополнительных ограничений линковать GPL софт. 2) Лучше пользоваться готовыми макросами, поэтому: - cmake . + %cmake_insource Хотя я бы предпочёл out-of-source build, тогда будет: %build %cmake %cmake_build %install %cmakeinstall_std Обратите внимание, что дополнительные аргументы %cmakeinstall_std не нужны, т.е spec упрощается. 3) Ещё при таком подходе обнаружились неупакованные файлы: warning: Installed (but unpackaged) file(s) found: /usr/share/doc/edbrowse/sample.ebrc /usr/share/doc/edbrowse/sample_fr.ebrc /usr/share/doc/edbrowse/sample_it.ebrc /usr/share/doc/edbrowse/usersguide.html /usr/share/doc/edbrowse/usersguide_fr.html /usr/share/man/man1/edbrowse.1.xz Думаю, что man нужно паковать всегда, html-документацию — в отдельный подпакет doc, *.ebrc — в examples (или в doc, если считаете частью документации). Можно ещё заморочится и разложить fr и it в doc-fr и doc-it (или examples-it); но это дело вкуса. Ещё есть проблема, что пакет доки в ставит в /usr/share/doc/edbrowse, а нужно в /usr/share/doc/edbrowse-3.7.7. Это можно исправить в %prep через sed примерно так (не проверял): sed -i "s|/usr/share/doc/edbrowse|/usr/share/doc/edbrowse-%version|" CMakeLists.txt 4) Устанавливать файл COPYING не нужно, т.к. текст лицензии уже есть в системе и лицензия указана в rpm пакета. Обычно текст лицензий вместе с пакетами устанавливать не нужно. Исключение — когда лицензия требует обязательной упаковки или установки своего текста вместе с пакетом (это не тот случай, но в будущем такое может быть). Best regards, Andrew Savchenko [-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <2ca9f270-176b-e275-6dca-922729a24106@basealt.ru>]
* Re: [newbies] [join] Проверка корректности пакетирования @ 2021-02-19 23:32 ` Andrey Savchenko 0 siblings, 0 replies; 7+ messages in thread From: Andrey Savchenko @ 2021-02-19 23:32 UTC (permalink / raw) To: devel@ where you _can_ ask [-- Attachment #1: Type: text/plain, Size: 2762 bytes --] Добрый вечер! On Tue, 16 Feb 2021 21:19:22 +0300 Николай Бурыкин wrote: > > Речь про https://github.com/burykinne/edbrowse , верно? > Да, речь о нём. > > 1) Поправка по лицензии: > > - License: GPL and MPL > > + License: GPL-1.0+ > Это я недоработал. Исправлю. Надо будет вникнуть в тонкости > лицензирования свободного ПО. На самом деле в Сизифе навалом пакетов, где не вполне корректно или полно указаны лицензии, так что слишком сильно заморачиваться на эту тему не следует, но желательно по-возможности корректно указывать. В данном меня случае насторожило, что GPL и MPL без указания версии были — такая ситуация необычна, что послужило индикатором того, что что-то не так. Вообще, мир лицензий и их взаимодействие друг с другом — не такая уж простая тема. Пару лет назад я делал в Калуге доклад на эту тему, что может послужить неплохо вводной: http://0x1.tv/ Уязвимости_в_лицензиях_СПО_(Андрей_Савченко,_OSSDEVCONF-2018) > > 2) Лучше пользоваться готовыми макросами, поэтому: > > - cmake . > > + %cmake_insource > Была мысль, что моя конструкция с "cmake ." неуместна, и так оно и > оказалось. Вроде и сверялся по Предопределённым макросам > <https://www.altlinux.org/Spec/%D0%9F%D1%80%D0%B5%D0%B4%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BC%D0%B0%D0%BA%D1%80%D0%BE%D1%81%D1%8B>, > а всё равно нужный умудрился не заметить. Буду практиковаться, ошибка > досадная и её можно было избежать. Кроме wiki есть ещё два полезных источника: 1) rpmbuild --showrc, далее grep/less по вкусу 2) git://git.altlinux.org/people/specbot/public/specs.git Здесь все спеки Альта, обновляется автоматически, спасибо vt. Очень полезно когда нужно посмотреть «а как другие это делают». Best regards, Andrew Savchenko [-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-02-19 23:32 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-01-29 2:01 ` [newbies] [join] Проверка корректности пакетирования Andrey Savchenko 2021-02-08 12:38 ` Michael Shigorin 2021-02-08 20:26 ` Andrey Savchenko 2021-02-09 7:27 ` Michael Shigorin 2021-02-09 9:49 ` Andrey Savchenko 2021-02-16 15:20 ` Andrey Savchenko 2021-02-19 23:32 ` Andrey Savchenko
devel@ where you _can_ ask This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel-newbies/0 devel-newbies/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel-newbies devel-newbies/ http://lore.altlinux.org/devel-newbies \ devel-newbies@lists.altlinux.org devel-newbies@lists.altlinux.ru devel-newbies@lists.altlinux.com public-inbox-index devel-newbies Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel-newbies AGPL code for this site: git clone https://public-inbox.org/public-inbox.git