aboutsummaryrefslogtreecommitdiff
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
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.
-rw-r--r--.file-metadatabin4492 -> 4492 bytes
-rw-r--r--paper.tex35
-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
5 files changed, 37 insertions, 19 deletions
diff --git a/.file-metadata b/.file-metadata
index 1eb83fa..46da073 100644
--- a/.file-metadata
+++ b/.file-metadata
Binary files differ
diff --git a/paper.tex b/paper.tex
index eb0c122..a0b458a 100644
--- a/paper.tex
+++ b/paper.tex
@@ -212,23 +212,24 @@ Libtool \libtoolversion, GNU Make \makeversion, GNU NCURSES
\ncursesversion, GNU Readline \readlineversion, GNU Sed \sedversion, GNU
Scientific Library (GSL) \gslversion, GNU Tar \tarversion, GNU Wget
\wgetversion, GNU Which \whichversion, Lzip \lzipversion, GPL Ghostscript
-\ghostscriptversion, Libgit2 \libgitwoversion, Libtiff \libtiffversion,
-Metastore \metastoreversion, OpenSSL \opensslversion, Pkg-config
-\pkgconfigversion, WCSLIB \wcslibversion, XZ Utils \xzversion, and ZLib
-\zlibversion. The final paper was produced with \TeX{} Live
-\texliveversion, using the following packages: \TeX{} \textexversion, EC
-\texecversion, NewTX \texnewtxversion, Fontaxes \texfontaxesversion,
-Keyval, \texxkeyvalversion, Etoolbox \texetoolboxversion, Xcolor
-\texxcolorversion, Setspace \texsetspaceversion, Caption
-\texcaptionversion, Footmisc \texfootmiscversion, Datetime
-\texdatetimeversion, Fmtcount \texfmtcountversion, Titlesec
-\textitlesecversion, Preprint \texpreprintversion, Ulem \texulemversion,
-Bib\LaTeX{} \texbiblatexversion, Biber \texbiberversion, Logreq
-\texlogreqversion, PGF/TiKZ \texpgfversion, PGFPlots \texpgfplotsversion,
-FP \texfpversion, Courier \texcourierversion, \TeX-gyre \textexgyreversion,
-TXFonts \textxfontsversion, Times \textimesversion. We are very grateful to
-all their creators for freely providing this necessary infrastructure. This
-research would not be possible without them.
+\ghostscriptversion, Libbsd \libbsdversion, Libgit2 \libgitwoversion,
+Libjpeg \libjpegversion, Libtiff \libtiffversion, Metastore
+\metastoreversion, OpenSSL \opensslversion, Pkg-config \pkgconfigversion,
+WCSLIB \wcslibversion, XZ Utils \xzversion, and ZLib \zlibversion. The
+final paper was produced with \TeX{} Live \texliveversion, using the
+following packages: \TeX{} \textexversion, EC \texecversion, NewTX
+\texnewtxversion, Fontaxes \texfontaxesversion, Keyval, \texxkeyvalversion,
+Etoolbox \texetoolboxversion, Xcolor \texxcolorversion, Setspace
+\texsetspaceversion, Caption \texcaptionversion, Footmisc
+\texfootmiscversion, Datetime \texdatetimeversion, Fmtcount
+\texfmtcountversion, Titlesec \textitlesecversion, Preprint
+\texpreprintversion, Ulem \texulemversion, Bib\LaTeX{} \texbiblatexversion,
+Biber \texbiberversion, Logreq \texlogreqversion, PGF/TiKZ \texpgfversion,
+PGFPlots \texpgfplotsversion, FP \texfpversion, Courier \texcourierversion,
+\TeX-gyre \textexgyreversion, TXFonts \textxfontsversion, Times
+\textimesversion. We are very grateful to all their creators for freely
+providing this necessary infrastructure. This research would not be
+possible without them.
%% Tell BibLaTeX to put the bibliography list here.
\printbibliography
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 >> $@