Ticket #170: kfreebsd.patch

File kfreebsd.patch, 5.7 kB (added by nijel, 2 years ago)
  • /dev/null

    old new  
     1#!/bin/bash 
     2 
     3# This script reads filenames from STDIN and outputs any relevant provides 
     4# information that needs to be included in the package. 
     5 
     6filelist=`sed "s/['\"]/\\\&/g"` 
     7 
     8solist=$(echo $filelist | grep "\\.so" | grep -v "^/lib/ld.so" | \ 
     9        xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1) 
     10pythonlist= 
     11tcllist= 
     12 
     13# 
     14# --- Alpha does not mark 64bit dependencies 
     15case `uname -m` in 
     16  alpha*)       mark64="" ;; 
     17  *)            mark64="()(64bit)" ;; 
     18esac 
     19 
     20# 
     21# --- Library sonames and weak symbol versions (from glibc). 
     22for f in $solist; do 
     23    soname=$(objdump -p $f | awk '/SONAME/ {print $2}') 
     24 
     25    lib64=`if file -L $f 2>/dev/null | \ 
     26        grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi` 
     27    if [ "$soname" != "" ]; then 
     28        if [ ! -L $f ]; then 
     29            echo $soname$lib64 
     30            objdump -p $f | awk ' 
     31                BEGIN { START=0 ; } 
     32                /Version definitions:/ { START=1; } 
     33                /^[0-9]/ && (START==1) { print $4; } 
     34                /^$/ { START=0; } 
     35            ' | \ 
     36                grep -v $soname | \ 
     37                while read symbol ; do 
     38                    echo "$soname($symbol)`echo $lib64 | sed 's/()//'`" 
     39                done 
     40        fi 
     41    else 
     42        echo ${f##*/}$lib64 
     43    fi 
     44done | sort -u 
     45 
     46# 
     47# --- Perl modules. 
     48[ -x /usr/lib/rpm/perl.prov ] && 
     49    echo $filelist | tr '[:blank:]' \\n | grep '\.pm$' | /usr/lib/rpm/perl.prov | sort -u 
     50 
     51# 
     52# --- Python modules. 
     53[ -x /usr/lib/rpm/python.prov -a -n "$pythonlist" ] && 
     54    echo $pythonlist | tr '[:blank:]' \\n | /usr/lib/rpm/python.prov | sort -u 
     55 
     56# 
     57# --- Tcl modules. 
     58[ -x /usr/lib/rpm/tcl.prov -a -n "$tcllist" ] && 
     59    echo $tcllist | tr '[:blank:]' \\n | /usr/lib/rpm/tcl.prov | sort -u 
     60 
     61exit 0 
  • a/Makefile.am

    old new  
    192192 
    193193install-data-local: 
    194194        @case "@host_os@" in \ 
    195         solaris*|linux*|darwin*) \ 
     195        solaris*|linux*|darwin*|kfreebsd*) \ 
    196196           DESTDIR="$(DESTDIR)" pkglibdir="$(rpmconfigdir)" $(SHELL) $(top_srcdir)/installplatform rpmrc macros platform ;; \ 
    197197        esac 
    198198        @$(MKDIR_P) $(DESTDIR)$(localstatedir)/tmp