Age | Commit message (Collapse) | Author | Lines |
|
Recently, after the installation of Coreutils, we added a step to manually
run PatchELF over all the contents of the `$(ibdir)'. However, after a
fresh test, this method failed: because while PatchELF was updating `mv',
another program that was using `mv' couldn't do so and crashed.
To fix this problem, Coreutils is now installed in a dummy directory also
and the exact files that need `rpath' are identified and PatchELF is run on
them (to be clean). Also, higher-level `basic.mk' software (higher-level
than Bash), were re-organized so they depend on Coreutils. With this, we
are no sure that when Coreutils is being built, it is the only program that
is being built and PatchELF won't interfere with any other program.
Also, OpenSSL and CMake were set to be bulit in parallel to speed up their
build.
|
|
Especially because of the new convention regarding backslashes, there were
many conflicts that are now fixed. But none were substantial.
|
|
When we need to quote the new-line character we end the line with a
backslash (`\'). Until now, our convention has been to put all such
backslashes under each other to help in visual inspection.
But this causes a lot of confusion in version control: if only one line's
length is larger, the whole block will be marked as changed and thus makes
it hard to visually see the actual change. It also makes debuging the code
(adding some temporary lines) hard.
With this commit, I went through all the files and tried to fix all such
cases so only a single white space character is between the last command
character and the backslash. Where there was an empty line (ending with a
backslash, to help in visually separating the code into blocks), I put the
backslash right under the previous line's.
This completes task #15259.
|
|
Until now, to test if GCC can use `sys/cdefs.h', we were building
a small test program using it. But after testing on an Ubuntu 14.04,
we noticed that the GCC test during the configure script passes, but
GCC still can't be built. After some investigation we noticed its
available in other directories, but during the build of GCC, those
directories aren't used, and it only assumes it to be under
`/usr/include'. So with this commit, we are only checking this
particular location for this header, not a test run of GCC.
After fixing this, we noticed that GCC's build crashed again because
it couldn't link with `libc.a' (or `libc.so'). So we also added a
for this library and added a new warning to inform the user what they
might be able to do.
Finally, we noticed that in one of the last steps of building GCC,
we weren't using `&&', but `;', so the GCC name file would be
built, even when the GCC build failed.
|
|
Even though the Coreutils configure script says that it adds `rpath' to its
executables, its executables don't have it. As a result, it goes to use the
host operating system libraries, causing failures when they don't match
with the template.
Unfortunately after some tests with the configure script, I couldn't find
any way to include `rpath'! Even though `-rpath-link' is present in all
linking commands during Coreutils' build, the installed files still don't
have it!
So I was forced to use PatchELF. However, one problem is that Coreutils
installs many programs, not just one like Bash or AWK.
As a brute-force solution, with this commit, we are running PatchELF on all
the installed programs. It won't hurt those that already have it, but it
will fix all those that don't.
With this commit, I am also making the following non-related small changes:
- In `build-rules.mk', the `&&' characters were placed at the start of the
line for better readability.
- Bash, Readline and NCURSES are now built in parallel on systems that
support it (during `basic.mk').
|
|
Until this commit, `m4' was not a prerequisite of `gmp'. However, during
a test in Ubuntu 14.04 using one single core in the configure step, it
crashed complaining about not having `m4' installed.
With this commit, we set `m4' as a prerequisite of `gmp'.
|
|
In some rules there were some spaces when we should use TAB, and
also the other way around. We were using TAB instead using spaces.
With this commit, we fix that spaces/TAB in the necessary rules.
|
|
Until now, we were missing `numpy' and `six' as prerequisites of `h5py'.
Because we did the configure step with all cores, `numpy' and `six'
allways were built before `h5py' with any crash. However, in a single
thread configure run we noticed that we were missing these two
dependencies.
With this commit, we fix this issue by setting `numpy' and `six' as
prerequisites of `h5py'.
|
|
With this commit, the copyright information of some files have been
modify in order to include the work of Raul Infante-Sainz.
|
|
Until this commit, the prerequisites of `sip_tpv' were `mpmath' and
`sympy'. However, the real prerequisites of `sip_tpv' are `astropy',
`numpy' and `sympy'.
With this commit, we fix this issue, and now `mpmath' is only a
prerequisite of `sympy'.
|
|
In a few cases, `reproduce/analysis/make/initialize.mk' still assumed the
old architecture. With this commit, they have been corrected.
|
|
Until this commit, we had a problem in the installation of
Astrometry-net in Mac OS systems. During the runing of the Makefile, it
stopped at the reporting stage because it tried to do a couple of steps
that in Mac OS are not possible:
$ cat /proc/cpuinfo
$ free
The reason is that `/proc/cpuinfo' and `free' doesn't exist in Mac OS.
With this commit, we override these two steps. Since they are only for
reporting, they are not mandatory. So, we avoid doing them by using
`sed' before running the Makefile.
|
|
Until this commit, we were using `libpng' version 1.4.22 (out dated).
The reason is that with `libpng` versions > 1.5, there was some
problems with `netpbm'. But we have update `netpbm' version and now
there is no conflict betweem them.
With this commit, we increase the version of `libpng' to have the most
recent one.
|
|
Until now, we installed `netpbm' by setting the default paths to
libraries and headers. That worked fine for GNU/Linux systems, however,
in Mac OS systems we have to explicity say to `netpbm' questions what
are the paths to the libraries and headers. We found this problem
because we tried to run `solve-field' to obtain the astrometry of some
images, and then it goes to use `pnmfile', a program that failed because
it was not properly linked with `libnetpmb'.
With this commit, we fix this problem by answering properly the
questions in the configure step of `netpbm' and setting explicity where
we want to place the libraries and headers. With this commit, we also
update `netpbm' version. To do that, we have to download the last
version, for which it doesn't exist a tarball. So, we built this tarball
and put it in the Mohammad's webpage.
|
|
Until this commit, in Mac OS we were installing `binutils' as symbolic
links of various programs (`as', `ar', `ld', `nm',` ps' and `ranlib').
However, there was a missing semicolon at the end of each line. As a
consecuence, the installation of `binutils' on Mac OS systems failed.
With this commit, we fix this problem by typing a semicolon at the end
of each makelink line.
|
|
Until this commit, FFTW was installed by default, without the single
precission option. However, when installing `sextractor' in a new system
we found an error in the installation complaining about not having
single precission files of FFTW. More explicity the error was: "FFTW
single precision library files not found in [...]".
With this commit, we fix this problem by passing the option
`--enable-single' in the installation of FFTW.
|
|
The BibTeX data for `sip_tpv' didn't have a copyright notice, so one was
added for it.
|
|
There wasn't any conflict in this merge.
|
|
Until now, we were not citing the paper of `sip_tpv' package.
With this commit, we have been fix this issue.
|
|
With this commit, we let the Python package `sip_tpv' to be optional in
order to not install it by default. It is a very specific package and I
forgot to remove it from `TARGETS.mk' in the previous commit.
|
|
With this commit, we add `sip_tpv' Python package into the template.
This is a small package to convert SIP distorsion coefficients into PV
distorsion coefficients, and the other way around.
This package is useful in a astronomical context, specially when `swarp'
is going to be used in order to resample images. The reason is that
`swarp' only can understand PV distorsion coefficients.
|
|
With this commit, we add `sympy' Python package into the template. This
is a package to do symbolic mathematics.
The motivation is that it is a prerequisite of `sip_tpv' Python package,
which is useful to convert SIP distorsion coefficients into PV
coefficients (in the context of astronomical images). However, the
availability of `sympy' in the template will be useful for anyone
interested in this package.
|
|
With this commit, we add `mpmath' Python package into the template. This
package is a prerequisite of `sympy', a package to do symbolic
mathematics.
The motivation of adding this package is because it is a dependency of
`sympy', which is more widely used into the Python science community.
|
|
Until now we were using the official tarball of GNU Bash. However, Bash is
distributed using patches, not a public version controlled history. So to
implement newer features of Bash, its necessary to apply those patches and
make the tarball ourselves.
With this commit, we have done just that: we used the 7 patches that have
been released since version 5.0.0 and made a tarball to use for this
template. The instructions on how to make the patched tarball are also
given above the Bash build rule.
|
|
Until now, `metastore' did not depend on the necessaries programs that
we use to install it (`awk', `coreutils' and `sed'). They are not
official dependencies of `metastore', but we need them to install it.
With this commit, we put these programs as prerequisites of `metastore'
in order to be able to install it without any problem.
|
|
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.
|
|
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'.
|
|
With this commit, Raul's work on the installation of several astronomy
software is implemented in the main template.
|
|
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.
|
|
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.
|
|
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.
|
|
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'.
|
|
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.
|
|
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'.
|
|
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.
|
|
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.
|
|
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.
|
|
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'.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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'.
|
|
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).
|
|
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.
|
|
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.
|
|
Until now we weren't including the citation for FFTW (one of the template's
optional packages). With this commit, it is added.
|
|
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.
|
|
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.
|
|
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).
|