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]