From 79ee52ed1e136fbd2592a5c2a058f73024d8b5b0 Mon Sep 17 00:00:00 2001
From: Mohammad Akhlaghi <mohammad@akhlaghi.org>
Date: Fri, 5 Aug 2022 20:27:56 +0200
Subject: IMPORTANT: Software update

SUMMARY: This is a software update to make Maneage more portable and up to
date. It does not involve any Maneage infrastructure changes. You should
just re-build your project to make sure the updated software haven't
removed/changed any of their features that you were using. In particular,
for Astrometry.net users, please see the respective note in P.S.2 below.

Until now, there have been many updates in the software that are built
within Maneage. The last software upadte was almost one year ago.

With this commit, the software in the P.S.1 have been updated. A
description of notable changes in the software environment is given in
P.S.2. This software environment has been tested on an Arch GNU/Linux,
Debian, CentOS-7 and macOS.

This commit is the merging of 24 individual commits by Raul Infante-Sainz
(who put a lot of energy on porting the software below for macOS, and
updating citations), Boudewijn Roukema (who helped with memory checking for
GCC, and testing on Debian and CentOS), Sepideh Eskandarlou (who tested the
environment) and myself.

Besides the updates in the core software, the followimg improvements have
also been implemented in this commit:

 - When you run './project shell':

   - A welcome message is printed that will remind the caller that they
     have entered a new environment, it will print the location of 'HOME'
     and the location of the shell startup file.

   - The 'reproduce/software/shell/bashrc.sh' is loaded as a startup
     file. This allows you to customize your interactive Maneage shell. A
     default step has already been placed there that will put the git
     branch name (in green) within the shell prompt (which was
     purple). This greatly helps when dealing with directories under Git
     version control. These settings won't bother with Maneage's default
     operations: through environment variables we make sure that these
     './project shell' features will not slow-down the calls to the shell
     within the non-interactive Make calls.

   - The host's 'COLORTERM' is passed to the Maneage environment. It is
     used by some programs that can have color outputs on the terminal.

 - Updates to citations:
   - Numpy and Scipy (as requested on their pages):
     https://numpy.org/citing-numpy and https://scipy.org/citing-scipy
   - Gnuastro: Added https://arxiv.org/abs/1909.11230 which describes major
     updates to Gnuastro after 10 releases.
   - When a software's paper is indexed in the SAO/NASA Astrophysics Data
     System (ADS), Maneage now use the BibTeX entries provided by ADS. This
     helps to give a unified format to most software, and more information
     (like ADS+arXiv hyperlinks in the BibLaTeX compilation of the default
     bibliography).

 - We were able to build this version of Maneage on a Debian system from
   2010 (+12 years ago!). Only three downgrades were necessary in the
   "basic" software (not affecting the high-level science software!). A
   description of the necessary downgrades for such old systems has been
   added in 'README.md'.

P.S.1 List of updated software:

 Basic software:
   cURL                                7.79.1    -->  7.84.0
   Dash                                0.5.11.5  -->  0.5.11-057cd65
   File                                5.41      -->  5.42
   GNU AWK                             5.1.0     -->  5.1.1
   GNU Bash                            5.1.8     -->  5.2-rc2
   GNU Binutils                        2.37      -->  2.39
   GNU Compiler Collection (GCC)       11.2.1    -->  12.1.0
   GNU Findutils                       4.8.0     -->  4.9.0
   GNU Gzip                            1.11      -->  1.12
   GNU Help2man                        1.48.5    -->  1.49.2
   GNU Integer Set Library (ISL)       0.18      -->  0.24
   GNU Libtool                         2.4.6     -->  2.4.7
   GNU Nano                            6.0       -->  6.4
   GNU Readline                        8.1.1     -->  8.2-rc2
   GNU libiconv                        0.16      -->  0.17
   Git                                 2.36.0    -->  2.37.1
   OpenSSL                             3.0.0     -->  3.0.5
   PatchELF                            0.13      -->  0.15.0
   Perl                                5.34.0    -->  5.36.0

 High-level software:
   Astrometry.net                      0.89      -->  0.91
   CFITSIO                             4.0.0     -->  4.1.0
   CMake                               3.21.4    -->  3.24.0
   GNU Astronomy Utilities (Gnuastro)  0.16.1    -->  0.18
   GPL Ghostscript                     9.55.0    -->  9.56.1
   HDF5                                1.10.5    -->  1.13.1
   Libjpeg                             9d        -->  9e
   Libtiff                             4.3.0     -->  4.4.0
   OpenBLAS                            0.3.18    -->  0.3.21
   PLplot                              n/a       -->  5.15.0
   Python                              3.10.0    -->  3.10.6
   SCAMP                               2.6.7     -->  2.10.0
   SWarp                               2.38.0    -->  2.41.5
   Util-Linux                          2.37.2    -->  2.38.1
   Vim                                 8.2       -->  9.0
   WCSLIB                              7.7       -->  7.11

 X.org packages (used by graphical software like Ghostscript and LaTeX):
   Fontconfig                          2.13.94   -->  2.14.0
   LibX11                              1.7.2     -->  1.8
   LibXCB                              1.14      -->  1.15
   XCB-proto                           1.14.1    -->  1.15
   Xorg-proto                          2021.5    -->  2022.1

 Python modules:
   Astropy                             5.0       -->  5.1
   GalSim                              2.3.3     -->  2.3.5

