Bug 1427266 - Statically link libdmg-hfsplus against OpenSSL. r?build draft
authorMike Hommey <mh+mozilla@glandium.org>
Thu, 28 Dec 2017 18:19:31 +0900
changeset 714696 a1860d38cb9b7e421c7140d983628800b0338741
parent 714666 521a91a6aa593649c9db498017ba2a65f0e6bc17
child 744662 e8220b6f7d548c7fdc3f74cefa8b53305e916826
push id94004
push userbmo:mh+mozilla@glandium.org
push dateThu, 28 Dec 2017 13:26:40 +0000
reviewersbuild
bugs1427266
milestone59.0a1
Bug 1427266 - Statically link libdmg-hfsplus against OpenSSL. r?build libcrypto, part of OpenSSL, and that dmg links against, has a varying ABI, and something built against libcrypto on Centos won't run on Debian and vice versa. It might not even work between versions of the same OS (e.g. Debian 7 vs. Debian 9). Because of that, it is desirable to statically link it. This incorporates https://github.com/mozilla/libdmg-hfsplus/pull/1 and sets OPENSSL_USE_STATIC_LIBS when building libdmg-hfsplus.
taskcluster/scripts/misc/build-libdmg-hfsplus.sh
--- a/taskcluster/scripts/misc/build-libdmg-hfsplus.sh
+++ b/taskcluster/scripts/misc/build-libdmg-hfsplus.sh
@@ -8,28 +8,28 @@ WORKSPACE=$HOME/workspace
 STAGE=$WORKSPACE/dmg
 UPLOAD_DIR=$HOME/artifacts
 
 # There's no single well-maintained fork of libdmg-hfsplus, so we forked
 # https://github.com/andreas56/libdmg-hfsplus/ to get a specific version and
 # backport some patches.
 : LIBDMG_REPOSITORY    ${LIBDMG_REPOSITORY:=https://github.com/mozilla/libdmg-hfsplus}
 # The `mozilla` branch contains our fork.
-: LIBDMG_REV           ${LIBDMG_REV:=ba04b00435a0853f1499d751617177828ee8ec00}
+: LIBDMG_REV           ${LIBDMG_REV:=2ee327795680101d36f9700bd0fb618362237718}
 
 mkdir -p $UPLOAD_DIR $STAGE
 
 cd $WORKSPACE
 git clone --no-checkout $LIBDMG_REPOSITORY libdmg-hfsplus
 cd libdmg-hfsplus
 git checkout $LIBDMG_REV
 
 # Make a source archive
 git archive --prefix=libdmg-hfsplus/ ${LIBDMG_REV} | xz > $UPLOAD_DIR/libdmg-hfsplus.tar.xz
-cmake .
+cmake -DOPENSSL_USE_STATIC_LIBS=1 .
 make -j$(getconf _NPROCESSORS_ONLN)
 
 # We only need the dmg and hfsplus tools.
 strip dmg/dmg hfs/hfsplus
 cp dmg/dmg hfs/hfsplus $STAGE
 
 cat >$STAGE/README<<EOF
 Built from ${LIBDMG_REPOSITORY} rev `git rev-parse ${LIBDMG_REV}`.