4

While building my custom rpm package using the below mentioned command

rpmbuild -v -bb test.specs

I get the below error,

+ /usr/lib/rpm/check-rpaths /usr/lib/rpm/check-buildroot
*******************************************************************************
*
* WARNING: 'check-rpaths' detected a broken RPATH and will cause 'rpmbuild'
*          to fail. To ignore these errors, you can set the '$QA_RPATHS'
*          environment variable which is a bitmask allowing the values
*          below. The current value of QA_RPATHS is 0x0000.
*
*    0x0001 ... standard RPATHs (e.g. /usr/lib); such RPATHs are a minor
*               issue but are introducing redundant searchpaths without
*               providing a benefit. They can also cause errors in multilib
*               environments.
*    0x0002 ... invalid RPATHs; these are RPATHs which are neither absolute
*               nor relative filenames and can therefore be a SECURITY risk
*    0x0004 ... insecure RPATHs; these are relative RPATHs which are a
*               SECURITY risk
*    0x0008 ... the special '$ORIGIN' RPATHs are appearing after other
*               RPATHs; this is just a minor issue but usually unwanted
*    0x0010 ... the RPATH is empty; there is no reason for such RPATHs
*               and they cause unneeded work while loading libraries
*    0x0020 ... an RPATH references '..' of an absolute path; this will break
*               the functionality when the path before '..' is a symlink
*
*
* Examples:
* - to ignore standard and empty RPATHs, execute 'rpmbuild' like
*   $ QA_RPATHS=$[ 0x0001|0x0010 ] rpmbuild my-package.src.rpm
* - to check existing files, set $RPM_BUILD_ROOT and execute check-rpaths like
*   $ RPM_BUILD_ROOT=<top-dir> /usr/lib/rpm/check-rpaths
*
*******************************************************************************
ERROR   0001: file '/opt/TestMachineLinuxWithJre/lib/tls/x64Linux2.6gcc4.4.5/libnddstlsd.so' contains a standard rpath '/usr/X11R6/lib64' in [/usr/X11R6/lib64]

Guys! is there a way out, Thanks in advance

Avinash Nair
  • 221
  • 4
  • 10
  • 1
    if you don't need specs file and all, just install some package files via rpm, give a try on `https://github.com/jordansissel/fpm`. –  Aug 06 '15 at 15:09

2 Answers2

5

Remove the entry /usr/lib/rpm/check-rpaths from ~/.rpmmacros and re-run rpmbuild.

dr_
  • 28,763
  • 21
  • 89
  • 133
user126534
  • 51
  • 1
  • 2
5

Below is the work around that helped me build it

QA_RPATHS=\$[ 0x0001|0x0002 ] rpmbuild --quiet -bb rpm.spec
Avinash Nair
  • 221
  • 4
  • 10
  • You can also put this env var in your %install section. Makes it easier to do automated builds. – Rich Homolka Jun 10 '16 at 00:40
  • I had to merge the flags together to avoid an error that 0x0002 is a command not found: `QA_RPATHS=\$[0x0003]`. The help provided in the error isn't very precise. – Sinc Mar 03 '22 at 01:42