P.S.2: Notable points regarding the software environment:

 - Two new links from the host's low-level tools are now included in
   Maneage's build environment:
   - On GNU/Linux systems, the host's 'ldd' is linked inside the custom
     environment. This belongs to the GNU C Library (which is not yet
     installed in Maneage). But helps in checking the linking status of the
     binaries on GNU/Linux systems.
   - On macOS: the 'codesign' binary is included, which is used by GNU
     Emacs on macOS to sign the built executable.

 - GNU Bison has been moved in basic software (necessary for GNU Binutils).

 - The Zip and Unzip programs have been moved as high-level software that
   have to be manually requested when necessary. This is because they are
   not used by any of the basic software anymore. They were just installed
   as dependencies of GNU Tar to be close the other compression
   programs. Also, in the past we would use the original tarballs, and some
   (for example Numpy) were distributed in Zip format. However, by default,
   we now use a custom Lzip tarball and don't need Zip or Unzip. This was
   suggested by Zahra Sharbaf and Raul Infante-Sainz.

 - Some minor edits in 'reproduce/software/shell/tarball-prepare.sh'. In
   particular the 'awk' command was effectively just replacing a '_' with
   '-', so it just uses a simple SED expression instead.

 - Fixed bug 62700 (https://savannah.nongnu.org/bugs/index.php?62700) by
   compiling 'xz' with a patched version of the xz source file
   'src/liblzma/liblzma.map'.

 - Astrometry.net doesn't depend on NetPBM any more. NetPBM (and its
   dependencies) were causing many crashes on macOS and it also a very
   strange build system that is hard to maintain. Astrometry.net uses it to
   take images as input. However, it isn't necessary when you provide
   Astrometry.net with a catalog. Therefore, Raul added some instructions
   on how to run astrometry from your own custom X-Y catalog. These
   instruction can be seen on top of the build rule of Astrometry.net in
   'reproduce/software/make/high-level.mk'.

 - h5py has been removed as a dependency of Astropy. It is an optional
   dependency to write tables into HDF5 format. But since we couldn't get
   it to build on macOS it has been removed. None of the current Maneage
   users/developers also use this feature of Astropy!

 - PLplot is added a new software, but not a default pre-requisite of SCAMP
   (which can use it to generate figures), because there were many build
   problems on macOS. Instructions have been added on top of SCAMP on how
   to add PLplot as a dependency.

 - With the aim of being able to install Plplot on macOS, we have wrote
   several lines to fix header problems. However, we didn't succeed. In any
   case we are leaving these lines in case they are useful in the future.

 - The '-Wno-nullability-completeness' compiler flag (which is primarily
   necessary for macOS) is now only added for macOS systems. It was causing
   many warnings of un-recognized option in GNU/Linux systems.

 - The 'mkswap' program of Util-Linux has been disabled because it caused
   crashes on older kernels. Generally, its not necessary for a Maneage
   project because it needs root permissions to run!

 - LibXT (of the x.org software) has been added as a dependency of Cairo.

 - ImageMagick and Lzip were using the host's C++ standard library! But on
   GNU/Linux we build our own C++ Standard Library with GCC, so with this
   commit, they properly link with Maneage's C++ standard library.

 - ImageMagick on macOS couldn't properly link with Maneage's Ghostscript
   library! This has been fixed using macOS's install_name_tool.

 - Necessary RAM to build GCC on GNU/Linux systems changed to ~8GB, see
   https://savannah.nongnu.org/task/?16244#comment12

 - Pythran is no longer as prerequisite of Scipy. Until now, Pythran was a
   prerequisite of Scipy. But we noticed that it is optional and was
   causing problems on macOS.

 - The URLs of some of the software have been updated in
   'reproduce/software/config/urls.conf'. By default, these are all
   commented, but they can be useful when searching for new versions or
   when a project needs custom software that is not (yet) in Maneage.
---
 tex/src/references.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'tex')

diff --git a/tex/src/references.tex b/tex/src/references.tex
index b38706b..267b9ab 100644
--- a/tex/src/references.tex
+++ b/tex/src/references.tex
@@ -13,7 +13,7 @@
          {Roukema}, Boudewijn F. and {Khellat}, Mohammadreza and
          {Valls-Gabaud}, David and {Baena-Galle}, Roberto},
         title = "{Toward Long-Term and Archivable Reproducibility}",
-      journal = {Computing in Science and Engineering},
+      journal = {CiSE},
      keywords = {Computer Science - Digital Libraries},
          year = 2021,
         month = may,
-- 
cgit v1.2.1