]> git.pld-linux.org Git - packages/rpm.git/blob - no-exeonly-for-elf-reqprov.patch
- do not rely on install setting ELF file permissions for generating req/prov
[packages/rpm.git] / no-exeonly-for-elf-reqprov.patch
1 * Provides for libraries are not populated if %install does not set
2   executable bit on ELF file. One such notable example is libgcc_s
3   installed with mode 644 by `make install`:
4
5 rpm5:
6
7 $ rpm -q --provides libgcc | grep libgcc_s
8 libgcc_s.so.1
9 libgcc_s.so.1(GCC_3.0)
10 libgcc_s.so.1(GCC_3.3)
11 libgcc_s.so.1(GCC_3.3.1)
12 libgcc_s.so.1(GCC_3.4)
13 libgcc_s.so.1(GCC_3.4.2)
14 libgcc_s.so.1(GCC_4.0.0)
15 libgcc_s.so.1(GCC_4.2.0)
16 libgcc_s.so.1(GCC_4.3.0)
17 libgcc_s.so.1(GCC_4.4.0)
18 libgcc_s.so.1(GCC_4.5.0)
19 libgcc_s.so.1(GCC_4.7.0)
20 libgcc_s.so.1(GCC_4.8.0)
21 libgcc_s.so.1(GCC_7.0.0)
22 libgcc_s.so.1(GLIBC_2.0)
23 libgcc_s.so.1()(64bit)
24 libgcc_s.so.1(GCC_3.0)(64bit)
25 libgcc_s.so.1(GCC_3.3)(64bit)
26 libgcc_s.so.1(GCC_3.3.1)(64bit)
27 libgcc_s.so.1(GCC_3.4)(64bit)
28 libgcc_s.so.1(GCC_3.4.2)(64bit)
29 libgcc_s.so.1(GCC_3.4.4)(64bit)
30 libgcc_s.so.1(GCC_4.0.0)(64bit)
31 libgcc_s.so.1(GCC_4.2.0)(64bit)
32 libgcc_s.so.1(GCC_4.3.0)(64bit)
33 libgcc_s.so.1(GCC_4.7.0)(64bit)
34 libgcc_s.so.1(GCC_4.8.0)(64bit)
35 libgcc_s.so.1(GCC_7.0.0)(64bit)
36
37 rpm4:
38
39 $ rpm -q --provides -p libgcc-10.2.0-1.x86_64.rpm | grep libgcc_s
40 (empty)
41
42 Aa a workaround we could remove "exeonly" from %__elf_flags in
43 /usr/lib/rpm/fileattrs/elf.attr but ideally RPM should not look at
44 actual file mode on disk but rather on mode configured in %files.
45
46 --- rpm-4.16.0/fileattrs/elf.attr~      2020-05-28 12:04:25.000000000 +0200
47 +++ rpm-4.16.0/fileattrs/elf.attr       2020-11-21 19:35:52.405659895 +0100
48 @@ -1,4 +1,4 @@
49  %__elf_provides                %{_rpmconfigdir}/elfdeps --provides %{?__filter_GLIBC_PRIVATE:--filter-private}
50  %__elf_requires                %{_rpmconfigdir}/elfdeps --requires %{?__filter_GLIBC_PRIVATE:--filter-private}
51  %__elf_magic           ^(setuid,? )?(setgid,? )?(sticky )?ELF (32|64)-bit.*$
52 -%__elf_flags           exeonly
53 +#__elf_flags           exeonly
This page took 0.062093 seconds and 3 git commands to generate.