[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