Re: autopackage of qt

Eugene Zolenko <[email protected]> Wed, 19 Aug 2009 22:46:23 -0600
Newsgroups gmane.comp.autopackage.devel
Message-ID <[email protected]>
> Thanks.  I didn't know about chrpath.  That helps a lot. :)
>
> It looks like the libs are getting packed up (I can see my 'make install' step 
> putting files in the right place, and autopackage gives me a warning about 
> how libQtGui.so.4 dynamically links to libXrender, which is fine).  However, 
> when I attempt to install the .package, the libs are not copied.
>
> All lib files are under "lib/barracuda"
>
> My apspec has this:
>
> [Install]
> # Put your installation script here. See the quickstart guide on
> # the website for an API cheat-sheet
> installExe bin/*
> installLib lib/*
> installData share/*
>
> I get this at package install time:
>
> objdump: Warning: 'lib/barracuda' is not an ordinary file
>
> Is there a trick?
>   
installLib expects files, it won't go recursive. But anyway don't use 
installLib for private libraries -- this will update ld.conf cache, 
effectively installing libs system-wide and you might even bring down 
whole KDE if you are lucky :).

Rename them to SONAME (or go all the way with symlinking, but that's 
more work -- linker cares about SONAME only), and then just copy them to 
"$PREFIX/lib"

copyFiles lib/* "$PREFIX/lib"

(assuming your $PREFIX is not /usr/local or something, replace with 
private libs location then :)).



function RenameToSoname()
{
    local lib="$1"

    local location=$(dirname "$lib")
    local filename=$(basename "$lib")
    local soname=$(readelf -d "$lib" | grep SONAME | sed 
"s/^.*\[\(.*\)\]$/\1/")

    if [[ -z "$soname" ]]; then echo "$filename"; return 0; fi

    if [[ "$filename" != "$soname" ]]
    then
        mv "$lib" "$location/$soname"
    fi

    echo "$soname"
}

---------------------------------------------------------------------
To unsubscribe, e-mail: autopackage-dev-unsubscribe-OfajU3CKLf1/[email protected]
For additional commands, e-mail: autopackage-dev-help-OfajU3CKLf1/[email protected]