[opensuse-packaging] What does 'RPATH "" ... is not allowed' mean?
![](https://seccdn.libravatar.org/avatar/e76779f0629280df6d2dfce07e4e1600.jpg?s=120&d=mm&r=g)
Hello, I got a build failure in security:apparmor:factory / apparmor today, but only for the factory build. The package itsself didn't change, so it must be caused by a recent change in factory. Can someone please explain me what the following lines in the build log mean and how I can fix the issue? calling /usr/lib/rpm/brp-suse.d/brp-35-rpath ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed If you need the full build log: https://build.opensuse.org/package/live_build_log?arch=i586&package=apparmor&project=security%3Aapparmor%3Afactory&repository=openSUSE_Factory Regards, Christian Boltz --
Manfred, Du solltest so spaet keine Emails mehr schreiben :-) Danke für die Berichtigung, werd mir den Tipp hinter die Ohren schreiben und nur noch Mailen, wenn ich die Augen zumindestens zu einem drittel aufkriege. [> Thomas Hertweck und Manfred Tremmel in suse-linux]
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/e1ad78837291ae9e0ef67a01d37bec8d.jpg?s=120&d=mm&r=g)
On Tue, 13 Mar 2012 02:09:58 +0100, Christian Boltz
ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed
RPATH sets the path the runtime linker will search when resolving dependencies. This is only needed when the libs don't reside in a standard directory. Having RPATH point to the buildroot is plain wrong as it'll never work. How you fix that with perl tools I don't know, so someone knowledgable like David needs to chime in :-) GONGGGGGGGGG Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/638c5f9b9a41e53d4663197a58261c49.jpg?s=120&d=mm&r=g)
Hello, On Tue, 13 Mar 2012, Philipp Thomas wrote:
On Tue, 13 Mar 2012 02:09:58 +0100, Christian Boltz
wrote: ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed
RPATH sets the path the runtime linker will search when resolving dependencies. This is only needed when the libs don't reside in a standard directory. Having RPATH point to the buildroot is plain wrong as it'll never work. How you fix that with perl tools I don't know, so someone knowledgable like David needs to chime in :-) GONGGGGGGGGG
That's not a job for me. As it is definitely a bug in /usr/lib/rpm/brp-suse.d/brp-35-rpath, but ATM I'm too tired to even think about filing that bug. The perl-Module LibAppArmor.so is clean, no rpath, as 'strings' tells me. Now. Let's see what that script does, I do this in the osc/build chroot ... ==== brp-35-rpath : lines 18 - 44 ====
HAD_ERRORS=0 # check RPATH for bad directories for FILE in $(find $RPM_BUILD_ROOT -type f \( -perm -0100 -o -perm -0010 -o -perm -0001 \) 2>/dev/null); do
Result (among others I suspect): ./home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-0.x86_64/usr/lib/perl5/vendor_perl/5.14.2/x86_64-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so
for RPATH_VAL in $(objdump -p "$FILE" 2>/dev/null | egrep -w '(RPATH|RUNPATH)' | awk '{ print $2 ":"}'); do
grusum:/> set -x grusum:/> objdump -p ./home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-0.x86_64/usr/lib/perl5/vendor_perl/5.14.2/x86_64-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so [..] Dynamic Section: NEEDED libapparmor.so.1 NEEDED libc.so.6 RPATH RUNPATH INIT 0x0000000000003a60 [..] grusum:/> RPATH_VAL=$(objdump -p ./home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-0.x86_64/usr/lib/perl5/vendor_perl/5.14.2/x86_64-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so | egrep -w '(RPATH|RUNPATH)' | awk '{ print $2 ":"}') ++ objdump -p ./home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-0.x86_64/usr/lib/perl5/vendor_perl/5.14.2/x86_64-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so ++ egrep -w '(RPATH|RUNPATH)' ++ awk '{ print $2 ":"}' + RPATH_VAL=': :'
if [ "${RPATH_VAL:0:7}" = "\$ORIGIN" ]; then continue;fi
while [ -n "$RPATH_VAL" ]; do
### $RPATH_VAL is twice non empty
RPATH_VAL_NXT=${RPATH_VAL%%:*}
grusum:/> RPATH_VAL_NXT=${RPATH_VAL%%:*} + RPATH_VAL_NXT= HERE's is the bug. There's a test missing for RPATH_VAL_NXT being empty.
RPATH_VAL=${RPATH_VAL##$RPATH_VAL_NXT:}
grusum:/> RPATH_VAL=${RPATH_VAL##$RPATH_VAL_NXT:} + RPATH_VAL=' :' ok, now, we're supposed to have "pruned" one "dir" of rpaths from RPATH_VAL ...
test -d "$RPATH_VAL_NXT" && RPATH_VAL_NXT=$(cd ${RPATH_VAL_NXT//#\/\//\/}; pwd -P)
'test -d' fails as $RPATH_VAL_NXT is empty, rest of the line is ignored.
case ":$RPATH_VAL_NXT" in :/usr/lib*) ;; :/lib*) ;; :/opt/*/lib*) ;; :/usr/X11R6/lib*) ;; *)
still empty ...
echo "ERROR: RPATH \"$RPATH_VAL_NXT\" on $FILE is not allowed" HAD_ERRORS=1
... error.
esac done done done
==== Proposed patch: ==== --- ./usr/lib/rpm/brp-suse.d/brp-35-rpath.orig 2012-03-13 04:39:06.000000000 +0100 +++ ./usr/lib/rpm/brp-suse.d/brp-35-rpath 2012-03-13 04:43:38.000000000 +0100 @@ -24,6 +24,7 @@ while [ -n "$RPATH_VAL" ]; do RPATH_VAL_NXT=${RPATH_VAL%%:*} RPATH_VAL=${RPATH_VAL##$RPATH_VAL_NXT:} + test -z "$RPATH_VAL_NXT" && continue test -d "$RPATH_VAL_NXT" && RPATH_VAL_NXT=$(cd ${RPATH_VAL_NXT//#\/\//\/}; pwd -P) case ":$RPATH_VAL_NXT" in ==== I've just run the package through a 'osc build --no-init' (against Factory) and it's clean except some unrelated 25 rpmlint warnings (BTW: who the ... came up with the "macro-in-comment" check?): ==== WARNING: '/usr/lib/rpm/brp-desktop.data/applications-kmenuedit.menu' does not exist calling /usr/lib/rpm/brp-suse.d/brp-35-rpath calling /usr/lib/rpm/brp-suse.d/brp-40-rootfs ==== Philipp, could you please forcefully push above patch to the guys responsible for the brp stuff? I'm up for 22h now and my 5th beer of the night curiously seems to have vanished while I was innocently debugging the problem and writing this mail ... Weird that, eh? -dnh, Christian auch hier nochmal rüberwinkend ;) PS: long mail make tolerate long sig, no? ("random" is an alias) PPS: or the alternate patch: ==== --- ./usr/lib/rpm/brp-suse.d/brp-35-rpath.orig 2012-03-13 04:39:06.000000000 +0100 +++ ./usr/lib/rpm/brp-suse.d/brp-35-rpath 2012-03-13 04:43:38.000000000 +0100 @@ -24,6 +24,7 @@ while [ -n "$RPATH_VAL" ]; do RPATH_VAL_NXT=${RPATH_VAL%%:*} RPATH_VAL=${RPATH_VAL##$RPATH_VAL_NXT:} + test -n "$RPATH_VAL_NXT" || continue test -d "$RPATH_VAL_NXT" && RPATH_VAL_NXT=$(cd ${RPATH_VAL_NXT//#\/\//\/}; pwd -P) case ":$RPATH_VAL_NXT" in ==== whatever the devs prefer ;) -- They ARE right, you CAN secure an IIS against intrusion. First you turn off all the services and other hooks that lets it do all the things they brag on that makes IIS "better", then you imbed an axe in the machine, then you unplug it, encase it in glass, put it in a concrete vault, cover that with urethane, and toss the whole thing into the depest part of the ocean, cover it with 150 meters of silt, create a concrete sarcophogus over the silt pile, and liberally seed the area with spent nuclear fuel to kill anything that gets too close to it. No problem. -- random -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/638c5f9b9a41e53d4663197a58261c49.jpg?s=120&d=mm&r=g)
Hello, On Tue, 13 Mar 2012, David Haller wrote:
On Tue, 13 Mar 2012, Philipp Thomas wrote:
On Tue, 13 Mar 2012 02:09:58 +0100, Christian Boltz
wrote: ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed
RPATH sets the path the runtime linker will search when resolving dependencies. This is only needed when the libs don't reside in a standard directory. Having RPATH point to the buildroot is plain wrong as it'll never work. How you fix that with perl tools I don't know, so someone knowledgable like David needs to chime in :-) GONGGGGGGGGG
That's not a job for me. As it is definitely a bug in /usr/lib/rpm/brp-suse.d/brp-35-rpath, [..] Proposed patch:
==== --- ./usr/lib/rpm/brp-suse.d/brp-35-rpath.orig 2012-03-13 04:39:06.000000000 +0100 +++ ./usr/lib/rpm/brp-suse.d/brp-35-rpath 2012-03-13 04:43:38.000000000 +0100 @@ -24,6 +24,7 @@ while [ -n "$RPATH_VAL" ]; do RPATH_VAL_NXT=${RPATH_VAL%%:*} RPATH_VAL=${RPATH_VAL##$RPATH_VAL_NXT:} + test -z "$RPATH_VAL_NXT" && continue test -d "$RPATH_VAL_NXT" && RPATH_VAL_NXT=$(cd ${RPATH_VAL_NXT//#\/\//\/}; pwd -P)
case ":$RPATH_VAL_NXT" in ====
Addendum: It is/might also be a linker bug, I don't think the linker (in this case GNU 'ld') should write empty RPATH/RUNPATH entries unless explicitly told to. The fix to the brp-script should, in ANY case, be done but probably amended to emit a warning of that linker behaviour, e.g.: ==== --- ./usr/lib/rpm/brp-suse.d/brp-35-rpath.orig 2012-03-13 04:39:06.000000000 +0100 +++ ./usr/lib/rpm/brp-suse.d/brp-35-rpath 2012-03-13 05:39:54.000000000 +0100 @@ -24,6 +24,10 @@ while [ -n "$RPATH_VAL" ]; do RPATH_VAL_NXT=${RPATH_VAL%%:*} RPATH_VAL=${RPATH_VAL##$RPATH_VAL_NXT:} + if test -z "$RPATH_VAL_NXT"; then + printf "WARNING: Linker added empty RPATH/RUNPATH entry to '$FILE'\n" >&2 + continue + fi test -d "$RPATH_VAL_NXT" && RPATH_VAL_NXT=$(cd ${RPATH_VAL_NXT//#\/\//\/}; pwd -P) case ":$RPATH_VAL_NXT" in ==== Please add me as CC on any bugs you file. -dnh -- Wash: "[..] this landings is gonna get pretty interesting" Mal: "Define 'interesting.'" Wash: "Oh, God, oh, God, we're all gonna die?" Mal: "This is the captain. We have a little problem with our entry sequence, so we may experience some slight turbulence and then explode." -- Firefly Serenity -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/bff0c215e01f23fcee6fe49e65fae458.jpg?s=120&d=mm&r=g)
On Tue, Mar 13, 2012 at 05:43:49AM +0100, David Haller wrote:
Hello,
On Tue, 13 Mar 2012, David Haller wrote:
On Tue, 13 Mar 2012, Philipp Thomas wrote:
On Tue, 13 Mar 2012 02:09:58 +0100, Christian Boltz
wrote: ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed
RPATH sets the path the runtime linker will search when resolving dependencies. This is only needed when the libs don't reside in a standard directory. Having RPATH point to the buildroot is plain wrong as it'll never work. How you fix that with perl tools I don't know, so someone knowledgable like David needs to chime in :-) GONGGGGGGGGG
That's not a job for me. As it is definitely a bug in /usr/lib/rpm/brp-suse.d/brp-35-rpath, [..] Proposed patch:
==== --- ./usr/lib/rpm/brp-suse.d/brp-35-rpath.orig 2012-03-13 04:39:06.000000000 +0100 +++ ./usr/lib/rpm/brp-suse.d/brp-35-rpath 2012-03-13 04:43:38.000000000 +0100 @@ -24,6 +24,7 @@ while [ -n "$RPATH_VAL" ]; do RPATH_VAL_NXT=${RPATH_VAL%%:*} RPATH_VAL=${RPATH_VAL##$RPATH_VAL_NXT:} + test -z "$RPATH_VAL_NXT" && continue test -d "$RPATH_VAL_NXT" && RPATH_VAL_NXT=$(cd ${RPATH_VAL_NXT//#\/\//\/}; pwd -P)
case ":$RPATH_VAL_NXT" in ====
Addendum: It is/might also be a linker bug, I don't think the linker (in this case GNU 'ld') should write empty RPATH/RUNPATH entries unless explicitly told to.
The fix to the brp-script should, in ANY case, be done but probably amended to emit a warning of that linker behaviour, e.g.:
==== --- ./usr/lib/rpm/brp-suse.d/brp-35-rpath.orig 2012-03-13 04:39:06.000000000 +0100 +++ ./usr/lib/rpm/brp-suse.d/brp-35-rpath 2012-03-13 05:39:54.000000000 +0100 @@ -24,6 +24,10 @@ while [ -n "$RPATH_VAL" ]; do RPATH_VAL_NXT=${RPATH_VAL%%:*} RPATH_VAL=${RPATH_VAL##$RPATH_VAL_NXT:} + if test -z "$RPATH_VAL_NXT"; then + printf "WARNING: Linker added empty RPATH/RUNPATH entry to '$FILE'\n" >&2 + continue + fi test -d "$RPATH_VAL_NXT" && RPATH_VAL_NXT=$(cd ${RPATH_VAL_NXT//#\/\//\/}; pwd -P)
case ":$RPATH_VAL_NXT" in
This is wrong.
====
Please add me as CC on any bugs you file.
This is actually bad. You have an empty RPATH ... This means that libraries will searched in the current directory too when you load this module/run this application. Ciao, Marcus -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/a6ffef5dde34bf02c36fb9fb70f3e397.jpg?s=120&d=mm&r=g)
On Tue, 13 Mar 2012 08:32, Marcus Meissner
On Tue, Mar 13, 2012 at 05:43:49AM +0100, David Haller wrote:
On Tue, 13 Mar 2012, David Haller wrote:
On Tue, 13 Mar 2012, Philipp Thomas wrote:
On Tue, 13 Mar 2012 02:09:58 +0100, Christian Boltz <snip> This is actually bad.
You have an empty RPATH ... This means that libraries will searched in the current directory too when you load this module/run this application.
Huh?? Please give a little more info on the reality of what the linker does. Until now my understanding was that empty and unset RPATH where the same: system-default, no added things. AFAIK, one had to set RPATH="." to include the current directory, ":" didn't do anything. Is my knowlegde flawed? Please give enlightment to a poor soul. -Yamaban, who is confused. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/f15a600d57849d9dc3e0d23539212583.jpg?s=120&d=mm&r=g)
On Tuesday, March 13, 2012 12:39:52 Yamaban wrote:
On Tue, 13 Mar 2012 08:32, Marcus Meissner
wrote: On Tue, Mar 13, 2012 at 05:43:49AM +0100, David Haller wrote:
On Tue, 13 Mar 2012, David Haller wrote:
On Tue, 13 Mar 2012, Philipp Thomas wrote:
On Tue, 13 Mar 2012 02:09:58 +0100, Christian Boltz
<snip>
This is actually bad.
You have an empty RPATH ... This means that libraries will searched in the current directory too when you load this module/run this application.
Huh?? Please give a little more info on the reality of what the linker does.
Until now my understanding was that empty and unset RPATH where the same: system-default, no added things.
AFAIK, one had to set RPATH="." to include the current directory, ":" didn't do anything.
Is my knowlegde flawed? Please give enlightment to a poor soul.
Just check the output of these two:: LD_DEBUG=libs LD_LIBRARY_PATH=: ls LD_DEBUG=libs LD_LIBRARY_PATH= ls Marcus, I think you're wrong - check glibc/elf/dl-load.c: /* Ignore empty rpaths. */ if (*copy == 0) { free (copy); sps->dirs = (struct r_search_path_elem **) -1; return false; } I just compiled a simple test program: $ gcc -Wl,-rpath= t.c -lm $ objdump -p ./a.out |grep PATH RPATH RUNPATH aj@byrd:~> LD_DEBUG=libs ./a.out 7933: find library=libm.so.6 [0]; searching 7933: search cache=/etc/ld.so.cache 7933: trying file=/lib64/libm.so.6 7933: 7933: find library=libc.so.6 [0]; searching 7933: search cache=/etc/ld.so.cache 7933: trying file=/lib64/libc.so.6 7933: 7933: 7933: calling init: /lib64/ld-linux-x86-64.so.2 7933: 7933: 7933: calling init: /lib64/libc.so.6 7933: 7933: 7933: calling init: /lib64/libm.so.6 7933: 7933: 7933: initialize program: ./a.out 7933: 7933: 7933: transferring control: ./a.out 7933: s1 = -0.73408150672912598 s2 = -0.73408150672912598 7933: 7933: calling fini: ./a.out [0] 7933: 7933: 7933: calling fini: /lib64/libm.so.6 [0] 7933 So, the empty RPATH is indeed ignored, Andreas -- Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn,Jennifer Guild,Felix Imendörffer,HRB16746 (AG Nürnberg) GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126 -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/bff0c215e01f23fcee6fe49e65fae458.jpg?s=120&d=mm&r=g)
On Tue, Mar 13, 2012 at 12:39:52PM +0100, Yamaban wrote:
On Tue, 13 Mar 2012 08:32, Marcus Meissner
wrote: On Tue, Mar 13, 2012 at 05:43:49AM +0100, David Haller wrote:
On Tue, 13 Mar 2012, David Haller wrote:
On Tue, 13 Mar 2012, Philipp Thomas wrote:
On Tue, 13 Mar 2012 02:09:58 +0100, Christian Boltz <snip> This is actually bad.
You have an empty RPATH ... This means that libraries will searched in the current directory too when you load this module/run this application.
Huh?? Please give a little more info on the reality of what the linker does.
Until now my understanding was that empty and unset RPATH where the same: system-default, no added things.
AFAIK, one had to set RPATH="." to include the current directory, ":" didn't do anything.
Is my knowlegde flawed? Please give enlightment to a poor soul.
Actually no ... If you do things like LD_LIBRARY_PATH=":/usr/foo/lib:/usr/bar/lib" it looks fine, but the first component is empty ... so everything will also be searched in the "" directory, which is the current one. similar goes for RPATH. Ciao, Marcus -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/fff0f38e92656c8a636916213eb952c4.jpg?s=120&d=mm&r=g)
Hi, On Tue, 13 Mar 2012, Marcus Meissner wrote:
Actually no ... If you do things like LD_LIBRARY_PATH=":/usr/foo/lib:/usr/bar/lib" it looks fine, but the first component is empty ... so everything will also be searched in the "" directory, which is the current one.
similar goes for RPATH.
That is all correct, but there's a difference between an empty RPATH and an empty _component_ of RPATH. Empty RPATHs are simply ignored. Empty RPATH components are taken as current directory. So the initial problem of an empty RPATH and RUNPATH entry in the object is actually harmless. Ciao, Michael. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/b1966ffac861531a1d6494248e650a12.jpg?s=120&d=mm&r=g)
* David Haller (dnh@opensuse.org) [20120313 05:44]:
The fix to the brp-script should, in ANY case, be done but probably amended to emit a warning of that linker behaviour, e.g.:
I talked to Rudi, who maintains the brp-suse package that contains the script and he's fixed it along with a warning. Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/6997c8cd962bb2313b86ee5f8487a1ca.jpg?s=120&d=mm&r=g)
* Philipp Thomas
* David Haller (dnh@opensuse.org) [20120313 05:44]:
The fix to the brp-script should, in ANY case, be done but probably amended to emit a warning of that linker behaviour, e.g.:
I talked to Rudi, who maintains the brp-suse package that contains the script and he's fixed it along with a warning.
Perl's ExtUtils::MakeMaker should probably also be fixed, it seems to insist on setting RPATH, even if only to an empty value. -- Guido Berhoerster -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/6997c8cd962bb2313b86ee5f8487a1ca.jpg?s=120&d=mm&r=g)
* Guido Berhoerster
* Philipp Thomas
[2012-03-13 14:01]: * David Haller (dnh@opensuse.org) [20120313 05:44]:
The fix to the brp-script should, in ANY case, be done but probably amended to emit a warning of that linker behaviour, e.g.:
I talked to Rudi, who maintains the brp-suse package that contains the script and he's fixed it along with a warning.
Perl's ExtUtils::MakeMaker should probably also be fixed, it seems to insist on setting RPATH, even if only to an empty value.
I forgot to add, a patch to do that can be found here: http://lists.fedoraproject.org/pipermail/perl-devel/2012-January/044951.html -- Guido Berhoerster -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/b1966ffac861531a1d6494248e650a12.jpg?s=120&d=mm&r=g)
* Guido Berhoerster (gber@opensuse.org) [20120313 14:14]:
I forgot to add, a patch to do that can be found here: http://lists.fedoraproject.org/pipermail/perl-devel/2012-January/044951.html
Well, open a bug report for pearl and put that URL into it :) Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/835a9492d596a5f4a8eba92c90ac373b.jpg?s=120&d=mm&r=g)
On Tue, 13 Mar 2012, Guido Berhoerster wrote:
* Philipp Thomas
[2012-03-13 14:01]: * David Haller (dnh@opensuse.org) [20120313 05:44]:
The fix to the brp-script should, in ANY case, be done but probably amended to emit a warning of that linker behaviour, e.g.:
I talked to Rudi, who maintains the brp-suse package that contains the script and he's fixed it along with a warning.
Perl's ExtUtils::MakeMaker should probably also be fixed, it seems to insist on setting RPATH, even if only to an empty value.
Which is the real bug. We shouldn't allow empty RPATH.
Richard.
--
Richard Guenther
![](https://seccdn.libravatar.org/avatar/b1966ffac861531a1d6494248e650a12.jpg?s=120&d=mm&r=g)
[how about trimming replies?] * Richard Guenther (rguenther@suse.de) [20120313 14:16]:
Which is the real bug. We shouldn't allow empty RPATH.
Isn't that what ld does in absence of an explicitly passed rpath? Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/b1966ffac861531a1d6494248e650a12.jpg?s=120&d=mm&r=g)
Hi David, * David Haller (dnh@opensuse.org) [20120313 05:15]:
(BTW: who the ... came up with the "macro-in-comment" check?):
Upstream rpmlint developers I guess. Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/d83ba9917b5c73d8ea6dc40e13828a2a.jpg?s=120&d=mm&r=g)
The macro in comment check is useful... While some macros (ex:
%suse_update_desktop_file) don't trigger weird effects on comments
when they are expandaded others, namely spec sections do blow up
builds if they are in comments and not truncated (doubling the
percentage will truncate the macro, ex: %%, and it will not trigger
rpmlint).
While it's somehow discussable, it's really good that rpmlint checks
this as macros in comments aren't safe under certains circunstances.
2012/3/13 Philipp Thomas
Hi David,
* David Haller (dnh@opensuse.org) [20120313 05:15]:
(BTW: who the ... came up with the "macro-in-comment" check?):
Upstream rpmlint developers I guess.
Philipp -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
-- Nelson Marques // I've stopped trying to understand sandwiches with a third piece of bread in the middle... -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/d83ba9917b5c73d8ea6dc40e13828a2a.jpg?s=120&d=mm&r=g)
RPATH is bad and most people have already provided a few reasons
why.... you can use chrpath to remove it from the build binaries in
install (you need most likely to include it as build requires).
2012/3/13 Christian Boltz
Hello,
I got a build failure in security:apparmor:factory / apparmor today, but only for the factory build. The package itsself didn't change, so it must be caused by a recent change in factory.
Can someone please explain me what the following lines in the build log mean and how I can fix the issue?
calling /usr/lib/rpm/brp-suse.d/brp-35-rpath ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed
If you need the full build log: https://build.opensuse.org/package/live_build_log?arch=i586&package=apparmor&project=security%3Aapparmor%3Afactory&repository=openSUSE_Factory
Regards,
Christian Boltz --
Manfred, Du solltest so spaet keine Emails mehr schreiben :-) Danke für die Berichtigung, werd mir den Tipp hinter die Ohren schreiben und nur noch Mailen, wenn ich die Augen zumindestens zu einem drittel aufkriege. [> Thomas Hertweck und Manfred Tremmel in suse-linux]
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
-- Nelson Marques // I've stopped trying to understand sandwiches with a third piece of bread in the middle... -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
![](https://seccdn.libravatar.org/avatar/bff0c215e01f23fcee6fe49e65fae458.jpg?s=120&d=mm&r=g)
On Tue, Mar 13, 2012 at 11:44:35AM +0000, Nelson Marques wrote:
RPATH is bad and most people have already provided a few reasons why.... you can use chrpath to remove it from the build binaries in install (you need most likely to include it as build requires).
There seems to be a bug somewhere, either in swig or in perl module building that introduces this :/ Ciao, Marcus
2012/3/13 Christian Boltz
: Hello,
I got a build failure in security:apparmor:factory / apparmor today, but only for the factory build. The package itsself didn't change, so it must be caused by a recent change in factory.
Can someone please explain me what the following lines in the build log mean and how I can fix the issue?
calling /usr/lib/rpm/brp-suse.d/brp-35-rpath ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed ERROR: RPATH "" on /home/abuild/rpmbuild/BUILDROOT/apparmor-2.7.2-126.20.i386/usr/lib/perl5/vendor_perl/5.14.2/i586-linux-thread-multi/auto/LibAppArmor/LibAppArmor.so is not allowed
If you need the full build log: https://build.opensuse.org/package/live_build_log?arch=i586&package=apparmor&project=security%3Aapparmor%3Afactory&repository=openSUSE_Factory
Regards,
Christian Boltz --
Manfred, Du solltest so spaet keine Emails mehr schreiben :-) Danke für die Berichtigung, werd mir den Tipp hinter die Ohren schreiben und nur noch Mailen, wenn ich die Augen zumindestens zu einem drittel aufkriege. [> Thomas Hertweck und Manfred Tremmel in suse-linux]
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
-- Nelson Marques // I've stopped trying to understand sandwiches with a third piece of bread in the middle... -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
-- Working, but not speaking, for the following german company: SUSE LINUX Products GmbH, HRB 16746 (AG Nuernberg) Geschaeftsfuehrer: Jeff Hawn, Jennifer Guild, Felix Imendoerffer -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (11)
-
Andreas Jaeger
-
Christian Boltz
-
David Haller
-
Guido Berhoerster
-
Marcus Meissner
-
Michael Matz
-
Nelson Marques
-
Philipp Thomas
-
Philipp Thomas
-
Richard Guenther
-
Yamaban