Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package makeself for openSUSE:Factory 
checked in at 2021-07-10 22:54:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/makeself (Old)
 and      /work/SRC/openSUSE:Factory/.makeself.new.2625 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "makeself"

Sat Jul 10 22:54:54 2021 rev:14 rq:905595 version:2.4.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/makeself/makeself.changes        2021-02-01 
13:30:59.130348484 +0100
+++ /work/SRC/openSUSE:Factory/.makeself.new.2625/makeself.changes      
2021-07-10 22:55:26.947320185 +0200
@@ -1,0 +2,9 @@
+Sat Jul 10 13:09:58 UTC 2021 - Ferdinand Thiessen <r...@fthiessen.de>
+
+- Update to 2.4.5
+  * Fix some issues with the compatibility of the archives
+  * Reversing the previous generation of strictly POSIX tar archives.
+  * Fix possible incompatibilities with the default ustar TAR format
+  * Introducing a new --tar-format option when creating the format
+
+-------------------------------------------------------------------

Old:
----
  makeself-2.4.3.tar.gz

New:
----
  makeself-2.4.5.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ makeself.spec ++++++
--- /var/tmp/diff_new_pack.TblYP1/_old  2021-07-10 22:55:27.327317252 +0200
+++ /var/tmp/diff_new_pack.TblYP1/_new  2021-07-10 22:55:27.331317221 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package makeself
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 # Copyright (c) 2011-2017 Malcolm J Lewis <malcolmle...@opensuse.org>
 #
 # All modifications and additions to the file contributed by third parties
@@ -18,7 +18,7 @@
 
 
 Name:           makeself
-Version:        2.4.3
+Version:        2.4.5
 Release:        0
 Summary:        Make self-extractable archives on Unix
 License:        GPL-2.0-or-later

++++++ makeself-2.4.3.tar.gz -> makeself-2.4.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/.github/workflows/build.yml 
new/makeself-release-2.4.5/.github/workflows/build.yml
--- old/makeself-release-2.4.3/.github/workflows/build.yml      2021-01-16 
14:33:11.000000000 +0100
+++ new/makeself-release-2.4.5/.github/workflows/build.yml      2021-06-23 
14:00:42.000000000 +0200
@@ -29,12 +29,83 @@
     - name: Upload build artifact
       uses: actions/upload-artifact@v1
       with:
-        name: Makeself-Build
+        name: Makeself-Build-${{ runner.os }}
         path: release
         
     - name: Run tests
       run: make test
 
+  test-freebsd:
+    needs: test
+    runs-on: macos-latest
+    name: Test Makeself on FreeBSD
+    steps:
+    - name: Checkout Makeself
+      uses: actions/checkout@v2
+    - name: Install git submodules
+      run: git submodule update --init --recursive
+    - name: Download Linux-built artifact
+      uses: actions/download-artifact@v2
+      with:
+        name: Makeself-Build-Linux
+        path: linux
+    - name: Download Mac-built artifact
+      uses: actions/download-artifact@v2
+      with:
+        name: Makeself-Build-macOS
+        path: mac
+    - name: Download Windows-built artifact
+      uses: actions/download-artifact@v2
+      with:
+        name: Makeself-Build-Windows
+        path: windows
+    - name: Test on FreeBSD
+      uses: vmactions/freebsd-vm@v0.1.4
+      with:
+        usesh: true
+        prepare: pkg install -y pbzip2 bash
+        run: |
+          pwd; freebsd-version
+          sh ./linux/makeself*.run --target /tmp/makeself-linux
+          sh ./mac/makeself*.run --target /tmp/makeself-mac
+          sh ./windows/makeself*.run --target /tmp/makeself-windows
+
+  test-solaris:
+    needs: test
+    runs-on: macos-latest
+    name: Test Makeself on Solaris
+    steps:
+    - name: Checkout Makeself
+      uses: actions/checkout@v2
+    - name: Install git submodules
+      run: git submodule update --init --recursive
+    - name: Download Linux-built artifact
+      uses: actions/download-artifact@v2
+      with:
+        name: Makeself-Build-Linux
+        path: linux
+    - name: Download Mac-built artifact
+      uses: actions/download-artifact@v2
+      with:
+        name: Makeself-Build-macOS
+        path: mac
+    - name: Download Windows-built artifact
+      uses: actions/download-artifact@v2
+      with:
+        name: Makeself-Build-Windows
+        path: windows
+    - name: Test on Solaris
+      uses: vmactions/solaris-vm@v0.0.3
+      with:
+        mem: 2048
+        prepare: pkgutil -y -i pbzip2
+        run: |
+          pwd
+          sh ./linux/makeself*.run --target /tmp/makeself-linux
+          sh ./mac/makeself*.run --target /tmp/makeself-mac
+          sh ./windows/makeself*.run --target /tmp/makeself-windows
+
+
   lint:
     runs-on: ubuntu-latest
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/Makefile 
new/makeself-release-2.4.5/Makefile
--- old/makeself-release-2.4.3/Makefile 2021-01-16 14:33:11.000000000 +0100
+++ new/makeself-release-2.4.5/Makefile 2021-06-23 14:00:42.000000000 +0200
@@ -1,10 +1,5 @@
 .PHONY: all clean test help
 
