From b7e88b1bf82b936f8fe07c0c2c5f8621c2018f3a Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Sun, 11 Nov 2018 19:09:21 +0000 Subject: Dependencies built at the start of the pipeline To enable easy/proper reproduction of results, all the high-level dependencies are now built within the pipeline and installed in a fixed directory that is added to the PATH of the Makefile. This includes GNU Bash and GNU Make, which are then used to run the pipeline. The `./configure' script will first build Bash and Make within itself, then it will build All the dependencies are also built to be static. So after they are built, changing of the system's low-level libraries (like C library) won't change the tarballs. Currently the C library and C compiler aren't built within the pipeline, but we'll hopefully add them to the build process also. With this change, we now have full control of the shell and Make that will be used in the pipeline, so we can safely remove some of the generalities we had before. --- reproduce/config/pipeline/LOCAL.mk.in | 32 +++++++++++++----------- reproduce/config/pipeline/dependency-versions.mk | 15 +++++++++++ 2 files changed, 33 insertions(+), 14 deletions(-) create mode 100644 reproduce/config/pipeline/dependency-versions.mk (limited to 'reproduce/config/pipeline') diff --git a/reproduce/config/pipeline/LOCAL.mk.in b/reproduce/config/pipeline/LOCAL.mk.in index 7a29344..02f8b11 100644 --- a/reproduce/config/pipeline/LOCAL.mk.in +++ b/reproduce/config/pipeline/LOCAL.mk.in @@ -22,17 +22,17 @@ -# Input data -# ---------- +# (OPTIONAL) Dependencies directory +# --------------------------------- # -# This is where the input data (with the same file-name standard as the -# online webpage) are stored. If this directory doesn't exist, or it -# doesn't contain the files (with the correct file-name formats), it will -# be created and the images will be downloaded. See -# `reproduce/config/pipeline/web.mk', for the URLs containing the expected -# inputs for each survey. -SURVEY = reproduce/SURVEY - +# To ensure an identical build environment, the pipeline will use its own +# build of the programs it needs. Therefore the tarball of the relevant +# programs are necessary for this pipeline. If a tarball isn't present in +# the specified directory, it will be downloaded by the pipeline. Therefore +# an internet connection will be mandatory. +# +# Important note: Keep atleast one blank space before and after `='. +DEPENDENCIES-DIR = /optional/path/to/directory/containing/tarballs @@ -47,7 +47,9 @@ SURVEY = reproduce/SURVEY # intermediate/derivative files. Also to make synchronization and backups # more easy: the contents of the build directory do not need to be backed # up since they can be reproduced and they can be large. -BDIR = reproduce/BDIR +# +# IMPORTANT NOTE: Keep atleast one blank space before and after `='. +BDIR = /path/of/directory/for/building @@ -76,9 +78,11 @@ MINMAPSIZE = 1000000000 # Downloader program # ------------------ # -# The downloder program (and its output option name) that will be used if -# any of the necessary datasets aren't already available on the -# system. This is usually set at an early stage of the configuration system +# The downloder program (and its output option name, for example `wget -O' +# or `curl -o') that will be used if any of the necessary datasets aren't +# already available on the system. +# +# This is usually set at an early stage of the configuration system # automatically before the file is opened for editing by the user. It is # thus recommended to not modify it manually. DOWNLOADER = @downloader@ diff --git a/reproduce/config/pipeline/dependency-versions.mk b/reproduce/config/pipeline/dependency-versions.mk new file mode 100644 index 0000000..3d9d8b3 --- /dev/null +++ b/reproduce/config/pipeline/dependency-versions.mk @@ -0,0 +1,15 @@ +# Versions of the various dependnecies +bash-version = 4.4.18 +cfitsio-version = 3450 +coreutils-version = 8.30 +gawk-version = 4.2.1 +ghostscript-version = 9.25 +gnuastro-version = 0.7.58-e72a +grep-version = 3.1 +gsl-version = 2.5 +libjpeg-version = v9b +libgit2-version = 0.26.0 +libtool-version = 2.4.6 +make-version = 4.2.90 +sed-version = 4.5 +wcslib-version = 6.2 -- cgit v1.2.1