From mhroncok at redhat.com Tue Feb 15 14:48:55 2022 From: mhroncok at redhat.com (=?UTF-8?Q?Miro_Hron=c4=8dok?=) Date: Tue, 15 Feb 2022 15:48:55 +0100 Subject: Preventing .build-id file conflicts between pypy3.7-libs-7.3.7-1.fc34.x86_64 and pypy3.8-libs-7.3.7-1.fc34.x86_64 In-Reply-To: References: Message-ID: I've realized I've sent this initially to rpm-list-requests and not rpm-list. Sorry about that. On 13. 02. 22 14:11, Miro Hron?ok wrote: > Hey, > apparently some ELF files are identical between Fedora's pypy3.7-libs and > pypy3.8-libs packages. > > On Fedora 34, this leads to installation conflict: > > Error: Transaction test error: > ? file /usr/lib/.build-id/39/208b4f57aa4d5cfcbed13cf6c5ec428de27264 from > install of pypy3.7-libs-7.3.7-1.fc34.x86_64 conflicts with file from package > pypy3.8-libs-7.3.7-1.fc34.x86_64 > ? file /usr/lib/.build-id/40/682aae1fc61eaa03230eac9033407ce96488c9 from > install of pypy3.7-libs-7.3.7-1.fc34.x86_64 conflicts with file from package > pypy3.8-libs-7.3.7-1.fc34.x86_64 > ? file /usr/lib/.build-id/53/96df0ea06a9dd7e8eeea66aaa65dda9b64e73c from > install of pypy3.7-libs-7.3.7-1.fc34.x86_64 conflicts with file from package > pypy3.8-libs-7.3.7-1.fc34.x86_64 > ? file /usr/lib/.build-id/87/535f93c815a75349f4d56210c31d4ef4b797f2 from > install of pypy3.7-libs-7.3.7-1.fc34.x86_64 conflicts with file from package > pypy3.8-libs-7.3.7-1.fc34.x86_64 > ? file /usr/lib/.build-id/c6/bff4486941a2fb3490a80eb7b7bfe3370e8ba0 from > install of pypy3.7-libs-7.3.7-1.fc34.x86_64 conflicts with file from package > pypy3.8-libs-7.3.7-1.fc34.x86_64 > ? file /usr/lib/.build-id/c9/e94d839699198b0e87c334f8e03160fec054de from > install of pypy3.7-libs-7.3.7-1.fc34.x86_64 conflicts with file from package > pypy3.8-libs-7.3.7-1.fc34.x86_64 > ? file /usr/lib/.build-id/e4/a09cf0647ed5d0e730dcdfef7aff9f9a2e11a0 from > install of pypy3.7-libs-7.3.7-1.fc34.x86_64 conflicts with file from package > pypy3.8-libs-7.3.7-1.fc34.x86_64 > ? file /usr/lib/.build-id/e8/1db0d87e7cce4f5fcad18063f7b7fce2eb9590 from > install of pypy3.7-libs-7.3.7-1.fc34.x86_64 conflicts with file from package > pypy3.8-libs-7.3.7-1.fc34.x86_64 > ? file /usr/lib/.build-id/ee/d5ab1faa168044b871001c4117fc8b7853b3c6 from > install of pypy3.7-libs-7.3.7-1.fc34.x86_64 conflicts with file from package > pypy3.8-libs-7.3.7-1.fc34.x86_64 > > As reported in https://bugzilla.redhat.com/2053880 > > I've read all the previous discussion about this on Fedora devel list, but I > still have no idea what should I do to prevent this conflict. > > Moving the files to a common component seems like a bad idea given it's not > "two packages bundle the same thing" but rather "two packages built in a > different way". > > I see this: > > https://github.com/rpm-software-management/rpm/blob/rpm-4.16.1.3/macros.in#L177 > > %{?_unique_build_ids:--build-id-seed "%{VERSION}-%{RELEASE}"} > > I suppose I could pass in %{NAME} as well, right? > > What are the side effects for changing the seed like this?: > > %global __debug_install_post \ > > %{lua:print(rpm.expand('%__debug_install_post'):gsub('%-%-build%-id%-seed%s+"', > rpm.expand('--build-id-seed "%{NAME}-')))} > > > Actually, should RPM pass %{NAME} by default? Or at least have a macro I could > redefine in a less cryptic and fragile way? Apparently, changing --build-id-seed breaks debugsourcefiles.list: + /usr/bin/find-debuginfo -j6 --strict-build-id -m -i --build-id-seed 3.7-7.3.7-5.fc37 --unique-debug-suffix -7.3.7-5.fc37.x86_64 --unique-debug-src-base pypy3.7-7.3.7-5.fc37.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /builddir/build/BUILD/ extracting debug info from /builddir/build/BUILDROOT/pypy3.7-7.3.7-5.fc37.x86_64/usr/lib64/pypy3.7/lib_pypy/_curses_cffi.pypy37-pp73-x86_64-linux-gnu.so extracting debug info from ... original debug info size: 2616kB, size after compression: 2468kB /usr/bin/sepdebugcrcfix: Updated 15 CRC32s, 0 CRC32s did match. 6363 blocks ... Processing files: pypy3.7-debugsource-7.3.7-5.fc37.x86_64 RPM build errors: error: Could not open %files file /builddir/build/BUILD/pypy3.7-v7.3.7-src/debugsourcefiles.list: No such file or directory Could not open %files file /builddir/build/BUILD/pypy3.7-v7.3.7-src/debugsourcefiles.list: No such file or directory Is that a bug, or ame I doing something wrong? That log is from https://src.fedoraproject.org/rpms/pypy3.7/pull-request/16 -- Miro Hron?ok -- Phone: +420777974800 IRC: mhroncok