diff options
-rw-r--r-- | reproduce/config/pipeline/dependency-versions.mk | 2 | ||||
-rw-r--r-- | reproduce/src/make/dependencies-basic.mk | 24 | ||||
-rw-r--r-- | reproduce/src/make/dependencies.mk | 29 |
3 files changed, 45 insertions, 10 deletions
diff --git a/reproduce/config/pipeline/dependency-versions.mk b/reproduce/config/pipeline/dependency-versions.mk index 6fbdaf7..7cd6fc9 100644 --- a/reproduce/config/pipeline/dependency-versions.mk +++ b/reproduce/config/pipeline/dependency-versions.mk @@ -35,7 +35,7 @@ xz-version = 5.2.4 # Libraries cfitsio-version = 3.45 -curl-version = 7.62.0 +curl-version = 7.63.0 gsl-version = 2.5 libjpeg-version = v9b libtiff-version = 4.0.10 diff --git a/reproduce/src/make/dependencies-basic.mk b/reproduce/src/make/dependencies-basic.mk index 0c20f15..11017d1 100644 --- a/reproduce/src/make/dependencies-basic.mk +++ b/reproduce/src/make/dependencies-basic.mk @@ -514,14 +514,28 @@ $(ilidir)/openssl: $(tdir)/openssl-$(openssl-version).tar.gz \ # # Also note that since Wget needs to load outside libraries dynamically, it # gives a segmentation fault when built statically. +# +# There are many network related libraries that we are currently not +# building as part of this pipeline. So to avoid too much dependency on the +# host system (especially a crash when these libraries are updated on the +# host), they are disabled here. $(ibdir)/wget: $(tdir)/wget-$(wget-version).tar.lz \ $(ibdir)/pkg-config \ $(ilidir)/openssl - libs="-pthread"; \ - if [ x$(needs_ldl) = xyes ]; then libs="$$libs -ldl"; fi; \ - $(call gbuild, $<, wget-$(wget-version), , \ - LIBS="$$LIBS $$libs" --with-ssl=openssl \ - --with-openssl=yes --with-libssl-prefix=$(idir)) + libs="-pthread"; \ + if [ x$(needs_ldl) = xyes ]; then libs="$$libs -ldl"; fi; \ + $(call gbuild, $<, wget-$(wget-version), , \ + LIBS="$$LIBS $$libs" \ + --with-libssl-prefix=$(idir) \ + --with-ssl=openssl \ + --with-openssl=yes \ + --without-metalink \ + --without-libuuid \ + --without-libpsl \ + --without-libidn \ + --disable-pcre2 \ + --disable-pcre \ + --disable-iri ) diff --git a/reproduce/src/make/dependencies.mk b/reproduce/src/make/dependencies.mk index 7cf6d42..bfe461b 100644 --- a/reproduce/src/make/dependencies.mk +++ b/reproduce/src/make/dependencies.mk @@ -299,12 +299,33 @@ $(ibdir)/cmake: $(tdir)/cmake-$(cmake-version).tar.gz \ # have easiy ways to explicity tell them to also link with libcurl's # dependencies (libssl, libcrypto, and libz). So we won't force curl to # only be static. +# +# cURL (and its library, which is needed by several programs here) can +# optionally link with many different network-related libraries on the host +# system that we are not yet building in the pipeline. Many of these are +# not relevant to most science projects, so we are explicitly using +# `--without-XXX' or `--disable-XXX' so cURL doesn't link with them. Note +# that if it does link with them, the pipeline will crash when the library +# is updated/changed by the host, and the whole purpose of this pipeline is +# avoid dependency on the host as much as possible. $(ibdir)/curl: $(tdir)/curl-$(curl-version).tar.gz $(call gbuild, $<, curl-$(curl-version), , \ - --with-zlib=$(ildir) \ - --with-ssl=$(idir) \ - --without-brotli \ - LIBS="-pthread" ) + LIBS="-pthread" \ + --with-zlib=$(ildir) \ + --with-ssl=$(idir) \ + --without-mesalink \ + --with-ca-fallback \ + --without-librtmp \ + --without-libidn2 \ + --without-wolfssl \ + --without-brotli \ + --without-gnutls \ + --without-cyassl \ + --without-libpsl \ + --without-axtls \ + --disable-ldaps \ + --disable-ldap \ + --without-nss ) # On Mac OS, libtool does different things, so to avoid confusion, we'll # prefix GNU's libtool executables with `glibtool'. |