rpm4 on carme*

Jan Palus atler at pld-linux.org
Wed Nov 18 10:47:10 CET 2020


On 10.11.2020 18:18, Jan Palus wrote:
> On 06.11.2020 20:49, Jan Palus wrote:
> > On 27.10.2020 23:21, Jan Rękorajski wrote:
> > > All carme machines are now running rpm 4.16.0. Please test and report
> > > any issues.
> > 
> > * poldek appears to still enforce directory deps while rpms does not
> >   (that concerns mainly /usr/lib/.build-id subdirs)
> > 
> > * rpm.org is missing %{__ln} macro. spotted only single occurrence in
> >   xrdp.spec
> 
> * missing __bash macro
> 
> * most noarch conditions stopped working now since 4.16 < 4.6

* Provides for libraries are not populated if %install does not set
  executable bit on ELF file. One such notable example is libgcc_s
  installed with mode 644 by `make install`:

rpm5:

$ rpm -q --provides libgcc | grep libgcc_s
libgcc_s.so.1
libgcc_s.so.1(GCC_3.0)
libgcc_s.so.1(GCC_3.3)
libgcc_s.so.1(GCC_3.3.1)
libgcc_s.so.1(GCC_3.4)
libgcc_s.so.1(GCC_3.4.2)
libgcc_s.so.1(GCC_4.0.0)
libgcc_s.so.1(GCC_4.2.0)
libgcc_s.so.1(GCC_4.3.0)
libgcc_s.so.1(GCC_4.4.0)
libgcc_s.so.1(GCC_4.5.0)
libgcc_s.so.1(GCC_4.7.0)
libgcc_s.so.1(GCC_4.8.0)
libgcc_s.so.1(GCC_7.0.0)
libgcc_s.so.1(GLIBC_2.0)
libgcc_s.so.1()(64bit)
libgcc_s.so.1(GCC_3.0)(64bit)
libgcc_s.so.1(GCC_3.3)(64bit)
libgcc_s.so.1(GCC_3.3.1)(64bit)
libgcc_s.so.1(GCC_3.4)(64bit)
libgcc_s.so.1(GCC_3.4.2)(64bit)
libgcc_s.so.1(GCC_3.4.4)(64bit)
libgcc_s.so.1(GCC_4.0.0)(64bit)
libgcc_s.so.1(GCC_4.2.0)(64bit)
libgcc_s.so.1(GCC_4.3.0)(64bit)
libgcc_s.so.1(GCC_4.7.0)(64bit)
libgcc_s.so.1(GCC_4.8.0)(64bit)
libgcc_s.so.1(GCC_7.0.0)(64bit)

rpm4:

$ rpm -q --provides -p libgcc-10.2.0-1.x86_64.rpm | grep libgcc_s
(empty)

Aa a workaround we could remove "exeonly" from %__elf_flags in
/usr/lib/rpm/fileattrs/elf.attr but ideally RPM should not look at
actual file mode on disk but rather on mode configured in %files.

Other such example: ossp-uuid

* possibly similar case but I haven't debugged it: perl-modules does not
  provide perl(unicore::Name)

* Requires(triggerpostun) is not supported (pam.spec)

* Obsoletes fails if it does not contain "package name only" examples:
  
  systemd.spec: Obsoletes:	virtual(init-daemon) (illegal char '(')
  perl.spec: Obsoletes:	perl-Params::Check < %perl_modverrel Params::Check 99 (illegal char ':')

* similar thing in Provides:

  perl.spec: Provides: perldoc = 3.14_02 at 5.30.3 (illegal char '@')


More information about the pld-devel-en mailing list