[Pkg-openssl-devel] Bug#689093: libssl-dev is not Multi-Arch compatible

Colin Watson cjwatson at ubuntu.com
Wed Dec 19 13:16:16 UTC 2012


On Sat, Dec 15, 2012 at 12:10:27PM +0000, Colin Watson wrote:
> I tried moving all the headers to
> /usr/include/$(DEB_HOST_MULTIARCH)/openssl/ and rebuilding everything in
> Ubuntu raring that build-depends on libssl-dev.  So far I've had 67
> failures out of 428 attempts (there are still a few in progress), mostly
> foolish configure scripts that try to manually detect the location of
> the OpenSSL headers rather than letting the compiler work it out.  Now,
> I think these are generally bugs, but this failure rate seems
> inconveniently high to me; that's a lot of tedious fixing of (probably
> mostly independent) build system bugs to do.  It would be nice not to
> expose quite so many pre-existing bugs.
> 
> I'm currently trying the alternative of moving just opensslconf.h.  The
> only things that should break with that are configure scripts (or
> equivalent) that test for /usr/include/openssl/opensslconf.h directly; I
> think this is probably rather rarer than configure scripts that test for
> things like /usr/include/openssl/x509.h.

This test (which I ran against current unstable) behaves *much* better.
Out of 413 packages, 402 built cleanly.  Two packages (eucalyptus and
freebsd-utils) were skipped because my test was on i386 and they don't
build there.  chromium-browser failed to unpack for some odd reason,
unrelated to OpenSSL.  Of the remaining eight failures:

  cone: internal compiler error: Segmentation fault
  italc: configure: error: *** Couldn't find any Qt4 libraries (#671489)
  libreoffice: ran out of disk space
  m2crypto: Unable to find 'openssl/opensslconf.h'
  nodejs: timeouts during tests
  obfsproxy: ENOSYS during tests
  opendkim: configure: error: OpenSSL not found
  phantomjs: /usr/bin/ld: cannot find -lQtWebKit

Of these, only two (m2crypto and opendkim) have anything to do with this
change; the rest are pre-existing failures or bugs in my build setup.  I
will file bug reports on those two packages with fixes.  I don't think
we're going to do any better than this, so I recommend the following
patch:

  * Move <openssl/opensslconf.h> to /usr/include/$(DEB_HOST_MULTIARCH), and
    mark libssl-dev Multi-Arch: same.

diff -Nru openssl-1.0.1c/debian/control openssl-1.0.1c/debian/control
--- openssl-1.0.1c/debian/control	2012-07-29 12:33:20.000000000 +0000
+++ openssl-1.0.1c/debian/control	2012-12-15 11:38:58.000000000 +0000
@@ -54,6 +54,7 @@
 Section: libdevel
 Priority: optional
 Architecture: any
+Multi-Arch: same
 Recommends: libssl-doc
 Depends: libssl1.0.0 (= ${binary:Version}), zlib1g-dev, ${misc:Depends}
 Description: SSL development libraries, header files and documentation
diff -Nru openssl-1.0.1c/debian/rules openssl-1.0.1c/debian/rules
--- openssl-1.0.1c/debian/rules	2012-07-17 09:49:15.000000000 +0000
+++ openssl-1.0.1c/debian/rules	2012-12-15 11:38:48.000000000 +0000
@@ -120,6 +120,8 @@
 	cp -pf debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libcrypto.so.* debian/libcrypto1.0.0-udeb/usr/lib/
 	cp -auv lib*.so* debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/
 	for opt in $(OPTS); do set -xe; mkdir -p debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/$$opt; cp -auv $$opt/lib*.so* debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/$$opt/; done
+	mkdir -p debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/openssl
+	mv debian/tmp/usr/include/openssl/opensslconf.h debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/openssl/
 	install debian/copyright debian/libssl1.0.0/usr/share/doc/libssl1.0.0/
 	install debian/changelog debian/libssl1.0.0/usr/share/doc/libssl1.0.0/changelog.Debian
 	install debian/copyright debian/libssl-dev/usr/share/doc/libssl-dev/

Thanks,

-- 
Colin Watson                                       [cjwatson at ubuntu.com]



More information about the Pkg-openssl-devel mailing list