7

Have next kind of question. Wanna to rebuild garbage collector (gc-7.1-10.el6.src.rpm) and exclude ld-linux.so.2, ld-linux.so.2(GLIBC_2.3) & libpthread.so.0(GLIBC_2.3.2) dependencies. How can I get something similar I want? (CentOS 6)

% rpm -qp -R rpmbuild/RPMS/i386/gc-7.1-10.el6.i386.rpm
/sbin/ldconfig  
/sbin/ldconfig  
ld-linux.so.2  
ld-linux.so.2(GLIBC_2.3)  
libc.so.6  
libc.so.6(GLIBC_2.0)  
libc.so.6(GLIBC_2.1)  
libc.so.6(GLIBC_2.1.3)  
libc.so.6(GLIBC_2.2.4)  
libc.so.6(GLIBC_2.3)  
libcord.so.1  
libdl.so.2  
libdl.so.2(GLIBC_2.1)  
libgc.so.1  
libgcc_s.so.1  
libgcc_s.so.1(GCC_3.0)  
libgcc_s.so.1(GCC_3.3.1)  
libgccpp.so.1  
libm.so.6  
libpthread.so.0  
libpthread.so.0(GLIBC_2.0)  
libpthread.so.0(GLIBC_2.1)  
libpthread.so.0(GLIBC_2.2)  
libpthread.so.0(GLIBC_2.2.3)  
libpthread.so.0(GLIBC_2.3.2)  
libstdc++.so.6  
libstdc++.so.6(CXXABI_1.3)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rtld(GNU_HASH)

Need I edit my spec file, or change and rebuild my tar.gz archive ?

mart7ini
  • 1,519
  • 2
  • 16
  • 21

4 Answers4

11

Just define requires you want to exclude by :

%define __requires_exclude libXXX.so.X

7

Most of these dependencies are created by the "find-requires" feature. If you specify this in your .spec file:

AutoReq: no

None of them are created.

I'm unsure of an easy way to exclude single ones, however. It's all or nothing.

Striezel
  • 3,693
  • 7
  • 23
  • 37
Corey Henderson
  • 7,239
  • 1
  • 39
  • 43
1

The easiest way to disable automatic dependency extraction is to remove the execute bits from the file(s) that cause the dependency: rpm does not extract dependencies from non-executable files automatically.

You can also filter the dependencies (the filtering is different in different versions of rpm but is possible in all versions of rpm).

However the dependencies that you wish to filter are not usually a problem. Are you trying to build on a newer machine and install on an older machine, with an older version of glibc?

Jeff Johnson
  • 2,310
  • 13
  • 23
0

You need this to just disable one or more provie or require

http://www.rpm.org/wiki/PackagerDocs/DependencyGenerator

  • 2
    While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. – a14m Jul 16 '15 at 00:32
  • I did refer to full explain about excluding one or more require from auto requires generation .. any way I'll write one answer ... – مصعب الزعبي Jul 17 '15 at 02:06
  • 1
    And the link above is, indeed, invalid now. – chepner May 08 '18 at 17:23