[Rpm-maint] [PATCH] fix find-requires in the presence of private flags
Lennert Buytenhek
buytenh at wantstofly.org
Fri Mar 7 08:39:55 UTC 2008
[ please CC on replies, not on the list ]
autodeps/linux.req expects the 'Version References' section to be
the very last section in objdump -p output and nothing else to follow
it, but at least on Linux/ARM, you can get output a la:
Version References:
required from ld-linux.so.3:
0x0d696914 0x00 06 GLIBC_2.4
required from libacl.so.1:
0x05822450 0x00 05 ACL_1.0
required from libgcc_s.so.1:
0x0b792655 0x00 04 GCC_3.5
required from librt.so.1:
0x0d696914 0x00 03 GLIBC_2.4
required from libc.so.6:
0x0d696914 0x00 02 GLIBC_2.4
private flags = 4000002: [Version4 EABI] [has entry point]
This causes the built package (if the external dep generator is
used) to end up with dependencies such as:
package: firefox - 2.0.0.8-2.fc8.armv5tel from f8
unresolved deps:
ld-linux.so.3(4000002:)
libgcc_s.so.1(4000002:)
libstdc++.so.6(4000002:)
libc.so.6(4000002:)
libpng12.so.0(4000002:)
libsmime3.so(4000002:)
The attached patch makes find-requires stop parsing dependencies
as soon as a [A-Za-z] character is found in column 1.
Issue found by Rabeeh Khoury <rabeeh at marvell.com>
Signed-off-by: Lennert Buytenhek <buytenh at marvell.com>
diff -up rpm-4.4.2.2/autodeps/linux.req.orig rpm-4.4.2.2/autodeps/linux.req
--- rpm-4.4.2.2/autodeps/linux.req.orig 2008-03-06 22:23:53.000000000 +0100
+++ rpm-4.4.2.2/autodeps/linux.req 2008-03-06 22:24:19.000000000 +0100
@@ -113,6 +113,7 @@ for f in $liblist $exelist ; do
(START==2) && (LIBNAME!="") && ($4!="") && (($4~/^GLIBC_*/) || ($4~/^GCC_*/)) {
print LIBNAME "(" $4 ")'$lib64'";
}
+ /^[A-Za-z]/ { START=3; }
'
done | sort -u
--
More information about the Rpm-maint
mailing list