From 914e101735da4451ac77e7970b1b952afd95c7f4 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Mon, 21 Jan 2019 21:18:55 +0000 Subject: Libbsd added as a dependency of Metastore Metastore depends on `bsd/string.h' to work properly (atleast on GNU/Linux systems). The first system I tried building with had that library, so I didn't notice! With this commit, we also build `libbsd' as part of the pipeline. Also, I couldn't find libbsd's version in any of its installed headers, so like Libjpeg, we can't actually check and will directly write our internal version into the paper. --- reproduce/src/make/dependencies.mk | 13 ++++++++++++- reproduce/src/make/initialize.mk | 7 ++++++- 2 files changed, 18 insertions(+), 2 deletions(-) (limited to 'reproduce/src') diff --git a/reproduce/src/make/dependencies.mk b/reproduce/src/make/dependencies.mk index b42968b..128e4e5 100644 --- a/reproduce/src/make/dependencies.mk +++ b/reproduce/src/make/dependencies.mk @@ -97,6 +97,7 @@ tarballs = $(foreach t, cfitsio-$(cfitsio-version).tar.gz \ gsl-$(gsl-version).tar.gz \ install-tl-unx.tar.gz \ jpegsrc.$(libjpeg-version).tar.gz \ + libbsd-$(libbsd-version).tar.xz \ libtool-$(libtool-version).tar.xz \ libgit2-$(libgit2-version).tar.gz \ metastore-$(metastore-version).tar.gz \ @@ -132,6 +133,7 @@ $(tarballs): $(tdir)/%: elif [ $$n = gsl ]; then w=http://ftpmirror.gnu.org/gnu/gsl elif [ $$n = install ]; then w=http://mirror.ctan.org/systems/texlive/tlnet elif [ $$n = jpegsrc ]; then w=http://ijg.org/files + elif [ $$n = libbsd ]; then w=http://libbsd.freedesktop.org/releases elif [ $$n = libtool ]; then w=http://ftpmirror.gnu.org/gnu/libtool elif [ $$n = libgit ]; then mergenames=0 @@ -212,6 +214,10 @@ $(ilidir)/gsl: $(tdir)/gsl-$(gsl-version).tar.gz $(call gbuild, $<, gsl-$(gsl-version), static) \ && echo "GNU Scientific Library is built" > $@ +$(ilidir)/libbsd: $(tdir)/libbsd-$(libbsd-version).tar.xz + $(call gbuild, $<, libbsd-$(libbsd-version), static,,V=1) \ + && echo "libbsd is built" > $@ + $(ilidir)/libjpeg: $(tdir)/jpegsrc.$(libjpeg-version).tar.gz $(call gbuild, $<, jpeg-9b, static) && echo "Libjpeg is built" > $@ @@ -351,6 +357,7 @@ $(ibdir)/git: $(tdir)/git-$(git-version).tar.xz \ # Metastore is used to keep file modification dates (and generally many # meta-data) within the Git history. $(ibdir)/metastore: $(tdir)/metastore-$(metastore-version).tar.gz \ + $(ilidir)/libbsd \ $(ibdir)/git # Metastore doesn't have any `./configure' script. So we'll just # call `pwd' as a place-holder for the `./configure' command. @@ -360,14 +367,18 @@ $(ibdir)/metastore: $(tdir)/metastore-$(metastore-version).tar.gz \ # Write the relevant hooks into this system's Git hooks, so Git # calls metastore properly on every commit and every checkout. + cd $$current_dir if [ -f $@ ]; then - cd $$current_dir rm -f .git/hooks/pre-commit .git/hooks/post-checkout sed -e's|@BINDIR[@]|$(ibdir)|g' \ reproduce/src/bash/git-pre-commit > .git/hooks/pre-commit sed -e's|@BINDIR[@]|$(ibdir)|g' \ reproduce/src/bash/git-post-checkout > .git/hooks/post-checkout chmod +x .git/hooks/pre-commit .git/hooks/post-checkout + else + echo; echo; echo "Metastore couldn't be built on this system!" + echo "Please contact mohammad@akhlaghi.org to try fixing the problem." + echo; echo "But this is not a vital element of the pipeline. You " fi # The order of dependencies is based on how long they take to build (how diff --git a/reproduce/src/make/initialize.mk b/reproduce/src/make/initialize.mk index 7aa9f4b..da2d012 100644 --- a/reproduce/src/make/initialize.mk +++ b/reproduce/src/make/initialize.mk @@ -287,7 +287,6 @@ $(mtexdir)/initialize.tex: | $(mtexdir) $(call lvcheck, fitsio.h, $(cfitsio-version), CFITSIO, cfitsioversion) $(call lvcheck, gsl/gsl_version.h, $(gsl-version), \ GNU Scientific Library (GSL), gslversion) - ########## libjpeg not yet checked. $(call lvcheck, git2/version.h, $(libgit2-version), Libgit2, \ libgitwoversion) $(call lvcheck, openssl/opensslv.h, $(openssl-version), OpenSSL, \ @@ -302,5 +301,11 @@ $(mtexdir)/initialize.tex: | $(mtexdir) wcslibversion) $(call lvcheck, zlib.h, $(zlib-version), zlib, zlibversion) + # Problematic libraries: + # - libjpeg not yet checked. + # - libbsd has no version string in its headers. + echo "\newcommand{\\libbsdversion}{$(libbsd-version)}" >> $@ + echo "\newcommand{\\libjpegversion}{$(libjpeg-version)}" >> $@ + # TeX package versions cat $(BDIR)/dependencies/texlive-versions.tex >> $@ -- cgit v1.2.1