aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorLines
2019-04-22High-level software now specified in TARGETS.mkMohammad Akhlaghi-207/+259
Until now, to specify which high-level software you want the project to contain, it was necessary to go into the `high-level.mk' Makefile that is complicated and can create bugs. With this commit, a new `reproduce/software/config/installation/TARGETS.mk' file has been created that is easily/cleanly in charge of documenting the final high-level software that must be built for the project. Also, until now, FFTW was set as a dependency of Numpy while we couldn't actually get Numpy to use it! It was just there for future reference and to justify its build rule. But now that many software won't be built and there is no problem with having rules even though a project might not use them, it has been removed.
2019-04-22Git, Metastore, cURL and Libbsd moved to basic softwareMohammad Akhlaghi-119/+126
Git and Metastore are very basic and fundamental tools for the template, so to keep things clean (let the `high-level.mk' software only represent optional software in the template), these two software (and their dependencies: `cURL' and `Libbsd') will now be built in `basic.mk'.
2019-04-22Imported recent work on several astronomy packagesMohammad Akhlaghi-30/+286
With this commit, Raul's work on the installation of several astronomy software is implemented in the main template.
2019-04-22Removed ATLAS as a prerequisite of ScampRaul Infante-Sainz-4/+12
Until this commit, ATLAS was a prerequisite of Scamp. The documentation says that. However, we have been able to install Scamp without having ATLAS installed. As a consecuence, ATLAS does not have to be a prerequisite of Scamp anymore. With this commit, we remove ATLAS as prerequisite of Scamp. We also put available software in the template as optional because not all people are going to use these software.
2019-04-22SCAMP and cdsclient have been added into the projectRaul Infante-Sainz-5/+64
With this commit, we add SCAMP into the project. This program is part of the Astromatic software and the main purpose is to make the fine astrometry and the distorsion correction astronomical images. In principle, SCAMP needs ATLAS library to be able to work (that is what the documentation says). However, we had some problems with ATLAS libraries on Mac OS system, and due to that, we set the option `--enable-openblas' in the configure step. By doing that, we are be able to install SCAMP with no problems. One dependency of SCAMP is `cdsclient', it has been also added with this commit. The `cdsclient' package is a set of C and shell routines which can be built on Unix stations or PCs running Linux, which once compiled allow to query some databases located at CDS or on mirrors over the network.
2019-04-17SExtractor is now included into the projectRaul Infante-Sainz-1/+37
With this commit, we add SExtractor to be installed into the project. It is a widely used program to detect object and build catalogues from astronomical images. We had some problems when installing it because it could not link with some ATLAS libraries. But, since we have OpenBLAS installed, we can use it to override the problem with ATLAS.
2019-04-17Corrected bibtex entry for Astrometry-net and SwarpRaul Infante-Sainz-13/+12
Until now, there were erros in the citation of Astrometry-net and Scamp papers. With this commit, we fix these problems. The Swarp bibtex has also been modify to follow the stetic of the citation style we have right now in the project. We also added the `dependency-bib.tex' as a prerequisite of `paper.bbl'.
2019-04-17SWarp is now into the pipelineRaul Infante-Sainz-42/+66
SWarp resamples and co-adds together FITS images using any arbitrary astrometric projection defined in the WCS standard. It is a very useful program for astronomy and that is why we added it to the pipeline. With this commit, we also cite the paper for Astrometry-net that until now was missing.
2019-04-16Binutils is built on GNU/Linux as GCC dependency, not in MAC OSRaul Infante-Sainz-0/+2
Until this commit, we didn't install Binutils. However, we need `strip' for installing Netpbm, and `strip' is part of the Binutil software. With this commit, we include Binutils as a dependency of GCC for GNU/Linux systems. For Mac OS systems we create a symbolic link to `strip' just after the generation of the symbolic link to `gcc'.
2019-04-16Typo corrections in Astrometry-net dependency rulesRaul Infante-Sainz-14/+14
Due to the copy/paste of rules from other files, in some rules there were some spaces insteand of tab. There were also a lack of semicolon in the building of CC, and bad extensions in various tarballs. With this commit, all of these typos have been fixed.
2019-04-16Astrometry-net and all its dependencies are now in the projectRaul Infante-Sainz-6/+72
With this commit, we include Astrometry-net software and one remaining dependency of it (Swig). In principle it should work as far as we tested all of this software in GNU/Linux, but we need to test also in Mac OS. As a result, this commit is just for setting all the rules and dependencies, but more tests are necessaries to ensure it works properly, specially in Mac OS systems.
2019-04-16Netpbm and its dependencies are now includedRaul Infante-Sainz-13/+55
With this commit, the installation of `netpbm' has been included. This software has a crazy dialogue installation that we override by giving to it the answers (they differs on GNU/Linux and Mac OS systems). `libxml2' also has been built (a remaining dependency of `netpbm'). In this commit, `libpng' version has been downgraded because it is required by `netpbm'. The motivation of installing `netpbm' is that it is a dependency of Astrometry-net software.
2019-04-16CC symbolic link to GCC built after GCC installationRaul Infante-Sainz-0/+2
Until now, we did not have CC. This is an obsolete way of calling C Compiler, nowadays it is GCC. However, there could be some software that is still using this convention (for example, `netpbm'). With this commit, we make the symbolic link `cc' pointing to the installed `gcc'.
2019-04-16Cairo library and its dependency Pixman, are now includedRaul Infante-Sainz-1/+18
In this commit we add Cairo library. The motivation of including this library is because it is a dependency of Astrometry-net (which is a common software used in astronomy projects). In principle it will not be build by default by de pipeline, but we will keep the rule just in case it is needed. Pixman is another library which is a prerequisite of Cairo, it is also built with this commit.
2019-04-16Symbolic link to Python created, using `python' instead of `pythonX'Raul Infante-Sainz-9/+10
Until this commit, we were using `python3' when calling Python (because we were using Python version 3.6.8). This will force us to change the name in the future. For example, when `python4' were available and into the pipeline. With this commit, at the end of the Python installation it creates a symbolic link to the Python bin executable with the new name `python'. As a consecuence, whatever version of Python was installed, into the project we will use allways `python' to invoke it.
2019-04-15Minor typo corrections in README-hacking.mdMohammad Akhlaghi-3/+7
In two places, I had mistakenly put a <'> instead of a <`>, causing bad highlighting in the markdown rendering. They have been corrected. Also, one long line in was broken up into several.
2019-04-15Correction in customization checklistMohammad Akhlaghi-22/+22
Until now, the customization checklist of `README-hacking.md' had the same name for the base template's remote and branch. This was confusing and would cause Git to print a warning. With this commit, like before, the template's remote is now called `template-origin', and `template' is only the branch name.
2019-04-15Template's main branch is now masterMohammad Akhlaghi-25/+44
Until now, the main template branch was called `template'. However, the standard Git convention is that the main branch of a project be called `master'. Many systems rely on this default and it is also easier for new users (who have been accustomed to this convention). So with this commit, the main template branch is `master', but in `README-hacking.mk', we instruct the users on how to rename it to `template' as part of their customization. This is infact better, because when we are actually developing the template in a separate fork, we can refer/use the `master' branch like any other project. And when we are working on a project that uses this template, we will be referring to the main template branch as `template'.
2019-04-15New architecture to separate software-building and analysis stepsMohammad Akhlaghi-360/+429
Until now, the software building and analysis steps of the pipeline were intertwined. However, these steps (of how to build a software, and how to use it) are logically completely independent. Therefore with this commit, the pipeline now has a new architecture (particularly in the `reproduce' directory) to emphasize this distinction: The `reproduce' directory now has the two `software' and `analysis' subdirectories and the respective parts of the previous architecture have been broken up between these two based on their function. There is also no more `src' directory. The `config' directory for software and analysis is now mixed with the language-specific directories. Also, some of the software versions were also updated after some checks with their webpages. This new architecture will allow much more focused work on each part of the pipeline (to install the software and to run them for an analysis).
2019-04-14Replaced all occurances of pipeline in textMohammad Akhlaghi-472/+457
All occurances of "pipeline" have been chanaged to "project" or "template" withint the text (comments, READMEs, and comments) of the template. The main template branch is now also named `template'. This was all because `pipeline' is too generic and couldn't be distinguished from the base, and customized project.
2019-04-14Corrected copyright information for .file-metadataMohammad Akhlaghi-1/+2
Since `.file-metadata' is a binary file, we can't include a copyright inside of it so we have to use `README.md' to mention its copyright and license notice. However, this was not done clearly and is now corrected.
2019-04-14Added citation for FFTWMohammad Akhlaghi-1/+21
Until now we weren't including the citation for FFTW (one of the template's optional packages). With this commit, it is added.
2019-04-13Corrected copyright notices and info about adding copyright infoMohammad Akhlaghi-162/+128
Until now, the files where the people were meant to change didn't have a proper copyright notice (for example `Copyright (C) YOUR NAME.'). This was wrong because the license does not convey copyright ownership. So the name of the file's original author must always be included and when people modify it (and add their own copyright-able modifications). With this commit, the file's original author (and email) are added to the copyright notice and when more than one person modified a file, both names have their individual copyright notice. Based on this, the description for adding a copyright notice in `README-hacking.md' has also been modified.
2019-04-12Minor typo corrections in previous commitsMohammad Akhlaghi-3/+4
Until now, even though `file' was a dependency of `gcc', it was still listed as a `top-level-programs'. Also, we weren't including the new `tex/dependencies' in the distribution tarball (with `make dist'). With this commit, both issues are solved and also, as a cosmetic change, the GCC prerequisites of the same line-length were ordered alphabetically.
2019-04-12Dependency BibTeX entries included only when necessaryMohammad Akhlaghi-261/+291
Until now, there was a single `tex/src/references.tex' file that housed the BibTex entries for everything (software and non-software). Since we have started to include the BibTeX entry for more software, it will be hard to manage the large (sometime unused) BibTeX entries of the software in the middle of the non-software related citations in the text of the paper. Therefore, with this commit, a `tex/dependencies' directory has been made which has a separate BibTeX entry file for each software that needs one. After the software is built, this file is copied to the new `.local/version-info/cite' directory. At the end, the configure script will concatenate all the files in this directory into one file which will later be used with `tex/src/references.tex' by BibLaTeX. This greatly simplifies managing of citations. Allowing us to focus on the software-building and paper-writing citations separately/cleanly (and thus be more efficient in both).
2019-04-12Imported recent corrections, no conflictsMohammad Akhlaghi-15/+143
Some recent corrections that were done by Raul are now merged into the pipeline. There weren't any conflicts.
2019-04-12File is built as a dependency of GCCRaul Infante-Sainz-2/+12
Until now, we did not have `file'. It was in other project, where a problem with `Astrometry-net' software, ends up with the necessity of having `file' into the pipeline. With this commit, we add `file' to the project. Since it is a low level program, it is set in `dependencies-basic.mk' as a prerequisite of GCC.
2019-04-12Fixed some Scipy-related packages citationsRaul Infante-Sainz-13/+43
Until now, the Scipy citation was only one paper and not the correct one (it was the online manual). With this commit, Scipy is properly cited using the two papers. Also some modifications in the `tex/src/references.tex' have been done (remove last page number).
2019-04-12Acknowledged Scipy-related packages: Cython, Matplotlib, Numpy and ScipyRaul Infante-Sainz-11/+97
Until now, name and version of all Python packages were indicated in the final paper, but not the main paper of them (if it exists). With this commit, some Python packages (Cython, Matplotlib, Numpy and Scipy) are now properly acknoledged by citating the source paper. `mpi4py' is also cited although this package is not yet included into the pipeline.
2019-04-12Gnuastro's citation included in its build targetMohammad Akhlaghi-4/+4
With this commit, we are applying the new style of citing software within the build rule of Gnuastro.
2019-04-12Configure script dealing properly with empty software directoriesMohammad Akhlaghi-21/+35
Until now, we hadn't actually tested the case where a whole software directory (Python modules in particular) is empty. So the configure script finished with some errors in this case. With this commit, this step of the configure script was modified to deal with such cases cleanly. Also, in `initialize.mk', I added a `-f' to the symbolic link command, so it doesn't complain if the file link already exists.
2019-04-11.file-metadata also given a copyright in top READMEMohammad Akhlaghi-19/+21
Since `.file-metadata' is a binary file and we couldn't put a copyright notice within it, it has been mentioned in `README.md' to have the same copyright. Also, the copyright modification step in `README-hacking.md' was brought to a later step to be more clear that it should always be done (on new files or files that are changed).
2019-04-11Unzip set as prerequisite of Numpy and SetuptoolsRaul Infante-Sainz-2/+4
Since we mixed the installation of Python packages with all other software, it may occur that some Python packages start to be installed before having installed `unzip'. As a consecuence, they could not be decompressed and the installation will fail. In particular, tarballs of Numpy and Setuptools are .zip files. With this commit, we fix this issue by setting `unzip' as a prerequisit of Numpy and Setuptools.
2019-04-10Imported PatchELF correction, gmp and mpfr also dependencies of AWKMohammad Akhlaghi-63/+53
There weren't any conflicts in this merge. However, while, trying to break a long line into multiple (for better readability), I noticed that the AWK version was mistakenly written as `awk-version' in a few cases, so this was corrected to `gawk-version'. While inspecting the libraries that AWK links to, I noticed that it also links to GNU GMP and GNU MPFR. But since they are built after AWK usually, it was using my host system! So with this commit, AWK has these two libraries as prerequisites. As a result, these two libraries were brought up to the basic program section, and not just GCC prerequisites.
2019-04-10Using bin executable in patchelf for awk and bashRaul Infante-Sainz-11/+12
Until this commit, we were using the target (version number of the program) in the `patchelf' for `awk' and `bash'. This makes an incorrect linking in libraries because the target is not the bin program but just a plain text containing the version number of the program. With this commit we fix this issue by setting in the patchelf of `awk' and `bash' the bin executable, and not the target (version number).
2019-04-08for-group: Options passed to configure or makeMohammad Akhlaghi-10/+17
Until now, the `for-group' script could only two options to Make and didn't pass anything to `./configure'. With this commit, any thing given after the first two tokens to `for-group' is passed directly to `./configure' or Make. Also, the test for the existance of the group has been modified to avoid making a temporary file.
2019-04-08Using Clang on Mac OS systems for pkg-configMohammad Akhlaghi-2/+10
Yahya Sefidbakht reported the following error when building Pkg-config on his Mac OS system (using GCC, not Clang). It is apparently because his version of GCC doesn't support some speical feature on Mac that is necessary to build Glib as part of Pkg-config. With this commit, on Mac systems, for pkg-config we are explicity asking to build with Clang (through the `CC' flag).
2019-04-07Configure script using our build programs in final stepsMohammad Akhlaghi-35/+44
In order to get a consistent final result, in its later steps, the configure script uses our own build of the basic command-line tools (like `cat', `awk'). Also, a correction was made to the short option parsing errors when an unwanted argument is given, and the `-?*' was changed to `-'?'*' to avoid un-necessary shell interpretation (for example giving unreasonable results).
2019-04-07GNU M4 now built as a dependency of GNU LibtoolMohammad Akhlaghi-65/+77
On some systems, M4 isn't available, so the linking to the host system fails, as a result, we can't build GNU Libtool. The main reason we weren't building M4 was a bug with the most recent GNU C library (http://lists.gnu.org/archive/html/bug-gnulib/2019-04/msg00004.html). But I found a patch used by Arch Linux which fixes the issue and allows M4 to be built. As a result, the pipeline is now building M4 also and the patched M4 tarball is now uploaded to my own webpage as backup. While doing the steps above, I also noticed that we weren't using a tab at the start of the link definitions of `dependencies-basic.mk'. Although its not necessary, to be consistent, its good for the lines to always start with a tab.
2019-04-07Corrections in configure script and astroquery, astropy rulesMohammad Akhlaghi-19/+24
The step where we check the possibility of using `sys/cdefs.h' was still using `$$' for shell variables (in Make), not `$' (for the shell). This was corrected. Also, since Astropy needs two citations, the `,' in the citation command would conflict with Make's parsing. So we just used an `echo' command to re-write the version info. In Astroquery, the prerequisite list was just reordered by length to be more clear to the eye.
2019-04-07Using gnuastro name for Gnuastro's target, not astnoisechiselMohammad Akhlaghi-9/+9
Until recently we were using an actual installed executable file for the programs. So for Gnuastro, the target was called `astnoisechisel'. But recently, this approach was changed and the target for each software is a simple text file with the official software name and version. So with this commit, we are simply using `gnuastro' for Gnuastro, not `astnoisechisel'.
2019-04-07--host-cc configure option to avoid building GCC, M4 mandatoryMohammad Akhlaghi-36/+73
In some cases (specially when debugging the pipeline), its very time-consuming to install GCC. With this commit, a `--host-cc' option has been added to avoid building the C compiler when necessary. The test to see if `sys/cdefs.h' is available on the system (necessary to build GCC) has also been moved to the configure script to print a more visible warning and also use the new `host_cc' variable to let `dependencies-basic.mk' know that GCC shouldn't be built. Finally, we are having problems installing M4 from source, so it has been set as a mandatory dependency.
2019-04-07Copyright notice added to all files missing oneMohammad Akhlaghi-13/+46
Until now, for short files, we only had a license notice, not an actual copyright notice. With this commit, a copyright notice has also been added. We use this new command to find these files, suggested by `ineiev@gnu.org'.
2019-04-05GCC not building on GNU/Linux system with incomplete complierMohammad Akhlaghi-12/+38
On some GNU/Linux distros, the compiler is separated into `multilib' mode (for 32-bit and 64-bit support) and by default the extra component of the compiler is not installed! In such systems for now, we are just creating symbolic links to the host's compiler (similar to Mac). While testing, I noticed that we weren't passing a "$downloader" option to the downloading script of `dependencies.mk' and `dependencies-python.mk'. Also, I noticed that the Cython and Python-pkg-config packages didn't have setuptools as a dependency! Both have now been fixed. Also, Cython's tarball name is now all small-caps (as in all the other tarballs).
2019-04-05Imported work on adding Cython and Python's pkgconfig moduleMohammad Akhlaghi-3/+19
This work is now merged, I just added the new argument to the `pybuild' function.
2019-04-05Software acknowledgement section is automatically generatedMohammad Akhlaghi-504/+416
Until now, management of the software names and versions in the paper was done manually (a macro had to be defined in `initialize.mk', then used in `paper.tex', so they had to be manually set in two places). Managing this was not easy. To fix this, with this commit, each software building rule's target is a text file that contains its human-readable name and its version. In the end, the configure script sorts them by their name and writes them into a LaTeX input file that we can easily import as a file into the main paper.
2019-04-05Python cython and pkgconfig packages added for h5pyRaul Infante-Sainz-3/+17
After trying to set the pipeline from scratch with no internet conection (but all tarballs already downladed), `h5py' Python package complained about not having access to download `pkgconfig'. After solving this dependency, it also complained about not having `cython'. With this commit, we add `pkgconfig' (Python) and `cython' to the pipeline in order to be able to install `h5py' properly.
2019-04-04Dependency version LaTeX macros written at the end of configureMohammad Akhlaghi-150/+241
Until now, these versions were written in each run. This was mainly inherited from the old days of the pipeline, where we didn't know the software on the host. But now that we have almost everything under control, we can just write these LaTeX macros at the end of the configure script and make `initialize.mk' simpler and also (very slightly!) speed-up/simplify the processing.
2019-04-04Copyright notice on some of the new filesMohammad Akhlaghi-5/+68
The new files that were just added didn't have a copyright. One has been added for them with this commit.
2019-04-04Better option checks and values in the configure scriptMohammad Akhlaghi-27/+29
Double quotes were placed around the checked values so they can have space within them. Also, some checks were added for options that don't accept a value.