ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] noarch и %ifarch, или о primary += aarch64
@ 2018-05-22  6:29 Michael Shigorin
  2018-05-22  7:02 ` Anton Farygin
  2018-05-22  7:07 ` Sergey Bolshakov
  0 siblings, 2 replies; 3+ messages in thread
From: Michael Shigorin @ 2018-05-22  6:29 UTC (permalink / raw)
  To: devel

	Здравствуйте.
Вчера пришлось вспоминать экспериментально на примере
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


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-05-22  7:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-22  6:29 [devel] noarch и %ifarch, или о primary += aarch64 Michael Shigorin
2018-05-22  7:02 ` Anton Farygin
2018-05-22  7:07 ` Sergey Bolshakov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git