aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2019-02-13 17:30:02 +0000
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2019-02-13 17:37:17 +0000
commit41b458f8f31bbb5b74f96c5647beae28c49dedaf (patch)
tree64be70cfe6ab20f68a685d430902ab803035308f
parentb47b2a3563a0735480e72c64216645fc363030bb (diff)
parent64f519d1b54487fcfc39a0f7c8b4437e660ff6f0 (diff)
Imported recent work on building Python within the pipeline
Raul Infante-Sainz added the building of Python (along with the Numpy and Astropy packages) into the pipeline. That work is now being merged into the main pipeline branch. There was only this small problem that needed to be fixed: the Python tarball's name after unpacking is actually `Python-X.X.X' (with a captial P), not `python-X.X.X'. This has been corrected with this merge.
-rw-r--r--.file-metadatabin4007 -> 3956 bytes
-rw-r--r--.gitignore4
-rw-r--r--paper.tex4
-rw-r--r--reproduce/config/pipeline/dependency-versions.mk97
-rw-r--r--reproduce/src/make/dependencies-build-rules.mk16
-rw-r--r--reproduce/src/make/dependencies.mk72
-rw-r--r--reproduce/src/make/initialize.mk6
-rw-r--r--tex/src/references.tex94
8 files changed, 225 insertions, 68 deletions
diff --git a/.file-metadata b/.file-metadata
index 45150da..517973d 100644
--- a/.file-metadata
+++ b/.file-metadata
Binary files differ
diff --git a/.gitignore b/.gitignore
index 7074d37..5879789 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,12 +5,14 @@
*.pdf
*.out
*.zip
+*.swp
.nfs*
mmap_*
*.tar.gz
*.auxlock
.tex
+build
.local
Makefile
tex/tikz
@@ -24,4 +26,4 @@ gnuastro-local.conf
reproduce/config/pipeline/LOCAL.mk
reproduce/BDIR/
-reproduce/SURVEY/ \ No newline at end of file
+reproduce/SURVEY/
diff --git a/paper.tex b/paper.tex
index a36b3eb..16f6eb8 100644
--- a/paper.tex
+++ b/paper.tex
@@ -216,7 +216,9 @@ Scientific Library (GSL) \gslversion, GNU Tar \tarversion, GNU Wget
Libjpeg \libjpegversion, Libtiff \libtiffversion, Metastore (forked)
\metastoreversion, OpenSSL \opensslversion, Pkg-config \pkgconfigversion,
Unzip \unzipversion, WCSLIB \wcslibversion, XZ Utils \xzversion, Zip
-\zipversion, and ZLib \zlibversion. The final paper was produced with
+\zipversion, and ZLib \zlibversion. We use Python {\pythonversion} with the
+following packages: Numpy {\numpyversion} and Astropy {\astropyversion}
+\citep{astropy2013, astropy2018}. The final paper was produced with
\TeX{} Live \texliveversion, using the following packages: \TeX{}
\textexversion, EC \texecversion, NewTX \texnewtxversion, Fontaxes
\texfontaxesversion, Keyval, \texxkeyvalversion, Etoolbox
diff --git a/reproduce/config/pipeline/dependency-versions.mk b/reproduce/config/pipeline/dependency-versions.mk
index 41a4cf9..f0774bc 100644
--- a/reproduce/config/pipeline/dependency-versions.mk
+++ b/reproduce/config/pipeline/dependency-versions.mk
@@ -1,50 +1,59 @@
# Versions of the various dependnecies
# Programs
-bash-version = 5.0
-binutils-version = 2.31.1
-bzip2-version = 1.0.6
-cmake-version = 3.12.4
-coreutils-version = 8.30
-diffutils-version = 3.7
-findutils-version = 4.6.0.199-e3fc
-flock-version = 0.2.3
-gawk-version = 4.2.1
-gcc-version = 8.2.0
-ghostscript-version = 9.26
-git-version = 2.20.1
-gmp-version = 6.1.2
-gnuastro-version = 0.8
-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-23-fa9170b
-mpfr-version = 4.0.1
-mpc-version = 1.1.0
-ncurses-version = 6.1
-openssl-version = 1.1.1a
-patchelf-version = 0.9
-pkgconfig-version = 0.29.2
-readline-version = 8.0
-sed-version = 4.7
-tar-version = 1.31
-unzip-version = 6.0
-wget-version = 1.20.1
-which-version = 2.21
-xz-version = 5.2.4
-zip-version = 3.0
+bash-version = 5.0
+binutils-version = 2.31.1
+bzip2-version = 1.0.6
+cmake-version = 3.12.4
+coreutils-version = 8.30
+diffutils-version = 3.7
+findutils-version = 4.6.0.199-e3fc
+flock-version = 0.2.3
+gawk-version = 4.2.1
+gcc-version = 8.2.0
+ghostscript-version = 9.26
+git-version = 2.20.1
+gmp-version = 6.1.2
+gnuastro-version = 0.8
+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-23-fa9170b
+mpfr-version = 4.0.1
+mpc-version = 1.1.0
+ncurses-version = 6.1
+openssl-version = 1.1.1a
+patchelf-version = 0.9
+pkgconfig-version = 0.29.2
+python-version = 3.6.8
+readline-version = 8.0
+sed-version = 4.7
+tar-version = 1.31
+unzip-version = 6.0
+wget-version = 1.20.1
+which-version = 2.21
+xz-version = 5.2.4
+zip-version = 3.0
# Libraries
-cfitsio-version = 3.45
-curl-version = 7.63.0
-gsl-version = 2.5
-libjpeg-version = v9b
-libtiff-version = 4.0.10
-zlib-version = 1.2.11
+cfitsio-version = 3.45
+curl-version = 7.63.0
+gsl-version = 2.5
+libjpeg-version = v9b
+libtiff-version = 4.0.10
+zlib-version = 1.2.11
+
+# Python packages
+# ---------------
+#
+# IMPORTANT: Fix url in `reproduce/src/make/dependencies.mk'
+# if changing the version
+astropy-version = 3.1.1
+numpy-version = 1.16.1
# Special libraries
# -----------------
@@ -53,5 +62,5 @@ zlib-version = 1.2.11
# the software build Makefiles (`reproduce/src/make/dependencies*.mk'). If
# you change their version, also please change the explicit shared library
# names also.
-libgit2-version = 0.26.0
-wcslib-version = 6.2
+libgit2-version = 0.26.0
+wcslib-version = 6.2
diff --git a/reproduce/src/make/dependencies-build-rules.mk b/reproduce/src/make/dependencies-build-rules.mk
index 0c7262e..2247518 100644
--- a/reproduce/src/make/dependencies-build-rules.mk
+++ b/reproduce/src/make/dependencies-build-rules.mk
@@ -103,6 +103,22 @@ gbuild = if [ x$(static_build) = xyes ] && [ "x$(3)" = xstatic ]; then \
+# Python
+# ------
+#
+# To build Python packages with direct access to a `setup.py' (if no direct
+# access to `setup.py' is needed, pip can be used)
+pybuild = cd $(ddir); rm -rf $(2); \
+ if ! tar xf $(1); then echo; echo "Tar error"; exit 1; fi; \
+ cd $(2); \
+ python3 setup.py build && \
+ python3 setup.py install && \
+ cd .. && rm -rf $(2)
+
+
+
+
+
# CMake
# -----
#
diff --git a/reproduce/src/make/dependencies.mk b/reproduce/src/make/dependencies.mk
index e768051..92febb1 100644
--- a/reproduce/src/make/dependencies.mk
+++ b/reproduce/src/make/dependencies.mk
@@ -43,8 +43,10 @@ ildir = $(BDIR)/dependencies/installed/lib
ilidir = $(BDIR)/dependencies/installed/lib/built
# Define the top-level programs to build (installed in `.local/bin').
-top-level-programs = astnoisechisel metastore flock zip unzip
-all: $(ddir)/texlive-versions.tex \
+top-level-python = astropy
+top-level-programs = astnoisechisel metastore flock unzip zip
+all: $(ddir)/texlive-versions.tex \
+ $(foreach p, $(top-level-python), $(ilidir)/$(p)) \
$(foreach p, $(top-level-programs), $(ibdir)/$(p))
# Other basic environment settings: We are only including the host
@@ -87,24 +89,27 @@ export LDFLAGS := $(rpath_command) -L$(ildir)
# convention, but include the name/version in their tarball names with
# another format, we'll do the modification before the download so the
# downloaded file has our desired format.
-tarballs = $(foreach t, cfitsio-$(cfitsio-version).tar.gz \
- cmake-$(cmake-version).tar.gz \
- curl-$(curl-version).tar.gz \
- flock-$(flock-version).tar.xz \
- ghostscript-$(ghostscript-version).tar.gz \
- git-$(git-version).tar.xz \
- gnuastro-$(gnuastro-version).tar.lz \
- 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 \
- unzip-$(unzip-version).tar.gz \
- tiff-$(libtiff-version).tar.gz \
- wcslib-$(wcslib-version).tar.bz2 \
- zip-$(zip-version).tar.gz \
+tarballs = $(foreach t, astropy-$(astropy-version).tar.gz \
+ cfitsio-$(cfitsio-version).tar.gz \
+ cmake-$(cmake-version).tar.gz \
+ curl-$(curl-version).tar.gz \
+ flock-$(flock-version).tar.xz \
+ ghostscript-$(ghostscript-version).tar.gz \
+ git-$(git-version).tar.xz \
+ gnuastro-$(gnuastro-version).tar.lz \
+ 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 \
+ numpy-$(numpy-version).zip \
+ python-$(python-version).tar.gz \
+ unzip-$(unzip-version).tar.gz \
+ tiff-$(libtiff-version).tar.gz \
+ wcslib-$(wcslib-version).tar.bz2 \
+ zip-$(zip-version).tar.gz \
, $(tdir)/$(t) )
$(tarballs): $(tdir)/%:
if [ -f $(DEPENDENCIES-DIR)/$* ]; then
@@ -117,7 +122,8 @@ $(tarballs): $(tdir)/%:
# Set the top download link of the requested tarball.
mergenames=1
- if [ $$n = cfitsio ]; then
+ if [ $$n = astropy ]; then w=https://files.pythonhosted.org/packages/eb/f7/1251bf6881861f24239efe0c24cbcfc4191ccdbb69ac3e9bb740d0c23352
+ elif [ $$n = cfitsio ]; then
mergenames=0
v=$$(echo $(cfitsio-version) | sed -e's/\.//' \
| awk '{l=length($$1); \
@@ -141,6 +147,10 @@ $(tarballs): $(tdir)/%:
mergenames=0
w=https://github.com/libgit2/libgit2/archive/v$(libgit2-version).tar.gz
elif [ $$n = metastore ]; then w=http://akhlaghi.org/src
+ elif [ $$n = numpy ]; then w=https://files.pythonhosted.org/packages/2b/26/07472b0de91851b6656cbc86e2f0d5d3a3128e7580f23295ef58b6862d6c
+ elif [ $$n = python ]; then
+ mergenames=0
+ w=https://www.python.org/ftp/python/$(python-version)/Python-$(python-version).tgz
elif [ $$n = tiff ]; then w=https://download.osgeo.org/libtiff
elif [ $$n = unzip ]; then w=ftp://ftp.info-zip.org/pub/infozip/src
mergenames=0; v=$$(echo $(unzip-version) | sed -e's/\.//')
@@ -446,6 +456,12 @@ endif
$$staticopts, -j$(numthreads), \
make check -j$(numthreads))
+$(ibdir)/python3: $(tdir)/python-$(python-version).tar.gz
+ $(call gbuild, $<, Python-$(python-version)) \
+ && v=$$(echo $(python-version) | awk 'BEGIN{FS="."} \
+ {printf "%d.%d\n", $$1, $$2}') \
+ && ln -s $(ildir)/python$$v $(ildir)/python
+
$(ibdir)/unzip: $(tdir)/unzip-$(unzip-version).tar.gz
v=$$(echo $(unzip-version) | sed -e's/\.//')
$(call gbuild, $<, unzip$$v, static,, \
@@ -466,6 +482,20 @@ $(ibdir)/zip: $(tdir)/zip-$(zip-version).tar.gz
+# Python packages
+# ---------------
+$(ilidir)/numpy: $(tdir)/numpy-$(numpy-version).zip \
+ $(ibdir)/python3
+ pip3 install $< --verbose && echo "numpy is built" > $@
+
+$(ilidir)/astropy: $(tdir)/astropy-$(astropy-version).tar.gz \
+ $(ilidir)/numpy
+ pip3 install $< --verbose && echo "astropy is built" > $@
+
+
+
+
+
# Since we want to avoid complicating the PATH, we are putting a symbolic
# link of all the TeX Live executables in $(ibdir). But symbolic links are
# hard to track for Make (as a target). Also, TeX in general is optional
diff --git a/reproduce/src/make/initialize.mk b/reproduce/src/make/initialize.mk
index ff06dcb..71cdbb8 100644
--- a/reproduce/src/make/initialize.mk
+++ b/reproduce/src/make/initialize.mk
@@ -316,7 +316,6 @@ lvcheck = idir=$(BDIR)/dependencies/installed/include; \
-
# Pipeline initialization results
# -------------------------------
#
@@ -413,3 +412,8 @@ $(mtexdir)/initialize.tex: | $(mtexdir)
# TeX package versions
cat $(BDIR)/dependencies/texlive-versions.tex >> $@
+
+ # Python packages
+ $(call pvcheck, python3, $(python-version), Python, pythonversion)
+ echo "\newcommand{\\numpyversion}{$(numpy-version)}" >> $@
+ echo "\newcommand{\\astropyversion}{$(astropy-version)}" >> $@
diff --git a/tex/src/references.tex b/tex/src/references.tex
index b3998a2..785ab21 100644
--- a/tex/src/references.tex
+++ b/tex/src/references.tex
@@ -1,3 +1,64 @@
+@ARTICLE{astropy2018,
+ author = {{Astropy Collaboration} and {Price-Whelan}, A.~M. and {Sip{\H o}cz}, B.~M. and
+ {G{\"u}nther}, H.~M. and {Lim}, P.~L. and {Crawford}, S.~M. and
+ {Conseil}, S. and {Shupe}, D.~L. and {Craig}, M.~W. and {Dencheva}, N. and
+ {Ginsburg}, A. and {VanderPlas}, J.~T. and {Bradley}, L.~D. and
+ {P{\'e}rez-Su{\'a}rez}, D. and {de Val-Borro}, M. and {Aldcroft}, T.~L. and
+ {Cruz}, K.~L. and {Robitaille}, T.~P. and {Tollerud}, E.~J. and
+ {Ardelean}, C. and {Babej}, T. and {Bach}, Y.~P. and {Bachetti}, M. and
+ {Bakanov}, A.~V. and {Bamford}, S.~P. and {Barentsen}, G. and
+ {Barmby}, P. and {Baumbach}, A. and {Berry}, K.~L. and {Biscani}, F. and
+ {Boquien}, M. and {Bostroem}, K.~A. and {Bouma}, L.~G. and {Brammer}, G.~B. and
+ {Bray}, E.~M. and {Breytenbach}, H. and {Buddelmeijer}, H. and
+ {Burke}, D.~J. and {Calderone}, G. and {Cano Rodr{\'{\i}}guez}, J.~L. and
+ {Cara}, M. and {Cardoso}, J.~V.~M. and {Cheedella}, S. and {Copin}, Y. and
+ {Corrales}, L. and {Crichton}, D. and {D'Avella}, D. and {Deil}, C. and
+ {Depagne}, {\'E}. and {Dietrich}, J.~P. and {Donath}, A. and
+ {Droettboom}, M. and {Earl}, N. and {Erben}, T. and {Fabbro}, S. and
+ {Ferreira}, L.~A. and {Finethy}, T. and {Fox}, R.~T. and {Garrison}, L.~H. and
+ {Gibbons}, S.~L.~J. and {Goldstein}, D.~A. and {Gommers}, R. and
+ {Greco}, J.~P. and {Greenfield}, P. and {Groener}, A.~M. and
+ {Grollier}, F. and {Hagen}, A. and {Hirst}, P. and {Homeier}, D. and
+ {Horton}, A.~J. and {Hosseinzadeh}, G. and {Hu}, L. and {Hunkeler}, J.~S. and
+ {Ivezi{\'c}}, {\v Z}. and {Jain}, A. and {Jenness}, T. and {Kanarek}, G. and
+ {Kendrew}, S. and {Kern}, N.~S. and {Kerzendorf}, W.~E. and
+ {Khvalko}, A. and {King}, J. and {Kirkby}, D. and {Kulkarni}, A.~M. and
+ {Kumar}, A. and {Lee}, A. and {Lenz}, D. and {Littlefair}, S.~P. and
+ {Ma}, Z. and {Macleod}, D.~M. and {Mastropietro}, M. and {McCully}, C. and
+ {Montagnac}, S. and {Morris}, B.~M. and {Mueller}, M. and {Mumford}, S.~J. and
+ {Muna}, D. and {Murphy}, N.~A. and {Nelson}, S. and {Nguyen}, G.~H. and
+ {Ninan}, J.~P. and {N{\"o}the}, M. and {Ogaz}, S. and {Oh}, S. and
+ {Parejko}, J.~K. and {Parley}, N. and {Pascual}, S. and {Patil}, R. and
+ {Patil}, A.~A. and {Plunkett}, A.~L. and {Prochaska}, J.~X. and
+ {Rastogi}, T. and {Reddy Janga}, V. and {Sabater}, J. and {Sakurikar}, P. and
+ {Seifert}, M. and {Sherbert}, L.~E. and {Sherwood-Taylor}, H. and
+ {Shih}, A.~Y. and {Sick}, J. and {Silbiger}, M.~T. and {Singanamalla}, S. and
+ {Singer}, L.~P. and {Sladen}, P.~H. and {Sooley}, K.~A. and
+ {Sornarajah}, S. and {Streicher}, O. and {Teuben}, P. and {Thomas}, S.~W. and
+ {Tremblay}, G.~R. and {Turner}, J.~E.~H. and {Terr{\'o}n}, V. and
+ {van Kerkwijk}, M.~H. and {de la Vega}, A. and {Watkins}, L.~L. and
+ {Weaver}, B.~A. and {Whitmore}, J.~B. and {Woillez}, J. and
+ {Zabalza}, V. and {Astropy Contributors}},
+ title = "{The Astropy Project: Building an Open-science Project and Status of the v2.0 Core Package}",
+ journal = {AJ},
+archivePrefix = "arXiv",
+ eprint = {1801.02634},
+ primaryClass = "astro-ph.IM",
+ keywords = {methods: data analysis, methods: miscellaneous, methods: statistical, reference systems },
+ year = 2018,
+ month = sep,
+ volume = 156,
+ eid = {123},
+ pages = {123},
+ doi = {10.3847/1538-3881/aabc4f},
+ adsurl = {http://adsabs.harvard.edu/abs/2018AJ....156..123A},
+ adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+}
+
+
+
+
+
@ARTICLE{bacon17,
author = {{Bacon}, R. and {Conseil}, S. and {Mary}, D. and {Brinchmann}, J. and
{Shepherd}, M. and {Akhlaghi}, M. and {Weilbacher}, P.~M. and
@@ -43,3 +104,36 @@ archivePrefix = "arXiv",
adsurl = {http://adsabs.harvard.edu/abs/2015ApJS..220....1A},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
+
+
+
+
+@ARTICLE{astropy2013,
+ author = {{Astropy Collaboration} and {Robitaille}, T.~P. and {Tollerud}, E.~J. and
+ {Greenfield}, P. and {Droettboom}, M. and {Bray}, E. and {Aldcroft}, T. and
+ {Davis}, M. and {Ginsburg}, A. and {Price-Whelan}, A.~M. and
+ {Kerzendorf}, W.~E. and {Conley}, A. and {Crighton}, N. and
+ {Barbary}, K. and {Muna}, D. and {Ferguson}, H. and {Grollier}, F. and
+ {Parikh}, M.~M. and {Nair}, P.~H. and {Unther}, H.~M. and {Deil}, C. and
+ {Woillez}, J. and {Conseil}, S. and {Kramer}, R. and {Turner}, J.~E.~H. and
+ {Singer}, L. and {Fox}, R. and {Weaver}, B.~A. and {Zabalza}, V. and
+ {Edwards}, Z.~I. and {Azalee Bostroem}, K. and {Burke}, D.~J. and
+ {Casey}, A.~R. and {Crawford}, S.~M. and {Dencheva}, N. and
+ {Ely}, J. and {Jenness}, T. and {Labrie}, K. and {Lim}, P.~L. and
+ {Pierfederici}, F. and {Pontzen}, A. and {Ptak}, A. and {Refsdal}, B. and
+ {Servillat}, M. and {Streicher}, O.},
+ title = "{Astropy: A community Python package for astronomy}",
+ journal = {A\&A},
+archivePrefix = "arXiv",
+ eprint = {1307.6212},
+ primaryClass = "astro-ph.IM",
+ keywords = {methods: data analysis, methods: miscellaneous, virtual observatory tools},
+ year = 2013,
+ month = oct,
+ volume = 558,
+ eid = {A33},
+ pages = {A33},
+ doi = {10.1051/0004-6361/201322068},
+ adsurl = {http://adsabs.harvard.edu/abs/2013A\%26A...558A..33A},
+ adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+}