From 890858795fd6e0c8c1f3050adec7f4bc78e9e47c Mon Sep 17 00:00:00 2001 From: Giacomo Lorenzetti Date: Tue, 21 Jan 2025 18:57:10 +0100 Subject: IMPORTANT: 73 software upgrades and added offline mode 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. Until now, the software in Maneage had not been updated for almost 2.5 years (since August 2022) and were starting to get dated! Also, when no internet is available (for example in a HPC), the Zenodo check would always cause a crash and needed to be commented manually. With this commit, all the basic software that had been updated as well as the dependencies of Gnuastro (which we commit to maintaining) have been updated after a check of their webpage (see the full list below). To fix the offline issue, a new '--offline' option has been added to the project script. The other following changes were made: - tarball-prepare: has become more resilient (for dealing with file name with spaces or Lzip, which should not be compressed). - Readme: improve documentation when used in Docker. Below you can see the list of basic software that have been updated. The only basic software that have not been updated upstream since the previous Maneage software update are 'bison', 'flock', 'm4', 'pkgconfig', 'unzip' and 'zip'. bash 5.2-rc2 5.2.37 binutils 2.39 2.43.1 coreutils 9.1 9.6 curl 7.84.0 8.11.1 dash 0.5.11-057cd65 0.5.12 diffutils 3.8 3.10 file 5.42 5.46 findutils 4.9.0 4.10.0 gawk 5.1.1 5.3.1 gcc 12.1.0 14.2.0 gettext 0.21 0.23.1 git 2.37.1 2.48.1 gmp 6.2.1 6.3.0 grep 3.7 3.11 gzip 1.12 1.13 help2man 1.49.2 1.49.3 isl 0.24 0.27 less 590 668 libiconv 1.17 1.18 libtool 2.4.7 2.5.4 libunistring 1.0 1.3 libxml2 2.9.12 2.13.5 lzip 1.23 1.25 make 4.3 4.4.1 mpc 1.2.1 1.3.1 mpfr 4.1.0 4.2.1 nano 6.4 8.3 ncurses 6.3 6.5 openssl 3.0.5 3.4.0 perl 5.36.0 5.40.1 podlators 4.14 6.0.2 readline 8.2-rc2 8.2.13 sed 4.8 4.9 tar 1.34 1.35 texinfo 6.8 7.2 wget 1.21.2 1.25.0 which 2.21 2.23 xz 5.2.5 5.6.3 zlib 1.2.11 1.3.1 The high-level software that have been updated. autoconf 2.71 2.72 automake 1.16.5 1.17 cfitsio 4.1.0 4.5.0 cmake 3.24.0 3.31.5 expat 2.4.1 2.6.4 fontconfig 2.14.0 2.16.0 freetype 2.11.0 2.13.3 ghostscript 9.56.1 10.04.0 gnuastro 0.18 0.23 gsl 2.7 2.8 libffi 3.4.2 3.4.7 libgit2 1.3.0 1.9.0 libice 1.0.10 1.1.2 libidn 1.38 1.42 libjpeg 9e 9f libpaper 1.1.28 1.1.29 libpng 1.6.37 1.6.46 libpthread-stubs 0.4 0.5 libsm 1.2.3 1.2.5 libtiff 4.4.0 4.7.0 libxau 1.0.9 1.0.12 libxcb 1.15 1.17 libxdmcp 1.1.3 1.1.5 libxext 1.3.4 1.3.6 libxt 1.2.1 1.3.1 python 3.10.6 3.13.12 util-macros 1.19.3 1.20.2 wcslib 7.11 8.4 xcb-proto 1.15 1.17 xorgproto 2022.1 2024.1 xtrans 1.4.0 1.5.2 --- README.md | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 9599c6b..6e5a2ad 100644 --- a/README.md +++ b/README.md @@ -680,11 +680,11 @@ steps. # If the data or software directories don't exist, put them in the build # directory (they will remain empty, but this helps in simplifiying the # mounting command!). - if ! [ -d $data_dir ]; then + if ! [ x$data_dir = x ]; then data_dir="$build_dir"/data if ! [ -d $data_dir ]; then mkdir $data_dir; fi fi - if ! [ -d $software_dir ]; then + if ! [ x$software_dir = x ]; then software_dir="$build_dir"/tarballs-software if ! [ -d $software_dir ]; then mkdir $software_dir; fi fi @@ -703,7 +703,17 @@ steps. chmod +x docker-run ``` - 8. You can now start the Docker image by executing your newly added + 8. Start the Docker daemon (root permissions required). If the operating + system uses systemd you can use the command below. If you want the + Docker daemon to be available after a reboot also (so you don't have + to restart it after turning off your computer), run this command again + but replacing `start` with `enable`. + + ```shell + systemctl start docker + ``` + + 9. You can now start the Docker image by executing your newly added script like below (it will ask for your root password). You will notice that you are in the Docker container with the changed prompt. @@ -711,7 +721,7 @@ steps. ./docker-run ``` - 9. You are now within the container. First, we'll add the GNU C and C++ + 10. You are now within the container. First, we'll add the GNU C and C++ compilers (which are necessary to build our own programs in Maneage) and the GNU WGet downloader (which may be necessary if you don't have a core software's tarball already). Maneage will build pre-defined @@ -735,7 +745,7 @@ steps. source ~/.bashrc ``` - 10. Now that the compiler is ready, we can start Maneage's + 11. Now that the compiler is ready, we can start Maneage's configuration. So let's go into the project source directory and run these commands to build the software environment. @@ -746,7 +756,7 @@ steps. --software-dir=/home/maneager/tarballs-software ``` - 11. After the configuration finishes successfully, it will say so. It will + 12. After the configuration finishes successfully, it will say so. It will then ask you to run `./project make`. **But don't do that yet**. Keep this Docker container open and don't exit the container or terminal. Open a new terminal, and follow the steps described in the @@ -759,13 +769,13 @@ steps. docker image list # In the other terminal. ``` - 12. Now that you have safely "committed" your current Docker container + 13. Now that you have safely "committed" your current Docker container into a separate Docker image, you can **exit the container** safely with the `exit` command. Don't worry, you won't loose the built software environment: it is all now saved separately within the Docker image. - 13. Re-open your `docker-run` script and change `MANEAGEBASE` to + 14. Re-open your `docker-run` script and change `MANEAGEBASE` to `MY-PROJECT-ENV` (or any other name you set for the environment you committed above). @@ -773,7 +783,7 @@ steps. emacs docker-run ``` - 14. That is it! You can now always easily enter your container (only for + 15. That is it! You can now always easily enter your container (only for the software environemnt) with the command below. Within the container, any file you save/edit in the `source` directory of the docker container is the same file on your host OS and any file you @@ -787,7 +797,7 @@ steps. ./docker-run ``` - 15. In case you want to store the image as a single file as backup or to + 16. In case you want to store the image as a single file as backup or to move to another computer, you can run the commands below. They will produce a single `project-env.tar.gz` file. @@ -796,7 +806,7 @@ steps. gzip --best project-env.tar ``` - 16. To load the tarball above into a clean docker environment (for example + 17. To load the tarball above into a clean docker environment (for example on another system) copy the `my-project-env.tar.gz` file there and run the command below. You can then create the `docker-run` script for that system and run it to enter. Just don't forget that if your -- cgit v1.2.1