[newbies] [join] Проверка корректности пакетирования
Andrey Savchenko
bircoph на altlinux.org
Вт Фев 16 18:20:37 MSK 2021
Добрый день!
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
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 833 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel-newbies/attachments/20210216/9fd5d8f5/attachment.bin>
Подробная информация о списке рассылки devel-newbies