ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] I: usrmerge: build regressions on merged-usr
@ 2024-04-01 14:31 Arseny Maslennikov
  2024-04-01 14:33 ` Arseny Maslennikov
  0 siblings, 1 reply; 3+ messages in thread
From: Arseny Maslennikov @ 2024-04-01 14:31 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 9898 bytes --]

Hi!

Предыдущее обсуждение — в треде:
https://lore.altlinux.org/devel/Zb1g5AjXKMylak18@cello/

В минувшую среду наконец-то удалось начать подготовку к слиянию
каталогов в сизифе. Сейчас в репозиторий можно просто взять и собрать
filesystem 3 с симлинками, он соберётся, почти все пакеты смогут
установиться в получившуюся систему, и большинство пакетов смогут
собраться в этом окружении без регрессий. Но не все, о чём ниже.

В результате тестовой пересборки сизифа в окружении, где /bin -> usr/bin и
так далее, выявлены регрессии пересборки 59 пакетов. Все они, кроме совсем
тривиальных, представлены ниже, с ACL.

	alleyoop-0.9.8-alt1_9
	autodafe-0.1-alt3_6
	corosync-3.1.8-alt1
	ispell-ru-lebedev-0.99g5-alt15
	libretro-20200729-alt1
	pyclewn-2.3-alt2
	ttyd-1.7.3-alt1
	wordlist-20180416-alt1
Эти пакеты вытягивают vim-common в качестве BR. Получается следующее:
          file /usr/bin/ex from install of vim-common-4:9.1.0050-alt2.noarch conflicts with file from package vim-minimal-4:9.1.0050-alt2.x86_64
          file /usr/bin/rview from install of vim-common-4:9.1.0050-alt2.noarch conflicts with file from package vim-minimal-4:9.1.0050-alt2.x86_64
  hsh-install: Packages installation failed.
Заведён багрепорт https://bugzilla.altlinux.org/49541. Сами эти пакеты, скорее
всего, исправлять не потребуется.
alleyoop	viy @everybody
autodafe	viy @everybody
corosync	shaba @everybody
ispell-ru-lebedev	viy @everybody
libretro	arbars @everybody
pyclewn	george @everybody
ttyd	fruktime @everybody
wordlist	@core

	blender-4.0.2-alt0.8
	deepin-image-viewer-5.9.9-alt3
	freecad-1:0.21.2-alt5
	imath-3.1.6-alt4
	libcpp-hocon-0.3.0-alt2
	liblcf-0.7.0-alt1_3
	libmanticore-columnar-1.15.4-alt1
	lincity-ng-2.10.1-alt1
	pocl-5.0-alt0.2
	opencolorio-2.3.0-alt2.2
	openshadinglanguage-1.13.7.0-alt0.2
	smesh-9.8.0.2-alt2
При сборке этих пакетов используется cmake, который в этом окружении считает,
что все cmake-файлы лежат в /lib64/cmake, и находит их там. Может, потому, что
думает, что сам находится в /bin/cmake, или по иной причине. В частности, при
обходе очередного cmake-файла ${CMAKE_CURRENT_LIST_FILE} и
${CMAKE_CURRENT_LIST_DIR} начинаются с /lib64/cmake, что ломает логику самих
этих файлов (как правило, какие-то пути вида
"${CMAKE_CURRENT_LIST_FILE}/../../../..") и порождает сумрачные изобретения
вроде каталога /include, установки артефактов в %buildroot/%_lib, ...

Если поставить /bin после /usr/bin в PATH, проблема пропадает.

blender	egori rider @everybody
deepin-image-viewer	lvol @everybody
freecad	cas @everybody
imath	zerg
libcpp-hocon	cas @everybody
liblcf	viy @everybody
libmanticore-columnar	lav @everybody
lincity-ng	aris @everybody
pocl	lakostis @everybody
opencolorio	nenderus @everybody
openshadinglanguage	thatman @everybody
smesh	cas @everybody

	jicofo-1.1.9258-alt1
	jigasi-1.1-alt0.3
	jitsi-videobridge-1:2.3.9258-alt1
Эти три пакета ищут файлы в /share/maven.
jicofo	viy @everybody
jigasi	viy @everybody
jitsi-videobridge	viy @everybody

	llvm15.0-15.0.7-alt8
Здесь довольно ясно написали, что произошло:
  Could not find a relative path to sys.executable under sys.prefix
  tried: /bin/python3.12
  realpath(sys.prefix): /usr
  sys.prefix: /usr
  -- Skipping FreeBSDKernel plugin due to missing libfbsdvmcore
  CMake Error at /usr/src/RPM/BUILD/llvm-project/lldb/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt:7 (message):
    LLDB_PYTHON_EXE_RELATIVE_PATH is not set.

	openldap-2.6.7-alt1
В этом пакете устанавливают systemd unit в /usr/lib/systemd/system, к чему не
готов список файлов в спеке. Хорошо, но рано. :)

	foomatic-db-engine-4.0.12-alt1
Этот пакет устанавливает файлы в /lib/cups.

	ocaml-camlp5-8.02.01-alt1
Этот пакет устанавливает файлы в /bin.

	python3-module-GitPython-3.1.42-alt1
Некий тест сравнил shutil.which("git") и git.GIT_PYTHON_GIT_EXECUTABLE из
своего модуля, и они не совпали:
  AssertionError: '/usr/bin/git' != '/bin/git'
python3-module-GitPython	lav @everybody

	LibreOffice-24.2.2.1-alt1
	LibreOffice-still-7.6.5.2-alt1
cc не может найти jni.h:
  make[1]: Entering directory '/usr/src/RPM/BUILD/libreoffice-24.2.2.1'
  [build C  ] bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.c
  S=/usr/src/RPM/BUILD/libreoffice-24.2.2.1 && I=$S/instdir && W=$S/workdir &&  mkdir -p $W/CObject/bean/native/unix/ $W/Dep/CObject/bean/native/unix/ && cd /usr/src/RPM/BUILD/libreoffice-24.2.2.1 &&             gcc -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -DCPPU_ENV=gcc3 -DLINUX -DNDEBUG -DOSL_DEBUG_LEVEL=0 -DUNIX -DUNX -DX86_64 -D_PTHREADS -D_REENTRANT  -flto=jobserver -fuse-linker-plugin -O2 -fvisibility=hidden    -Wall -Wendif-labels -Wextra -Wstrict-prototypes -Wundef -Wunreachable-code -Wunused-macros   -finput-charset=UTF-8 -fmessage-length=0 -fno-common -pipe -fstack-protector-strong  -Wduplicated-cond -Wlogical-op -Wshift-overflow=2 -std=gnu89 -fPIC -Wshadow  -O2     -DLIBO_INTERNAL_ONLY  -c $S/bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.c -o $W/CObject/bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.o -MMD -MT $W/CObject/bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.o -MP -MF $W/Dep/CObject/bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.d_ -I$S/include -I/usr/lib/jvm/include -I/usr/lib/jvm/include/linux -I$S/config_host   && mv $W/Dep/CObject/bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.d_ $W/Dep/CObject/bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.d
  /usr/src/RPM/BUILD/libreoffice-24.2.2.1/bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.c:33:10: fatal error: jni.h: No such file or directory
     33 | #include <jni.h>
        |          ^~~~~~~
  compilation terminated.
  make[1]: *** [/usr/src/RPM/BUILD/libreoffice-24.2.2.1/solenv/gbuild/LinkTarget.mk:275: /usr/src/RPM/BUILD/libreoffice-24.2.2.1/workdir/CObject/bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.o] Error 1
  make[1]: Leaving directory '/usr/src/RPM/BUILD/libreoffice-24.2.2.1'
LibreOffice	george kotopesutility @everybody
LibreOffice-still	cas @everybody

	subversion-1.14.3-alt1
Здесь что-то ищут в /share/libtool.
subversion	cas ender shrek @qa @everybody

  <...>
	qt6-3d-6.6.2-alt1.1
	qt6-5compat-6.6.2-alt1
	qt6-charts-6.6.2-alt1
	qt6-connectivity-6.6.2-alt1
	qt6-datavis3d-6.6.2-alt1
	qt6-doc-6.6.2-alt1
	qt6-imageformats-6.6.2-alt1
	qt6-multimedia-6.6.2-alt1.1
	qt6-networkauth-6.6.2-alt1
	qt6-positioning-6.6.2-alt1.1
	qt6-remoteobjects-6.6.2-alt1
	qt6-scxml-6.6.2-alt1
	qt6-sensors-6.6.2-alt1
	qt6-serialbus-6.6.2-alt1
	qt6-serialport-6.6.2-alt1
	qt6-speech-6.6.2-alt1
	qt6-svg-6.6.2-alt1
	qt6-tools-6.6.2-alt1
	qt6-virtualkeyboard-6.6.2-alt1
	qt6-wayland-6.6.2-alt1
	qt6-webchannel-6.6.2-alt1
	qt6-websockets-6.6.2-alt1
Это семейство пакетов в процессе сборки документации (make чего-то там docs) не
может найти непонятно какой файл (в логе появляется строка "No such file or
directory") и падает. Подробнее я не смотрел, но, видимо, причина у них общая.
qt6-3d	zerg
qt6-5compat	zerg
qt6-charts	zerg
qt6-connectivity	zerg
qt6-datavis3d	zerg @everybody
qt6-doc	zerg @everybody
qt6-imageformats	zerg
qt6-multimedia	zerg
qt6-networkauth	zerg
qt6-positioning	zerg
qt6-remoteobjects	zerg @everybody
qt6-scxml	zerg
qt6-sensors	zerg
qt6-serialbus	zerg
qt6-serialport	zerg
qt6-speech	zerg
qt6-svg	zerg
qt6-tools	zerg
qt6-virtualkeyboard	zerg
qt6-wayland	zerg
qt6-webchannel	zerg
qt6-websockets	zerg

	sphinx-2.3.2-alt4
configure-script в подкаталоге api/libsphinxclient валится с ошибкой:
  error: C++ preprocessor "/lib/cpp" fails sanity check
Забавно, что configure в корне дерева исходников на такую ошибку не натыкается,
потому что ищет и находит C preprocessor.
Если текущий gcc-common установить в merged-usr окружение, то /lib/cpp будет
разворачиваться в /usr/usr/bin/gcc_wrapper (один префикс лишний).
configure-скрипт сначала пробует "$CXX -E", а потом /lib/cpp.
Если установить переменную окружения CXX=/usr/bin/c++, это поможет.
sphinx	rider @everybody

	uhd-4.4.0.0-alt3.1
	xar-1.6.1-alt4
У этих двух пакетов причина поломки мне не ясна, но один из них, uhd, на CMake.
uhd	antohami @everybody
xar	majioa @everybody

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [devel] I: usrmerge: build regressions on merged-usr
  2024-04-01 14:31 [devel] I: usrmerge: build regressions on merged-usr Arseny Maslennikov
@ 2024-04-01 14:33 ` Arseny Maslennikov
  2024-04-03 10:34   ` Arseny Maslennikov
  0 siblings, 1 reply; 3+ messages in thread
From: Arseny Maslennikov @ 2024-04-01 14:33 UTC (permalink / raw)
  To: devel

[-- Attachment #1: Type: text/plain, Size: 1918 bytes --]

On Mon, Apr 01, 2024 at 05:31:51PM +0300, Arseny Maslennikov wrote:
> 	blender-4.0.2-alt0.8
> 	deepin-image-viewer-5.9.9-alt3
> 	freecad-1:0.21.2-alt5
> 	imath-3.1.6-alt4
> 	libcpp-hocon-0.3.0-alt2
> 	liblcf-0.7.0-alt1_3
> 	libmanticore-columnar-1.15.4-alt1
> 	lincity-ng-2.10.1-alt1
> 	pocl-5.0-alt0.2
> 	opencolorio-2.3.0-alt2.2
> 	openshadinglanguage-1.13.7.0-alt0.2
> 	smesh-9.8.0.2-alt2
> При сборке этих пакетов используется cmake, который в этом окружении считает,
> что все cmake-файлы лежат в /lib64/cmake, и находит их там. Может, потому, что
> думает, что сам находится в /bin/cmake, или по иной причине. В частности, при
> обходе очередного cmake-файла ${CMAKE_CURRENT_LIST_FILE} и
> ${CMAKE_CURRENT_LIST_DIR} начинаются с /lib64/cmake, что ломает логику самих
> этих файлов (как правило, какие-то пути вида
> "${CMAKE_CURRENT_LIST_FILE}/../../../..") и порождает сумрачные изобретения
> вроде каталога /include, установки артефактов в %buildroot/%_lib, ...
> 
> Если поставить /bin после /usr/bin в PATH, проблема пропадает.
Это касается большинства перечисленных в предыдущем письме пакетов, но
наивное изменение дефолтного PATH в /etc/profile может вызвать другие
регрессии. Я считаю, надо провести ещё одну тестовую пересборку с
переставленными элементами PATH, чтобы обнаружить регрессии в таком
окружении.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [devel] I: usrmerge: build regressions on merged-usr
  2024-04-01 14:33 ` Arseny Maslennikov
