Age | Commit message (Collapse) | Author | Lines |
|
By default (when you run `make' within CFITSIO), it only builds a static
library. So until now, the template would only install a static version of
this library.
To be more clear about which libraries are used during the linking of
programs that use CFITSIO, it would be helpful to have shared library
versions also. Also, if the system has problems with static libraries (like
macOS systems), then it won't go looking outside the template to link with
them (these paths are hardcoded in the linker, which we don't build on
macOS and just use the system's tools).
With this commit, we are explicity running `make shared' in the CFITSIO
installation to have shared CFITSIO also. I also removed the old `static'
element (which we don't use anymore in any of the programs and have to
remove some time later!).
|
|
With this commit, extra spaces in the definition of two variables in the
`configure' script have been removed. Since they are defined in a
`shell' context (not in `make'), variable assignation is not allow to
have any space at both sides of the `=' character. I detected these
typos when trying to run `./configure' in a particular project.
|
|
Matplotlib can optionally use LaTeX and Ghostscript as dependencies to
render text with LaTeX.
Since we already have their build rules, with this commit, they have been
added as its prerequisites.
|
|
There weren't any conflicts in this merge.
|
|
A title in the checklist was mistakenly using "project" (customized
template) instead of "template".
|
|
With this commit, ImageMagick program has been set as prerequisite of
Matplotlib Python package. Since some submodules of Matplotlib rely on
ImageMagick programs (for example, those to make image animations), and
now we have ImageMagick into the project, it is good to install
ImageMagick when Matplotlib is requested to be installed.
|
|
With this commit, ImageMagick software has been added into the project.
This software is useful to deal and treat images from the command line.
Since it is widely used and a lot of other programs rely on it, it is
worth to have it into the project.
|
|
Until now, the `tex/build' symbolic link was put in the clone/source tree
when the build-directory's `tex' directory was being built. Thanks to
Roberto Baena, we just found a bug because of this behavior: when a second
group member is trying to build the pipeline, since the build directory's
`tex' directory already exists, no `tex/build' will be put in their
clone/source directory. As a result, the PDF building will crash.
To fix this (and keep things organized), the two `tex/build' and `tex/tikz'
links (to the build directory) are now built in the configure step while it
is building all the top-level directories. They are no longer built within
the Makefiles.
Also, a comment was added on top of every directory built during the
configuration phase to be clear.
This fixes bug #56362.
|
|
Until now, the `for-group' script was using the system's `chmod' at the end
of its operation. But when `for-group' reaches this level, we already have
our own custom `chmod'.
With this commit, for a consistent operation, we are now using our custom
`chmod' program for this final step.
|
|
In the previous commits where Metastore's recipe was updated, all the
`TAB's in the recipe were saved as spaces just before the commit (due to a
copying and pasting from the terminal, not the text editor). With this
commit, I am correcting this.
|
|
Until now, the `download-multi-try' script assumed GNU Bash features (when
comparing the number of attempts at downloading), but it didn't explicitly
ask the operating system to be run with Bash. As a result, when weaker
shells were used (like the default Debian minimalist `dash' shell), the `>'
("larger than" operator in a math context) is interpreted a redirection and
two extra files are created: `1' and `maxcount'!
With this commit, we now start this script with `/bin/bash'. Ofcourse, this
will assume that the host has GNU Bash installed, but we are also making
this assumption in the configure script. So atleast for now, Bash (any
version) is a critical dependency of this template anyway.
|
|
Until now, in the recipe to build Metastore, we would store the current
directory in a `current_dir' Bash variable before running `gbuild' to build
Metastore. However, in this Makefile, we aren't using `.ONESHELL'. As a
result, each un-quoted new-line character creates a new shell and the
`current_dir' variable that we used afterwards was empty!
This happened because until recently, Metastore was being built in
`high-level.mk' (where `.ONESHELL' is activated, because we are using GNU
Make to call that Makefile). But in `basic.mk', we are using the host's
Make, which may not be GNU Make, so we can't use any GNU-only features.
Also, this error was hard to notice, because we weren't using `&&' before
writing the final target of Metastore!
With this commit, both this issues are addressed: all the lines in the
recipe are now quoted in the end with a backslash, and the steps before
making the target are separated by `&&', not `;' (which doesn't cause a
crash if the command fails).
This fixes bug #56295.
|
|
Until this commit, Binutils was brough up as a GCC prerequisite two times:
Once as a special (`host_cc') dependency (for when we want to build GCC),
another time as a dependency in every build. The first one is now obsolete:
on MacOS systems where we don't build Binutils, we define its symbolic
links in the same recipe.
With this commit, we remove the first one, so Binutils is always a
dependency of GCC.
|
|
In the warnings output by LaTeX during the building of a project, I noticed
that `csquotes' is recommended for some features of BibLaTeX (a warning was
printed) so it is added with this commit.
|
|
There weren't any conflicts in this merge.
|
|
Until this commit, we were installing `netpbm' without disabling the X
Windows System in GNU/Linux. That is the default option in the configure
step of `netpbm'. However, we are not installing the necessary libraries
(X11) and headers for that. As a consecuence, when testing in a system
where we don't have these libraries/headers (Ubuntu 14.04), it crashes.
With this commit, we disable the X Windows System option in `netpbm' by
giving the answer `none' to one of the last answers to that question in
the configure step.
|
|
Until now the software names and versions in
`reproduce/software/config/installation/versions.mk' were placed such that
all the versions were placed under each other. This had a visual effect,
but since many of the software have shorter names, it could sometimes cause
visual confusion on which number belongs to which software.
Since we recently removed a similar situation with the backslashes, with
this commit, there is only a single space between the variable name, `='
and the version number.
|
|
GCC 9.1 was just released and includes many new optimization features that
can benefit projects in this template also.
Also, the build directory of GCC has been moved inside the unpacked
directory (similar to all the other programs). As a result, while GCC is
being built, the `.build/software/build-tmp' directory will only have one
directory for GCC. Until now, there was one `gcc-build' directory and one
unpacked tarball.
|
|
Since we just download the binary source of TeXLive, we need to keep it up
to date with the server. So it has been incremented to 2019 (TeXLive 2019
was released April 29th).
A note was also added in the Checklist to keep the users informed on how to
update TeXLive if necessary.
|
|
Until this commit, we were installing `cairo' without disabling the X
Windows System. That is the default option in the configure step of
`cairo'. However, we are not installing the necessaries libraries (X11)
and headers for that. As a consecuence, when testing in a system where
we don't have these libraries/headers (Ubuntu 14.04), it crashes.
With this commit, we disable the X Windows System option in `cairo'
configure step by setting the option `--with-x=no'.
|
|
In the last imported work about fixing all backslashes, the extension of
`netpbm' tarball was not the correct one. Now we are using `.tar.gz'
instead of `.tgz'.
With this commit, we fix this typo by replacing the `.tgz' by `.tar.gz'
in the rule of `netpbm'.
|
|
In the recent correction of backslashes, I had missed adding an `&&' before
the `rm' command of the generic CMake building rule (`cbuild' of
`build-rules.mk'). With this commit, this has been corrected.
A multi-threaded Make was also added to build OpenMPI (which takes long and
is often built alone because it takes so long and other things depend on
it) and the HDF5 library.
|
|
The TAB character wasn't used in the second line of the recipe to build
SCAMP. This has been corrected with this commit.
|
|
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'.
|