<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<br>
<blockquote type="cite"
cite="mid:20210112100917.GM31516@imap.altlinux.org">
<blockquote type="cite">
<pre class="moz-quote-pre" wrap="">Собрал один из пакетов, придерживаясь рекомендаций с wiki altlinux.org.
</pre>
</blockquote>
<pre class="moz-quote-pre" wrap="">
А откуда именно? У нас просто беда, которую упоминал --
есть штуки три "почти написанных" статьи по сборке пакета
с нуля и ни одной завершённой.
Исправлять такое толком получается скорее вдвоём, когда
у одного человека ещё свежо недоумение, а второй понимает,
что именно надо написать для исправления недосказанности.
Как только освоился -- всё, поздно, "и так понятно".</pre>
</blockquote>
<p><font size="-1">В моём случае порядок чтения статей прошёл
следующим образом:<br>
1. В самую первую очередь, чтобы в общих чертах понимать порядок
действий, я посмотрел <a moz-do-not-send="true"
href="http://esyr.name/video/uneex/uneex_09_12_16.ogv">лекцию</a>
Георгия Курячего в которой демонстрируется весь процесс сборки
пакета.<br>
1.1. Отдельно после просмотра внимательно пришлось почитать <a
moz-do-not-send="true"
href="https://www.altlinux.org/Hasher/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE">"Руководство
Hasher"</a>, там всё написано более чем понятно (по крайней
мере у меня все вопросы отпали после её прочтения на второй или
третий раз).<br>
2. Так же по алгоритму сборки пакета я ориентировался на статью
<a moz-do-not-send="true"
href="https://www.altlinux.org/%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0_%D1%81_%D0%A0%D0%95%D0%90%D0%9B%D0%AC%D0%9D%D0%9E%D0%93%D0%9E_%D0%9D%D0%A3%D0%9B%D0%AF">"Сборка
пакета с РЕАЛЬНОГО НУЛЯ"</a>. Из этой же статьи позаимствовал
подход с tar.gz в .gear/rules<br>
3. Дальше, в попытках осознать смысл своих действий я прочитал <a
moz-do-not-send="true"
href="https://www.altlinux.org/%D0%9E_%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%B5%D0%B3%D0%B8%D0%B8_%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B8_RPM_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2">"О
стратегии сборки RPM пакетов"</a>. Здесь я получил
представление о подготовке репозитория Git и написании spec
файла. К вопросу о том, почему же я тогда не переделал по
правильному исходный spec? Честно говоря тогда даже мысль такая
не пришла в голову. Подумалось, что разработчику вероятно виднее
чем мне, как должен выглядеть спек. В ретроспективе и после
объяснений понимаю что надо было сесть и внимательно переделать
строго с требованиями документации ALT. Буду знать.<br>
3.1. В статье "О стратегии сборки" так же упоминается tar.gz в
секции "Написание .gear/rules" после второго упоминания такого
подхода у меня не оставалось сомнений, что так и надо делать.<br>
3.2. Момент настройки с созданием gear tags в этой статье, после
прочтения статьи "Сборка пакета с реального нуля" меня немного
ввел в ступор (потому что в первой статье есть упоминание git
tag, но не gear). Но после чтения <a moz-do-not-send="true"
href="https://www.altlinux.org/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_gear">"Руководство
по gear"</a>, и разъяснений @bircoph о том, что подходы к
ведению репозитория могут быть разные, стало более-менее
понятно.<br>
Сейчас я бы дополнил этот список крайне внимательным чтением
статей <a moz-do-not-send="true"
href="https://www.altlinux.org/Spec#Summary">"Spec:Summary"</a>,
и <a moz-do-not-send="true"
href="https://www.altlinux.org/ALT_Packaging_HOWTO">"ALT_PAckaging_HOWTO"</a>.
Вероятно, удели я им немного больше внимания, ошибок было бы
намного меньше. Ну и наверное в закладках еще стоит держать <a
moz-do-not-send="true"
href="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">"Spec/Предопределенные
макросы"</a>.<br>
<br>
В целом ссылки на большую часть полезных статей уже указаны в
"Сборка пакета с реального нуля". Возможно там не хватает чуть
большей детализации (например по части tar.gz или gear/git
tags).<br>
</font></p>
<p>
</p>
<blockquote type="cite"
cite="mid:20210112100917.GM31516@imap.altlinux.org">
<blockquote type="cite">
<pre class="moz-quote-pre" wrap="">Репозиторий пока оформил на github - <a class="moz-txt-link-freetext" href="https://github.com/burykinne/freelan">https://github.com/burykinne/freelan</a>.
Собранный пакет и src.rpm приложил к письму.
</pre>
</blockquote>
<pre class="moz-quote-pre" wrap="">
Достаточно было ссылки, ну и собранный пакет точно незачем
-- ведь надо-то проверить, что из исходников собирается. :)
</pre>
</blockquote>
<font size="-1">Хорошо, что я не положил собранный пакет с src.rpm
туда же в репозиторий, хотя изначально так и планировал. :)</font>
<blockquote type="cite"
cite="mid:20210112100917.GM31516@imap.altlinux.org">
<blockquote type="cite">
<pre class="moz-quote-pre" wrap="">По процессу сборки вроде бы всё было понятно, но, возможно,
не всё было понято правильно.
</pre>
</blockquote>
<pre class="moz-quote-pre" wrap="">
Сразу бросился в глаза freelan-2.3.tar.gz -- подход с gear
не предназначен для хранения для архивов, предполагается,
что они-то как раз распаковываются в основную ветку либо
по своим, но чтоб работал осмысленным образом git diff:
<a class="moz-txt-link-freetext" href="http://bugzilla.altlinux.org/show_bug.cgi?id=36074#c12">http://bugzilla.altlinux.org/show_bug.cgi?id=36074#c12</a>
Здесь важно, по возможности прочтите обсуждение там.
Надо понять, что обусловило создание коммита
b4594ab7afbb51aa6c8e03e5bfd8618df4bf7289 --
и исправить документацию.
</pre>
</blockquote>
<font size="-1">Как я писал выше, подход с tar.gz мною был
позаимствован с Wiki. <br>
</font>
<p><font size="-1">После прочтения обсуждения (в частности
<a class="moz-txt-link-freetext" href="https://bugzilla.altlinux.org/show_bug.cgi?id=36074#c22">https://bugzilla.altlinux.org/show_bug.cgi?id=36074#c22</a>) сделал
вывод что так делать не следует (за исключением частных
случаев). Хотя указание этого метода в двух статьях меня всё
таки смущает.<br>
Плюс взял на заметку
<a class="moz-txt-link-freetext" href="https://bugzilla.altlinux.org/show_bug.cgi?id=36074#c34">https://bugzilla.altlinux.org/show_bug.cgi?id=36074#c34</a> . У меня
в коммитах такая же ошибка. Тоже буду иметь ввиду.<br>
</font></p>
<blockquote type="cite"
cite="mid:20210112100917.GM31516@imap.altlinux.org">
<pre class="moz-quote-pre" wrap="">
freelan-2.3-alt-make-fix.patch я бы не делал, т.к. "?="
переводится как "задать, если не задано" -- т.е. вызов
make PRODUCT_PREFIX=/ PRODUCT_BIN_PREFIX=%_usr
даст тот же результат, но не потребует обновлять патч
при изменении контекста в Makefile.</pre>
</blockquote>
<font size="-1">Любопытно, я пробовал сделать так, перед тем, как
создавать патч. Но оно упорно не хотело собираться с путями,
которые мне были нужны. Потом я подсмотрел как это сделано в deb
пакете, там был патч, и я подумал что наверное так более
правильно. И собственно говоря сделал его, с помощью статьи
<a class="moz-txt-link-freetext" href="https://www.altlinux.org/PatchHowto">https://www.altlinux.org/PatchHowto</a><br>
P.S. Сейчас в тестовой ветке попробовал еще раз пересобрать с
PRUDUCT_PREFIX... - получилось без проблем с нужными путями. Жаль
не сохранил ветку с ранними экспериментами, на посмотреть что же я
тогда не правильно сделал там.</font>
<blockquote type="cite"
cite="mid:20210112100917.GM31516@imap.altlinux.org">
<pre class="moz-quote-pre" wrap="">
Спек тоже "грязненький", как по альтовым (и моим) меркам
-- непонятно, зачем sebastien.vincent@ решил вручную
выставлять %name/%version/%release, когда их определяет
сам rpmbuild на основании Name:/Version:/Release:, ну да
это уж разве что ему пересказать. Прилагаю почти такой,
как сделал бы сам (не стал эстетствовать с висячими "a"
в %description, это бы добавило шума в патч); разберём:
</pre>
</blockquote>
<font size="-1">Применил присланный патч и отправил в репозиторий. К
документации впредь буду относиться более внимательно. В частности
к </font><font size="-1"><font size="-1"><a
href="https://www.altlinux.org/ALT_Packaging_HOWTO">"ALT_PAckaging_HOWTO"</a></font>.
Надеюсь с следующим спеком всё таки справлюсь самостоятельно :)</font>
<blockquote type="cite"
cite="mid:20210112100917.GM31516@imap.altlinux.org">
<pre class="moz-quote-pre" wrap="">
Из дальнейших улучшений -- я бы сделал ещё initscript
по мотивам /etc/init.d/template, но давайте к такому
вернёмся уже после прохождения пакета в сизиф.
</pre>
</blockquote>
<font size="-1">Постараюсь сделать initscript до прохождения пакета
в сизиф, чтобы туда он максимально законченным попал.</font><br>
</body>
</html>