Lines 822-831
Link Here
|
822 |
return $rc |
826 |
return $rc |
823 |
} |
827 |
} |
824 |
|
828 |
|
|
|
829 |
badlibmix() { |
830 |
local file dep_file rc |
831 |
local base_ssl_libs port_ssl_libs |
832 |
local base_gcc_libs port_gcc_libs |
825 |
|
833 |
|
|
|
834 |
rc=0 |
835 |
|
836 |
# Check all dynamicaly linked ELF files |
837 |
# Some .so are not executable, but we want to check them too. |
838 |
while read file; do |
839 |
# No results presents a blank line from heredoc. |
840 |
[ -z "${file}" ] && continue |
841 |
|
842 |
base_ssl_libs="" |
843 |
port_ssl_libs="" |
844 |
base_gcc_libs="" |
845 |
port_gcc_libs="" |
846 |
|
847 |
while read dep_file; do |
848 |
# openssl |
849 |
if echo ${dep_file} | grep -qE "^(/usr/lib/libssl|/lib/libcrypto)\.so"; then |
850 |
base_ssl_libs="${base_ssl_libs} ${dep_file}" |
851 |
fi |
852 |
if echo ${dep_file} | grep -qE "^(${PREFIX}|${LOCALBASE})/lib/lib(ssl|crypto)\.so"; then |
853 |
port_ssl_libs="${port_ssl_libs} ${dep_file}" |
854 |
fi |
855 |
# libgcc_s |
856 |
if echo ${dep_file} | grep -qE "^/usr/lib/libgcc_s\.so"; then |
857 |
base_gcc_libs="${base_gcc_libs} ${dep_file}" |
858 |
fi |
859 |
if echo ${dep_file} | grep -qE "^/usr/local/lib/.*/libgcc_s\.so"; then |
860 |
port_gcc_libs="${port_gcc_libs} ${dep_file}" |
861 |
fi |
862 |
done <<-EOT |
863 |
$(LD_LIBRARY_PATH=${STAGEDIR}${PREFIX}/lib ldd "${STAGEDIR}${file}" | \ |
864 |
grep '=>' | \ |
865 |
awk '{print $3}') |
866 |
EOT |
867 |
|
868 |
if [ -n "${base_ssl_libs}" -a -n "${port_ssl_libs}" ]; then |
869 |
err "${file} is linked to both base and port SSL libraries: `echo ${base_ssl_libs}` and `echo ${port_ssl_libs}`" |
870 |
rc=1 |
871 |
fi |
872 |
if [ -n "${base_gcc_libs}" -a -n "${port_gcc_libs}" ]; then |
873 |
err "${file} is linked to both base and port gcc_s libraries: `echo ${base_gcc_libs}` and `echo ${port_gcc_libs}`" |
874 |
rc=1 |
875 |
fi |
876 |
done <<-EOT |
877 |
$(list_stagedir_elfs | \ |
878 |
file -F $'\1' -f - | \ |
879 |
grep -a 'ELF.*FreeBSD.*dynamically linked' | \ |
880 |
cut -f 1 -d $'\1'| \ |
881 |
sed -e 's/^\.//') |
882 |
EOT |
883 |
|
884 |
return ${rc} |
885 |
} |
886 |
|
826 |
checks="shebang symlinks paths stripped desktopfileutils sharedmimeinfo" |
887 |
checks="shebang symlinks paths stripped desktopfileutils sharedmimeinfo" |
827 |
checks="$checks suidfiles libtool libperl prefixvar baselibs terminfo" |
888 |
checks="$checks suidfiles libtool libperl prefixvar baselibs terminfo" |
828 |
checks="$checks proxydeps sonames perlcore no_arch" |
889 |
checks="$checks proxydeps sonames perlcore no_arch badlibmix" |
829 |
|
890 |
|
830 |
ret=0 |
891 |
ret=0 |
831 |
cd ${STAGEDIR} |
892 |
cd ${STAGEDIR} |