<div xmlns="http://www.w3.org/1999/xhtml">Привет!</div><div xmlns="http://www.w3.org/1999/xhtml"> </div><div xmlns="http://www.w3.org/1999/xhtml">23.10.2018, 15:03, "Ivan A. Melnikov" &lt;iv@altlinux.org&gt;:</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; Привет,</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; Хочу рассказать вам одну историю. Букв много, мораль не ясна,</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; так что можете не читать это всё.</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; Не так давно в Сизифе перестал пересобираться пакет sssd: падали</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; два теста[0]. Проблему можно воспроизвести и сейчас, забрав из</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; архивов sssd-1.16.3-alt1.S1.src.rpm. Вчерашняя сборка</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; sssd-2.0.0-alt1.src.rpm проблеме не подвержена.</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; asheplyakov@, собиравший 1.16.3-alt1 и исправлявший как раз</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; эти два теста, посмотрел на проблему и сказал, что в сборочной</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; среде во время пересборки не был смонтирован /proc. Тем временем,</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; BR: /proc в спеке, естественно, был.</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; Дальше веселее: оказывается, sssd-1.16.3-alt1.S1.src.rpm</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; пересобирается в сизифном хешере самa по себе, но не пересобирается</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; с --query-repackage. Это странно: мне казалось, что на пакеты,</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; собираетмые в Сизиф из gear, --query-repackage не должен</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; значимо влиять, однако он, очевидно, влиял.</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; В логах hsh --verborse --query-repackage sssd-1.16.3-alt1.S1.src.rpm</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; нашёлся такой фрагмент:</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   Building for target x86_64</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   Wrote: /usr/src/in/nosrpm/sssd-1.16.3-alt1.nosrc.rpm</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   hsh-rebuild: sssd-1.16.3-alt1.S1.src.rpm: created src.rpm file.</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   hsh-rebuild: sssd-1.16.3-alt1.S1.src.rpm: fetched build dependencies.</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   hsh-rebuild: sssd-1.16.3-alt1.S1.src.rpm: calculated build dependencies:</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   hsh-rebuild: calculated mount points:</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   hsh-rebuild: fetched installed file dependencies.</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   hsh-rebuild: calculated mount points:</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; Куда же пропали все зависимости? Оказывается, haser пытается получить</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; их вот так[1]:</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   rpmquery -pR -- "\${@%.src.rpm}".*src.rpm</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; ну то есть выполняется команда</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   rpmquery -pR -- sssd-1.16.3-alt1.S1.*src.rpm</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; Однако release у sssd на самом деле alt1%ubt, что в современных</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; реалиях раскрывается в просто alt1, и файлов, соответствующих</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; шаблону sssd-1.16.3-alt1.S1.*src.rpm просто нет.</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; Добавьте к этому фишку rpmquery: она умеет раскрывать шаблоны</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; имён файлов сама, и если ни один файл не попал под шаблон, не</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; считает это ошибкой:</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   $ rpmquery -pR foo; echo "exit code: $?"</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   error: open of foo failed: No such file or directory</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   exit code: 1</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   $ rpmquery -pR 'foo*'; echo "exit code: $?"</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;   exit code: 0</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; В итоге хешер считает, что у пакета просто нет зависимостей.</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; Однако к этому времени в чруте уже достаточно всего чтобы у</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; sssd прошёл ./configure, и сброка падает только на тестах.</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; В новой сборке sssd %ubt в релизе уже нет, так что ежедневная</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; пересборка должна проходить успешно.</div><div xmlns="http://www.w3.org/1999/xhtml">&gt;</div><div xmlns="http://www.w3.org/1999/xhtml">&gt; Вот такая вот история. Много букв, мораль не ясна.</div><div xmlns="http://www.w3.org/1999/xhtml"> </div><div xmlns="http://www.w3.org/1999/xhtml"> </div><div xmlns="http://www.w3.org/1999/xhtml">Мораль-то как раз ясна.</div><div xmlns="http://www.w3.org/1999/xhtml"> </div><div xmlns="http://www.w3.org/1999/xhtml">1) Принудительная замена %ubt на %nil (кроме свего прочего) сломала пересборку</div><div xmlns="http://www.w3.org/1999/xhtml">пакетов, которые а) используют %ubt, б) требуют  /proc для сборки.  Это изменение</div><div xmlns="http://www.w3.org/1999/xhtml">крайне необдуманное и несвоевременное. Нужно его отменить, и от %ubt уходить</div><div xmlns="http://www.w3.org/1999/xhtml">постепенно (если будет показана польза/необходимость такого ухода).</div><div xmlns="http://www.w3.org/1999/xhtml"> </div><div xmlns="http://www.w3.org/1999/xhtml">2) Метод "обновляйся, потом разберемся", с помощью которого "починили" пересборку sssd,</div><div xmlns="http://www.w3.org/1999/xhtml">в корне неверный, и привел к нерабочему sssd (подробности в <a href="https://bugzilla.altlinux.org/show_bug.cgi?id=35545)">https://bugzilla.altlinux.org/show_bug.cgi?id=35545)</a></div><div xmlns="http://www.w3.org/1999/xhtml">Правильное решение -- починить вычисление зависимостей во время пересборки.</div><div xmlns="http://www.w3.org/1999/xhtml">Обходной путь -- выпилить %ubt из спеки  sssd (и других пакетов, которые "внезапно" перестали пересобираться).</div><div xmlns="http://www.w3.org/1999/xhtml"> </div><div xmlns="http://www.w3.org/1999/xhtml"> </div><div xmlns="http://www.w3.org/1999/xhtml">Всем бобра,</div><div xmlns="http://www.w3.org/1999/xhtml">     Алексей</div>