aboutsummaryrefslogtreecommitdiff
path: root/reproduce
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2019-01-21 21:18:55 +0000
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2019-01-21 21:20:57 +0000
commit914e101735da4451ac77e7970b1b952afd95c7f4 (patch)
tree05670d63b438bb375fa048161964b12fda696ef3 /reproduce
parent15d32a7df7b2d4420bebd18b855f83606d872f30 (diff)
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.
Diffstat (limited to 'reproduce')
-rw-r--r--reproduce/config/pipeline/dependency-versions.mk1
-rw-r--r--reproduce/src/make/dependencies.mk13
-rw-r--r--reproduce/src/make/initialize.mk7
3 files changed, 19 insertions, 2 deletions
diff --git a/reproduce/config/pipeline/dependency-versions.mk b/reproduce/config/pipeline/dependency-versions.mk
index 86102dd..14a9635 100644
--- a/reproduce/config/pipeline/dependency-versions.mk
+++ b/reproduce/config/pipeline/dependency-versions.mk
@@ -19,6 +19,7 @@ grep-version = 3.3
gzip-version = 1.10
isl-version = 0.18
libtool-version = 2.4.6
+libbsd-version = 0.9.1
lzip-version = 1.20
make-version = 4.2.90
metastore-version = 1.1.2
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 >> $@