From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 22 May 2018 09:29:09 +0300 From: Michael Shigorin To: devel@lists.altlinux.org Message-ID: <20180522062909.GU7916@imap.altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.23.88.hg577987ca2d02 (2014-03-12) Subject: [devel] =?koi8-r?b?bm9hcmNoIMkgJWlmYXJjaCwgyczJIM8gcHJpbWFyeSAr?= =?koi8-r?b?PSBhYXJjaDY0?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 May 2018 06:29:09 -0000 Archived-At: List-Archive: List-Post: Здравствуйте. Вчера пришлось вспоминать экспериментально на примере startup-rescue один неочевидный момент, который голосом (как минимум) уже озвучивался, но не помню, был ли хоть где-то зафиксирован письменно (ключевая фраза была вроде "у нас по факту не noarch, а any-x86" в исполнении ldv@). Он касается использования BuildArch: noarch совместно с %ifarch в спеке и собирается кусаться при вводе aarch64 как третьей синхронной архитектуры. Вкратце: между x86 и не-x86 можно менять зависимости, но не состав пакета и: стоит ли принуждать к noarch, если в спеке есть %ifarch? Происходит так потому, что сравнение происходит по составу собравшегося для текущих синхронных архитектур i586 и x86_64 -- т.е. если состав пакета, заявленного как noarch, между ними отличается, сборка останавливается по той простой причине, что в итоговый noarch repo идёт только один из них и если пакеты различаются по существу, этот выбор будет заведомо ошибочным для одной из итоговых суммарных конфигураций ($arch+noarch). Заинтересованные могут посмотреть girar.git, скажем, у glebfm@: gb/gb-task-check-noarch-i по строчке error (#$i): the whole $srcN source package should be made noarch Конкретно мне надо было исключить из startup-rescue зависимости, которые водятся только на x86, насколько знаю -- dmidecode и ddcprobe. Первая попытка: http://webery.altlinux.org/task/206752 (в районе беты стартеркитов задание должно протухнуть) -BuildArch: noarch (поскольку смутно припоминал такую грабельку) -Requires: dmidecode ddcprobe altquire +%ifarch %ix86 x86_64 +Requires: dmidecode ddcprobe +%endif +Requires: altquire +Requires: agetty Результат: warning (#100): startup-rescue-0.29-alt1.i586.rpm should be .noarch.rpm error (#100): the whole startup-rescue source package should be made noarch Вторая попытка: http://webery.altlinux.org/task/206754 (отличается на оставленный BuildArch: noarch) -Requires: dmidecode ddcprobe altquire +%ifarch %ix86 x86_64 +Requires: dmidecode ddcprobe +%endif +Requires: altquire +Requires: agetty Результат сборки странный и не имеет отношения к поднятой проблеме (опишу в конце сообщения), поэтому вот для архива ссылка на эквивалентную второй в плане архитектур третью попытку и коммит: http://git.altlinux.org/tasks/archive/done/_201/206755/logs/events.1.1.log http://git.altlinux.org/tasks/index/sisyphus/done/206755/gears/100/git?p=git;a=commitdiff;h=cb4fae5628e5ca28e7a24df0cf3eea4149c2bca2 Также во всех этих заданиях фигурировал следующий фрагмент, который и должен будет взорваться, когда aarch64 станет тоже первичной/синхронной архитектурой: +%ifarch %ix86 x86_64 install -pm755 fixmbr find-fstab %buildroot/sbin/ +%endif В общем, предлагаю при наличии в спеке ^(%ifarch|%ifnarch) смягчать эту ошибку до предупреждения (видимо, включив в него отсылку к наблюдаемому %ifarch, чтоб не забывать о нём порой). ------------------------------------------------------------- Сбой сборки задания #206754 выглядит так: The following packages have unmet dependencies: startup-rescue: Depends: /sbin/find-fstab Что и где сломалось с учётом того, что /sbin/find-fstab лежит в этом же пакете -- пока не понял. --  ---- WBR, Michael Shigorin / http://altlinux.org   ------ http://opennet.ru / http://anna-news.info