-define NL
-
-
-endef
-
 VERSION := $(shell cat VERSION)
 OUTPUT  := makeself-$(VERSION).run
 
@@ -17,15 +12,7 @@
        $(RM) makeself-*.run
 
 test:
-       $(foreach f, \
-               $(notdir $(sort $(filter-out test/bashunit,$(wildcard 
test/*)))), \
-               cd test; \
-               if ! ./$(f); then \
-                       echo; \
-                       echo "*** ERROR: Test '$(f)' failed!"; \
-                       echo; \
-                       exit 1; \
-               fi$(NL))
+       ./run-tests.sh
 
 help:
        $(info Targets: all $(OUTPUT) clean test help)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/README.md 
new/makeself-release-2.4.5/README.md
--- old/makeself-release-2.4.3/README.md        2021-01-16 14:33:11.000000000 
+0100
+++ new/makeself-release-2.4.5/README.md        2021-06-23 14:00:42.000000000 
+0200
@@ -103,6 +103,7 @@
     * **`--nomd5`** and **`--nocrc`** : Disable the creation of a MD5 / CRC 
checksum for the archive. This speeds up the extraction process if integrity 
checking is not necessary.
     * **`--sha256`** : Adds a SHA256 checksum for the archive. This is in 
addition to the MD5 / CRC checksums unless `--nomd5` is also used.
     * **`--lsm` _file_** : Provide and LSM file to makeself, that will be 
embedded in the generated archive. LSM files are describing a software package 
in a way that is easily parseable. The LSM entry can then be later retrieved 
using the `--lsm` argument to the archive. An example of a LSM file is provided 
with Makeself.
+    * **`--tar-format opt`** : Specify the tar archive format (default is 
ustar); you may use any value accepted by your tar command (such as posix, v7, 
etc).
     * **`--tar-extra opt`** : Append more options to the tar command line.
 
         For instance, in order to exclude the `.git` directory from the 
packaged archive directory using the GNU `tar`, one can use `makeself.sh 
--tar-extra "--exclude=.git" ...`
@@ -115,7 +116,7 @@
   * `archive_dir` is the name of the directory that contains the files to be 
archived
   * `file_name` is the name of the archive to be created
   * `label` is an arbitrary text string describing the package. It will be 
displayed while extracting the files.
-  * `startup_script` is the command to be executed _from within_ the directory 
of extracted files. Thus, if you wish to execute a program contain in this 
directory, you must prefix your command with `./`. For example, `./program` 
will be fine. The `script_args` are additional arguments for this command.
+  * `startup_script` is the command to be executed _from within_ the directory 
of extracted files. Thus, if you wish to execute a program contained in this 
directory, you must prefix your command with `./`. For example, `./program` 
will be fine. The `script_args` are additional arguments for this command.
 
 Here is an example, assuming the user has a package image stored in a 
**/home/joe/mysoft**, and he wants to generate a self-extracting package named
 **mysoft.sh**, which will launch the "setup" script initially stored in 
/home/joe/mysoft :
@@ -205,6 +206,9 @@
   * **v2.3.1:** Various compatibility updates. Added unit tests for Travis CI 
in the GitHub repo. New `--tar-extra`, `--untar-extra`, `--gpg-extra`, 
`--gpg-asymmetric-encrypt-sign` options.
   * **v2.4.0:** Added optional support for SHA256 archive integrity checksums.
   * **v2.4.2:** New --cleanup and --cleanup-args arguments for cleanup 
scripts. Added threading support for supported compressors. Now supports zstd 
compression.
+  * **v2.4.3:** Make explicit POSIX tar archives for increased compatibility.
+  * **v2.4.4:** Fixed various compatibility issues (no longer use POSIX tar 
archives), Github Actions to check on Solaris and FreeBSD.
+  * **v2.4.5:** Added `--tar-format` option to set the tar archive format 
(default is ustar)
 
 ## Links
 
@@ -233,7 +237,7 @@
    [6]: http://earth.google.com/
    [7]: http://www.virtualbox.org/
    [8]: http://www.gnu.org/copyleft/gpl.html
-   [9]: 
https://github.com/megastep/makeself/releases/download/release-2.4.2/makeself-2.4.2.run
+   [9]: 
https://github.com/megastep/makeself/releases/download/release-2.4.5/makeself-2.4.5.run
    [10]: https://github.com/megastep/makeself
    [11]: https://github.com/megastep/loki_setup/
    [12]: http://www.unrealtournament2003.com/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/VERSION 
new/makeself-release-2.4.5/VERSION
--- old/makeself-release-2.4.3/VERSION  2021-01-16 14:33:11.000000000 +0100
+++ new/makeself-release-2.4.5/VERSION  2021-06-23 14:00:42.000000000 +0200
@@ -1 +1 @@
-2.4.3
+2.4.5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/make-release.sh 
new/makeself-release-2.4.5/make-release.sh
--- old/makeself-release-2.4.3/make-release.sh  2021-01-16 14:33:11.000000000 
+0100
+++ new/makeself-release-2.4.5/make-release.sh  2021-06-23 14:00:42.000000000 
+0200
@@ -4,6 +4,6 @@
 
 VER=`cat VERSION`
 mkdir -p /tmp/makeself-$VER release
-cp -a makeself* test README.md COPYING VERSION .gitmodules /tmp/makeself-$VER/
+cp -pPR makeself* test README.md COPYING VERSION .gitmodules 
/tmp/makeself-$VER/
 ./makeself.sh --notemp /tmp/makeself-$VER release/makeself-$VER.run "Makeself 
v$VER" echo "Makeself has extracted itself" 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/makeself-header.sh 
new/makeself-release-2.4.5/makeself-header.sh
--- old/makeself-release-2.4.3/makeself-header.sh       2021-01-16 
14:33:11.000000000 +0100
+++ new/makeself-release-2.4.5/makeself-header.sh       2021-06-23 
14:00:42.000000000 +0200
@@ -11,6 +11,7 @@
 CRCsum="$CRCsum"
 MD5="$MD5sum"
 SHA="$SHAsum"
+SIGNATURE="$Signature"
 TMPROOT=\${TMPDIR:=/tmp}
 USER_PWD="\$PWD"
 export USER_PWD
@@ -63,11 +64,13 @@
 
 MS_PrintLicense()
 {
+  PAGER=\${PAGER:=more}
   if test x"\$licensetxt" != x; then
-    if test x"\$accept" = xy; then
-      echo "\$licensetxt"
+    PAGER_PATH=\`exec <&- 2>&-; which \$PAGER || command -v \$PAGER || type 
\$PAGER\`
+    if test -x "\$PAGER_PATH"; then
+      echo "\$licensetxt" | \$PAGER
     else
-      echo "\$licensetxt" | more
+      echo "\$licensetxt"
     fi
     if test x"\$accept" != xy; then
       while true
@@ -161,6 +164,7 @@
   \$0 --lsm    Print embedded lsm entry (or no LSM)
   \$0 --list   Print the list of files in the archive
   \$0 --check  Checks integrity of the archive
+  \$0 --verify-sig key Verify signature agains a provided key id
 
  2) Running \$0 :
   \$0 [options] [--] [additional arguments to embedded script]
@@ -190,6 +194,31 @@
 EOH
 }
 
+MS_Verify_Sig()
+{
+    GPG_PATH=\`exec <&- 2>&-; which gpg || command -v gpg || type gpg\`
+    MKTEMP_PATH=\`exec <&- 2>&-; which mktemp || command -v mktemp || type 
mktemp\`
+    test -x "\$GPG_PATH" || GPG_PATH=\`exec <&- 2>&-; which gpg || command -v 
gpg || type gpg\`
+    test -x "\$MKTEMP_PATH" || MKTEMP_PATH=\`exec <&- 2>&-; which mktemp || 
command -v mktemp || type mktemp\`
+       offset=\`head -n "\$skip" "\$1" | wc -c | tr -d " "\`
+    temp_sig=\`mktemp -t XXXXX\`
+    echo \$SIGNATURE | base64 --decode > "\$temp_sig"
+    gpg_output=\`MS_dd "\$1" \$offset \$totalsize | LC_ALL=C "\$GPG_PATH" 
--verify "\$temp_sig" - 2>&1\`
+    gpg_res=\$?
+    rm -f "\$temp_sig"
+    if test \$gpg_res -eq 0 && test \`echo \$gpg_output | grep -c Good\` -eq 
1; then
+        if test \`echo \$gpg_output | grep -c \$sig_key\` -eq 1; then
+            test x"\$quiet" = xn && echo "GPG signature is good" >&2
+        else
+            echo "GPG Signature key does not match" >&2
+            exit 2
+        fi
+    else
+        test x"\$quiet" = xn && echo "GPG signature failed to verify" >&2
+        exit 2
+    fi
+}
+
 MS_Check()
 {
     OLD_PATH="\$PATH"
@@ -288,9 +317,9 @@
 UnTAR()
 {
     if test x"\$quiet" = xn; then
-               tar \$1vf - $UNTAR_EXTRA 2>&1 || { echo " ... Extraction 
failed." > /dev/tty; kill -15 \$$; }
+               tar \$1vf - $UNTAR_EXTRA 2>&1 || { echo " ... Extraction 
failed." >&2; kill -15 \$$; }
     else
-               tar \$1f - $UNTAR_EXTRA 2>&1 || { echo Extraction failed. > 
/dev/tty; kill -15 \$$; }
+               tar \$1f - $UNTAR_EXTRA 2>&1 || { echo Extraction failed. >&2; 
kill -15 \$$; }
     fi
 }
 
@@ -320,6 +349,7 @@
 verbose=n
 cleanup=y
 cleanupargs=
+sig_key=
 
 initargs="\$@"
 
@@ -405,7 +435,7 @@
        --tar)
        offset=\`head -n "\$skip" "\$0" | wc -c | tr -d " "\`
        arg1="\$2"
-    if ! shift 2; then MS_Help; exit 1; fi
+    shift 2 || { MS_Help; exit 1; }
        for s in \$filesizes
        do
            MS_dd "\$0" \$offset \$s | MS_Decompress | tar "\$arg1" - "\$@"
@@ -417,6 +447,11 @@
        MS_Check "\$0" y
        exit 0
        ;;
+    --verify-sig)
+    sig_key="\$2"
+    shift 2 || { MS_Help; exit 1; }
+    MS_Verify_Sig "\$0"
+    ;;
     --confirm)
        verbose=y
        shift
@@ -437,7 +472,7 @@
     --target)
        keep=y
        targetdir="\${2:-.}"
-    if ! shift 2; then MS_Help; exit 1; fi
+    shift 2 || { MS_Help; exit 1; }
        ;;
     --noprogress)
        noprogress=y
@@ -476,11 +511,11 @@
            exit 1
        fi
        decrypt_cmd="\$decrypt_cmd -pass \$2"
-       if ! shift 2; then MS_Help; exit 1; fi
+    shift 2 || { MS_Help; exit 1; }
        ;;
     --cleanup-args)
     cleanupargs="\$2"
-    if ! shift 2; then MS_help; exit 1; fi
+    shift 2 || { MS_Help; exit 1; }
     ;;
     --)
        shift
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/makeself.1 
new/makeself-release-2.4.5/makeself.1
--- old/makeself-release-2.4.3/makeself.1       2021-01-16 14:33:11.000000000 
+0100
+++ new/makeself-release-2.4.5/makeself.1       2021-06-23 14:00:42.000000000 
+0200
@@ -1,4 +1,4 @@
-.TH "MAKESELF" "1" "2.1.6"
+.TH "MAKESELF" "1" "2.4.5"
 .SH "NAME"
 makeself \- An utility to generate self-extractable archives.
 .SH "SYNTAX"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/makeself.lsm 
new/makeself-release-2.4.5/makeself.lsm
--- old/makeself-release-2.4.3/makeself.lsm     2021-01-16 14:33:11.000000000 
+0100
+++ new/makeself-release-2.4.5/makeself.lsm     2021-06-23 14:00:42.000000000 
+0200
@@ -1,6 +1,6 @@
 Begin3
 Title:          makeself.sh
-Version:        2.3.0
+Version:        2.4.5
 Description:    makeself.sh is a shell script that generates a 
self-extractable        
                 tar.gz archive from a directory. The resulting file appears as 
a shell          
                 script, and can be launched as is. The archive will then 
uncompress
@@ -10,7 +10,7 @@
 Keywords:       Installation archive tar winzip
 Author:         Stephane Peter (megas...@megastep.org)
 Maintained-by:  Stephane Peter (megas...@megastep.org)
-Original-site:  http://makeself.io/
+Original-site:  https://makeself.io/
 Platform:       Unix
 Copying-policy: GPL
 End
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/makeself.sh 
new/makeself-release-2.4.5/makeself.sh
--- old/makeself-release-2.4.3/makeself.sh      2021-01-16 14:33:11.000000000 
+0100
+++ new/makeself-release-2.4.5/makeself.sh      2021-06-23 14:00:42.000000000 
+0200
@@ -8,7 +8,7 @@
 # a small Shell script stub that uncompresses the archive to a temporary
 # directory and then executes a given script from withing that directory.
 #
-# Makeself home page: http://makeself.io/
+# Makeself home page: https://makeself.io/
 #
 # Version 2.0 is a rewrite of version 1.0 to make the code easier to read and 
maintain.
 #
@@ -71,6 +71,7 @@
 # - 2.4.2 : Add support for threads for several compressors. (M. Limber)
 #           Added zstd support.
 # - 2.4.3 : Make explicit POSIX tar archives for increased compatibility.
+# - 2.4.5 : Added --tar-format to override ustar tar archive format
 #
 # (C) 1998-2021 by Stephane Peter <megas...@megastep.org>
 #
@@ -79,7 +80,7 @@
 # Self-extracting archives created with this script are explictly NOT released 
under the term of the GPL
 #
 
-MS_VERSION=2.4.3
+MS_VERSION=2.4.5
 MS_COMMAND="$0"
 unset CDPATH
 
@@ -146,6 +147,7 @@
     echo "    --nooverwrite      : Do not extract the archive if the specified 
target directory exists"
     echo "    --current          : Files will be extracted to the current 
directory"
     echo "                         Both --current and --target imply --notemp"
+    echo "    --tar-format opt   : Specify a tar archive format (default is 
ustar)"
     echo "    --tar-extra opt    : Append more options to the tar command line"
     echo "    --untar-extra opt  : Append more options to the during the 
extraction of the tar archive"
     echo "    --nomd5            : Don't calculate an MD5 for archive"
@@ -158,6 +160,7 @@
     echo "    --nox11            : Disable automatic spawn of a xterm"
     echo "    --nowait           : Do not wait for user input after executing 
embedded"
     echo "                         program from an xterm"
+    echo "    --sign passphrase  : Signature private key to sign the package 
with"
     echo "    --lsm file         : LSM file describing the package"
     echo "    --license file     : Append a license file"
     echo "    --help-header file : Add a header to the archive's --help output"
@@ -201,16 +204,20 @@
 COPY=none
 NEED_ROOT=n
 TAR_ARGS=rvf
+TAR_FORMAT=ustar
 TAR_EXTRA=""
 GPG_EXTRA=""
 DU_ARGS=-ks
 HEADER=`dirname "$0"`/makeself-header.sh
+SIGNATURE=""
 TARGETDIR=""
 NOOVERWRITE=n
 DATE=`LC_ALL=C date`
 EXPORT_CONF=n
 SHA256=n
 OWNERSHIP=n
+SIGN=n
+GPG_PASSPHRASE=""
 
 # LSM file stuff
 LSM_CMD="echo No LSM. >> \"\$archname\""
@@ -272,7 +279,7 @@
        ;;
     --gpg-extra)
        GPG_EXTRA="$2"
-       if ! shift 2; then MS_Usage; exit 1; fi
+    shift 2 || { MS_Usage; exit 1; }
        ;;
     --ssl-encrypt)
        ENCRYPT=openssl
@@ -280,11 +287,11 @@
        ;;
     --ssl-passwd)
        PASSWD=$2
-       if ! shift 2; then MS_Usage; exit 1; fi
+    shift 2 || { MS_Usage; exit 1; }
        ;;
     --ssl-pass-src)
        PASSWD_SRC=$2
-       if ! shift 2; then MS_Usage; exit 1; fi
+    shift 2 || { MS_Usage; exit 1; }
        ;;
     --ssl-no-md)
        OPENSSL_NO_MD=y
@@ -296,11 +303,11 @@
        ;;
     --complevel)
        COMPRESS_LEVEL="$2"
-       if ! shift 2; then MS_Usage; exit 1; fi
+    shift 2 || { MS_Usage; exit 1; }
        ;;
     --threads)
        THREADS="$2"
-       if ! shift 2; then MS_Usage; exit 1; fi
+    shift 2 || { MS_Usage; exit 1; }
        ;;
     --nochown)
        OWNERSHIP=n
@@ -323,19 +330,28 @@
        KEEP=y
        shift
        ;;
+    --tar-format)
+           TAR_FORMAT="$2"
+        shift 2 || { MS_Usage; exit 1; }
+    ;;
     --tar-extra)
-       TAR_EXTRA="$2"
-        if ! shift 2; then MS_Usage; exit 1; fi
-        ;;
+           TAR_EXTRA="$2"
+        shift 2 || { MS_Usage; exit 1; }
+    ;;
     --untar-extra)
         UNTAR_EXTRA="$2"
-        if ! shift 2; then MS_Usage; exit 1; fi
+        shift 2 || { MS_Usage; exit 1; }
         ;;
     --target)
-       TARGETDIR="$2"
-       KEEP=y
-        if ! shift 2; then MS_Usage; exit 1; fi
-       ;;
+         TARGETDIR="$2"
+         KEEP=y
+    shift 2 || { MS_Usage; exit 1; }
+         ;;
+    --sign)
+    SIGN=y
+    GPG_PASSPHRASE="$2"
+    shift 2 || { MS_Usage; exit 1; }
+    ;;
     --nooverwrite)
         NOOVERWRITE=y
        shift
@@ -346,16 +362,16 @@
        ;;
     --header)
        HEADER="$2"
-        if ! shift 2; then MS_Usage; exit 1; fi
+    shift 2 || { MS_Usage; exit 1; }
        ;;
     --cleanup)
     CLEANUP_SCRIPT="$2"
-        if ! shift 2; then MS_Usage; exit 1; fi
+    shift 2 || { MS_Usage; exit 1; }
     ;;
     --license)
         # We need to escape all characters having a special meaning in double 
quotes
         LICENSE=$(sed 's/\\/\\\\/g; s/"/\\\"/g; s/`/\\\`/g; s/\$/\\\$/g' "$2")
-        if ! shift 2; then MS_Usage; exit 1; fi
+        shift 2 || { MS_Usage; exit 1; }
        ;;
     --follow)
        TAR_ARGS=rvhf
@@ -392,15 +408,15 @@
        ;;
     --lsm)
        LSM_CMD="cat \"$2\" >> \"\$archname\""
-    if ! shift 2; then MS_Usage; exit 1; fi
+    shift 2 || { MS_Usage; exit 1; }
        ;;
     --packaging-date)
        DATE="$2"
-       if ! shift 2; then MS_Usage; exit 1; fi
+    shift 2 || { MS_Usage; exit 1; }
         ;;
     --help-header)
-       HELPHEADER=`sed -e "s/'/'\\\\''/g" $2`
-    if ! shift 2; then MS_Usage; exit 1; fi
+       HELPHEADER=`sed -e "s/'/'\\\\\''/g" $2`
+    shift 2 || { MS_Usage; exit 1; }
        [ -n "$HELPHEADER" ] && HELPHEADER="$HELPHEADER
 "
     ;;
@@ -512,6 +528,9 @@
     ;;
 zstd)
     GZIP_CMD="zstd -$COMPRESS_LEVEL"
+    if test $THREADS -ne $DEFAULT_THREADS; then # Leave as the default if 
threads not indicated
+        GZIP_CMD="$GZIP_CMD --threads=$THREADS"
+    fi
     GUNZIP_CMD="zstd -cd"
     ;;
 pbzip2)
@@ -630,6 +649,10 @@
    echo "Adding files to archive named \"$archname\"..."
 fi
 
+# See if we have GNU tar
+TAR=`exec <&- 2>&-; which gtar || command -v gtar || type gtar`
+test -x "$TAR" || TAR=tar
+
 tmparch="${TMPDIR:-/tmp}/mkself$$.tar"
 (
     if test "$APPEND" = "y"; then
@@ -655,7 +678,7 @@
         \) -print \
         | LC_ALL=C sort \
         | sed 's/./\\&/g' \
-        | xargs tar $TAR_EXTRA --posix -$TAR_ARGS "$tmparch"
+        | xargs $TAR $TAR_EXTRA --format $TAR_FORMAT -$TAR_ARGS "$tmparch"
 ) || {
     echo "ERROR: failed to create temporary archive: $tmparch"
     rm -f "$tmparch" "$tmpfile"
@@ -739,6 +762,17 @@
                fi
        fi
 fi
+if test "$SIGN" = y; then
+    GPG_PATH=`exec <&- 2>&-; which gpg || command -v gpg || type gpg`
+    if test -x "$GPG_PATH"; then
+        SIGNATURE=`$GPG_PATH --pinentry-mode=loopback --batch --yes 
--passphrase "$GPG_PASSPHRASE" --output - --detach-sig $tmpfile | base64 | tr 
-d \\\\n`
+        if test "$QUIET" = "n"; then
+            echo "Signature: $SIGNATURE"
+        fi
+    else
+        echo "Missing gpg command" >&2
+    fi
+fi
 
 totalsize=0
 for size in $fsize;
@@ -754,6 +788,7 @@
     CRCsum="$crcsum"
     MD5sum="$md5sum"
     SHAsum="$shasum"
+    Signature="$SIGNATURE"
     # Generate the header
     . "$HEADER"
     # Append the new data
@@ -769,6 +804,7 @@
     CRCsum="$crcsum"
     MD5sum="$md5sum"
     SHAsum="$shasum"
+    Signature="$SIGNATURE"
 
     # Generate the header
     . "$HEADER"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/run-tests.sh 
new/makeself-release-2.4.5/run-tests.sh
--- old/makeself-release-2.4.3/run-tests.sh     1970-01-01 01:00:00.000000000 
+0100
+++ new/makeself-release-2.4.5/run-tests.sh     2021-06-23 14:00:42.000000000 
+0200
@@ -0,0 +1,8 @@
+#!/bin/sh
+# Run every available test - Bash needed
+cd test
+for test in *test;
+do
+       echo "Running test $test ..."
+       bash $test || { echo "*** ERROR: Test '$test' failed!"; exit 1; }
+done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/test/appendtest 
new/makeself-release-2.4.5/test/appendtest
--- old/makeself-release-2.4.3/test/appendtest  2021-01-16 14:33:11.000000000 
+0100
+++ new/makeself-release-2.4.5/test/appendtest  2021-06-23 14:00:42.000000000 
+0200
@@ -50,13 +50,14 @@
     local stem=""
     stem="$(printf '%s' "${WHAT}" "$@" | tr -sc '[:alnum:]_.-' '_')"
     local file_name=""
-    file_name="$(realpath "${stem}.run")"
+    file_name="${stem}.run"
 
     evalAssert "${SUT}" "$@" --sha256 \
         "${archive_dir_create}" \
         "${file_name}" \
         "${stem}" \
         "echo ${stem}"
+    file_name="$(realpath ${file_name})"
     doInfoListCheckExec "${file_name}"
     assertContains "${file_name}" "fee" "fie"
 
Binary files old/makeself-release-2.4.3/test/secret_key.gpg and 
new/makeself-release-2.4.5/test/secret_key.gpg differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/test/signtest 
new/makeself-release-2.4.5/test/signtest
--- old/makeself-release-2.4.3/test/signtest    1970-01-01 01:00:00.000000000 
+0100
+++ new/makeself-release-2.4.5/test/signtest    2021-06-23 14:00:42.000000000 
+0200
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+
+SUT=$(realpath $(dirname $0)/../makeself.sh)
+SOURCE=$(realpath ..)
+GPG_SECRET_KEY="secret_key.gpg"
+GPG_KEY_ID="64F66800CCC556CB7E8FE108EE8CE9E55B602BD9"
+BAD_GPG_KEY_ID="64F66800CCC556CB7E8FE108EE8CE9E55B602BD8"
+GPG_KEY_PASSPHRASE="123123"
+ARCHIVE="makeself-test.run"
+################################################################################
+
+setupGPGKey() 
+{
+  echo $GPG_KEY_PASSPHRASE | gpg --batch --yes --passphrase-fd 0 --import 
$GPG_SECRET_KEY
+}
+
+deleteGPGKey() 
+{
+  gpg --batch --yes --delete-secret-keys $GPG_KEY_ID
+}
+
+testCreateSingedArchive() 
+{
+  setupGPGKey
+  mkdir archive
+  touch archive/file
+  output=$($SUT --sign "$GPG_KEY_PASSPHRASE" archive $ARCHIVE "Test" id)
+  assertReturn $? 0
+  assertEqual "$(echo $output | grep -c Signature:)" "1"
+}
+
+testVerifySingedArchive()
+{
+  ./$ARCHIVE --verify-sig $GPG_KEY_ID
+  assertReturn $? 0
+  ./$ARCHIVE --verify-sig $BAD_GPG_KEY_ID
+  assertReturn $? 2
+  deleteGPGKey
+  rm -rf archive $ARCHIVE
+}
+
+################################################################################
+
+source bashunit/bashunit.bash
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/test/whitespacelicense 
new/makeself-release-2.4.5/test/whitespacelicense
--- old/makeself-release-2.4.3/test/whitespacelicense   2021-01-16 
14:33:11.000000000 +0100
+++ new/makeself-release-2.4.5/test/whitespacelicense   1970-01-01 
01:00:00.000000000 +0100
@@ -1,63 +0,0 @@
-#!/bin/bash
-
-THIS="$(realpath "$0")"
-HERE="$(dirname "${THIS}")"
-SUT="$(dirname "${HERE}")/makeself.sh"
-
-testWhiteSpaceLicense() {
-    # for each license file: its canonical path is identical to its content
-    local license_dir="$(mktemp -dt license_dir.XXXXXX)"
-    (
-        cd "${license_dir}"
-        cat >"$(printf "_\x09_character_tabulation.txt")" <<EOF
-$(printf "_\x09_character_tabulation.txt")
-EOF
-        cat >"$(printf "_\x0b_line_tabulation.txt")" <<EOF
-$(printf "_\x0b_line_tabulation.txt")
-EOF
-        cat >"$(printf "_\x0c_form_feed.txt")"<<EOF
-$(printf "_\x0c_form_feed.txt")
-EOF
-        cat >"$(printf "_\x0d_carriage_return.txt")"<<EOF
-$(printf "_\x0d_carriage_return.txt")
-EOF
-        cat >"$(printf "_\x20_space.txt")"<<EOF
-$(printf "_\x20_space.txt")
-EOF
-    )
-
-    # The extraction progress diagnostics are buggy on empty archives, so give
-    # it something to extract
-    local archive_dir="$(mktemp -dt archive_dir.XXXXXX)"
-    (
-        cd "${archive_dir}"
-        touch foo bar qux
-    )
-
-    local file_name="$(mktemp -t file_name.XXXXXX)"
-    local label=""
-    local license_text=""
-    find "${license_dir}" -type f | while read license_file; do
-        "${SUT}" \
-            --license "${license_file}" \
-            "${archive_dir}" \
-            "${file_name}" \
-            "Label" \
-            ls -lah
-        assertEqual "$?" 0
-
-        # Assumes the license text is the first line of output
-        license_text="$("${file_name}" --accept --nox11 | head -n1)"
-
-        # This doesn't work for character tabulation...
-        #assertEqual "${license_text}" "${license_file}"
-
-        # ...so do this instead:
-        assertEqual \
-            "$(cat "${license_file}" | md5sum | cut -d' ' -f1)" \
-            "$(echo "${license_text}" | md5sum | cut -d' ' -f1)"
-    done
-    rm -rf "${license_dir}" "${archive_dir}" "${file_name}"
-}
-
-source "${HERE}/bashunit/bashunit.bash"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/makeself-release-2.4.3/test/whitespacelicensetest 
new/makeself-release-2.4.5/test/whitespacelicensetest
--- old/makeself-release-2.4.3/test/whitespacelicensetest       1970-01-01 
01:00:00.000000000 +0100
+++ new/makeself-release-2.4.5/test/whitespacelicensetest       2021-06-23 
14:00:42.000000000 +0200
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+THIS="$(realpath "$0")"
+HERE="$(dirname "${THIS}")"
+SUT="$(dirname "${HERE}")/makeself.sh"
+
+testWhiteSpaceLicense() {
+    # for each license file: its canonical path is identical to its content
+    local license_dir="$(mktemp -dt license_dir.XXXXXX)"
+    (
+        cd "${license_dir}"
+        cat >"$(printf "_\x09_character_tabulation.txt")" <<EOF
+$(printf "_\x09_character_tabulation.txt")
+EOF
+        cat >"$(printf "_\x0b_line_tabulation.txt")" <<EOF
+$(printf "_\x0b_line_tabulation.txt")
+EOF
+        cat >"$(printf "_\x0c_form_feed.txt")"<<EOF
+$(printf "_\x0c_form_feed.txt")
+EOF
+        cat >"$(printf "_\x0d_carriage_return.txt")"<<EOF
+$(printf "_\x0d_carriage_return.txt")
+EOF
+        cat >"$(printf "_\x20_space.txt")"<<EOF
+$(printf "_\x20_space.txt")
+EOF
+    )
+
+    # The extraction progress diagnostics are buggy on empty archives, so give
+    # it something to extract
+    local archive_dir="$(mktemp -dt archive_dir.XXXXXX)"
+    (
+        cd "${archive_dir}"
+        touch foo bar qux
+    )
+
+    local file_name="$(mktemp -t file_name.XXXXXX)"
+    local label=""
+    local license_text=""
+    find "${license_dir}" -type f | while read license_file; do
+        "${SUT}" \
+            --license "${license_file}" \
+            "${archive_dir}" \
+            "${file_name}" \
+            "Label" \
+            ls -lah
+        assertEqual "$?" 0
+
+        # Assumes the license text is the first line of output
+        license_text="$("${file_name}" --accept --nox11 | head -n1)"
+
+        # This doesn't work for character tabulation...
+        #assertEqual "${license_text}" "${license_file}"
+
+        # ...so do this instead:
+        assertEqual \
+            "$(cat "${license_file}" | md5sum | cut -d' ' -f1)" \
+            "$(echo "${license_text}" | md5sum | cut -d' ' -f1)"
+    done
+    rm -rf "${license_dir}" "${archive_dir}" "${file_name}"
+}
+
+source "${HERE}/bashunit/bashunit.bash"

Reply via email to