diff options
| -rw-r--r-- | .travis.yml | 2 | ||||
| -rw-r--r-- | t/travis-deps/install.sh | 3 | ||||
| -rwxr-xr-x | t/travis-deps/installpkg | 57 | ||||
| -rwxr-xr-x | t/travis-deps/makepkg | 25 | ||||
| -rwxr-xr-x | t/travis-deps/removepkg | 3 | ||||
| -rwxr-xr-x | t/travis-deps/upgradepkg | 119 | 
6 files changed, 208 insertions, 1 deletions
| diff --git a/.travis.yml b/.travis.yml index 4a4c8ec..fbce77f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,5 +4,5 @@ perl:      - "5.18"      - "5.16"  sudo: required -install: true +install: sudo bash t/travis-deps/install.sh  script: t/travis.sh diff --git a/t/travis-deps/install.sh b/t/travis-deps/install.sh new file mode 100644 index 0000000..565852e --- /dev/null +++ b/t/travis-deps/install.sh @@ -0,0 +1,3 @@ +#!/bin/bash +mkdir -p /var/log/packages +cp -a t/travis-deps/*pkg /sbin/ diff --git a/t/travis-deps/installpkg b/t/travis-deps/installpkg new file mode 100755 index 0000000..1c4c8b7 --- /dev/null +++ b/t/travis-deps/installpkg @@ -0,0 +1,57 @@ +#!/bin/bash + +# Stripped down and useless version of this script merely used for testing. +# But some bits taken from the original upgradepkg, so here's its copyright +# notice. + +# Copyright 1999  Patrick Volkerding, Moorhead, Minnesota, USA +# Copyright 2001, 2002, 2003  Slackware Linux, Inc., Concord, California, USA +# Copyright 2009, 2015  Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2015  Michal Nazarewicz <mina86@mina86.com> +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +#    notice, this list of conditions and the following disclaimer. +# +#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO +#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# Modified to handle either old 8.3 or new package-version-arch-build.tgz +# packages, Sat Nov 17 14:25:58 PST 2001 volkerdi +# +# Rewritten to clean out _all_ old packages of a given basename, not just +# the first one found, Thu Apr  4 01:01:05 PST 2002 volkerdi +# +# Added --install-new and --reinstall, Fri May 31 14:11:14 PDT 2002 volkerdi +# Added --dry-run, Sat Apr 26 18:13:29 PDT 2003 +# +# Sat Apr 25 21:18:53 UTC 2009 +# Support new compression types and package extensions. +# Converted to use new pkgbase() function to remove pathname and +# valid package extensions. +# +# Sat 17 Jan 16:21:32 UTC 2015  mina86 +# Various optimisation mostly resolving around avoiding having to fork +# and call cut, basename and other helper commands.  Slight +# refactoring of code calling removepkg. + +pkgbase() { +  PKGRETURN=${1##*/} +  case "$PKGRETURN" in *.t[gblx]z) +    PKGRETURN=${PKGRETURN%.*} +  esac +  echo "$PKGRETURN" +} + +touch /var/log/packages/$(pkgbase $1) diff --git a/t/travis-deps/makepkg b/t/travis-deps/makepkg new file mode 100755 index 0000000..54c1b3c --- /dev/null +++ b/t/travis-deps/makepkg @@ -0,0 +1,25 @@ +#!/bin/bash + +while [[ $# > 1 ]] +do +key="$1" + +case $key in +	-l|--linkadd) +		LINKADD="$2" +		shift +		;; +	-c|--chown) +		CHOWN="$2" +		shift +		;; +	-p|--prepend) +		PREPEND=1 +		;; +esac +shift +done + +touch $1 + +echo "Slackware package $1 created. diff --git a/t/travis-deps/removepkg b/t/travis-deps/removepkg new file mode 100755 index 0000000..a79caa1 --- /dev/null +++ b/t/travis-deps/removepkg @@ -0,0 +1,3 @@ +#!/bin/bash + +rm /var/log/packages/$1 || rm /var/log/packages/$1-* diff --git a/t/travis-deps/upgradepkg b/t/travis-deps/upgradepkg new file mode 100755 index 0000000..3591936 --- /dev/null +++ b/t/travis-deps/upgradepkg @@ -0,0 +1,119 @@ +#!/bin/bash + +# Stripped down and useless version of this script merely used for testing. +# But some bits taken from the original, so here's the original copyright +# notice. + +# Copyright 1999  Patrick Volkerding, Moorhead, Minnesota, USA +# Copyright 2001, 2002, 2003  Slackware Linux, Inc., Concord, California, USA +# Copyright 2009, 2015  Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2015  Michal Nazarewicz <mina86@mina86.com> +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +#    notice, this list of conditions and the following disclaimer. +# +#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO +#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# Modified to handle either old 8.3 or new package-version-arch-build.tgz +# packages, Sat Nov 17 14:25:58 PST 2001 volkerdi +# +# Rewritten to clean out _all_ old packages of a given basename, not just +# the first one found, Thu Apr  4 01:01:05 PST 2002 volkerdi +# +# Added --install-new and --reinstall, Fri May 31 14:11:14 PDT 2002 volkerdi +# Added --dry-run, Sat Apr 26 18:13:29 PDT 2003 +# +# Sat Apr 25 21:18:53 UTC 2009 +# Support new compression types and package extensions. +# Converted to use new pkgbase() function to remove pathname and +# valid package extensions. +# +# Sat 17 Jan 16:21:32 UTC 2015  mina86 +# Various optimisation mostly resolving around avoiding having to fork +# and call cut, basename and other helper commands.  Slight +# refactoring of code calling removepkg. + + +while [[ $# > 1 ]] +do +key="$1" + +case $key in +	--dryrun) +		DRYRUN=1 +		;; +	--install-new) +		NEW=1 +		;; +	--reinstall) +		REINSTALL=1 +		;; +	--verbose) +		VERBOSE=1 +		;; +esac +shift +done + +PACKAGE="$1" + +pkgbase() { +  PKGRETURN=${1##*/} +  case "$PKGRETURN" in *.t[gblx]z) +    PKGRETURN=${PKGRETURN%.*} +  esac +  echo "$PKGRETURN" +} + +package_name() { +  STRING=$(pkgbase "$1") +  case "$STRING" in +  *-*-*-*) +    # At least four segments, strip version arch and build and return name: +    echo "${STRING%-*-*-*}" +    ;; +  *) +    # Old style package name with one segment or we don't have four +    # segments: return the old-style (or out of spec) package name. +    echo $STRING +  esac +} + +for ARG; do +  OLD=${ARG%'%'*} +  NEW=${ARG#*'%'} + +  INCOMINGDIR=$(dirname $NEW) +  NNAME=${NEW##*/} +  ONAME=${OLD##*/} +  NEW=$(pkgbase $NEW) +  OLD=$(pkgbase $OLD) + +  SHORT="$(package_name $OLD)" +  if [ ! -r /var/log/packages/$OLD ]; then +	  if ls /var/log/packages/$SHORT* &>/dev/null ; then +		  for installed_package in /var/log/packages/$SHORT* ; do +			  if [ "$(package_name $installed_package)" = "$SHORT" ]; then +				  OLD="${installed_package##*/}" +				  break +			  fi +		  done +	  fi +  fi + +  /sbin/removepkg $OLD +  /sbin/installpkg $INCOMINGDIR/$NNAME +done | 
