[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problems converting a library to Multi-Arch



Hello Neil,

On Feb 20, 2012, at 10:33 PM, Neil Williams wrote:

> On Mon, 20 Feb 2012 21:42:42 +0100
> John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> wrote:
> 
>> I have been working on converting the package z80ex (a library) to Multi-Arch.
> 
> Why are you changing the .install files in debian/rules instead of just
> editing them in the debian/ directory? This is a permanent change to
> the contents of those files, so make the changes in the files.

I took the rules file of libpng as an example and also understood from [1]
that I have to use an override for dh_install to dynamically update the
install path through the environment variable DEB_HOST_MULTIARCH.

I found the solution a bit strange myself, but since it is stated like that in the
wiki and also done this way for libpng, I thought it would be the correct way.

> The guide itself says "update by hand".

The guide also says:

"If /usr/lib (or a subdirectory) is listed as an installation target in debian/*.install, or the target of a link in debian/*.links, you will need to autogenerate this file in debian/rules with an override target (and add the generated files to debian/clean so they're removed again in the clean target), to substitute in the value of $(DEB_HOST_MULTIARCH)."

> These look wrong in the -dev package:
> lrwxrwxrwx root/root         0 2012-02-20 21:28 ./usr/lib/libz80ex.so -> libz80ex.so.1.1.19
> lrwxrwxrwx root/root         0 2012-02-20 21:28 ./usr/lib/libz80ex_dasm.so -> libz80ex_dasm.so.1.1.19
> 
> If you check, those are (or should be) dangling symlinks.
> 
> when the file is:
> ./usr/lib/x86_64-linux-gnu/libz80ex_dasm.so.1.1.19
> 
> Then these links get into the library:
> lrwxrwxrwx root/root         0 2012-02-20 21:28 ./usr/lib/x86_64-linux-gnu/libz80ex_dasm.so.1 -> libz80ex_dasm.so.1.1.19
> lrwxrwxrwx root/root         0 2012-02-20 21:28 ./usr/lib/x86_64-linux-gnu/libz80ex.so.1 -> libz80ex.so.1.1.19
> 
> See the problem?

Yes, thanks a lot.

My understanding was that all the libraries go into /usr/lib/${DEB_HOST_MULTIARCH} with
nothing remaining in /usr/lib. When I check for libpng, there are no related files in /usr/lib
but in /usr/lib/${DEB_HOST_MULTIARCH}.

Or is the idea that there are still symlinks in /usr/lib which point to the native .so files.

> Edit the files and stop messing around with sed.

So simply using ${DEB_HOST_MULTIARCH} in the libz80ex1.install file?

Thanks for your fast reply!

Adrian

[1] http://wiki.debian.org/Multiarch/Implementation#dh.281.29_and_autotools

Reply to: