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. --- .file-metadata | Bin 4492 -> 4492 bytes paper.tex | 35 ++++++++++++----------- reproduce/config/pipeline/dependency-versions.mk | 1 + reproduce/src/make/dependencies.mk | 13 ++++++++- reproduce/src/make/initialize.mk | 7 ++++- 5 files changed, 37 insertions(+), 19 deletions(-) diff --git a/.file-metadata b/.file-metadata index 1eb83fa..46da073 100644 Binary files a/.file-metadata and b/.file-metadata 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 >> $@ -- cgit v1.2.1