@ 2024-04-03 10:34   ` Arseny Maslennikov
  0 siblings, 0 replies; 3+ messages in thread
From: Arseny Maslennikov @ 2024-04-03 10:34 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 3247 bytes --]

On Mon, Apr 01, 2024 at 05:33:07PM +0300, Arseny Maslennikov wrote:
> On Mon, Apr 01, 2024 at 05:31:51PM +0300, Arseny Maslennikov wrote:
> > Если поставить /bin после /usr/bin в PATH, проблема пропадает.
> Это касается большинства перечисленных в предыдущем письме пакетов, но
> наивное изменение дефолтного PATH в /etc/profile может вызвать другие
> регрессии. Я считаю, надо провести ещё одну тестовую пересборку с
> переставленными элементами PATH, чтобы обнаружить регрессии в таком
> окружении.

Провели. Новых FTBFS системного масштаба не будет.

После изменения дефолтного PATH обнаружилось вот это.
	yices-2.3.0-alt4
Тут понятно, что случилось:
  Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.18930
  + umask 022
  + /bin/mkdir -p /usr/src/RPM/BUILD
  + cd /usr/src/RPM/BUILD
  + /bin/chmod -Rf u+rwX -- /usr/src/tmp/yices-buildroot
  + :
  + /bin/rm -rf -- /usr/src/tmp/yices-buildroot
  + PATH=/usr/libexec/rpm-build:/usr/src/bin:/usr/bin:/bin:/usr/games
  + cd yices-2.3.0
  + sed -i 's|/usr|/usr/src/tmp/yices-buildroot/usr|' configs/make.include.x86_64-alt-linux
  + make dist YICES_MAKE_INCLUDE=configs/make.include.x86_64-alt-linux ARCH=x86_64-alt-linux
  make: Entering directory '/usr/src/RPM/BUILD/yices-2.3.0'
  Mode:     release
  Platform: x86_64-alt-linux
  make[1]: Entering directory '/usr/src/RPM/BUILD/yices-2.3.0'
  ./utils/make_source_version ./src/api/yices_version_template.txt src/api/yices_version.c 2.3.0 release x86_64-alt-linux
  /usr/src/tmp/yices-buildroot/usr/bin/mkdir -p build/x86_64-alt-linux-release/dist
  make[1]: /usr/src/tmp/yices-buildroot/usr/bin/mkdir: No such file or directory
  make[1]: *** [Makefile.build:326: build/x86_64-alt-linux-release/dist] Error 127
  make[1]: Leaving directory '/usr/src/RPM/BUILD/yices-2.3.0'
  make: *** [Makefile:259: dist] Error 2
  make: Leaving directory '/usr/src/RPM/BUILD/yices-2.3.0'
  error: Bad exit status from /usr/src/tmp/rpm-tmp.18930 (%install)
В configs/make.include.x86_64-alt-linux, видимо, оказалось обращение к
/usr/bin/mkdir явно. Т. е., если не вникать, можно перед добавлением
buildroot вставить что-то по мотивам
  sed -i 's|/usr/bin/mkdir|mkdir|' configs/make.include.x86_64-alt-linux
yices	grenka

Из списка в первом письме этого треда остались следующие пакеты:
automake_1.11	glebfm @everybody
foomatic-db-engine	viy @qa @everybody
openldap	@openldap
sphinx	rider @everybody
xar	majioa @everybody
yices	grenka
По поводу остальных упомянутых, скорее всего, можно расслабиться.

Я ещё посмотрю, что будет с зависимостями у пакетов, пересобравшихся
успешно.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

end of thread, other threads:[~2024-04-03 10:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-01 14:31 [devel] I: usrmerge: build regressions on merged-usr Arseny Maslennikov
2024-04-01 14:33 ` Arseny Maslennikov
2024-04-03 10:34   ` Arseny Maslennikov

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