1

I've created a package which contains 32-bit libraries for compatibility with 32-bit applications on 64-bit systems, stored in /usr/lib32. This causes the ia32-libs dependency being added to my package. However, the package works perfectly fine without those libraries as other 32-bit programs should install ia32-libs themselves.

How do I prevent the build process from generating the ia32-libs dependency? nvidia-current seems to able to do this too, but uses CDBS which I do not use. (I use a plain rules file as generated by dh_make)

4
  • This doesn't make sense "as other 32-bit programs should install ia32-libs themselves." So why do you care about the dependency?
    – Steve-o
    Aug 29, 2011 at 9:13
  • The package in question is virtualgl. This program provides 32-bit libraries in order to work with 32-bit programs. Without those 32-bit programs, the 32-bit libs are obsolete so I do not want the package to depend on the huge ia32-libs.
    – Lekensteyn
    Aug 29, 2011 at 9:25
  • So a multiarch package?
    – Steve-o
    Aug 29, 2011 at 9:32
  • @Steve-o: Not a multi-arch package for now, I'm targetting Lucid and Maverick too.
    – Lekensteyn
    Aug 29, 2011 at 9:43

2 Answers 2

0

Removal of the ia32-libs dependency is explicitly covered in the Debian Multiarch Implementation guide:

http://wiki.debian.org/Multiarch/Implementation

Which basically means if there are certain dpkg tools that are emitting too many packages when specifying multiarch then it is a tool bug and now is a good time to file a report.

0

To make debhelper ignore the 32-bit libraries, I had to add a target for ignoring paths containing /usr/lib32:

override_dh_shlibdeps:
    dh_shlibdeps --exclude=/usr/lib32

After that, the ia32-libs dependencies would not be calculated anymore. Since this target is only needed for 64-bit systems, I actually use the below snippet for the virtualgl package:

ifeq ($(DEB_BUILD_ARCH), amd64)
override_dh_shlibdeps:
    dh_shlibdeps --exclude=debian/virtualgl/usr/lib32
endif

Note that the whitespace before dh is a tab.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .