| Age | Commit message (Collapse) | Author | Lines |
|
Summary: this commit only affects the analysis of your project in case you
used the 'tex-publish-dir' or 'data-publish-dir' directories. They need to
be renamed to 'figdir' and 'drdir' respectively.
Until now, the directories containing the to-be-published data were
described deep in the middle of 'initialize.mk' (away from the other shared
directories), they also had hard-to-use (long) names. Furthermore,
'README-hacking.md' that is the main documentation of Maneage had grown
organically, such that the checklists were scattered across the file and
some things were repeated or not classified clearly. Finally, some
portability issues were reported by Stergios Amarantidis and Diana Korotun.
With this commit, the to-be-published directories have been renamed to the
more simple names of 'figdir' and 'drdir' respectively and their definition
in 'initialize.mk' has come right under the rest of the top-level
directories (to be easily found). Furthermore, the 'README-hacking.md' has
been fully restructured to be easier to navigate and follow for a new
reader. Finally, the portability issues mentioned above have been
addressed:
- Within the '--help' output of './project', the '--keep-going' option was
listed under "Configure and Make options", while it is only relevant as
a Make option. It was therefore moved under Make options.
- We had not explicitly set the locale of Maneage; causing a crash on one
of the newly tested computers (a macOS with a non-C locale) during the
execution of 'prep-source.sh'. With this commit, all the top-level
Makefiles and scripts of Maneage set 'LC_ALL' to 'C' to ensure the same
locale on any system.
- The 'download-multi-try.sh' script would crash when building basic
software in the following scenario: the downloader was still from the
host, but one of its linked libraries had already been installed in
Maneage and conflicted with the host. A step has been added to catch
such cases and remove the Maneage'd library when this was the problem.
- On macOS, we discovered that 'pkg-config' and 'wget' need a Python
installation, so the necessary conditions have been added.
- The 'apptainer.sh' script did not allow passing the '--debug' or
'--host-cc' options to the execution of './project' within the
container.
- Within 'configure.sh', we wrote the absolute path of the downloader to
use in 'LOCAL.conf'. However, we install both downloaders and it is
safer to use Maneage's own downloader when it has been installed. So the
downloader name in 'LOCAL.conf' now only has the name (without its
absolute path).
|
|
Summary: this commit will not affect your analysis: only the version of GCC
has been updated for portability and jq (a JSON parser) has been added.
Until now, several portability issues existed in Maneage, causing problems
mostl on macOS, but some also some on GNU/Linux. They are listed below
along with the fix.
With this commit, the problems mentioned above have been fixed:
- 'pkg-config' on macOS needed some manual steps for a successful
installation. The cause was its improper checks on the macOS "carbon"
library. So we now manually fix this check within the code to fix the
problem. This was found and fixed by Martin Wiesmann.
- Apple chip variants like M1 Pro, M1 Max, M1 Ultra, M2 Pro, etc could not
be properly recognized as a macOS system since we expected a single
word. This was solved by using pattern matching instead. Found and fixed
by Martin Wiesmann.
- macOS's sha512sum wraps the 128-character hex hash across two output
lines (80 + 48 chars) and the command that we used to read the output
would only captured the first 80 characters, so checksums never
matched. The solution was to merge the lines before the check. Found and
fixed by Martin Wiesmann.
- When a checksum failed, the script exited with an error but left the bad
'.unchecked' file on disk. On the next run, the download script saw the
file already existed and skipped downloading entirely. As a result, the
corrupt file was passed to the checksum check again, failing
forever. The fix was to remove the file when we confirmed a bad
download. Found and fixed by Martin Wiesmann.
- When the server of a file returns a HTML output instead of the file we
want, the download script could not detect and would assume that the
download was successful. Therefore, it would always crash with a
checksum error. The fix was to check the first few bytes of the output
and consider it failed if we detect '<html' in them. Found and fixed by
Martin Wiesmann.
- Unzip could not be built due to linking to old C library constructs. The
fix was to edit that part of the code before starting the build. Found
and fixed by Faezeh Bidjarchian.
- top-prepare.mk: in a few cases, we had incorrectly written './project
prepare' (which does not exist!); by Mohammad Akhlaghi.
- Tar's 'acl' features were causing crashes with GCC 16.1.1 on an Arch
GNU/Linux. Since this feature is not relevant in Maneage, the fix was to
disable it; by Mohammad Akhlaghi.
- To disable CFITSIO's fortran library (which could be problematic in
macOS), we were using the wrong command! Found and fixed by Martin
Wiesmann.
- GCC 15.2.0 (the previous version on the 'maneage' branch) needed more
patches to build with deprecated Linux headers (that are no longer
present in Arch GNU/Linux, and will be removed from other distros in due
time). The fix was to upgrade GCC to the latest version of 16.1.0 by
Mohammad Akhlaghi.
- Zenodo is no longer checked at the start of the Maneage
configuration. This is because from early 2025, Zenodo does not allow
having so many files in a single project, as described in this task:
https://savannah.nongnu.org/task/?16621. Therefore many of the new
software (since then) are no longer on Zenodo. Implemented by Mohammad
Akhlaghi.
- initialize.mk: when there was no 'maneage' branch in the project, a
warning was printed when writing the LaTeX macros. However, this is only
relevant when compiling the PDF. So when the user hasn't activated the
PDF creation variable, this warning was not relevant and was just
annoying. The fix was to put a condition and only print it when it can
be useful by Mohammad Akhlaghi.
- README-hacking.md:
- There was no checklist for maintainers; by Mohammad Akhlaghi
- Incorrect arXiv URL to Eskandarlou+2026; found by Boud Roukema.
Furthermore, the jq program has been added to Maneage with this commit; it
is useful when it is necessary to parse/edit JSON files.
|
|
Summary: this commit will not affect your project's software or analysis.
Until now, the ending copyright years of all files in Maneage were
2025. But we have already entered 2026 so it is important to update them.
With this commit, the ending copyright year of all files is changed to
2026.
|
|
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'.
|