aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--README-hacking.md2
-rw-r--r--reproduce/software/config/checksums.conf7
-rw-r--r--reproduce/software/config/versions.conf7
-rw-r--r--reproduce/software/make/basic.mk2
-rwxr-xr-xreproduce/software/shell/tarball-prepare.sh181
6 files changed, 192 insertions, 8 deletions
diff --git a/.gitignore b/.gitignore
index 3ee4ae6..6c46b87 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,6 +17,7 @@
# without any warranty.
*~
+*\#
*.txt
*.aux
*.log
diff --git a/README-hacking.md b/README-hacking.md
index 24a3cea..b721d6d 100644
--- a/README-hacking.md
+++ b/README-hacking.md
@@ -1522,7 +1522,7 @@ for the benefit of others.
# Have a look at the commits in the 'maneage' branch in relation
# with your project.
- $ git log --oneline --graph --decorate --all # General view of branches.
+ $ git log --oneline --graph --all # General view of branches.
# Go to your 'main' branch and import all the updates into
# 'main', don't worry about the printed outputs (in particular
diff --git a/reproduce/software/config/checksums.conf b/reproduce/software/config/checksums.conf
index d8b3a96..7450e6d 100644
--- a/reproduce/software/config/checksums.conf
+++ b/reproduce/software/config/checksums.conf
@@ -2,6 +2,7 @@
#
# Copyright (C) 2018-2022 Mohammad Akhlaghi <mohammad@akhlaghi.org>
# Copyright (C) 2019-2022 Raul Infante-Sainz <infantesainz@gmail.com>
+# Copyright (C) 2022 Pedram Ashofteh Ardakani <pedramardakani@pm.me>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice and
@@ -18,7 +19,7 @@ bash-checksum = 409843172032fbe7ef50004ddc30934e12d864e30935fa501dd8a2792c0c12c9
binutils-checksum = f3c10d8aeb50872278ece6ad31f7369bf12b2d09618812322b35e6750024b45f77fc32d498a9c579df3c152ce3da382f480281743eb5b53639aa287b7166aba3
bzip2-checksum = 929cb1b2d0db8a505e2bafe3ce2c893c8f132dd617c0110e86e19f116b570a85de3c8a635483b530456fc8f8b6698c8190d21313e47607f442807b10489ac86e
cert-checksum = 25b689ebac01ebde136bcef1ef4aa18389fcc618375755001f153b37060cfb327fd6d6afac25d4ddfcf78fd6678fa00ce49ba688e725e4a4c657c37cba4ec3ca
-coreutils-checksum = efdffdeec139e4a7e4033472197145d25400c4cbf6380cb63b18a748934021a977e613a75f018fff23bf506ebdb876b1d79166ba8d3b6077dd1c0a338ef5bff6
+coreutils-checksum = 887ca0ea9e6918c9e959033e625537335902a118af8384a050bbdfadf1c7fa30a92521dd4d9714055d869c1619c20f0f6bcecb89a99f22278a74668b393a5cf0
curl-checksum = af977f4ea4b096d3de8d116cfe4f8abbfe5dad487745b6fbc1b13c2669d2bcfdcafa44c9c4cf89c4fb413b3c0986d4e25ae107d461e6295bf469ae3cbc31bb67
dash-checksum = d8533e3fb29ab00369ee0e4f700a2e5ac2fc11a7c51d83fb93dbbe25d1e06b73718f6f583e368bd232edde41b03b53493657e81dc2e0ce439a9da8e1ed627923
diffutils-checksum = 597cd0a14087722b78469e2238fcee25e78108f53ca43fbff1194d87625b4c7498a205f68c7bb44fcd437b8d642bba263ac40170780aede006076b11956fd06e
@@ -28,7 +29,7 @@ flock-checksum = f711815035e21b46572bf80e730a55822e5abf4cb29749e476ee6cf4d5027e9
gawk-checksum = 682fadd3630d51d13d19443a9a93d4cba1bd6802dd078f1366f17f39d3fa5800f47037b103d742be9254475fdc251d90626f95a2e04b5ace117cfaecebca2281
gcc-checksum = 7f9605b9527799f92b3251968f63e53bd0b74880952f0cbc58ade9b4eee60bac4990ad408c1a6067f7aa36225709061106f0d93bc581ec97711fc5ff6ae15127
gettext-checksum = f3083af79341bfdc849118333c1598812c12bc225d998181694648187088050160deb4777c252f72a7158e914c2967416489bc6167ef8505664497f2fb94ecbf
-git-checksum = 4556c6e4ee5a2f583109c8b8811ca7bc66b1c717be4ffbdec77b6c9da49b2eb3a77fef538ee9a2dc599bfdb2baa0e436ca61f5601225cf80d16333a82ef79d51
+git-checksum = fe41fca911b3f276ac0832c059054c3f51fcc97862d23d47b5bc813a766ef31f431595553f62655360766427ae65debf09f6e2ded318bc8062de2410c359eb51
gmp-checksum = 2bec8840bceaeac542ce1f7870d5b971b631b055b49751ba4f78f98229d7eb9cd97c0a668f6d7cf81a53bf0b3d5d70e682af523f8f0eee0d7390727ff2bbb271
grep-checksum = e8c28da23fcef11825c54794b3eebffd0eaf84b7ebf5e187fd06b5d4aeff2af1ac097f0166151b3f11f332dc72abf6097188d578f549496f4c7c96ccf479a61e
gzip-checksum = 48db13116543ffff39ce03a058e5ca279d93581b8aead3b857c41b0aa3028aa787d5bb21ee18d002565ba3e016fed60d55062b3fd91c41a9877f9f7febc6ae27
@@ -87,7 +88,7 @@ cdsclient-checksum = 24584eedeb84ab4666cbd2ed0b7264c92c63c9cf090595b75b01dd46f84
cfitsio-checksum = 51dc93aecadb08a402898e4c4bacf7a085a9799dda7678aa9e46d3096d51683a49bdb162f18c69b23cba47ffb78a35b11fc41a37f9b559af6da95589d3ad2e67
cmake-checksum = 351ee5d50d65c6048508c3982842e94e74a8eba066adfd348bb4c79f41a26613c0306ea1b49e96d8272ddae3b2680d74caebcd8391a3bf72d702f30f92c48fab
eigen-checksum = 39c1944e0daca50bb01e929edc98e2bfc234accb30ca019dcccfc7b02db5cc81035592be219ae93cc3ec16fe0255e7e4d1f29ca2ad3dfee7e63546c47cb2f807
-emacs-checksum = b1febe6ddbb91983358e41ce5d9f700ed86bff7f30e1c1ced2ee0177272c8fcb12263d77f7fddba301dd9a41eb661e1d3b8e772a016d640a779f4f41c81f5841
+emacs-checksum = 91313dced8cd74f9e4a996eef42806aad00fb2576fc77b3694bb7b670624b6a1551ff49c2a3326dbeeba916e5732ca5975b5dc40b3b063f6e73a22839009abe9
expat-checksum = 526f2ec03978f853ff76a911b5a168f58a7eac83b8405536afe2a6acf4611ebcb96acbc5df809fd18e4edeb7ca5059a3ce56dcbd12cb33eecf742c6361d83d19
fftw-checksum = 28bd2f620399a415181027d30d7ea193aa487c7a277c9943d0051488908fd87e2731de0dfc3bebd22a6121d1deaa46037be8296a8a9cdb711f9fde4510c3d368
flex-checksum = f15c5a1efc78d3de36572ece8ec1694f368ecf13a01ac3851be142bd63e16e9e5c62d10ce9ac586aabcbed533a47d0d97f7c9f467b729d5efa3316c7788230e2
diff --git a/reproduce/software/config/versions.conf b/reproduce/software/config/versions.conf
index 575cdd6..2a27ddd 100644
--- a/reproduce/software/config/versions.conf
+++ b/reproduce/software/config/versions.conf
@@ -2,6 +2,7 @@
#
# Copyright (C) 2018-2022 Mohammad Akhlaghi <mohammad@akhlaghi.org>
# Copyright (C) 2019-2022 Raul Infante-Sainz <infantesainz@gmail.com>
+# Copyright (C) 2022 Pedram Ashofteh Ardakani <pedramardakani@pm.me>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice and
@@ -18,7 +19,7 @@
# CLASS:BASIC (important identifier for 'awk'; don't modify this line)
bash-version = 5.1.8
binutils-version = 2.37
-coreutils-version = 9.0
+coreutils-version = 9.1
curl-version = 7.79.1
dash-version = 0.5.11.5
diffutils-version = 3.8
@@ -28,7 +29,7 @@ flock-version = 0.4.0
gawk-version = 5.1.0
gcc-version = 11.2.0
gettext-version = 0.21
-git-version = 2.34.0
+git-version = 2.36.0
gmp-version = 6.2.1
grep-version = 3.7
gzip-version = 1.11
@@ -105,7 +106,7 @@ cdsclient-version = 3.84
cfitsio-version = 4.0.0
cmake-version = 3.21.4
eigen-version = 3.4.0
-emacs-version = 27.2
+emacs-version = 28.1
expat-version = 2.4.1
fftw-version = 3.3.10
flex-version = 2.6.4
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk
index 1c96b3f..5967a1d 100644
--- a/reproduce/software/make/basic.mk
+++ b/reproduce/software/make/basic.mk
@@ -60,7 +60,7 @@ ibidir = $(BDIR)/software/installed/version-info/proglib
# Ultimate Makefile target. GNU Nano (a simple and very light-weight text
# editor) is installed by default, it is recommended to have it in the
# 'basic.mk', so Maneaged projects can be edited on any system (even when
-# there is no command-line text editor is available).
+# there is no command-line text editor available).
targets-proglib = low-level-links \
gcc-$(gcc-version) \
nano-$(nano-version)
diff --git a/reproduce/software/shell/tarball-prepare.sh b/reproduce/software/shell/tarball-prepare.sh
new file mode 100755
index 0000000..ccc9318
--- /dev/null
+++ b/reproduce/software/shell/tarball-prepare.sh
@@ -0,0 +1,181 @@
+#!/bin/bash
+
+# Script to convert all files (tarballs in any format; just recognized
+# by 'tar') within an 'odir' to a unified '.tar.lz' format.
+#
+# The inputs are assumed to be formatted with 'NAME_VERSION', and only for
+# the names, we are currently assuming '.tar.*' (for the 'sed'
+# command). Please modify/generalize accordingly.
+#
+# It will unpack the source in a certain empty directory with the
+# 'tmpunpack' suffix, and rename the top directory to the requested format
+# of NAME-VERSION also. So irrespective of the name of the top original
+# tarball directory, the resulting tarball's top directory will have a name
+# formatting of NAME-VERSION.
+#
+# Discussion: https://savannah.nongnu.org/task/?15699
+#
+# Copyright (C) 2022 Mohammad Akhlaghi <mohammad@akhlaghi.org>
+# Copyright (C) 2022 Pedram Ashofteh Ardakani <pedramardakani@pm.me>
+# Released under GNU GPLv3+
+
+# Abort the script in case of an error.
+set -e
+
+
+
+
+
+# Default arguments
+odir=
+idir=
+quiet=
+basedir=$PWD
+
+
+# The --help output
+print_help() {
+ cat <<EOF
+Usage: $0 [OPTIONS]
+
+Low-level script to create maneage-standard tarballs.
+
+ -o, --output-dir Target directory to write the packed tarballs.
+ Current: $odir
+
+
+ -i, --input-dir Directory containing original tarballs.
+ Current: $idir
+
+ -q, --quiet Suppress logging information. Only print the
+ final packed file and its sha512sum.
+
+Maneage URL: https://maneage.org
+
+Report bugs: https://savannah.nongnu.org/bugs/?group=reproduce
+EOF
+}
+
+
+
+
+# Parse the arguments
+while [ $# -gt 0 ]
+do
+ case $1 in
+ -q|--quiet) quiet=1; shift;;
+ -h|--help|-'?') print_help; exit 0;;
+ -i|--input-dir)
+ # Remove the trailing '/' introduced by autocomplete
+ idir=$(echo "$2" | sed 's|/$||');
+ shift; # past argument
+ shift;; # past value
+ -o|--output-dir)
+ # Remove the trailing '/' introduced by autocomplete
+ odir=$(echo "$2" | sed 's|/$||');
+ shift; # past argument
+ shift;; # past value
+ *) echo "$0: unknown option '$1'"; exit 1;;
+ esac
+done
+
+
+
+
+# Extract the 'absolute path' to input and output directories. Working with
+# relative path is a great source of confusion and unwanted side-effects
+# like moving/removing files by accident.
+if [ ! -d "$idir" ]; then
+ echo "$0: please pass the input directory (option --input-dir or -i)."
+ exit 1
+else
+ idir=$(realpath $idir)
+fi
+
+if [ ! -d "$odir" ]; then
+ echo "$0: please pass the output directory (option --output-dir or -o)."
+ exit 1
+else
+ odir=$(realpath $odir)
+fi
+
+
+
+
+
+# Unpack and pack all files in the '$idir'
+# ----------------------------------------
+allfiles=$(ls $idir | sort)
+
+# Let user know number of tarballs if its not in quiet mode
+if [ -z $quiet ]; then
+ nfiles=$(ls $idir | wc -l)
+ echo "Found $nfiles file(s) in '$idir/'"
+fi
+
+# Process all files
+for f in $allfiles; do
+
+ # Seperate name and version number
+ name=$(echo $f | sed -e 's/.tar.*//' | \
+ awk 'BEGIN { FS = "[-_ ]" } {print $1 "-" $2}')
+
+ # Skip previously packed files
+ if [ -f $odir/$name.tar.lz ]; then
+
+ # Print the info message if not in quiet mode
+ if [ -z $quiet ]; then
+ echo "$0: skipping '$odir/$name.tar.lz'"
+ fi
+
+ # skip this file
+ continue
+ else
+
+ # Print the info message if not in quiet mode
+ if [ -z $quiet ]; then
+ echo "$0: processing '$idir/$f'"
+ fi
+ fi
+
+ # Create a temporary directory name
+ tmpdir=$odir/$name-tmpunpack
+
+ # If the temporary directory exists, mkdir will throw an error. The
+ # developer needs to intervene manually to fix the issue.
+ mkdir $tmpdir
+
+
+
+
+
+ # Move into the temporary directory
+ # ---------------------------------
+ #
+ # The default output directory for all the following commands: $tmpdir
+ cd $tmpdir
+
+ # Unpack
+ tar -xf $idir/$f
+
+ # Make sure the unpacked tarball is contained within a directory with
+ # the clean program name
+ if [ ! -d "$name" ]; then
+ mv * $name/
+ fi
+
+ # Pack with recommended options
+ tar -c -Hustar --owner=root --group=root \
+ -f $name.tar $name/
+ lzip -9 $name.tar
+
+ # Move the compressed file from the temporary directory to the target
+ # output directory
+ mv $name.tar.lz $odir/
+
+ # Print the sha512sum along with the filename for a quick reference
+ echo $(sha512sum $odir/$name.tar.lz)
+
+ # Clean up the temporary directory
+ rm -r $tmpdir
+done