Re: [newbies] Дайджест списка рассылки devel-newbies; том 43, выпуск 2

2021-02-16 Пенетрантность Grigory Ustinov

16.02.2021 21:47, Николай Бурыкин пишет:

Сейчас прочитал, и у меня возник вопрос.
А если применять подход с патчами, то как будет правильнее:
Формировать по принципу один патч на одно исправление,
или формировать патч из исправлений, решающих конкретную проблему?
Я подумал, что в моём случае я решаю проблему предупреждений при сборке,
и собрал их в отдельный патч warnings. Но вот теперь задумался на тему 
правильности.
Тут как с коммитами в коде. Иногда можно закоммитить гигантские куски 
кода, которые объеденены общей идеей, а иногда в коммит попадает 
изменение пары символов, имеющих значение.


Моё личное мнение, что ощущение того, каким должен быть патч или коммит 
приходит со временем и у каждого своё. Вот я сейчас обновляю python3 и 
сталкиваюсь с тем, что во многих пакетах все ошибки фиксятся в одном 
коммите "fix build with python3.9". Но это всё равно изменения 
объединённые общим смыслом.


Так если посмотрите на сам пакет python3, то обнаружите там целую гору 
патчей, часть из которых надо обновлять каждый раз. Но каждый из них 
несёт свою идею.



___
devel-newbies mailing list
devel-newbies@lists.altlinux.org
https://lists.altlinux.org/mailman/listinfo/devel-newbies
___
devel-newbies mailing list
devel-newbies@lists.altlinux.org
https://lists.altlinux.org/mailman/listinfo/devel-newbies


Re: [newbies] [join] Проверка корректности пакетирования

2021-02-16 Пенетрантность Николай Бурыкин



Речь про https://github.com/burykinne/edbrowse , верно?

Да, речь о нём.

1) Поправка по лицензии:
- License: GPL and MPL
+ License: GPL-1.0+
Это я недоработал. Исправлю. Надо будет вникнуть в тонкости 
лицензирования свободного ПО.

2) Лучше пользоваться готовыми макросами, поэтому:
- cmake .
+ %cmake_insource
Была мысль, что моя конструкция с "cmake ." неуместна, и так оно и 
оказалось. Вроде и сверялся по Предопределённым макросам 
, 
а всё равно нужный умудрился не заметить. Буду практиковаться, ошибка 
досадная и её можно было избежать.

3) Ещё при таком подходе обнаружились неупакованные файлы:


Понял. Разберусь с этим моментом, и переработаю.

Спасибо за замечания. Есть над чем подумать, и поработать в деле 
восполнения пробелов в знаниях.


___
devel-newbies mailing list
devel-newbies@lists.altlinux.org
https://lists.altlinux.org/mailman/listinfo/devel-newbies


Re: [newbies] [join] Проверка корректности пакетирования

2021-02-16 Пенетрантность Andrey Savchenko
Добрый день!

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


pgpTKDQCtLEjo.pgp
Description: PGP signature
___
devel-newbies mailing list
devel-newbies@lists.altlinux.org
https://lists.altlinux.org/mailman/listinfo/devel-newbies