diff options
Diffstat (limited to 'reproduce/software/shell/tarball-prepare.sh')
-rwxr-xr-x | reproduce/software/shell/tarball-prepare.sh | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/reproduce/software/shell/tarball-prepare.sh b/reproduce/software/shell/tarball-prepare.sh index 472b4c0..09e1c89 100755 --- a/reproduce/software/shell/tarball-prepare.sh +++ b/reproduce/software/shell/tarball-prepare.sh @@ -15,8 +15,8 @@ # # Discussion: https://savannah.nongnu.org/task/?15699 # -# Copyright (C) 2022-2023 Mohammad Akhlaghi <mohammad@akhlaghi.org> -# Copyright (C) 2022-2023 Pedram Ashofteh Ardakani <pedramardakani@pm.me> +# Copyright (C) 2022-2025 Mohammad Akhlaghi <mohammad@akhlaghi.org> +# Copyright (C) 2022-2025 Pedram Ashofteh Ardakani <pedramardakani@pm.me> # Released under GNU GPLv3+ # Abort the script in case of an error. @@ -159,12 +159,19 @@ for f in $allfiles; do name=$(echo $(basename $f) \ | sed -e 's/.tar.*//' -e's/_/-/') + # Lzip will not be available to unpack Lzip itself, so just use Tar. + if [[ $name =~ ^lzip ]]; then + outname=$name.tar + else + outname=$name.tar.lz + fi + # Skip previously packed files - if [ -f $odir/$name.tar.lz ]; then + if [ -f $odir/$outname ]; then # Print the info message if not in quiet mode if [ -z $quiet ]; then - echo "$scriptname: $odir/$name.tar.lz: already present in output directory" + echo "$scriptname: $odir/$outname: already present in output directory" fi # skip this file @@ -206,19 +213,26 @@ for f in $allfiles; do # Put the current date on all the files because some packagers will not # add dates to their release tarballs, resulting in dates of the # Unix-time zero'th second (1970-01-01 at 00:00:00)! - touch $(find "$name"/ -type f) + # -print0 is needed for those tarballs that has paths with spaces. For + # the same reason it's needed also `xargs -0`. (`xargs` is needed also + # for large tarballs such as gcc's) + find "$name"/ -type f -print0 | xargs -0 touch # Pack with recommended options tar -c -Hustar --owner=root --group=root \ -f $name.tar $name/ - lzip -9 $name.tar + + # Lzip will not be available when unpacking Lzip, so we just use Tar. + if [[ ! $name =~ ^lzip ]]; then + lzip -9 $name.tar + fi # Move the compressed file from the temporary directory to the target # output directory - mv $name.tar.lz $odir/ + mv $outname $odir/ # Print the sha512sum along with the filename for a quick reference - echo $(sha512sum $odir/$name.tar.lz) + echo $(sha512sum $odir/$outname) # Clean up the temporary directory rm -rf $tmpdir |