multilib packages no longer installable (rpm 6 or poldek vs rpm 6 issue?)
Jan Rękorajski
baggins at pld-linux.org
Sun Jan 11 22:52:55 CET 2026
On Sun, 11 Jan 2026, Jan Palus wrote:
> On 11.01.2026 19:01, Jakub Bogusz wrote:
> > I tried to install cargo again on th-x32 builder and failed: rpm or
> > poldek doesn't distinguish between different archs/colors of curl-libs.
> > Upgrade-install of curl-libs.x86_64 tries to replace curl-libs.x32,
> > just-install of curl-libs.x86_64 says, that equal version is already
> > installed, but actually only .x32 version of package is installed.
> >
> > I verified that the same issue exists on th-x86_64 builder (with .i686
> > and .x86_64 package archs respectively).
>
> Noticed the same today but I don't believe it has anything to do with
> rpm 6. For reference the error originates from rpm:
>
> poldek:/all-avail> upgrade curl-libs-8.18.0-1.x86_64
> Processing dependencies...
> curl-libs-8.17.0-2.x86_64 obsoleted by curl-libs-8.18.0-1.x86_64
> greedy upgrade curl-devel-8.17.0-2.x86_64 to 8.18.0-1.x86_64 (unresolved curl-libs(x86-64) = 8.17.0-2)
> curl-devel-8.17.0-2.x86_64 obsoleted by curl-devel-8.18.0-1.x86_64
> greedy upgrade curl-8.17.0-2.x86_64 to 8.18.0-1.x86_64 (unresolved curl-libs(x86-64) = 8.17.0-2)
> curl-8.17.0-2.x86_64 obsoleted by curl-8.18.0-1.x86_64
> There are 3 packages to install (2 marked by dependencies), 3 to remove:
> U curl-(8.17.0-2 => 8.18.0-1).x86_64 curl-devel-(8.17.0-2 => 8.18.0-1).x86_64 curl-libs-(8.17.0-2 => 8.18.0-1).x86_64
> This operation will free 5.5KB of disk space.
> Need to get 1.4MB of archives.
> curl-libs-8.18.0-1.x86_64.rpm: digests OK
> curl-8.18.0-1.x86_64.rpm: digests OK
> curl-devel-8.18.0-1.x86_64.rpm: digests OK
> Executing pm-command.sh --upgrade -vh --root /...
> error: Failed dependencies:
> libcurl.so.4 is needed by (installed) libgphoto2-2.5.32-1.i686
> libcurl.so.4 is needed by (installed) elfutils-debuginfod-libs-0.194-1.i686
> There were errors
>
>
> I guess the behavior comes from "curl-libs-8.18.0-1.x86_64" being
> treated essentially as noarch package due to incorrect color:
>
> $ rpm -q --qf='%{NAME} %{ARCH} %{HEADERCOLOR}\n' -p curl-libs-8.18.0-1.x86_64.rpm
> curl-libs x86_64 0
>
> for previous curl-libs it's correct:
>
> $ rpm -q --qf='%{NAME} %{ARCH} %{HEADERCOLOR}\n' -p curl-libs-8.17.0-2.x86_64.rpm
> curl-libs x86_64 2
>
> Header color is bitsum of colors for all files within package:
>
> https://github.com/rpm-software-management/rpm/blob/58a917a6c5e24e9e8a01976c17d2eee06249b9b6/lib/tagexts.cc#L776-L789
>
> as expected file colors are also incorrect:
>
> $ rpm -q --qf='[%{FILENAMES} %{FILECOLORS}\n]' -p curl-libs-8.18.0-1.x86_64.rpm
> /usr/lib64/libcurl.so.4 0
> /usr/lib64/libcurl.so.4.8.0 0
>
> contrary to previous package:
>
> $ rpm -q --qf='[%{FILENAMES} %{FILECOLORS}\n]' -p curl-libs-8.17.0-2.x86_64.rpm
> /usr/lib64/libcurl.so.4 0
> /usr/lib64/libcurl.so.4.8.0 2
>
>
> Which brings us to code which sets file color:
>
> https://github.com/rpm-software-management/rpm/blob/58a917a6c5e24e9e8a01976c17d2eee06249b9b6/build/rpmfc.cc#L1367-L1369
>
> So either we bring back executable bit on shared libraries or we patch
> every piece of code which relies on it.
Yay for horrible packaging malpractices in fedora/redhat!
Lucky for us that looks like the only place, I'm going to patch out
is-exec check there.
--
Jan Rękorajski | PLD/Linux
SysAdm | baggins<at>pld-linux.org | http://www.pld-linux.org/
More information about the pld-devel-en
mailing list