rpmdevtoolsで環境作ってRPM作成したらcheck-rpathsがエラーを吐いた
(追記)n0tsに「俺のエントリ読んでないだろ」と怒られた。よりよい解決策はRPM のビルド環境を整えるときの Tips | Carpe Diemで。その時は困ってなかったので途中まで読んでスルーしてましたサーセン。
今までは手動でmkdirとかして~/rpmに環境作ってたんだけど、試しにrpmdevtoolsを入れて、fedora-buildrpmtreeコマンドで環境を作ってみました。
で、rpmbuild -bb hogehoge.specとかすると
+ /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 * *******************************************************************************
なんてエラーが出て止まる。
「WARNING: 'check-rpaths' detected a broken RPATH and will cause 'rpmbuild'」でググったら、
こういう情報が出てきた。書いてある通りに、
echo -n "Rpath check: "; grep -qi check-rpaths ~/.rpmmacros && echo yes || echo no
したら
Rpath check: yes
って返ってきたので、そのまま記述に従って~/.rpmmacrosを
%_topdir %(echo $HOME)/rpmbuild
%_smp_mflags -j3
#%__arch_install_post /usr/lib/rpm/check-rpaths /usr/lib/rpm/check-buildroot
のように3行目をコメントアウトしたら、rpmbuildが通った。いいのかこれで?