From 3c9bf3aff30f02c7d31bd86f36c4db2520f8ffa4 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Fri, 3 May 2024 13:07:41 +0200 Subject: Configuration: no dependency on /bin/sh and useful run-time options SUMMARY: no change necessary in your project, this commit only involves changes in how already-existing software are built. Some handy options have also been added to the top-level project script and the copyright years have been updated. Until now, if the host's '/bin/sh' had conflicts with the Maneage environment, the configuration of Maneage would crash as soon as we entered the building of high-level software. The full scenario is described in the comments of the newly added 'reproduce/software/shell/prep-source.sh'. This is most relevant when building older Maneage'd project in newer environments. With this commit, the following changes were made to avoid the problem above: - Maneage edits the source code of all installed software to replace '/bin/sh' with Maneage's own shell before the programs are built. Through this, we were able to solve the problem described above. - The portable '#!/usr/bin/env sh' shebangs are now used at the start of the scripts that run during configure time so it uses the first available shell that it finds in its PATH (the system's before Dash is built), then Dash, and after Dash is built, Bash. - For TeXLive, since we don't install it from source, it was necessary to add the libraries necessary for the local '/bin/sh' in LD_LIBRARY_PATH. Some high-level options have been added to the './project' script to simplify certain operations: --keep-going: do not stop upon the first crash, but keep going on to build targets until all build-able targets have been built. This is very useful for debugging large pipelines and allows you to isolate the problematic part of your project. --highlight-all: equivalent to calling both '--highlight-new' & '--highlight-notes'. --- reproduce/software/config/servers-backup.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'reproduce/software/config/servers-backup.conf') diff --git a/reproduce/software/config/servers-backup.conf b/reproduce/software/config/servers-backup.conf index 67eff44..d4aa25e 100644 --- a/reproduce/software/config/servers-backup.conf +++ b/reproduce/software/config/servers-backup.conf @@ -3,7 +3,7 @@ # is irrelevant). Note that this is not a to be read as a variable but will # be parsed as a list. # -# Copyright (C) 2020-2023 Mohammad Akhlaghi +# Copyright (C) 2020-2025 Mohammad Akhlaghi # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice and -- cgit v1.2.1 From a55a407c1f2a1b280be78f24abd1fe6d4a8032e2 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Thu, 13 Feb 2025 19:27:57 +0100 Subject: Configuration: new server for tarballs and portability fixed SUMMARY: no change is necessary for your pipeline after upgrading to this commit. Until this commit, the following noteworthy portability problems existed that have been fixed as described in each item. - In commit 8908587 (titled "IMPORTANT: 73 software upgrades and added offline mode"; committed on 2025-02-11); the versions of all (except those that were not updated upstream) basic software as well as the high-level software necessary for Gnuastro were updated. This included Python. However, the update of Python could cause crashes in the Python-related software that are also in Maneage but not tested for that commit. -- With this commit, Python has been revered back to 3.10.6 (from 3.13.2) and it has been taken to a dedicated part of 'versions.conf' (reminding the reader that the version of Python should only be updated by the Python maintainer: to ensure it doesn't conflict with Python-based builds). - Following the update of XZ Utils in 8908587, the custom build recipe that was necessary is no longer necessary. This was reported by Boud Roukema (see https://savannah.nongnu.org/bugs/index.php?62700). -- With this commit, XZ Utils uses our basic high-level build scripts. - CMake could use out-of-Maneage libraries for those that we already had in Maneage on some systems. This was reported by Boud Roukema (see https://savannah.nongnu.org/bugs/?63043) -- With this commit, CMake is built with '--no-system-libs'; so it builds and statically links to all its necessary libraries internally (not confusing between Maneage and the host). - Building Binutils 2.39 was likely to fail on older GCC versions due to special features (such as the 'gprofng' feature when building with GCC 6.2.0). This was reported by Boud Roukema in https://savannah.nongnu.org/bugs/index.php?63242. -- With this commit, the 'gprofng' feature of Binutils has been disabled by default to allow reproducibility on older systems. If you need it, remove the '--enable-gprofng=no' option in the build recipe of Binutils. - The Maneage tarball repository is now also kept in 'gitlab.cefca.es'. -- With this commit, a new server URL has been added for this. - The list of TeXLive packages included some packages that get installed in the basic scheme that we do for the initial setup of TeXLive. -- With this commit, the extra packages have been removed. --- reproduce/software/config/servers-backup.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'reproduce/software/config/servers-backup.conf') diff --git a/reproduce/software/config/servers-backup.conf b/reproduce/software/config/servers-backup.conf index d4aa25e..f0e040e 100644 --- a/reproduce/software/config/servers-backup.conf +++ b/reproduce/software/config/servers-backup.conf @@ -9,6 +9,6 @@ # permitted in any medium without royalty provided the copyright notice and # this notice are preserved. This file is offered as-is, without any # warranty. +http://gitlab.cefca.es/maneage/tarballs-software/-/raw/master/ http://gitlab.com/maneage/tarballs-software/-/raw/master http://git.maneage.org/tarballs-software.git/plain -http://akhlaghi.org/maneage-software -- cgit v1.2.1