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"