You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
970 B
34 lines
970 B
#!/bin/bash |
|
|
|
# If using normal root, avoid changing anything. |
|
if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then |
|
exit 0 |
|
fi |
|
|
|
tempdir=`mktemp -d /tmp/implant-ident-XXXXXX` |
|
if test -z "$tempdir" ; then |
|
exit 1 |
|
fi |
|
|
|
cleanup() { |
|
rm -f $tempdir/* |
|
rmdir $tempdir |
|
} |
|
trap cleanup 0 1 2 3 4 5 6 7 8 9 11 13 14 15 |
|
|
|
for library in `find $RPM_BUILD_ROOT -type f -exec file \{\} \; | grep 'current ar archive' | sed 's,:.*,,g' ` ; do |
|
pushd $tempdir > /dev/null |
|
if test -n "$RPM_BUILD_ROOT" ; then |
|
cleanedlibrary=`echo "$library" | sed s,"$RPM_BUILD_ROOT",,g` |
|
else |
|
cleanedlibrary="$library" |
|
fi |
|
ar x "$library" |
|
for object in *.o ; do |
|
echo '$RPM: '${RPM_PACKAGE_NAME:-UNKNOWN_NAME}-${RPM_PACKAGE_VERSION:-UNKNOWN_VERSION}-${RPM_PACKAGE_RELEASE:-UNKNOWN_RELEASE}:"$cleanedlibrary":"$object"' $' > __x_rpm_ident_string.txt |
|
objcopy --add-section .rodata=__x_rpm_ident_string.txt "$object" |
|
ar r "$library" "$object" |
|
done |
|
rm -f *.o |
|
popd > /dev/null |
|
done
|
|
|