diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2018-06-21 22:58:42 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2018-06-22 09:00:34 +0200 |
commit | ca85aab95397ae918088f8ba2195eb4eb996c739 (patch) | |
tree | 53c83f5d50354f163eeab5dd11c8ba109be9e291 /testing/source/pkgtools/scripts | |
parent | b893b1174dfcd0fdc84aa597eee76b797d6d7b11 (diff) | |
download | current-ca85aab95397ae918088f8ba2195eb4eb996c739.tar.gz |
Thu Jun 21 22:58:42 UTC 201820180621225842
a/pkgtools-15.0-noarch-20.txz: Rebuilt.
Move pkgtools database to /var/lib/pkgtools/.
Move removed logs to /var/log/pkgtools/.
a/sysvinit-2.90-x86_64-1.txz: Upgraded.
ap/cups-filters-1.20.3-x86_64-3.txz: Rebuilt.
Recompiled against poppler-0.66.0.
kde/calligra-2.9.11-x86_64-22.txz: Rebuilt.
Recompiled against poppler-0.66.0.
l/dbus-python-1.2.8-x86_64-1.txz: Upgraded.
l/gc-7.6.6-x86_64-1.txz: Upgraded.
l/harfbuzz-1.8.1-x86_64-1.txz: Upgraded.
l/poppler-0.66.0-x86_64-1.txz: Upgraded.
Shared library .so-version bump.
l/pulseaudio-12.0-x86_64-1.txz: Upgraded.
n/dhcpcd-7.0.6-x86_64-1.txz: Upgraded.
n/php-7.2.7-x86_64-1.txz: Upgraded.
Added support for libedit.
t/texlive-2017.171108-x86_64-7.txz: Rebuilt.
Recompiled against poppler-0.66.0.
x/libwacom-0.30-x86_64-1.txz: Upgraded.
xfce/exo-0.12.2-x86_64-1.txz: Upgraded.
xfce/tumbler-0.2.1-x86_64-4.txz: Rebuilt.
Recompiled against poppler-0.66.0.
xfce/xfce4-settings-4.12.4-x86_64-1.txz: Upgraded.
Diffstat (limited to 'testing/source/pkgtools/scripts')
-rw-r--r-- | testing/source/pkgtools/scripts/explodepkg | 109 | ||||
-rw-r--r-- | testing/source/pkgtools/scripts/installpkg | 713 | ||||
-rw-r--r-- | testing/source/pkgtools/scripts/makebootdisk | 443 | ||||
-rw-r--r-- | testing/source/pkgtools/scripts/makepkg | 452 | ||||
-rw-r--r-- | testing/source/pkgtools/scripts/pkgdiff | 164 | ||||
-rw-r--r-- | testing/source/pkgtools/scripts/pkgtool | 723 | ||||
-rw-r--r-- | testing/source/pkgtools/scripts/removepkg | 438 | ||||
-rw-r--r-- | testing/source/pkgtools/scripts/setup.70.install-kernel | 5 | ||||
-rw-r--r-- | testing/source/pkgtools/scripts/setup.80.make-bootdisk | 267 | ||||
-rw-r--r-- | testing/source/pkgtools/scripts/setup.htmlview | 33 | ||||
-rw-r--r-- | testing/source/pkgtools/scripts/setup.services | 342 | ||||
-rw-r--r-- | testing/source/pkgtools/scripts/upgradepkg | 417 |
12 files changed, 0 insertions, 4106 deletions
diff --git a/testing/source/pkgtools/scripts/explodepkg b/testing/source/pkgtools/scripts/explodepkg deleted file mode 100644 index 72c013d4..00000000 --- a/testing/source/pkgtools/scripts/explodepkg +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/sh -# Copyright 1994, 1998, 2000 Patrick Volkerding, Concord, CA, USA -# Copyright 2001, 2003 Slackware Linux, Inc., Concord, CA, USA -# Copyright 2007, 2009, 2017, 2018 Patrick Volkerding, Sebeka, MN, USA -# 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. - -if [ $# = 0 ]; then - cat << EOF -Usage: explodepkg package_name [package_name2, ...] - -Explodes a Slackware compatible software package -(or any tar+{gzip,bzip2,lz,xz archive) in the current directory. -Equivalent to (for each package listed): - - ( umask 000 ; cat package_name | COMPRESSOR -dc | tar xpvf package_name ) - -Note: This should only be used for debugging or examining packages, not for -installing them. It doesn't execute installation scripts or update the package -indexes in /var/lib/pkgtools/packages and /var/lib/pkgtools/scripts. - -EOF -fi - -# Set maximum number of threads to use. By default, this will be the number -# of CPU threads: -THREADS="$(nproc)" - -# Main loop: -for PKG in $* ; do - echo "Exploding package $PKG in current directory:" - # Determine extension: - packageext="$( echo $PKG | rev | cut -f 1 -d . | rev)" - # Determine compression utility: - case $packageext in - 'tgz' ) - packagecompression=gzip - ;; - 'gz' ) - packagecompression=gzip - ;; - 'tbz' ) - if which lbzip2 1> /dev/null 2> /dev/null ; then - packagecompression=lbzip2 - else - packagecompression=bzip2 - fi - ;; - 'bz2' ) - if which lbzip2 1> /dev/null 2> /dev/null ; then - packagecompression=lbzip2 - else - packagecompression=bzip2 - fi - ;; - 'tlz' ) - if which plzip 1> /dev/null 2> /dev/null ; then - packagecompression="plzip --threads=${THREADS}" - elif which lzip 1> /dev/null 2> /dev/null ; then - packagecompression=lzip - else - echo "ERROR: lzip compression utility not found in \$PATH." - exit 3 - fi - ;; - 'lz' ) - if which plzip 1> /dev/null 2> /dev/null ; then - packagecompression="plzip --threads=${THREADS}" - elif which lzip 1> /dev/null 2> /dev/null ; then - packagecompression=lzip - else - echo "ERROR: lzip compression utility not found in \$PATH." - exit 3 - fi - ;; - 'lzma' ) - packagecompression=lzma - ;; - 'txz' ) - packagecompression="xz --threads=${THREADS}" - ;; - 'xz' ) - packagecompression="xz --threads=${THREADS}" - ;; - esac - ( umask 000 ; cat $PKG | $packagecompression -dc | tar --xattrs --xattrs-include='*' --keep-directory-symlink -xpvf - 2> /dev/null ) - if [ -r install/doinst.sh ]; then - echo - echo "An installation script was detected in ./install/doinst.sh, but" - echo "was not executed." - fi -done - diff --git a/testing/source/pkgtools/scripts/installpkg b/testing/source/pkgtools/scripts/installpkg deleted file mode 100644 index 0d82f89c..00000000 --- a/testing/source/pkgtools/scripts/installpkg +++ /dev/null @@ -1,713 +0,0 @@ -#!/bin/sh -# Copyright 1994, 1998, 2000 Patrick Volkerding, Concord, CA, USA -# Copyright 2001, 2003 Slackware Linux, Inc., Concord, CA, USA -# Copyright 2007, 2009, 2011, 2017, 2018 Patrick Volkerding, Sebeka, MN, USA -# 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. -# -# Mon Jun 4 21:17:58 UTC 2018 -# Migrate the package database and directories from /var/log to -# /var/lib/pkgtools. /var/log was never a good place for this data, as it is -# considered by many to be a directory that could be wiped to free up some -# space. Originally the package database was in /var/adm, but the FSSTND -# (later FHS) group decided that directory should be a symlink to /var/log, -# and I went along with that since it was years ago and I was a n00b and didn't -# know any better. /var/lib/pkgtools will be a better and safer location. -# -# Thu May 24 20:23:55 UTC 2018 -# Added --terselength option to set the line length in --terse mode. -# Allow adding NOLOCK in an install script to allow it to run without locking. -# -# Sat May 19 22:42:03 UTC 2018 -# Implement locking to prevent screen output or install script collisions if -# multiple copies of installpkg are running simultaneously. -# Use ${MCOOKIE} instead of $$ (might as well, since we already generated it). -# -# Tue Apr 17 17:26:44 UTC 2018 -# Quit with the funny business in /install. Note however that /install still -# isn't a safe directory to use in a package for anything other than package -# metadata. Other files placed there are going to be left on the system in -# /installpkg-$(mcookie). That could be worked around, but we'll wait until -# someone reports there is a need. The main reason to do this is that /install -# was a collision point if more than one copy of installpkg was running at -# once. With this change, the pkgtools are (more or less) thread-safe. -# -# Tue Feb 13 01:19:46 UTC 2018 -# Use recent tar, and support restoring POSIX ACLs and extended attributes. -# -# Tue Dec 12 21:49:48 UTC 2017 -# If possible, use multiple decompression threads. -# -# Thu Dec 7 04:09:17 UTC 2017 -# Change meaning of .tlz to tar.lz (lzip) -# -# Sun Sep 6 21:58:36 BST 2009 -# Replaced usage of "cat" with STDIN redirection or file name parameters -# to speed up execution on ARM. -# Replaced pkgbase & package_name code with 'sed' script by Jim Hawkins. -# -# Sat Apr 25 21:18:53 UTC 2009 -# Converted to use new pkgbase() function to remove pathname and -# valid package extensions. -# -# Sat Apr 4 22:58:06 CDT 2009 -# Support additional compression formats if the supporting utilities exist: -# .tbz - bzip2 -# .tlz - lzma -# .txz - xz (also LZMA) -# And of course, .tgz (gzip) is not going anywhere. :-) <volkerdi> -# Add command switches to determine the uncompressed package size even if -# that will slow things down, and to add the package's md5sum to the -# metadata stored in /var/log/packages/. -# -# Fri Dec 21 17:21:35 CST 2007 -# Added a patch from Johnny Morano to work around package removal issues -# caused by packages that do not comply with FHS combined with a grep -# regex error in installpkg. Any package with a single-letter top- -# level directory could not be removed. -# -# Shortened some of the top-line dialog output to avoid overflowing the -# textbox (needed as some of the packages, especially in X, have very -# long base package names now). <pjv> -# -# Sun Nov 26 12:38:25 CST 1995 -# Added patch from Glenn Moloney <glenn@physics.unimelb.edu.au> to allow -# packages to be installed to directories other than /. -# -# Wed Mar 18 15:15:51 CST 1998 -# Changed $TMP directory to /var/log/setup/tmp, and chmod'ed it 700 to close -# some security holes. - -# Return a package name that has been stripped of the dirname portion -# and any of the valid extensions (only): -pkgbase() { - # basename + strip extensions .tbz, .tgz, .tlz and .txz - echo "$1" | sed 's?.*/??;s/\.t[bglx]z$//' -} - -# If installpkg encounters a problem, it will return a non-zero error code. -# If it finds more than one problem (i.e. with a list of packages) you'll only -# hear about the most recent one. :) -# 1 = tar returned error code -# 2 = corrupt compression envelope -# 3 = does not end in .tgz -# 4 = no such file -# 5 = external compression utility missing -# 99 = user abort from menu mode -EXITSTATUS=0 - -# Do not store md5sums by default: -MD5SUM=0 - -# So that we know what to expect... -umask 022 - -# If we have mcookie and a tar that is recent enough to support --transform, -# then we can stop needlessly erasing files in the /install directory while -# also making installpkg thread-safe. Don't check for recent tar - we'll -# already break from --attrs and --xattrs anyway if the wrong tar is used. -if which mcookie 1> /dev/null 2> /dev/null ; then - MCOOKIE=$(mcookie) - INSTDIR=installpkg-${MCOOKIE} -else - # Well, we will make due with this: - MCOOKIE=$$ - INSTDIR=installpkg-${MCOOKIE} -fi - -# Create a lockfile directory if it doesn't exist. We can use it to prevent -# screen corruption (from multiple dialogs) and install script collisions -# (from multiple scripts trying to work on the same files) in the case of -# parallel instances of installpkg. -INSTLOCKDIR=${INSTLOCKDIR:-/run/lock/pkgtools} -if [ ! -d $INSTLOCKDIR ]; then - mkdir -p $INSTLOCKDIR -fi - -usage() { - cat << EOF -Usage: installpkg [options] <package_filename> - -Installpkg is used to install a .t{gz,bz,lz,xz} package like this: - installpkg slackware-package-1.0.0-i486-1.tgz (or .tbz, .tlz, .txz) - -options: --warn (warn if files will be overwritten, but do not install) - --root /mnt (install someplace else, like /mnt) - --infobox (use dialog to draw an info box) - --terse (display a one-line short description for install) - --terselength <length> (line length in terse mode - default is - the number of columns available) - --menu (confirm package installation with a menu, unless - the priority is [required] or ADD) - --ask (used with menu mode: always ask if a package should be - installed regardless of what the package's priority is) - --priority ADD|REC|OPT|SKP (provide a priority for the entire - package list to use instead of the priority in the - tagfile) - --tagfile /somedir/tagfile (specify a different file to use - for package priorities. The default is "tagfile" in - the package's directory) - --threads <number> For xz/plzip compressed packages, set the max - number of threads to be used for decompression. Only has - an effect if a multithreaded compressor was used, and then - only on large packages. For plzip, the default is equal to - the number of CPU threads available on the machine. For xz, - the default is equal to 2. - --md5sum (record the package's md5sum in the metadata file) - -EOF -} - -# Eliminate whitespace function: -crunch() { - while read FOO ; do - echo $FOO - done -} - -# Strip version, architecture and build from the end of the name -package_name() { - pkgbase $1 | sed 's?-[^-]*-[^-]*-[^-]*$??' -} - -# Set maximum number of threads to use. By default, this will be the number -# of CPU threads: -THREADS="$(nproc)" - -# Set default line length for terse mode: -if tty -s && which tput 1> /dev/null 2> /dev/null ; then - TERSELENGTH=$(tput cols) -else - TERSELENGTH=80 -fi - -# Default install mode is standard text mode: -MODE=install -# If $TERSE is set to 0 in the environment, then use terse mode: -if [ "$TERSE" = "0" ]; then - MODE=terse -fi - -# Parse options: -while [ 0 ]; do - if [ "$1" = "-warn" -o "$1" = "--warn" ]; then - MODE=warn - shift 1 - elif [ "$1" = "-md5sum" -o "$1" = "--md5sum" ]; then - MD5SUM=1 - shift 1 - elif [ "$1" = "-infobox" -o "$1" = "--infobox" ]; then - MODE=infobox - shift 1 - elif [ "$1" = "-terse" -o "$1" = "--terse" ]; then - MODE=terse - shift 1 - elif [ "$1" = "-terselength" -o "$1" = "--terselength" ]; then - TERSELENGTH=$2 - shift 2 - elif [ "$1" = "-menu" -o "$1" = "--menu" ]; then - MODE=menu - shift 1 - elif [ "$1" = "-ask" -o "$1" = "--ask" ]; then - ALWAYSASK="yes" - shift 1 - elif [ "$1" = "-tagfile" -o "$1" = "--tagfile" ]; then - if [ -r "$2" ]; then - USERTAGFILE="$2" - elif [ -r "$(pwd)/$2" ]; then - USERTAGFILE="$(pwd)/$2" - else - usage - exit - fi - shift 2 - elif [ "$1" = "-threads" -o "$1" = "--threads" ]; then - THREADS="$2" - shift 2 - # xz has not yet implemented multi-threaded decompression. - # Who knows if or how well it will work... - XZ_THREADS_FORCED=yes - elif [ "$1" = "-priority" -o "$1" = "--priority" ]; then - if [ "$2" = "" ]; then - usage - exit - fi - USERPRIORITY="$2" - shift 2 - elif [ "$1" = "-root" -o "$1" = "--root" ]; then - if [ "$2" = "" ]; then - usage - exit - fi - ROOT="$2" - shift 2 - else - break - fi -done - -# Set the prefix for the package database directories (packages, scripts). -ADM_DIR="$ROOT/var/lib/pkgtools" - -# Set the prefix for the removed packages/scripts log files: -LOG_DIR="$ROOT/var/log/pkgtools" - -# If the directories don't exist, "initialize" the package database: -for PKGDBDIR in packages scripts setup ; do - if [ ! -d $ADM_DIR/$PKGDBDIR ]; then - mkdir -p $ADM_DIR/$PKGDBDIR - chmod 755 $ADM_DIR/$PKGDBDIR - fi -done -for PKGLOGDIR in removed_packages removed_scripts ; do - if [ ! -d $LOG_DIR/$PKGLOGDIR ]; then - rm -rf $LOG_DIR/$PKGLOGDIR # make sure it's not a symlink or something stupid - mkdir -p $LOG_DIR/$PKGLOGDIR - chmod 755 $LOG_DIR/$PKGLOGDIR - fi -done -# Likewise, make sure that the symlinks in /var/log exist. We no longer -# trust anything to remain in /var/log. Let the admin wipe it if that's -# what they like. -for symlink in packages scripts setup ; do - if [ ! -L $LOG_DIR/../$symlink -a ! -d $LOG_DIR/../$symlink ]; then - ( cd $LOG_DIR/.. ; ln -sf ../lib/pkgtools/$symlink . ) - fi -done - -# Make sure there's a proper temp directory: -TMP=$ADM_DIR/setup/tmp -# If the $TMP directory doesn't exist, create it: -if [ ! -d $TMP ]; then - mkdir -p $TMP - chmod 700 $TMP # no need to leave it open -fi - -# usage(), exit if called with no arguments: -if [ $# = 0 ]; then - usage; - exit -fi - -# If -warn mode was requested, produce the output and then exit: -if [ "$MODE" = "warn" ]; then - while [ -f "$1" ]; do - mkdir -p $TMP/scan${MCOOKIE} - # Determine extension: - packageext="$( echo $1 | rev | cut -f 1 -d . | rev)" - # Determine decompressor utility: - case $packageext in - 'tgz' ) - packagecompression=gzip - ;; - 'tbz' ) - if which lbzip2 1> /dev/null 2> /dev/null ; then - packagecompression=lbzip2 - else - packagecompression=bzip2 - fi - ;; - 'tlz' ) - if which plzip 1> /dev/null 2> /dev/null ; then - packagecompression="plzip --threads=${THREADS}" - elif which lzip 1> /dev/null 2> /dev/null ; then - packagecompression=lzip - else - echo "ERROR: lzip compression utility not found in \$PATH." - exit 3 - fi - ;; - 'txz' ) - if [ ! "$XZ_THREADS_FORCED" = "yes" ]; then - packagecompression="xz --threads=${THREADS}" - else - packagecompression="xz --threads=2" - fi - ;; - esac - ( cd $TMP/scan${MCOOKIE} ; $packagecompression -dc | tar xf - install ) < $1 2> /dev/null - if [ -r $TMP/scan${MCOOKIE}/install/doinst.sh ]; then - if grep ' rm -rf ' $TMP/scan${MCOOKIE}/install/doinst.sh 1>/dev/null 2>/dev/null ; then - grep ' rm -rf ' $TMP/scan${MCOOKIE}/install/doinst.sh > $TMP/scan${MCOOKIE}/install/delete - for f in `cat $TMP/scan${MCOOKIE}/install/delete | cut -f 3,7 -d ' ' | tr ' ' '/'`; do - f="/$f" - if [ -f "$f" -o -L "$f" ]; then - echo "$f" - fi - done - fi - if [ -d $TMP/scan${MCOOKIE} ]; then - ( cd $TMP/scan${MCOOKIE} ; rm -rf install ) 2> /dev/null - ( cd $TMP ; rmdir scan${MCOOKIE} ) 2> /dev/null - fi - fi - for f in `( $packagecompression -dc | tar tf - ) < $1 | grep -v 'drwx'`; do - f="/$f" - if [ -f "$f" -o -L "$f" ]; then - echo "$f" - fi - done - shift 1 - done - exit -fi - -# Main loop: -for package in $* ; do - - # Simple package integrity check: - if [ ! -f $package ]; then - EXITSTATUS=4 - if [ "$MODE" = "install" ]; then - echo "Cannot install $package: file not found" - fi - continue; - fi - - # "shortname" isn't really THAT short... - # it's just the full name without ".t{gz,bz,lz,xz}" - shortname="$(pkgbase $package)" - packagedir="$(dirname $package)" - # This is the base package name, used for grepping tagfiles and descriptions: - packagebase="$(package_name $shortname)" - - # Reject package if it does not end in '.t{gz,bz,lz,xz}': - if [ "$shortname" = "$(basename $package)" ]; then - EXITSTATUS=3 - if [ "$MODE" = "install" ]; then - echo "Cannot install $package: file does not end in .tgz, .tbz, .tlz, or .txz" - fi - continue; - fi - - # Determine extension: - packageext="$(echo $package | rev | cut -f 1 -d . | rev)" - - # Determine compressor utility: - case $packageext in - 'tgz' ) - packagecompression=gzip - ;; - 'tbz' ) - if which lbzip2 1> /dev/null 2> /dev/null ; then - packagecompression=lbzip2 - else - packagecompression=bzip2 - fi - ;; - 'tlz' ) - if which plzip 1> /dev/null 2> /dev/null ; then - packagecompression="plzip --threads=${THREADS}" - elif which lzip 1> /dev/null 2> /dev/null ; then - packagecompression=lzip - else - echo "ERROR: lzip compression utility not found in \$PATH." - exit 3 - fi - ;; - 'txz' ) - if [ ! "$XZ_THREADS_FORCED" = "yes" ]; then - packagecompression="xz --threads=${THREADS}" - else - packagecompression="xz --threads=2" - fi - ;; - esac - - # Test presence of external compression utility: - if ! $(echo $packagecompression | cut -f 1 -d ' ') --help 1> /dev/null 2> /dev/null ; then - EXITSTATUS=5 - if [ "$MODE" = "install" ]; then - echo "Cannot install $package: external compression utility $packagecompression missing" - fi - continue; - fi - - # Determine package's priority: - unset PRIORITY - if [ "$USERTAGFILE" = "" ]; then - TAGFILE="$packagedir/tagfile" - else - TAGFILE="$USERTAGFILE" - fi - if [ ! -r "$TAGFILE" ]; then - TAGFILE=/dev/null - fi - if grep "^$packagebase:" "$TAGFILE" | grep ADD > /dev/null 2> /dev/null ; then - PRIORITY="ADD" - elif grep "^$packagebase:" "$TAGFILE" | grep REC > /dev/null 2> /dev/null ; then - PRIORITY="REC" - elif grep "^$packagebase:" "$TAGFILE" | grep OPT > /dev/null 2> /dev/null ; then - PRIORITY="OPT" - elif grep "^$packagebase:" "$TAGFILE" | grep SKP > /dev/null 2> /dev/null ; then - PRIORITY="SKP" - fi - if [ "$PRIORITY" = "ADD" ]; then - PMSG="[ADD]" - elif [ "$PRIORITY" = "REC" ]; then - PMSG="[REC]" - elif [ "$PRIORITY" = "OPT" ]; then - PMSG="[OPT]" - elif [ "$PRIORITY" = "SKP" ]; then - PMSG="[SKP]" - else - PMSG="" - fi - - # If a tagfile wants this package to be skipped, do that now before - # wasting any more CPU on it: - if [ "$PRIORITY" = "SKP" -a ! "$ALWAYSASK" = "yes" ]; then - continue # next package - fi - - # Figure out some package information, like the compressed and uncompressed - # sizes, and where to find the package description: - COMPRESSED="$(/bin/du -sh "$(readlink -f $package)" | cut -f 1)" - DESCRIPTION="" - # First check for .txt file next to the package, since this is faster: - if grep "^$packagebase:" "$packagedir/$shortname.txt" 1> /dev/null 2> /dev/null ; then - DESCRIPTION="$packagedir/$shortname.txt" - elif grep "^$shortname:" "$packagedir/$shortname.txt" 1> /dev/null 2> /dev/null ; then - DESCRIPTION="$packagedir/$shortname.txt" - fi - - # Test tarball integrity and get uncompressed package size: - if [ "$MODE" = "install" ]; then - echo "Verifying package $(basename $package)." - fi - # The stray cat reduces the frequency of the lack of reported size. - # If it still fails, we hit it with a bigger hammer down below. - cat $package | $packagecompression -dc | LC_ALL=C dd 2> $TMP/tmpsize${MCOOKIE} | cat | tar tf - 2> /dev/null 1> $TMP/tmplist${MCOOKIE} - TARERROR=$? - if [ ! "$TARERROR" = "0" ]; then - EXITSTATUS=1 # tar file corrupt - if [ "$MODE" = "install" ]; then - echo "Unable to install $package: tar archive is corrupt (tar returned error code $TARERROR)" - fi - rm -f $TMP/tmplist${MCOOKIE} $TMP/tmpsize${MCOOKIE} - continue - fi - UNCOMPRESSED="$(cat $TMP/tmpsize${MCOOKIE} | tail -n 1 | cut -f 1 -d ' ' | numfmt --to=iec)" - # Weird bug "fix". Sometimes we get no uncompressed size (this started when we - # moved away from tar-1.13, but I don't see what that could have to do with - # it). So, if we have no uncompressed size here, demand it in this loop. - # Hopefully the bug is not weird enough to make this an infinite loop. :/ - while [ "$UNCOMPRESSED" = "" ]; do - cat $package | $packagecompression -dc | LC_ALL=C dd 1> /dev/null 2> $TMP/tmpsize${MCOOKIE} - UNCOMPRESSED="$(cat $TMP/tmpsize${MCOOKIE} | tail -n 1 | cut -f 1 -d ' ' | numfmt --to=iec)" - done - rm -f $TMP/tmpsize${MCOOKIE} - - # If we still don't have a package description, look inside the package. - # This requires a costly untar. - if [ "$DESCRIPTION" = "" ]; then - mkdir -p $TMP/scan${MCOOKIE} - ( cd $TMP/scan${MCOOKIE} ; $packagecompression -dc | tar xf - install ) < $package 2> /dev/null - if grep "^$packagebase:" "$TMP/scan${MCOOKIE}/install/slack-desc" 1> /dev/null 2> /dev/null ; then - DESCRIPTION="$TMP/scan${MCOOKIE}/install/slack-desc" - elif grep "^$shortname:" "$TMP/scan${MCOOKIE}/install/slack-desc" 1> /dev/null 2> /dev/null ; then - DESCRIPTION="$TMP/scan${MCOOKIE}/install/slack-desc" - fi - fi - - if [ "$DESCRIPTION" = "" ]; then - #echo "WARNING NO SLACK-DESC" - DESCRIPTION="/dev/null" - fi - - # Gather package infomation into a temporary file: - grep "^$packagebase:" $DESCRIPTION | cut -f 2- -d : | cut -b2- 1> $TMP/tmpmsg${MCOOKIE} 2> /dev/null - if [ "$shortname" != "$packagebase" ]; then - grep "^$shortname:" $DESCRIPTION | cut -f 2- -d : | cut -b2- 1>> $TMP/tmpmsg${MCOOKIE} 2> /dev/null - fi - # Adjust the length here. This allows a slack-desc to be any size up to 13 lines instead of fixed at 11. - LENGTH=$(wc -l < $TMP/tmpmsg${MCOOKIE} ) - while [ $LENGTH -lt 12 ]; do - echo >> $TMP/tmpmsg${MCOOKIE} - LENGTH=$(expr $LENGTH + 1) - done - echo "Size: Compressed: ${COMPRESSED}, uncompressed: ${UNCOMPRESSED}." >> $TMP/tmpmsg${MCOOKIE} - # For recent versions of dialog it is necessary to add \n to the end of each line - # or it will remove repeating spaces and mess up our careful formatting: - cat << EOF > $TMP/controlns${MCOOKIE} -\n -\n -\n -\n -\n -\n -\n -\n -\n -\n -\n -\n -\n -EOF - paste -d "" $TMP/tmpmsg${MCOOKIE} $TMP/controlns${MCOOKIE} > $TMP/pasted${MCOOKIE} - rm -f $TMP/controlns${MCOOKIE} - mv $TMP/pasted${MCOOKIE} $TMP/tmpmsg${MCOOKIE} - # Emit information to the console: - if [ "$MODE" = "install" ]; then - if [ "$PMSG" = "" ]; then - echo "Installing package $(basename $package):" - else - echo "Installing package $(basename $package) $PMSG:" - fi - echo "PACKAGE DESCRIPTION:" - grep "^$packagebase:" $DESCRIPTION | uniq | sed "s/^$packagebase:/#/g" - if [ "$shortname" != "$packagebase" ]; then - grep "^$shortname:" $DESCRIPTION | uniq | sed "s/^$shortname:/#/g" - fi - elif [ "$MODE" = "terse" ]; then # emit a single description line - ( flock 9 || exit 11 - printf "%-$(expr $TERSELENGTH - 7)s %-6s\n" "$(echo $shortname: $(echo $(cat $DESCRIPTION | grep "^$packagebase:" | sed "s/^$packagebase: //g" | head -n 1 | tr -d '()' | sed "s/^$packagebase //g" ) $(echo " $(printf '.%.0s' {1..256})")) | cut -b1-$(expr $TERSELENGTH - 7))" "$(printf "[%4s]" $UNCOMPRESSED)" | cut -b 1-${TERSELENGTH} - ) 9> $INSTLOCKDIR/dialog.lock - elif [ "$MODE" = "infobox" ]; then # install infobox package - ( flock 9 || exit 11 - dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg${MCOOKIE})" 0 0 - ) 9> $INSTLOCKDIR/dialog.lock - elif [ "$MODE" = "menu" -a "$PRIORITY" = "ADD" -a ! "$ALWAYSASK" = "yes" ]; then # ADD overrides menu mode unless -ask was used - ( flock 9 || exit 11 - dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg${MCOOKIE})" 0 0 - ) 9> $INSTLOCKDIR/dialog.lock - elif [ "$MODE" = "menu" -a "$USERPRIORITY" = "ADD" ]; then # install no matter what $PRIORITY - ( flock 9 || exit 11 - dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg${MCOOKIE})" 0 0 - ) 9> $INSTLOCKDIR/dialog.lock - else # we must need a full menu: - ( flock 9 || exit 11 - dialog --title "Package Name: $shortname $PMSG" --menu "$(cat $TMP/tmpmsg${MCOOKIE})" 0 0 3 \ - "Yes" "Install package $shortname" \ - "No" "Do not install package $shortname" \ - "Quit" "Abort software installation completely" 2> $TMP/reply${MCOOKIE} - if [ ! $? = 0 ]; then - echo "No" > $TMP/reply${MCOOKIE} - fi - ) 9> $INSTLOCKDIR/dialog.lock - REPLY="$(cat $TMP/reply${MCOOKIE})" - rm -f $TMP/reply${MCOOKIE} $TMP/tmpmsg${MCOOKIE} - if [ "$REPLY" = "Quit" ]; then - exit 99 # EXIT STATUS 99 = ABORT! - elif [ "$REPLY" = "No" ]; then - continue # skip the package - fi - fi - - # Make sure there are no symbolic links sitting in the way of - # incoming package files: - grep -v "/$" $TMP/tmplist${MCOOKIE} | while read file ; do - if [ -L "$ROOT/$file" ]; then - rm -f "$ROOT/$file" - fi - done - rm -f $TMP/tmplist${MCOOKIE} - - # Write the package file database entry and install the package: - echo "PACKAGE NAME: $shortname" > $ADM_DIR/packages/$shortname - echo "COMPRESSED PACKAGE SIZE: $COMPRESSED" >> $ADM_DIR/packages/$shortname - echo "UNCOMPRESSED PACKAGE SIZE: $UNCOMPRESSED" >> $ADM_DIR/packages/$shortname - echo "PACKAGE LOCATION: $package" >> $ADM_DIR/packages/$shortname - # Record the md5sum if that's a selected option: - if [ $MD5SUM = 1 ]; then - echo "PACKAGE MD5SUM: $(md5sum $package | cut -f 1 -d ' ')" >> $ADM_DIR/packages/$shortname - fi - echo "PACKAGE DESCRIPTION:" >> $ADM_DIR/packages/$shortname - grep "^$packagebase:" $DESCRIPTION >> $ADM_DIR/packages/$shortname 2> /dev/null - if [ "$shortname" != "$packagebase" ]; then - grep "^$shortname:" $DESCRIPTION >> $ADM_DIR/packages/$shortname 2> /dev/null - fi - echo "FILE LIST:" >> $ADM_DIR/packages/$shortname - if [ "$INSTDIR" = "install" ]; then - ( cd $ROOT/ ; $packagecompression -dc | tar --acls --xattrs --xattrs-include='*' --keep-directory-symlink -xpvf - | LC_ALL=C sort ) < $package >> $TMP/$shortname 2> /dev/null - else - ( cd $ROOT/ ; $packagecompression -dc | tar --transform "s,^install$,$INSTDIR," --transform "s,^install/,$INSTDIR/," --acls --xattrs --xattrs-include='*' --keep-directory-symlink -xpvf - | LC_ALL=C sort ) < $package >> $TMP/$shortname 2> /dev/null - fi - if [ "$( grep '^\./' $TMP/$shortname | wc -l | tr -d ' ')" = "1" ]; then - # Good. We have a package that meets the Slackware spec. - cat $TMP/$shortname >> $ADM_DIR/packages/$shortname - else - # Some dumb bunny built a package with something other than makepkg. Bad! - # Oh well. Bound to happen. Par for the course. Fix it and move on... - # We'll assume it's just a recent tar with an unfiltered filelist with all - # files prefixed with "./". No guarantees, but this will usually work. - cat $TMP/$shortname | sed '2,$s,^\./,,' >> $ADM_DIR/packages/$shortname - fi - rm -f $TMP/$shortname - - # It's a good idea to make sure those newly installed libraries are properly - # activated for use, unless ROOT is pointing somewhere else in which case - # running ldconfig on the host system won't make any difference: - if [ "$ROOT" = "" ] && [ -x /sbin/ldconfig ]; then - ( flock 9 || exit 11 - /sbin/ldconfig 2> /dev/null - ) 9> $INSTLOCKDIR/ldconfig.lock - fi - - if [ -f $ROOT/$INSTDIR/doinst.sh ]; then - if [ "$MODE" = "install" ]; then - echo "Executing install script for $(basename $package)." - fi - # Don't use locking if the script contains "NOLOCK": - if grep -q NOLOCK $ROOT/$INSTDIR/doinst.sh ; then - # If bash is available, use sed to convert the install script to use pushd/popd - # rather than spawning subshells which is slow on ARM. This will also speed up - # install script processing on any platform. - if [ -x /bin/bash ]; then - cd $ROOT/ ; sed -e's?^( cd \([^;]*\);\(.*\) )$?pushd \1 \&\> /dev/null ; \2 ; popd \&\> /dev/null?g ' $INSTDIR/doinst.sh | /bin/bash - else - cd $ROOT/ ; sh $INSTDIR/doinst.sh - fi - else # use locking - # If bash is available, use sed to convert the install script to use pushd/popd - # rather than spawning subshells which is slow on ARM. This will also speed up - # install script processing on any platform. - if [ -x /bin/bash ]; then - ( flock 9 || exit 11 - cd $ROOT/ ; sed -e's?^( cd \([^;]*\);\(.*\) )$?pushd \1 \&\> /dev/null ; \2 ; popd \&\> /dev/null?g ' $INSTDIR/doinst.sh | /bin/bash - ) 9> $INSTLOCKDIR/doinst.sh.lock - else - ( flock 9 || exit 11 - cd $ROOT/ ; sh $INSTDIR/doinst.sh - ) 9> $INSTLOCKDIR/doinst.sh.lock - fi - fi - fi - # Clean up the mess... - if [ -d $ROOT/$INSTDIR ]; then - if [ -r $ROOT/$INSTDIR/doinst.sh ]; then - cp $ROOT/$INSTDIR/doinst.sh $ADM_DIR/scripts/$shortname - chmod 755 $ADM_DIR/scripts/$shortname - fi - # /install/doinst.sh and /install/slack-* are reserved locations for the package system. - # Heh, not any more with a recent tar :-) - ( cd $ROOT/$INSTDIR ; rm -f doinst.sh slack-* 1> /dev/null 2>&1 ) - rmdir $ROOT/$INSTDIR 1> /dev/null 2>&1 - fi - # If we used a scan directory, get rid of it: - if [ -d "$TMP/scan${MCOOKIE}" ]; then - rm -rf "$TMP/scan${MCOOKIE}" - fi - rm -f $TMP/tmpmsg${MCOOKIE} $TMP/reply${MCOOKIE} - if [ "$MODE" = "install" ]; then - echo "Package $(basename $package) installed." - fi -done - -exit $EXITSTATUS diff --git a/testing/source/pkgtools/scripts/makebootdisk b/testing/source/pkgtools/scripts/makebootdisk deleted file mode 100644 index 79379618..00000000 --- a/testing/source/pkgtools/scripts/makebootdisk +++ /dev/null @@ -1,443 +0,0 @@ -#!/bin/sh -# Copyright 1995, 1998, 2002, 2005 Patrick Volkerding, Moorhead, Minnesota USA -# 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. -# - -if [ ! "$UID" = "0" ]; then - echo "You need to be root to run this script." - exit 1 -fi - -# Was a kernel specified on the command line? -if [ -r "$1" ]; then - KERNEL=$1 - KMSG="Using kernel $KERNEL" -else - KMSG="No kernel selected yet" -fi - -# Make sure there's a proper temp directory: -TMP=/var/lib/pkgtools/setup/tmp -# If the $TMP directory doesn't exist, create it: -if [ ! -d $TMP ]; then - mkdir -p $TMP - chmod 700 $TMP # no need to leave it open -fi - -ROOT_DEVICE="`mount | grep ' on / ' | cut -f 1 -d ' '`" - -if mount | grep ' on / ' | grep umsdos 1> /dev/null 2> /dev/null ; then - MOUNT="read-write" -else - MOUNT="read-only" -fi - -make_root_device() { -# Make a device: -makedev() { - if [ ! -b $1 ]; then - mknod $1 b $2 $3 - chown root.disk $1 - chmod 640 $1 - fi -} - -# Make ide device -# make ide major minor hd1 hd2 (2 base devs for major) -make_ide() { - # Handle base devices: - if [ "$2" = "0" ]; then - makedev $TMP/lilo/dev/$3 $1 $2 - return 0 - elif [ "$2" = "64" ]; then - makedev $TMP/lilo/dev/$4 $1 $2 - return 0 - fi - # Must be a partition: - if [ "`expr $2 / 64`" = "0" ]; then - DEV=$3 - NUM=$2 - else - DEV=$4 - NUM=`expr $2 - 64` - fi - makedev $TMP/lilo/dev/$DEV$NUM $1 $2 -} - -# Make SCSI device -make_scsi() { - # find drive # 0 - 15 - DRV=`expr $1 / 16` - NUM=`expr $1 % 16` - if [ "$NUM" = "0" ]; then - NUM="" - fi - if [ "$DRV" = "0" ]; then - makedev $TMP/lilo/dev/sda$NUM 8 $1 - elif [ "$DRV" = "1" ]; then - makedev $TMP/lilo/dev/sdb$NUM 8 $1 - elif [ "$DRV" = "2" ]; then - makedev $TMP/lilo/dev/sdc$NUM 8 $1 - elif [ "$DRV" = "3" ]; then - makedev $TMP/lilo/dev/sdd$NUM 8 $1 - elif [ "$DRV" = "4" ]; then - makedev $TMP/lilo/dev/sde$NUM 8 $1 - elif [ "$DRV" = "5" ]; then - makedev $TMP/lilo/dev/sdf$NUM 8 $1 - elif [ "$DRV" = "6" ]; then - makedev $TMP/lilo/dev/sdg$NUM 8 $1 - elif [ "$DRV" = "7" ]; then - makedev $TMP/lilo/dev/sdh$NUM 8 $1 - elif [ "$DRV" = "8" ]; then - makedev $TMP/lilo/dev/sdi$NUM 8 $1 - elif [ "$DRV" = "9" ]; then - makedev $TMP/lilo/dev/sdj$NUM 8 $1 - elif [ "$DRV" = "10" ]; then - makedev $TMP/lilo/dev/sdk$NUM 8 $1 - elif [ "$DRV" = "11" ]; then - makedev $TMP/lilo/dev/sdl$NUM 8 $1 - elif [ "$DRV" = "12" ]; then - makedev $TMP/lilo/dev/sdm$NUM 8 $1 - elif [ "$DRV" = "13" ]; then - makedev $TMP/lilo/dev/sdn$NUM 8 $1 - elif [ "$DRV" = "14" ]; then - makedev $TMP/lilo/dev/sdo$NUM 8 $1 - elif [ "$DRV" = "15" ]; then - makedev $TMP/lilo/dev/sdp$NUM 8 $1 - fi -} - -if cat /proc/partitions | grep / 1> /dev/null 2> /dev/null ; then # new - cat /proc/partitions | grep / | while read line ; do - SMASHED_LINE=$line - MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '` - MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '` - if [ "$MAJOR" = "3" ]; then - make_ide $MAJOR $MINOR hda hdb - elif [ "$MAJOR" = "8" ]; then - make_scsi $MINOR - elif [ "$MAJOR" = "22" ]; then - make_ide $MAJOR $MINOR hdc hdd - elif [ "$MAJOR" = "33" ]; then - make_ide $MAJOR $MINOR hde hdf - elif [ "$MAJOR" = "34" ]; then - make_ide $MAJOR $MINOR hdg hdh - elif [ "$MAJOR" = "56" ]; then - make_ide $MAJOR $MINOR hdi hdj - fi - done -else # old format - cat /proc/partitions | grep d | while read line ; do - SMASHED_LINE=$line - MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '` - MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '` - DEVNAME=`echo $SMASHED_LINE | cut -f 4 -d ' '` - makedev $TMP/lilo/dev/$DEVNAME $MAJOR $MINOR - done -fi -} - -choose_kernel() { -while [ 0 ]; do # input loop -cat << EOF > $TMP/tmpmsg - -Some possible paths to kernels are these: - -/boot/vmlinuz -/usr/src/linux/arch/i386/boot/bzImage -/usr/src/linux/arch/i386/boot/zImage -/vmlinuz - -Put the path to the kernel you want to use in the box below. - -EOF - - dialog --title "CHOOSE KERNEL" --inputbox "`cat $TMP/tmpmsg`" \ - 16 72 "/boot/vmlinuz" 2> $TMP/return - if [ ! $? = 0 ]; then - exit - fi - - KERNEL="`cat $TMP/return`" - - if [ ! -r "$KERNEL" ]; then - dialog --title "NOT FOUND!" --msgbox "$KERNEL" 5 60 - continue - fi - KMSG="Using kernel $KERNEL" -break -done -} - -format_disk() { - # If anyone still uses 1.2 MB, you'll have to uncomment this. - # It's no longer a default option. - #FDEV=/dev/fd0h1200 - #FDEV=/dev/fd0u1400 - FDEV=/dev/fd0u1680 - if [ "$FDEV" = "/dev/fd0u1680" ]; then - dialog --title "Formatting /dev/fd0u1680" --infobox \ - "Formatting /dev/fd0, 1.68 megabytes." 3 42 - elif [ "$FDEV" = "/dev/fd0u1400" ]; then - dialog --title "Formatting /dev/fd0u1440" --infobox \ - "Formatting /dev/fd0, 1.44 megabytes." 3 42 - elif [ "$FDEV" = "/dev/fd0h1200" ]; then - dialog --title "Formatting /dev/fd0h1200" --infobox \ - "Formatting /dev/fd0, 1.2 megabytes." 3 42 - fi - fdformat $FDEV 1> /dev/null 2> /dev/null - if [ ! $? = 0 ]; then - dialog --title "ERROR: FLOPPY FORMAT FAILED" --msgbox "The attempt to format the floppy \ -disk in /dev/fd0 has failed, probably due to bad media. Please try again with a \ -different disk. If that doesn't work, perhaps the drive needs cleaning." 0 0 - return 1 - fi -} - -DEFAULT_ITEM="syslinux" - -while [ 0 ]; do # menu loop - dialog --title "MAKE BOOT FLOPPY FROM KERNEL" \ ---default-item $DEFAULT_ITEM \ ---backtitle "$KMSG" --menu "This menu allows you to make a SYSLINUX bootdisk \ -from a compiled kernel. The SYSLINUX bootloader has the advantage of \ -using a FAT filesystem making it easy to replace the kernel later. \ -Which option would you like?" 12 67 2 \ -"syslinux" "Make a SYSLINUX bootdisk" \ -"exit" "Exit this program" 2> $TMP/return - if [ ! $? = 0 ]; then - break; - fi - REPLY=`cat $TMP/return` - rm -f $TMP/return - if [ "$REPLY" = "simple" ]; then # make simple bootdisk - if [ "$KERNEL" = "" ]; then - choose_kernel - fi - kernel_size=`du -Lk $KERNEL | cut -f1` - if [ "$kernel_size" -gt "1023" ]; then -cat << EOF > $TMP/tmpmsg - -The kernel $KERNEL is $kernel_size K (which is -more than 1023 Kb in size), so it probably won't -boot standalone on the floppy. Use the 'syslinux' -method instead. - -EOF - dialog --title "KERNEL TOO BIG!" --msgbox "`cat $TMP/tmpmsg`" 10 60 - continue - fi - dialog --title "BOOT DISK CREATION" --backtitle "$KMSG" --yesno \ -"\n\ -Now put a formatted floppy in your boot drive. \n\ -This will be made into your Linux boot disk. Use this to\n\ -boot Linux until LILO has been configured to boot from\n\ -the hard drive.\n\n\ -Any data on the target disk will be destroyed.\n\n\ -YES creates the disk, NO aborts.\n" 14 62 - if [ $? = 0 ]; then - format_disk - dialog --title "CREATING DISK" --infobox "Creating boot disk from $KERNEL..." 5 72 - dd if=$KERNEL of=/dev/fd0 2> /dev/null - rdev /dev/fd0 $ROOT_DEVICE - rdev -v /dev/fd0 -1 - if [ "$MOUNT" = "read-only" ]; then - rdev -R /dev/fd0 1 - else - rdev -R /dev/fd0 0 - fi - fi - elif [ "$REPLY" = "syslinux" ]; then # make syslinux bootdisk - DEFAULT_ITEM="exit" - if [ "$KERNEL" = "" ]; then - choose_kernel - fi - dialog --title "CREATING SYSLINUX BOOTDISK IN /dev/fd0" --backtitle "$KMSG" --yesno "Now put a \ -floppy in your boot drive. This will be made into a SYSLINUX \ -bootdisk that you can use to start your Linux system. Any data on the \ -target disk will be destroyed. YES creates the disk, NO aborts." 8 62 - if [ $? = 0 ]; then # make the disk - format_disk - if [ ! $? = 0 ]; then - continue - fi - dialog --title "CREATING BOOT FLOPPY" --infobox "Creating SYSLINUX bootdisk for \ -$ROOT_DEVICE in /dev/fd0." 3 64 - mkdosfs -F 12 /dev/fd0u1680 1680 1> /dev/null 2> /dev/null - if [ ! -d $TMP/bootdisk ]; then - mkdir $TMP/bootdisk - fi - mount -t vfat /dev/fd0 $TMP/bootdisk 1> /dev/null 2> /dev/null - cp $KERNEL $TMP/bootdisk/vmlinuz - ## This avoids a syslinux-1.72 bug, and doesn't seem to hurt anything: - #dd if=/dev/zero bs=1k count=1 >> $TMP/bootdisk/vmlinuz 2> /dev/null - if [ ! "$?" = "0" ]; then - dialog --title "ERROR COPYING KERNEL TO FLOPPY" \ - --msgbox "Sorry, but there was an error copying the kernel to the \ -floppy disk. Possibly the kernel is too large to fit the disk. \ -This program will now exit." 0 0 - umount /dev/fd0 - rm -rf $TMP/bootdisk - exit 1 - fi - cat << EOF > $TMP/bootdisk/message.txt - -Welcome to the 09Slackware07 Linux custom bootdisk! - -By default, this disk boots a root Linux partition on $ROOT_DEVICE when you -hit ENTER. If you'd like to boot some other partition, use a command like -this on the prompt below: - - mount root=/dev/sda1 ro - -Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that -the partition should be initially mounted as read-only. If you wish to mount -the partition read-write, use "rw" instead. To set the video console mode, -use the vga= parameter (press F1 to see a table). You may also add any other -kernel parameters you might need depending on your hardware, and which -drivers are included in your kernel. - -EOF - cat << EOF > $TMP/bootdisk/syslinux.cfg -default vmlinuz ramdisk_size=7000 root=$ROOT_DEVICE vga=normal ro -prompt 1 -timeout 6000 -display message.txt -F1 f1.txt -F2 message.txt -#F3 f3.txt -#F4 f4.txt -#F5 f5.txt -#F6 f6.txt -#F7 f7.txt -label mount - kernel vmlinuz - append ramdisk_size=7000 root=$ROOT_DEVICE vga=normal ro -label ramdisk - kernel vmlinuz - append vmlinuz ramdisk_size=7000 root=/dev/fd0u1440 vga=normal rw -EOF - cat << EOF > $TMP/bootdisk/f1.txt - STANDARD MODES: - To make the kernel prompt for standard video modes use: vga=ask - - FRAMEBUFFER MODES: - To get the kernel to start in VESA framebuffer mode, you need to pass it - a vga= init string on the "boot:" prompt. Here's a table: - - Colors 640x480 800x600 1024x768 1280x1024 1600x1200 - --------+--------------------------------------------- - 256 | 769 771 773 775 796 - 32,768 | 784 787 790 793 797 - 65,536 | 785 788 791 794 798 - 16.8M | 786 789 792 795 799 - - ...such as this for 1024x768x64k: - vga=791 - - F2 returns to the previous page. - -EOF - umount /dev/fd0 - syslinux-nomtools -s /dev/fd0 - rm -r $TMP/bootdisk - fi - elif [ "$REPLY" = "lilo" ]; then # make lilo bootdisk - DEFAULT_ITEM="exit" - if [ ! -x "`type -path lilo`" ]; then -cat << EOF > $TMP/tmpmsg - -You don't have 'lilo' installed on the system. -I guess you didn't install the lilo package. - -EOF - dialog --title "LILO NOT FOUND" --msgbox "`cat $TMP/tmpmsg`" 8 60 - continue - fi - if [ "$KERNEL" = "" ]; then - choose_kernel - fi - dialog --title "CREATING LILO BOOTDISK IN /dev/fd0" --backtitle "$KMSG" --yesno "Now put a \ -floppy in your boot drive. This will be made into a LILO \ -bootdisk that you can use to start your Linux system. Any data on the \ -target disk will be destroyed. YES creates the disk, NO aborts." 8 62 - if [ $? = 0 ]; then # make the disk - format_disk - DEV=/dev/fd0u1680 - mknod_fd="-m 0640 $TMP/lilo$DEV b 2 44" - dialog --infobox "Creating LILO bootdisk from $KERNEL for $ROOT_DEVICE..." 4 60 - mke2fs -q -m 0 -i 4096 $DEV 1> /dev/null 2> /dev/null || exit 1 - if [ ! -d $TMP/lilo ]; then - mkdir -p $TMP/lilo - fi - mount -t ext2 $DEV $TMP/lilo 1> /dev/null || exit 1 - rmdir $TMP/lilo/lost+found - cp $KERNEL $TMP/lilo/vmlinuz || exit 1 - mkdir $TMP/lilo/dev - make_root_device - mknod -m 0640 $TMP/lilo/dev/fd0 b 2 0 - mknod -m 0640 $TMP/lilo/dev/fd1 b 2 1 - mknod $mknod_fd - mknod -m 0666 $TMP/lilo/dev/null c 1 3 - mkdir $TMP/lilo/etc - cat << EOF > $TMP/lilo/etc/lilo.conf -boot = $DEV -message=/boot/message -backup=/dev/null -prompt -image = /vmlinuz - label = mount - ramdisk = 0 - root = $ROOT_DEVICE - vga = normal - $MOUNT -EOF - mkdir $TMP/lilo/boot - cp -a /boot/chain.b $TMP/lilo/boot - if [ -f /boot/boot-text.b ]; then - cp -a /boot/boot-text.b $TMP/lilo/boot/boot.b - else - cp -a /boot/boot.b $TMP/lilo/boot - fi - cat << EOF > $TMP/lilo/boot/message - -Welcome to the Slackware Linux custom LILO bootdisk! - -By default, this disk boots a root Linux partition on $ROOT_DEVICE when -you hit ENTER. If you'd like to boot some other partition, use a command -like this on the LILO prompt below: - - mount root=/dev/sda1 ro - -Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that -the partition should be initially mounted as read-only. If you which to mount -the partition read-write, use "rw" instead. You may also add any other kernel -parameters you might need depending on your hardware, and which drivers are -included in your kernel. - -EOF - lilo -r $TMP/lilo > /dev/null - umount $TMP/lilo - rm -rf $TMP/lilo - fi - elif [ "$REPLY" = "exit" ]; then - break; - fi -done diff --git a/testing/source/pkgtools/scripts/makepkg b/testing/source/pkgtools/scripts/makepkg deleted file mode 100644 index f9241cb9..00000000 --- a/testing/source/pkgtools/scripts/makepkg +++ /dev/null @@ -1,452 +0,0 @@ -#!/bin/sh -# Copyright 1994, 1998, 2008 Patrick Volkerding, Moorhead, Minnesota USA -# Copyright 2003 Slackware Linux, Inc. Concord, CA USA -# Copyright 2009, 2015, 2017, 2018 Patrick J. Volkerding, Sebeka, MN, USA -# 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. -# -# Mon May 21 18:31:20 UTC 2018 -# Add --compress option, usually used to change the preset compression level -# or block size. -# -# Tue Feb 13 00:46:12 UTC 2018 -# Use recent tar, and support storing POSIX ACLs and extended attributes. -# -# Tue Dec 12 21:55:59 UTC 2017 -# If possible, use multiple compression threads. -# -# Wed Sep 23 18:36:43 UTC 2015 -# Support spaces in file/directory names. <alphageek> -# -# Sun Apr 5 21:23:26 CDT 2009 -# Support .tgz, .tbz, .tlz, and .txz packages. <volkerdi> -# -# Fri Nov 26 13:53:36 GMT 2004 -# Patched to chmod 755 the package's root directory if needed, then restore -# previous permissions after the package has been created. <sw> -# -# Wed Mar 18 15:32:33 CST 1998 -# Patched to avoid possible symlink attacks in /tmp. - -CWD=$(pwd) - -umask 022 - -make_install_script() { - TAB="$(echo -e "\t")" - COUNT=1 - while :; do - LINE="$(sed -n "$COUNT p" $1)" - if [ "$LINE" = "" ]; then - break - fi - LINKGOESIN="$(echo "$LINE" | cut -f 1 -d "$TAB")" - LINKGOESIN="$(dirname "$LINKGOESIN")" - LINKNAMEIS="$(echo "$LINE" | cut -f 1 -d "$TAB")" - LINKNAMEIS="$(basename "$LINKNAMEIS")" - LINKPOINTSTO="$(echo "$LINE" | cut -f 2 -d "$TAB")" - echo "( cd $LINKGOESIN ; rm -rf $LINKNAMEIS )" - echo "( cd $LINKGOESIN ; ln -sf $LINKPOINTSTO $LINKNAMEIS )" - COUNT=$(expr $COUNT + 1) - done -} - -usage() { - cat << EOF - -Usage: makepkg package_name.tgz - (or: package_name.tbz, package_name.tlz, package_name.txz) - -Makes a Slackware compatible package containing the contents of the current -and all subdirectories. If symbolic links exist, they will be removed and -an installation script will be made to recreate them later. This script will -be called "install/doinst.sh". You may add any of your own ash-compatible -shell scripts to this file and rebuild the package if you wish. - -options: -l, --linkadd y|n (moves symlinks into doinst.sh: recommended) - -p, --prepend (prepend rather than append symlinks to an existing - doinst.sh. Useful to link libraries needed by programs in - the doinst.sh script) - -c, --chown y|n (resets all permissions to root:root 755 - not - generally recommended) - --threads <number> For xz/plzip compressed packages, set the max - number of threads to be used for compression. Only has an - effect on large packages. For plzip, the default is equal to - the number of CPU threads available on the machine. For xz, - the default is equal to 2 (due to commonly occuring memory - related failures when using many threads with multi-threaded - xz compression). - --compress <option> Supply a custom option to the compressor. - This will be used in place of the default, which is: -9 - --acls Support storing POSIX ACLs in the package. The resulting - package will not be compatible with pkgtools version < 15.0. - --xattrs Support storing extended attributes in the package. The - resulting package will not be compatible with pkgtools - version < 15.0. - -If these options are not set, makepkg will prompt if appropriate. -EOF -} - -TMP=/tmp # This can be a hole, but I'm going to be careful about file - # creation in there, so don't panic. :^) - -# Set maximum number of threads to use. By default, this will be the number -# of CPU threads: -THREADS="$(nproc)" - -# Set default compression option. -COMPRESS_OPTION="-9" - -# Parse options -unset ACLS XATTRS -while [ 0 ]; do - if [ "$1" = "--linkadd" -o "$1" = "-l" ]; then - if [ "$2" = "y" ]; then - LINKADD=y - elif [ "$2" = "n" ]; then - LINKADD=n - else - usage - exit 2 - fi - shift 2 - elif [ "$1" = "--chown" -o "$1" = "-c" ]; then - if [ "$2" = "y" ]; then - CHOWN=y - elif [ "$2" = "n" ]; then - CHOWN=n - else - usage - exit 2 - fi - shift 2 - elif [ "$1" = "-p" -o "$1" = "--prepend" ]; then - PREPEND=y - shift 1 - elif [ "$1" = "-threads" -o "$1" = "--threads" ]; then - THREADS="$2" - shift 2 - # xz has memory issues with threads it seems, so we'll use two threads by - # default unless we see that something else was user-selected: - XZ_THREADS_FORCED=yes - elif [ "$1" = "-compress" -o "$1" = "--compress" ]; then - COMPRESS_OPTION="$2" - shift 2 - elif [ "$1" = "--acls" ]; then - ACLS="--acls" - shift 1 - elif [ "$1" = "--xattrs" ]; then - XATTRS="--xattrs" - shift 1 - elif [ "$1" = "-h" -o "$1" = "-H" -o "$1" = "--help" -o $# = 0 ]; then - usage - exit 0 - else - break - fi -done - -PACKAGE_NAME="$1" -TARGET_NAME="$(dirname $PACKAGE_NAME)" -PACKAGE_NAME="$(basename $PACKAGE_NAME)" - -# Identify package extension and compression type to use: -if [ ! "$(basename $PACKAGE_NAME .tgz)" = "$PACKAGE_NAME" ]; then - EXTENSION="tgz" - COMPEXT="gz" - COMPRESSOR="gzip ${COMPRESS_OPTION} -c" - if ! which gzip 1> /dev/null 2> /dev/null ; then - echo "ERROR: gzip compression utility not found in \$PATH." - exit 3 - fi -elif [ ! "$(basename $PACKAGE_NAME .tar.gz)" = "$PACKAGE_NAME" ]; then - EXTENSION="tar.gz" - COMPRESSOR="gzip ${COMPRESS_OPTION} -c" - if ! which gzip 1> /dev/null 2> /dev/null ; then - echo "ERROR: gzip compression utility not found in \$PATH." - exit 3 - fi -elif [ ! "$(basename $PACKAGE_NAME .tbz)" = "$PACKAGE_NAME" ]; then - EXTENSION="tbz" - if which lbzip2 1> /dev/null 2> /dev/null ; then - COMPRESSOR="lbzip2 ${COMPRESS_OPTION} -c" - else - if which bzip2 1> /dev/null 2> /dev/null ; then - COMPRESSOR="bzip2 ${COMPRESS_OPTION} -c" - else - echo "ERROR: bzip2 compression utility not found in \$PATH." - exit 3 - fi - fi -elif [ ! "$(basename $PACKAGE_NAME .tar.bz2)" = "$PACKAGE_NAME" ]; then - EXTENSION="tar.bz2" - if which lbzip2 1> /dev/null 2> /dev/null ; then - COMPRESSOR="lbzip2 ${COMPRESS_OPTION} -c" - else - if which bzip2 1> /dev/null 2> /dev/null ; then - COMPRESSOR="bzip2 ${COMPRESS_OPTION} -c" - else - echo "ERROR: bzip2 compression utility not found in \$PATH." - exit 3 - fi - fi -elif [ ! "$(basename $PACKAGE_NAME .tlz)" = "$PACKAGE_NAME" ]; then - EXTENSION="tlz" - if which plzip 1> /dev/null 2> /dev/null ; then - COMPRESSOR="plzip ${COMPRESS_OPTION} --threads=${THREADS} -c" - else - echo "WARNING: plzip compression utility not found in \$PATH." - echo "WARNING: package will not support multithreaded decompression." - if which lzip 1> /dev/null 2> /dev/null ; then - COMPRESSOR="lzip ${COMPRESS_OPTION} -c" - else - echo "ERROR: lzip compression utility not found in \$PATH." - exit 3 - fi - fi -elif [ ! "$(basename $PACKAGE_NAME .tar.lz)" = "$PACKAGE_NAME" ]; then - EXTENSION="tar.lz" - if which plzip 1> /dev/null 2> /dev/null ; then - COMPRESSOR="plzip ${COMPRESS_OPTION} --threads=${THREADS} -c" - else - echo "WARNING: plzip compression utility not found in \$PATH." - echo "WARNING: package will not support multithreaded decompression." - if which lzip 1> /dev/null 2> /dev/null ; then - COMPRESSOR="lzip ${COMPRESS_OPTION} -c" - else - echo "ERROR: lzip compression utility not found in \$PATH." - exit 3 - fi - fi -elif [ ! "$(basename $PACKAGE_NAME .tar.lzma)" = "$PACKAGE_NAME" ]; then - EXTENSION="tar.lzma" - COMPRESSOR="lzma ${COMPRESS_OPTION} -c" - if ! which lzma 1> /dev/null 2> /dev/null ; then - echo "ERROR: lzma compression utility not found in \$PATH." - exit 3 - fi -elif [ ! "$(basename $PACKAGE_NAME .txz)" = "$PACKAGE_NAME" ]; then - EXTENSION="txz" - if [ ! "$XZ_THREADS_FORCED" = "yes" ]; then - # Two threads by default with xz due to memory failures on 32-bit. Not that - # it matters much... if upstream ever gets around to implementing multi- - # threaded decompression we'll revisit this default. :-D - COMPRESSOR="xz ${COMPRESS_OPTION} --threads=2 -c" - else - COMPRESSOR="xz ${COMPRESS_OPTION} --threads=${THREADS} -c" - fi - if ! which xz 1> /dev/null 2> /dev/null ; then - echo "ERROR: xz compression utility not found in \$PATH." - exit 3 - fi -elif [ ! "$(basename $PACKAGE_NAME .tar.xz)" = "$PACKAGE_NAME" ]; then - EXTENSION="tar.xz" - if [ ! "$XZ_THREADS_FORCED" = "yes" ]; then - # Two threads by default with xz due to memory failures on 32-bit. Not that - # it matters much... if upstream ever gets around to implementing multi- - # threaded decompression we'll revisit this default. :-D - COMPRESSOR="xz ${COMPRESS_OPTION} --threads=2 -c" - else - COMPRESSOR="xz ${COMPRESS_OPTION} --threads=${THREADS} -c" - fi - if ! which xz 1> /dev/null 2> /dev/null ; then - echo "ERROR: xz compression utility not found in \$PATH." - exit 3 - fi -else - EXTENSION="$(echo $PACKAGE_NAME | rev | cut -f 1 -d . | rev)" - echo "ERROR: Package extension .$EXTENSION is not supported." - exit 1 -fi - -TAR_NAME="$(basename $PACKAGE_NAME .$EXTENSION)" - -# Sanity check -- we can't make the package in the current directory: -if [ "$CWD" = "$TARGET_NAME" -o "." = "$TARGET_NAME" ]; then - echo "ERROR: Can't make output package in current directory." - exit 2 -fi - -echo -echo "Slackware package maker, version 3.14159265." -echo -echo "Searching for symbolic links:" -# Get rid of possible pre-existing trouble: -INST=$(mktemp $TMP/makepkg.XXXXXX) -find . -type l -printf "%p\t%l\n" | sed 's,^\./,, ; s, ,\\ ,g' | tee $INST -if [ ! "$(cat $INST)" = "" ]; then - echo - echo "Making symbolic link creation script:" - make_install_script $INST | tee doinst.sh -fi -echo -if [ ! "$(cat $INST)" = "" ]; then - if [ -r install/doinst.sh ]; then - echo "Unless your existing installation script already contains the code" - echo "to create these links, you should append these lines to your existing" - echo "install script. Now's your chance. :^)" - echo - echo "Would you like to add this stuff to the existing install script and" - echo -n "remove the symbolic links ([y]es, [n]o)? " - else - echo "It is recommended that you make these lines your new installation script." - echo - echo "Would you like to make this stuff the install script for this package" - echo -n "and remove the symbolic links ([y]es, [n]o)? " - fi - if [ ! "$LINKADD" ]; then - read LINKADD; - echo - else - echo $LINKADD - echo - fi - if [ "$LINKADD" = "y" ]; then - if [ -r install/doinst.sh ]; then - UPDATE="t" - if [ "$PREPEND" = "y" ]; then - touch install/doinst.sh - mv install/doinst.sh install/doinst.sh.shipped - cat doinst.sh > install/doinst.sh - echo "" >> install/doinst.sh - cat install/doinst.sh.shipped >> install/doinst.sh - rm -f install/doinst.sh.shipped - else - cat doinst.sh >> install/doinst.sh - fi - else - mkdir -p install - cat doinst.sh > install/doinst.sh - fi - echo - echo "Removing symbolic links:" - find . -type l -exec rm -v {} \; - echo - if [ "$UPDATE" = "t" ]; then - if [ "$PREPEND" = "y" ]; then - echo "Updating your ./install/doinst.sh (prepending symlinks)..." - else - echo "Updating your ./install/doinst.sh..." - fi - else - echo "Creating your new ./install/doinst.sh..." - fi - fi -else - echo "No symbolic links were found, so we won't make an installation script." - echo "You can make your own later in ./install/doinst.sh and rebuild the" - echo "package if you like." -fi -rm -f doinst.sh $INST -echo -echo "This next step is optional - you can set the directories in your package" -echo "to some sane permissions. If any of the directories in your package have" -echo "special permissions, then DO NOT reset them here!" -echo -echo "Would you like to reset all directory permissions to 755 (drwxr-xr-x) and" -echo -n "directory ownerships to root.root ([y]es, [n]o)? " -if [ ! "$CHOWN" ]; then - read CHOWN; - echo -else - echo $CHOWN - echo -fi -if [ "$CHOWN" = "y" ]; then - find . -type d -exec chmod -v 755 {} \; - find . -type d -exec chown -v root.root {} \; -fi - -# Ensure that the 'root' of the package is chmod 755 because -# the / of your filesystem will inherit these permissions. -# If it's anything tighter than 755 then bad things happen such as users -# not being able to login, users already logged in can no longer run commands -# and so on. -OLDROOTPERMS="$(find -name . -printf "%m\n")" -if [ $OLDROOTPERMS -ne 755 ]; then - echo "WARNING: $PWD is chmod $OLDROOTPERMS" - echo " temporarily changing to chmod 755" - chmod 755 . -fi - -echo "Creating Slackware package: ${TARGET_NAME}/${TAR_NAME}.${EXTENSION}" -echo -rm -f ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} - -# HISTORICAL NOTE 2/2018: -# In the interest of maximizing portability of this script, we'll use find -# and sed to create a filelist compatible with tar-1.13, and then use a -# more modern tar version to create the archive. -# -# Other (but possibly less portable) ways to achieve the same result: -# -# Use the tar --transform and --show-transformed-names options: -# tar --transform "s,^\./\(.\),\1," --show-transformed-names $ACLS $XATTRS -cvf - . | $COMPRESSOR > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} -# -# Use cpio: -# find ./ | sed '2,$s,^\./,,' | cpio --quiet -ovHustar > ${TARGET_NAME}/${TAR_NAME}.tar - -# Create the package: -find ./ | sed '2,$s,^\./,,' | tar --no-recursion $ACLS $XATTRS -T - -cvf - | $COMPRESSOR > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} -ERRCODE=$? -if [ ! $ERRCODE = 0 ]; then - echo "ERROR: $COMPRESSOR returned error code $ERRCODE -- makepkg failed." - exit 1 -fi - -# Warn of zero-length files: -find . -type f -size 0c | while read file ; do - echo "WARNING: zero length file $(echo $file | cut -b3-)" -done - -# Warn of corrupt or empty gzip files: -find . -type f -name '*.gz' | while read file ; do - if ! gzip -t $file 1> /dev/null 2> /dev/null ; then - echo "WARNING: gzip test failed on $(echo $file | cut -b3-)" - else - if [ "$(gzip -l $file | tail -n 1 | tr -s ' ' | cut -f 3 -d ' ')" -eq 0 ]; then - echo "WARNING: $(echo $file | cut -b3-) is an empty gzipped file" - fi - fi -done - -# Some more handy warnings: -if [ -d usr/share/man ]; then - echo "WARNING: /usr/share/man (with possibly not gzipped man pages) detected" -fi - -if [ -d usr/share/info ]; then - echo "WARNING: /usr/share/info (with possibly not gzipped info pages) detected" -fi - -if find . | grep site_perl 1> /dev/null ; then - echo "WARNING: site_perl directory detected (this is fine for a local package build)" -fi - -# Restore the old permissions if they previously weren't chmod 755 -if [ $OLDROOTPERMS -ne 755 ]; then - echo - echo "Restoring permissions of $PWD to chmod $OLDROOTPERMS" - chmod $OLDROOTPERMS . -fi - -echo -echo "Slackware package ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} created." -echo diff --git a/testing/source/pkgtools/scripts/pkgdiff b/testing/source/pkgtools/scripts/pkgdiff deleted file mode 100644 index ca21ad8f..00000000 --- a/testing/source/pkgtools/scripts/pkgdiff +++ /dev/null @@ -1,164 +0,0 @@ -#!/bin/sh -# Copyright 2002 Patrick J. Volkerding, Concord, CA, USA -# Copyright 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA -# 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. - -CWD=$(pwd) - -# Display usage for basic usage errors: -usage() { - cat << EOF -pkgdiff: missing file arguments -Try 'pkgdiff --help' for more information. -EOF -} - -# Display full --help if requested: -helpme() { - cat << EOF -Usage: pkgdiff [OPTION] FILE1 FILE2 -Show which files are new and which are removed between two tar archives. -The tar archives may be uncompressed, or compressed with gzip, bzip2, -xz, or lzip. Also works with .rpm and .deb. - - --help display this help and exit - -c use ANSI color with default tree mode - -a show simple text (ASCII) diff of package file lists - -By default, the trees are drawn with in crude ASCII with no color. For -the full-color effect, try something like this: - - pkgdiff -c package1 package2 | less -r - -EOF - # --help doesn't return - exit 22 -} - -# How the heck do I open this? -explode() { - tar xf $1 1> /dev/null 2> /dev/null - # Check for common extensions and do additional magic: - if [ ! "$(basename $1)" = "$(basename $1 .zip)" ]; then - unzip $1 1> /dev/null 2> /dev/null - fi - if [ ! "$(basename $1)" = "$(basename $1 .rpm)" ]; then - cp $1 . - rpm2tgz $(basename $1) 1> /dev/null 2> /dev/null - rm -f $(basename $1) - tar xzf $(basename $1 .rpm).tgz 1> /dev/null 2> /dev/null - rm -f $(basename $1 .rpm).tgz - fi - if [ ! "$(basename $1)" = "$(basename $1 .deb)" ]; then - cp $1 . - ar x $(basename $1) 1> /dev/null 2> /dev/null - tar xf data.tar.xz 1> /dev/null 2> /dev/null - rm -f * 2> /dev/null - fi - # Diffs for other archive formats are welcome. -} - -# Parse options. -# -c turns on colorization ala dircolors: -unset COLOR -if [ "$1" = "-c" ]; then - COLOR="-C" - shift 1 -fi -if [ "$1" = "-a" ]; then - ASCII=true - shift 1 -fi -if [ "$1" = "--help" ]; then - helpme -fi - -TMPDIR=$(mktemp -d) -cd $TMPDIR - -if [ ! -r "$1" ]; then - if [ -d "$CWD/$1" ]; then - usage - exit 99 - else - PKG1="$CWD/$1" - fi -else - PKG1="$1" -fi - -if [ ! -r "$2" ]; then - if [ -d "$CWD/$2" ]; then - usage - #echo "pkgdiff -- find the difference between two tar archives" - #echo "usage: pkgdiff [ -C ] pkg1 pkg2" - exit 99 - else - PKG2="$CWD/$2" - fi -else - PKG2="$2" -fi - -# We have to account for the possibility that the packages have the -# same name, but different contents... -if [ "$(basename $PKG1)" = "$(basename $PKG2)" ]; then - PKG1=${PKG1}.orig -fi - -# This will be mighty safe even if we ended up in /tmp. -PKG=.pkgdiff.$(mcookie) - -( mkdir -p $TMPDIR/$PKG/1 - cd $TMPDIR/$PKG/1 - if [ -r $PKG1 ]; then - explode $PKG1 - elif [ -r $(dirname $PKG1)/$(basename $PKG1 .orig) ]; then - explode $(dirname $PKG1)/$(basename $PKG1 .orig) - fi - if [ ! "$ASCII" = "true" ]; then - tree $COLOR -a --noreport > ../$(basename $PKG1) - else - find ./ | sed '2,$s,^\./,,' | tar --no-recursion -T - -cf - | tar tf - | sort > ../$(basename $PKG1) - fi -) -( mkdir -p $TMPDIR/$PKG/2 - cd $TMPDIR/$PKG/2 - explode $PKG2 - if [ ! "$ASCII" = "true" ]; then - tree $COLOR -a --noreport > ../$(basename $PKG2) - else - find ./ | sed '2,$s,^\./,,' | tar --no-recursion -T - -cf - | tar tf - | sort > ../$(basename $PKG2) - fi -) - -# Always going that extra mile... ;) -if [ -r $PKG1 ]; then - touch -r $PKG1 $TMPDIR/$PKG/$(basename $PKG1) -elif [ -r $(dirname $PKG1)/$(basename $PKG1 .orig) ]; then - touch -r $(dirname $PKG1)/$(basename $PKG1 .orig) $TMPDIR/$PKG/$(basename $PKG1) -fi -touch -r $PKG2 $TMPDIR/$PKG/$(basename $PKG2) - -rm -rf $TMPDIR/$PKG/{1,2} -( cd $TMPDIR/$PKG ; diff -d -u $(basename $PKG1) $(basename $PKG2) ) - -# cleanup: -rm -rf $PKG $TMPDIR diff --git a/testing/source/pkgtools/scripts/pkgtool b/testing/source/pkgtools/scripts/pkgtool deleted file mode 100644 index 076402b8..00000000 --- a/testing/source/pkgtools/scripts/pkgtool +++ /dev/null @@ -1,723 +0,0 @@ -#!/bin/sh -# -# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999 Patrick Volkerding, Moorhead, MN USA -# Copyright 2001, 2004 Slackware Linux, Inc., Concord, CA USA -# All rights reserved. -# Copyright 2007, 2009, 2010, 2011, 2013, 2015, 2016, 2018 Patrick Volkerding, Sebeka, MN, USA -# -# 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. -# - -# Mon Jun 4 21:17:58 UTC 2018 -# Use /var/lib/pkgtools, not /var/log. -# -# Sat Apr 25 21:18:53 UTC 2009 -# Converted to use new pkgbase() function to remove pathname and -# valid package extensions. -# -# Wed Oct 31 16:28:46 CDT 2007 -# * Thanks to Gabriele Inghirami for a patch allowing this script to work -# with much larger numbers of installed packages. -# Wed, 27 Apr 1994 00:06:50 -0700 (PDT) -# * Optimization by David Hinds. -# Sun Oct 24 23:11:40 BST 2004 -# * Further optimisations by Jim Hawkins <jawkins@armedslack.org> -# - dramatically improved the speed of the "View" option -# Thu Nov 04 12:19:56 BST 2004 -# * More optimisations by Jim Hawkins -# - improved "Remove" speed in a similar manner to "View" -# Wed Jan 12 16:53:48 GMT 2005 -# * Fixed quoting bug thanks to Lasse Collin -# Wed Jan 26 23:06:22 GMT 2005 -# * Fix for non-standard package descriptions by Jim Hawkins - -# Return a package name that has been stripped of the dirname portion -# and any of the valid extensions (only): -pkgbase() { - PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev) - case $PKGEXT in - 'tgz' ) - PKGRETURN=$(basename $1 .tgz) - ;; - 'tbz' ) - PKGRETURN=$(basename $1 .tbz) - ;; - 'tlz' ) - PKGRETURN=$(basename $1 .tlz) - ;; - 'txz' ) - PKGRETURN=$(basename $1 .txz) - ;; - *) - PKGRETURN=$(basename $1) - ;; - esac - echo $PKGRETURN -} - -SOURCE_DIR=/var/lib/pkgtools/mount -ASK="tagfiles" -if [ -L /bin/chmod -a -L /bin/chown ]; then # probably on the bootdisk using busybox - TARGET_DIR=/mnt - rootdevice="$(mount | grep ' on /mnt ' | tail -n 1 | cut -f 1 -d ' ' 2> /dev/null)" - TMP=/mnt/var/lib/pkgtools/setup/tmp - if ! mount | grep ' on /mnt ' 1> /dev/null 2> /dev/null ; then - echo - echo - echo "You can't run pkgtool from the rootdisk until you've mounted your Linux" - echo "partitions beneath /mnt. Here are some examples:" - echo - echo "If your root partition is /dev/sda1 you would type:" - echo "mount /dev/sda1 /mnt" - echo - echo "Now you can find a list of all your partitions in /mnt/etc/fstab." - echo - echo "Then, supposing your /usr partition is /dev/sda2, you must do this:" - echo "mount /dev/sda2 /mnt/usr" - echo - echo "Please mount your Linux partitions and then run pkgtool again." - echo - exit - fi -else - TARGET_DIR=/ - rootdevice="$(mount | grep ' on / ' | tail -n 1 | cut -f 1 -d ' ')" - TMP=/var/lib/pkgtools/setup/tmp -fi -if [ ! -d $TMP ]; then - mkdir -p $TMP - chmod 700 $TMP - fi -ADM_DIR=$TARGET_DIR/var/lib/pkgtools -LOG=$TMP/PKGTOOL.REMOVED - -# remove whitespace -crunch() { - while read FOO ; do - echo $FOO - done -} - -package_name() { - STRING=$(pkgbase $1) - # Check for old style package name with one segment: - if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then - echo $STRING - else # has more than one dash delimited segment - # Count number of segments: - INDEX=1 - while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do - INDEX=$(expr $INDEX + 1) - done - INDEX=$(expr $INDEX - 1) # don't include the null value - # If we don't have four segments, return the old-style (or out of spec) package name: - if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then - echo $STRING - else # we have four or more segments, so we'll consider this a new-style name: - NAME=$(expr $INDEX - 3) - NAME="$(echo $STRING | cut -f 1-$NAME -d -)" - echo $NAME - # cruft for later ;) - #VER=$(expr $INDEX - 2) - #VER="$(echo $STRING | cut -f $VER -d -)" - #ARCH=$(expr $INDEX - 1) - #ARCH="$(echo $STRING | cut -f $ARCH -d -)" - #BUILD="$(echo $STRING | cut -f $INDEX -d -)" - fi - fi -} - -remove_packages() { - for pkg_name in $(cat $TMP/return | tr -d "\042") - do - if [ -r $ADM_DIR/packages/$pkg_name ]; then - dialog --title "PACKAGE REMOVAL IN PROGRESS" --cr-wrap --infobox \ -"\nRemoving package $pkg_name.\n\ -\n\ -Since each file must be checked \ -against the contents of every other installed package to avoid wiping out \ -areas of overlap, this process can take quite some time. If you'd like to \ -watch the progress, flip over to another virtual console and type:\n\ -\n\ -tail -f $TMP/PKGTOOL.REMOVED\n" 13 60 - export ROOT=$TARGET_DIR - removepkg $pkg_name >> $LOG 2> /dev/null - else - echo "No such package: $pkg_name. Can't remove." >> $LOG - fi - done -} - -create_list_of_installed_packages() -{ - FILES=$(ls $ADM_DIR/packages) - if [ -n "$FILES" ]; then - cd $ADM_DIR/packages - { grep '^PACKAGE DESCRIPTION:$' -Z -H -m1 -A1 $FILES; echo; } \ - | sed -n 'h;n;/\x00/{h;n;};x;s/ */ /g;s/ $//;s/[\"`$]/\\&/g - s/\(.*\)\x00\([^:]*:\)\? *\(.*\)/ "\1" "\3" "View information about package \1" \\/;p' > $TMP/list_of_installed_packages \ - - fi -} - - create_list_of_files_to_remove () -{ -FILES=$(ls $ADM_DIR/packages) - if [ -n "$FILES" ]; then - cd $ADM_DIR/packages - { grep '^PACKAGE DESCRIPTION:$' -Z -H -m1 -A1 $FILES; echo; } \ - | sed -n 'h;n;/\x00/{h;n;};x;s/ */ /g;s/ $//;s/[\"`$]/\\&/g - s/\(.*\)\x00\([^:]*:\)\? *\(.*\)/ "\1" "\3" off "Select\/Unselect removing package \1" \\/;p' > $TMP/temporary_list \ - - fi -} - -# Here, we read the list of arguments passed to the pkgtool script. -if [ $# -gt 0 ]; then # there are arguments to the command - while [ $# -gt 0 ]; do - case "$1" in - -sets | --sets) - DISK_SETS=$(echo $2 | tr "[A-Z]" "[a-z]") ; shift 2 ;; - -source_mounted | --source-mounted) - SOURCE_MOUNTED="always" ; shift 1 ;; - -ignore_tagfiles | --ignore-tagfiles) - ASK="never" ; shift 1 ;; - -tagfile | --tagfile) - USETAG=$2 ; shift 2 ;; - -source_dir | --source_dir) - SOURCE_DIR=$2 ; shift 2 ;; - -target_dir | --target_dir) - TARGET_DIR=$2 - ADM_DIR=$TARGET_DIR/var/lib/pkgtools - shift 2 ;; - -source_device | --source_device) - SOURCE_DEVICE=$2 ; shift 2 ;; - esac - done -else # there were no arguments, so we'll get the needed information from the - # user and then go on. - CMD_START="true" - rm -f $TMP/SeT* - while [ 0 ]; do - dialog --title "Slackware Package Tool (pkgtool version 15.0)" \ ---menu "\nWelcome to the Slackware package tool.\n\ -\nWhich option would you like?\n" 16 75 6 \ -"Current" "Install packages from the current directory" \ -"Other" "Install packages from some other directory" \ -"Remove" "Remove packages that are currently installed" \ -"View" "View the list of files contained in a package" \ -"Setup" "Choose Slackware installation scripts to run again" \ -"Exit" "Exit Pkgtool" 2> $TMP/reply - if [ ! $? = 0 ]; then - rm -f $TMP/reply - dialog --clear - exit - fi - REPLY="$(cat $TMP/reply)" - rm -f $TMP/reply - if [ "$REPLY" = "Exit" ]; then - dialog --clear - exit - fi - if [ "$REPLY" = "Setup" ]; then - echo 'dialog --title "SELECT SYSTEM SETUP SCRIPTS" --item-help --checklist \ - "Please use the spacebar to select the setup scripts to run. Hit enter when you \ -are done selecting to run the scripts." 17 70 9 \' > $TMP/setupscr - for script in $ADM_DIR/setup/setup.* ; do - BLURB=$(grep '#BLURB' $script | cut -b8-) - if [ "$BLURB" = "" ]; then - BLURB="\"\"" - fi - echo " \"$(basename $script | cut -f2- -d .)\" $BLURB \"no\" $BLURB \\" >> $TMP/setupscr - done - echo "2> $TMP/return" >> $TMP/setupscr - . $TMP/setupscr - if [ ! "$(cat $TMP/return)" = "" ]; then - # Run each script: - for script in $(cat $TMP/return) ; do - scrpath=$ADM_DIR/setup/setup.$(echo $script | tr -d \") - ( COLOR=on ; cd $TARGET_DIR ; . $scrpath $TARGET_DIR $rootdevice ) - done - fi - rm -f $TMP/return $TMP/setupscr - continue - fi # end Setup - - if [ "$REPLY" = "View" ]; then -create_list_of_installed_packages - DEFITEM="" - export DEFITEM - #dialog --title "SCANNING" --infobox "Please wait while \ -#Pkgtool scans your system to determine which packages you have \ -#installed and prepares a list for you." 0 0 - ( - echo 'dialog $DEFITEM --item-help --menu "Please select the package you wish to view." 17 68 10 \' - ) > $TMP/viewscr - cat $TMP/list_of_installed_packages >> $TMP/viewscr - echo "2> $TMP/return" >> $TMP/viewscr - while [ 0 ]; do - . $TMP/viewscr - if [ ! "$(cat $TMP/return)" = "" ]; then - DEFITEM="--default-item $(cat $TMP/return)" - dialog --title "CONTENTS OF PACKAGE: $(cat $TMP/return)" --no-shadow --textbox "$ADM_DIR/packages/$(cat $TMP/return)" \ - 0 0 2> /dev/null - else - break - fi - done - rm -f $TMP/return $TMP/viewscr $TMP/tmpmsg $TMP/list_of_installed_packages - # This will clean up after most defective packages: - chmod 755 / - chmod 1777 /tmp - continue - fi - - if [ "$REPLY" = "Remove" ]; then - #dialog --title "SCANNING" --infobox "Please wait while Pkgtool scans \ -#your system to determine which packages you have installed and prepares \ -#a list for you." 0 0 - # end section - ( -create_list_of_files_to_remove #call the function to create a list of installed packages - cat << EOF -dialog --title "SELECT PACKAGES TO REMOVE" --item-help --checklist \ -"Please select the \ -packages you wish to Remove. Use the \ -spacebar to select packages to delete, and the UP/DOWN arrow keys to \ -scroll up and down through the entire list." 20 75 11 \\ -EOF - ) > $TMP/rmscript - cat $TMP/temporary_list >> $TMP/rmscript - echo "2> $TMP/return" >> $TMP/rmscript - if [ -L $LOG -o -r $LOG ]; then - rm -f $LOG - fi - cat /dev/null > $LOG - chmod 600 $LOG - chmod 700 $TMP/rmscript - export ADM_DIR; - $TMP/rmscript - remove_packages - if [ "$(cat $TMP/PKGTOOL.REMOVED)" = "" ]; then - rm -f $TMP/PKGTOOL.REMOVED - dialog --title "NO PACKAGES REMOVED" --msgbox "Hit OK to return \ -to the main menu." 5 40 - else - dialog --title "PACKAGE REMOVAL COMPLETE" --msgbox "The packages have \ -been removed. A complete log of the files that were removed has been created \ -in $TMP: PKGTOOL.REMOVED." 0 0 - fi - rm -f $TMP/rmscript $TMP/return $TMP/tmpmsg $TMP/SeT* $TMP/temporary_list - chmod 755 / - chmod 1777 /tmp -# No, return to the main menu: -# exit - elif [ "$REPLY" = "Other" ]; then - dialog --title "SELECT SOURCE DIRECTORY" --inputbox "Please enter the name of the directory that you wish to \ -install packages from:" 10 50 2> $TMP/pkgdir - if [ $? = 1 ]; then - rm -f $TMP/pkgdir $TMP/SeT* - dialog --clear - exit - fi - SOURCE_DIR="$(cat $TMP/pkgdir)" - SOURCE_MOUNTED="always" - DISK_SETS="disk" - chmod 755 $TARGET_DIR - chmod 1777 $TARGET_DIR/tmp - rm -f $TMP/pkgdir - if [ ! -d $SOURCE_DIR ]; then - dialog --title "DIRECTORY NOT FOUND" --msgbox "The directory you want to \ -install from ($SOURCE_DIR) \ -does not seem to exist. Please check the directory and then try again." \ -10 50 - dialog --clear - exit - fi - break; - else # installing from current directory - SOURCE_MOUNTED="always" - SOURCE_DIR="$PWD" - DISK_SETS="disk" - chmod 755 $TARGET_DIR - chmod 1777 $TARGET_DIR/tmp - break; - fi - done -fi -if [ "$DISK_SETS" = "disk" ]; then - ASK="always" -fi - -mount_the_source() { - # is the source supposed to be mounted already? - if [ "$SOURCE_MOUNTED" = "always" ]; then - # The source should already be mounted, so we test it - if [ ! -d $SOURCE_DIR ]; then # the directory is missing - cat << EOF > $TMP/tmpmsg - -Your source device cannot be accessed properly. - -Please be sure that it is mounted on $SOURCE_DIR, -and that the Slackware disks are found in subdirectories -of $SOURCE_DIR like specified. - -EOF - dialog --title "MOUNT ERROR" --msgbox "$(cat $TMP/tmpmsg)" 11 67 - rm -f $TMP/tmpmsg - exit 1; - fi - return 0; - fi - dialog --title "INSERT DISK" --menu "Please insert disk $1 and \ -press ENTER to continue." \ -11 50 3 \ -"Continue" "Continue with the installation" \ -"Skip" "Skip the current disk series" \ -"Quit" "Abort the installation process" 2> $TMP/reply - if [ ! $? = 0 ]; then - REPLY="Quit" - else - REPLY="$(cat $TMP/reply)" - fi - rm -f $TMP/reply - if [ "$REPLY" = "Skip" ]; then - return 1; - fi - if [ "$REPLY" = "Quit" ]; then - dialog --title "ABORTING" --msgbox "Aborting software installation." 5 50 - chmod 755 $TARGET_DIR - chmod 1777 $TARGET_DIR/tmp - exit 1; - fi; - # Old line: - # mount -r -t msdos $SOURCE_DEVICE $SOURCE_DIR - # New ones: (thanks to Andy Schwierskott!) - go_on=y - not_successfull_mounted=1 - while [ "$go_on" = y -a "$not_successfull_mounted" = 1 ]; do - mount -r -t msdos $SOURCE_DEVICE $SOURCE_DIR - not_successfull_mounted=$? - if [ "$not_successfull_mounted" = 1 ]; then - mount_answer=x - while [ "$mount_answer" != "y" -a "$mount_answer" != "q" ] ; do - dialog --title "MOUNT PROBLEM" --menu "Media was not successfully \ -mounted! Do you want to \ -retry, or quit?" 10 60 2 \ -"Yes" "Try to mount the disk again" \ -"No" "No, abort." 2> $TMP/mntans - mount_answer="$(cat $TMP/mntans)" - rm -f $TMP/mntans - if [ "$mount_answer" = "Yes" ]; then - mount_answer="y" - else - mount_answer="q" - fi - done - go_on=$mount_answer - fi - done - test $not_successfull_mounted = 0 -} - -umount_the_source() { - if [ ! "$SOURCE_MOUNTED" = "always" ]; then - umount $SOURCE_DEVICE 1> /dev/null 2> /dev/null - fi; -} - -install_disk() { - mount_the_source $1 - if [ $? = 1 ]; then - umount_the_source; - return 1; - fi - CURRENT_DISK_NAME="$1" - PACKAGE_DIR=$SOURCE_DIR - if [ "$SOURCE_MOUNTED" = "always" -a ! "$DISK_SETS" = "disk" ]; then - PACKAGE_DIR=$PACKAGE_DIR/$1 - fi - - # If this directory is missing or contains no *.t?z files, bail. - if [ ! -d $PACKAGE_DIR ]; then - return 1 - fi - if ! ls $PACKAGE_DIR/*.t?z 1> /dev/null 2> /dev/null ; then - return 1 - fi - - # - # look for tagfile for this series and copy into $TMP/tagfile - # - touch $TMP/tagfile - if [ ! "$DISK_SETS" = "disk" ]; then - if [ -r $TMP/SeTtagext ]; then - if [ -r $PACKAGE_DIR/tagfile$(cat $TMP/SeTtagext) ]; then - cat $PACKAGE_DIR/tagfile$(cat $TMP/SeTtagext) >> $TMP/tagfile - else - if [ -r $PACKAGE_DIR/tagfile ]; then - cat $PACKAGE_DIR/tagfile >> $TMP/tagfile - fi - fi - - # - # Do we need to follow a custom path to the tagfiles? - # - elif [ -r $TMP/SeTtagpath ]; then - custom_path=$(cat $TMP/SeTtagpath) - short_path=$(basename $PACKAGE_DIR) - - # If tagfile exists at the specified custom path, copy it over. - if [ -r $custom_path/$short_path/tagfile ]; then - cat $custom_path/$short_path/tagfile >> $TMP/tagfile - - else # well, I guess we'll use the default one then. - if [ -r $PACKAGE_DIR/tagfile ]; then - cat $PACKAGE_DIR/tagfile >> $TMP/tagfile - fi - fi - # - # We seem to be testing for this too often... maybe this code should - # be optimized a little... - # - elif [ -r $PACKAGE_DIR/tagfile ]; then - cat $PACKAGE_DIR/tagfile >> $TMP/tagfile - fi - - # - # Execute menus if in QUICK mode: - # - if [ -r $TMP/SeTQUICK -a -r $PACKAGE_DIR/maketag ]; then - if [ ! "$MAKETAG" = "" -a -r $PACKAGE_DIR/$MAKETAG ]; then # use alternate maketag - sh $PACKAGE_DIR/$MAKETAG - else - sh $PACKAGE_DIR/maketag - fi - if [ -r $TMP/SeTnewtag ]; then - mv $TMP/SeTnewtag $TMP/tagfile - fi - fi - - # - # Protect tagfile from hacker attack: - # - if [ -r $TMP/tagfile ]; then - chmod 600 $TMP/tagfile - fi - - fi # ! "$DISK_SETS" = "disk" - - # It's possible that the tagfile was specified on the command line. If that's - # the case, then we'll just override whatever we figured out up above. - if [ ! "$USETAG" = "" ]; then - cat $USETAG > $TMP/tagfile - fi - - # If there's a catalog file present, use it to check for missing files. - # If not, forget about that and install whatever's there. - if [ "$1" = "single_disk" -o -r $PACKAGE_DIR/disk$1 -o -r $PACKAGE_DIR/package-list.txt ]; then - if [ -r $PACKAGE_DIR/package-list.txt ]; then - CATALOG_FILE=$PACKAGE_DIR/package-list.txt - else - CATALOG_FILE=$(basename $PACKAGE_DIR/disk*); - fi - if [ -r $PACKAGE_DIR/$CATALOG_FILE -a ! -d $PACKAGE_DIR/$CATALOG_FILE ]; then - if grep CONTENTS: $PACKAGE_DIR/$CATALOG_FILE 1> /dev/null 2> /dev/null ; then - # First we check for missing packages... - for PKGTEST in $(grep "^CONTENTS:" $PACKAGE_DIR/$CATALOG_FILE | cut -f2- -d : 2> /dev/null) ; do - # This is not a perfect test. (say emacs is missing but emacs-nox is not) - if ls $PACKAGE_DIR/$PKGTEST*.t?z 1> /dev/null 2> /dev/null ; then # found something like it - true - else - cat << EOF > $TMP/tmpmsg - -WARNING!!! - -While looking through your index file ($CATALOG_FILE), -I noticed that you might be missing a package: - -$PKGTEST-\*-\*-\*.t?z - -that is supposed to be on this disk (disk $1). You may go -on with the installation if you wish, but if this is a -crucial file I'm making no promises that your machine will -boot. - -EOF - dialog --title "FILE MISSING FROM YOUR DISK" --msgbox \ -"$(cat $TMP/tmpmsg)" 17 67 - fi - done # checking for missing packages - # Now we test for extra packages: - ALLOWED="$(grep CONTENTS: $PACKAGE_DIR/$CATALOG_FILE | cut -b10- 2> /dev/null)" - for PACKAGE_FILENAME in $PACKAGE_DIR/*.t?z; do - BASE=$(pkgbase $PACKAGE_FILENAME) - BASE="$(package_name $BASE)" - if echo $ALLOWED | grep $BASE 1> /dev/null 2> /dev/null ; then - true - else - cat << EOF > $TMP/tmpmsg - -WARNING!!! - -While looking through your index file ($CATALOG_FILE), -I noticed that you have this extra package: - -($BASE.t?z) - -that I don't recognize. Please be sure this package is -really supposed to be here, and is not left over from an -old version of Slackware. Sometimes this can happen at the -archive sites. - -EOF - dialog --title "EXTRA FILE FOUND ON YOUR DISK" \ ---msgbox "$(cat $TMP/tmpmsg)" 17 67 - rm -f $TMP/tmpmsg - fi - done - fi - fi - fi # check for missing/extra packages - - # Install the packages: - for PACKAGE_FILENAME in $PACKAGE_DIR/*.t?z; do - if [ "$PACKAGE_FILENAME" = "$PACKAGE_DIR/*.t?z" ]; then - continue; - fi - if [ "$ASK" = "never" ]; then # install the package - installpkg -root $TARGET_DIR -infobox -tagfile $TMP/tagfile $PACKAGE_FILENAME - ERROR=$? - elif [ "$ASK" = "tagfiles" ]; then - installpkg -root $TARGET_DIR -menu -tagfile $TMP/tagfile $PACKAGE_FILENAME - ERROR=$? - else # ASK should be = always here, and that's how we'll treat it - installpkg -root $TARGET_DIR -menu -ask -tagfile $TMP/tagfile $PACKAGE_FILENAME - ERROR=$? - fi - # Check for abort: - if [ "$ERROR" = "99" ]; then - umount_the_source; - chmod 755 $TARGET_DIR - chmod 1777 $TARGET_DIR/tmp - exit 1; - fi - done - OUTTAHERE="false" - if [ -r $PACKAGE_DIR/install.end ]; then - OUTTAHERE="true" - fi - umount_the_source; - if [ "$OUTTAHERE" = "true" ]; then - return 1; - fi -} - -install_disk_set() { # accepts one argument: the series name in lowercase. - SERIES_NAME=$1 - CURRENT_DISK_NUMBER="1"; - while [ 0 ]; do - # Don't start numbering the directories until 2: - if [ $CURRENT_DISK_NUMBER = 1 ]; then - DISKTOINSTALL=$SERIES_NAME - else - DISKTOINSTALL=$SERIES_NAME$CURRENT_DISK_NUMBER - fi - install_disk $DISKTOINSTALL - if [ ! $? = 0 ]; then # install.end was found, or the user chose - # to quit installing packages. - return 0; - fi - CURRENT_DISK_NUMBER=$(expr $CURRENT_DISK_NUMBER + 1) - done; -} - -# /* main() */ ;) -if [ "$DISK_SETS" = "disk" ]; then - install_disk single_disk; - ASK="always" -else - touch $TMP/tagfile - chmod 600 $TMP/tagfile - if echo $DISK_SETS | grep "#a#" 1> /dev/null 2> /dev/null ; then - A_IS_NEEDED="true" - else - A_IS_NEEDED="false" - fi - while [ 0 ]; - do - while [ 0 ]; # strip leading '#'s - do - if [ "$(echo $DISK_SETS | cut -b1)" = "#" ]; then - DISK_SETS="$(echo $DISK_SETS | cut -b2-)" - else - break; - fi - done - if [ "$A_IS_NEEDED" = "true" ]; then - cat << EOF > $TMP/tmpmsg - ---- Installing package series ==>a<== - -EOF - dialog --infobox "$(cat $TMP/tmpmsg)" 5 45 - sleep 1 - rm -f $TMP/tmpmsg - install_disk_set a; - A_IS_NEEDED="false" - fi - count="1" - if [ "$(echo $DISK_SETS | cut -b$count)" = "" ]; then - break; # we be done here :^) - else - count="2" - while [ 0 ]; do - if [ "$(echo $DISK_SETS | cut -b$count)" = "" -o "$(echo $DISK_SETS | cut -b$count)" = "#" ]; then - count="$(expr $count - 1)" - break; - else - count="$(expr $count + 1)" - fi - done - fi - diskset="$(echo $DISK_SETS | cut -b1-$count)" - count="$(expr $count + 1)" - DISK_SETS="$(echo $DISK_SETS | cut -b$count-)" - if [ "$diskset" = "a" ]; then - continue; # we expect this to be done elsewhere - fi - cat << EOF > $TMP/tmpmsg - -Installing package series ==>$diskset<== - -EOF - dialog --infobox "$(cat $TMP/tmpmsg)" 5 45 - sleep 1 - rm -f $TMP/tmpmsg - install_disk_set $diskset; - done -fi - -if [ "$DISK_SETS" = "disk" -o "$CMD_START" = "true" ]; then - if [ -r $TMP/tagfile ]; then - rm $TMP/tagfile - fi - dialog --clear -fi -chmod 755 $TARGET_DIR $TARGET_DIR/var $TARGET_DIR/usr -chmod 1777 $TARGET_DIR/tmp diff --git a/testing/source/pkgtools/scripts/removepkg b/testing/source/pkgtools/scripts/removepkg deleted file mode 100644 index b033eebf..00000000 --- a/testing/source/pkgtools/scripts/removepkg +++ /dev/null @@ -1,438 +0,0 @@ -#!/bin/sh -# Slackware remove package script -# -# Copyright 1994, 1995, 1998 Patrick Volkerding, Moorhead, Minnesota USA -# Copyright 2001, Slackware Linux, Inc., Concord, CA USA -# Copyright 2009, 2015, 2016, 2018 Patrick J. Volkerding, Sebeka, MN, USA -# 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. -# - -# Tue Jun 5 20:04:45 UTC 2018 -# Use /var/lib/pkgtools for the package database, not /var/log. -# Logs of the removed packages and scripts will remain in /var/log, but moved -# into /var/log/pkgtools. -# -# Sun May 27 18:02:23 UTC 2018 -# Added --terse mode to print one line per removed package. -# -# Wed May 23 17:31:23 UTC 2018 -# Use file locking to prevent more than one copy of ldconfig from running at -# a time. -# -# Thu Sep 15 17:46:28 UTC 2016 <volkerdi> -# If removepkg is called with a short package name (no -$VERSION-$ARCH-$BUILD), -# remove the most recently installed matching package, not the oldest one. -# -# Thu Sep 15 08:09:01 BST 2016 <mozes> -# - Handle finding >1 match for a package. Thanks to SeB on LQ for the feedback. -# -# Wed Sep 14 20:44:00 BST 2016 <mozes> -# - Modify package_name function to cater for package file names that contain -# >=4 hyphens. -# Thanks to coralfang on LQ for the report and to Jim Hawkins for the patch. -# - Modified to handle packages that contain file names with backslashes -# Thanks to aaazen on LQ for the report and the patch. -# -# Thu Sep 24 03:31:58 UTC 2015 <alphageek> -# extract_links() sed adjusted to handle symlinks with spaces. -# -# Sun Sep 6 21:58:36 BST 2009 -# Replaced pkgbase & package_name code with 'sed' script by Jim Hawkins. -# -# Sat Apr 25 21:18:53 UTC 2009 (12.34567890b) -# Converted to use new pkgbase() function to remove pathname and -# valid package extensions. -# -# Revision 12.34567890 Sun Apr 5 20:59:32 CDT 2009 <volkerdi> -# - Support packages with the extensions: .tgz, .tbz, .tlz, .txz -# -# Revision 1.9 Wed Oct 31 14:04:28 CDT 2007 volkerding -# - Fix problem removing packages with a large number of fields. -# Thanks to Niki Kovacs for noticing this, and to Piter Punk -# for the patch. -# - Use LC_ALL=C locale, which is much faster with "sort". -# Thanks to Tsomi. -# - Don't try to remove any package that starts with '-'. This -# is not a proper package name (usually a typo), and results -# in the package database being broken. Thanks to Jef Oliver. -# - Patched cat_except() to allow the last Slackware package on -# a partition to be removed (using ROOT=, of course) -# Thanks to Selkfoster for the patch, and to everyone else who -# proposed solutions before. This issue really wasn't given -# the highest priority before, but I figured while I'm in here... -# -# Revision 1.8 Thu Nov 22 14:00:13 PST 2001 volkerding Rel $ -# - Move $TMP underneath $ROOT -# - Understand the idea of a base package name, so that packages -# can be removed with any of these notations: -# removepkg foo-1.0-i386-1.tgz -# removepkg foo-1.0-i386-1 -# removepkg foo.tgz -# removepkg foo -# -# Revision 1.7 2001/03/30 12:36:28 volkerding -# - Strip extra ".tgz" from input names. -# -# Revision 1.6 1999/03/25 18:26:41 volkerding -# - Use external $ROOT variable, like installpkg. -# -# Revision 1.5.1 1998/03/18 15:37:28 volkerding -# - Since removepkg is always run by root, the temp directory has been -# moved from /tmp to a private directory to avoid symlink attacks from -# malicious users. -# -# Revision 1.5 1997/06/26 12:09:53 franke -# - Fixed old bug in TRIGGER regex setting -# - -preserve/-copy options now preserve non-unique files -# and empty directories also -# -# Revision 1.4 1997/06/09 13:21:36 franke -# - Package file preserve (-preserve, -copy) added. -# - Don't execute "rm -rf" lines from doinst.sh, removing links explicit. -# - Warning on no longer existing files added. -# - Warning on files changed after package installation added. -# - Intermediate file preserve (-keep) added. -# - Check for required files/links now done on a combined list. -# - Write access to /var/log/{packages,scripts} no longer necessary for -warn. -# -# Revision 1.3 1997/06/08 13:03:05 franke -# Merged with revision 1.1.1.1 -# -# Revision 1.2 1996/06/01 20:04:26 franke -# Delete empty directories & formated manual pages added -# -# Revision 1.1.1.1 1995/12/18 21:20:42 volkerding -# Original Version from Slackware 3.1 -# -# Revision 1.1 1995/06/05 22:49:11 volkerding -# Original Version from Slackware 3.0 -# - -# Needed to find package names within the 'remove_packages' function: -shopt -s extglob - -# Return a package name that has been stripped of the dirname portion -# and any of the valid extensions (only): -pkgbase() { - # basename + strip extensions .tbz, .tgz, .tlz and .txz - echo "$1" | sed 's?.*/??;s/\.t[bglx]z$//' -} - -# This makes "sort" run much faster: -export LC_ALL=C - -# Set the prefix for the package database directories (packages, scripts). -ADM_DIR="$ROOT/var/lib/pkgtools" - -# Set the prefix for the removed packages/scripts log files: -LOG_DIR="$ROOT/var/log/pkgtools" - -# Make sure there's a proper temp directory: -TMP=$ADM_DIR/setup/tmp -# If the $TMP directory doesn't exist, create it: -if [ ! -d $TMP ]; then - mkdir -p $TMP - chmod 700 $TMP # no need to leave it open -fi -PRES_DIR=$TMP/preserved_packages - -# Lock directory for ldconfig... share it with installpkg so that upgradepkg -# becomes properly ldconfig-locked, too. -INSTLOCKDIR=${INSTLOCKDIR:-/run/lock/pkgtools} -if [ ! -d $INSTLOCKDIR ]; then - mkdir -p $INSTLOCKDIR -fi - -# This simple cat_except() should be used on the installer, -# since the busybox "find" can't handle the complex find -# syntax: -#cat_except() { -# ( cd "$1" && cat $(ls * | sed "/^$2\$/d")) -#} - -# This version of cat_except() allows the last package to be -# removed when ROOT= is used: -cat_except() { - ( cd "$1" && \ - if [ $(find . -type f -maxdepth 1 2> /dev/null | wc -l) -ne 1 ]; then - cat $(find . -type f -maxdepth 1 2> /dev/null | grep -v "$2") 2> /dev/null - fi - ) -} - -extract_links() { - sed -n 's,^[ ]*( [ ]*cd[ ]* \(.*\) [ ]*; [ ]*rm [ ]*-rf[ ]* \(.*\) [ ]*)[ ]*$,\1/\2,p' -} - -preserve_file() { - if [ "$PRESERVE" = "true" ]; then - F="$(basename "$1")" - D="$(dirname "$1")" - if [ ! -d "$PRES_DIR/$PKGNAME/$D" ]; then - mkdir -p "$PRES_DIR/$PKGNAME/$D" || return 1 - fi - cp -p "$ROOT/$D/$F" "$PRES_DIR/$PKGNAME/$D" || return 1 - fi - return 0 -} - -preserve_dir() { - if [ "$PRESERVE" = "true" ]; then - if [ ! -d "$PRES_DIR/$PKGNAME/$1" ]; then - mkdir -p "$PRES_DIR/$PKGNAME/$1" || return 1 - fi - fi - return 0 -} - -keep_files() { - while read FILE ; do - if [ ! -d "$ROOT/$FILE" ]; then - if [ -r "$ROOT/$FILE" ]; then - ! [ $TERSE ] && echo " --> $ROOT/$FILE was found in another package. Skipping." - preserve_file "$FILE" - else - if [ "$(echo $FILE | cut -b1-8)" != "install/" ]; then - ! [ $TERSE ] && echo "WARNING: Nonexistent $ROOT/$FILE was found in another package. Skipping." - fi - fi - else - preserve_dir "$FILE" - fi - done -} - -keep_links() { - while read LINK ; do - if [ -L "$ROOT/$LINK" ]; then - ! [ $TERSE ] && echo " --> $ROOT/$LINK (symlink) was found in another package. Skipping." - else - ! [ $TERSE ] && echo "WARNING: Nonexistent $ROOT/$LINK (symlink) was found in another package. Skipping." - fi - done -} - -delete_files() { - local unset LC_ALL # Locally (within this delete_files function) allow handling of backslashes - while read -r AFILE ; do # do not expand backslashes on read - FILE=$(printf "%b" "$AFILE") # unescape octal characters - if [ ! -d "$ROOT/$FILE" ]; then - if [ -r "$ROOT/$FILE" ]; then - if [ "$ROOT/$FILE" -nt "$ADM_DIR/packages/$PKGNAME" ]; then - ! [ $TERSE ] && echo "WARNING: $ROOT/$FILE changed after package installation." - fi - if [ ! "$WARN" = "true" ]; then - ! [ $TERSE ] && echo " --> Deleting $ROOT/$FILE" - preserve_file "$FILE" && rm -f "$ROOT/$FILE" - else - ! [ $TERSE ] && echo " --> $ROOT/$FILE would be deleted" - preserve_file "$FILE" - fi - else - ! [ $TERSE ] && echo " --> $ROOT/$FILE no longer exists. Skipping." - fi - else - preserve_dir "$FILE" - fi - done -} - -delete_links() { - while read LINK ; do - if [ -L "$ROOT/$LINK" ]; then - if [ ! "$WARN" = "true" ]; then - ! [ $TERSE ] && echo " --> Deleting symlink $ROOT/$LINK" - rm -f "$ROOT/$LINK" - else - ! [ $TERSE ] && echo " --> $ROOT/$LINK (symlink) would be deleted" - fi - else - ! [ $TERSE ] && echo " --> $ROOT/$LINK (symlink) no longer exists. Skipping." - fi - done -} - -delete_dirs() { - sort -r | \ - while read DIR ; do - if [ -d "$ROOT/$DIR" ]; then - if [ ! "$WARN" = "true" ]; then - if [ $(ls -a "$ROOT/$DIR" | wc -l) -eq 2 ]; then - ! [ $TERSE ] && echo " --> Deleting empty directory $ROOT/$DIR" - rmdir "$ROOT/$DIR" - else - ! [ $TERSE ] && echo "WARNING: Unique directory $ROOT/$DIR contains new files" - fi - else - ! [ $TERSE ] && echo " --> $ROOT/$DIR (dir) would be deleted if empty" - fi - fi - done -} - -delete_cats() { - sed -n 's,/man\(./[^/]*$\),/cat\1,p' | \ - while read FILE ; do - if [ -f "$ROOT/$FILE" ]; then - if [ ! "$WARN" = "true" ]; then - ! [ $TERSE ] && echo " --> Deleting $ROOT/$FILE (fmt man page)" - rm -f $ROOT/$FILE - else - ! [ $TERSE ] && echo " --> $ROOT/$FILE (fmt man page) would be deleted" - fi - fi - done -} - -# Conversion to 'comm' utility by Mark Wisdom. -# is pretty nifty! :^) -remove_packages() { - for PKGLIST in $* - do - PKGNAME=$(pkgbase $PKGLIST) - # If we don't have a package match here, then we will attempt to find - # a package using the long name format (name-version-arch-build) for - # which the base package name was given. On a properly-managed machine, - # there should only be one package installed with a given basename, but - # we don't enforce this policy. If there's more than one, only one will - # be removed. If you want to remove them all, you'll need to run - # removepkg again until it removes all the same-named packages. - if [ ! -e $ADM_DIR/packages/$PKGNAME ]; then - # Short name not found - finally try looking for full name - e.g. foo-1.0-arm-1 - pushd $ADM_DIR/packages > /dev/null - # Don't set PKGNAME if there are no matches: - if [ ! "$( ls -1 $PKGNAME-+([^-])-+([^-])-+([^-]) 2>/dev/null | wc -l )" = "0" ]; then - # If there is more than one package with the same name, set PKGNAME to the - # most recently installed version. This does not affect the behavior of - # upgradepkg, which always removes all other existing versions of the - # same package. - PKGNAME=$( ls -1t $PKGNAME-+([^-])-+([^-])-+([^-]) 2> /dev/null | head -n1 ) - fi - popd > /dev/null - fi - - if [ -r $ADM_DIR/packages/$PKGNAME ]; then - if [ ! "$WARN" = true ]; then - echo "Removing package: $(basename $ADM_DIR/packages/$PKGNAME)" - fi - if fgrep "./" $ADM_DIR/packages/$PKGNAME 1> /dev/null 2>&1; then - TRIGGER="^\.\/" - else - TRIGGER="FILE LIST:" - fi - if [ ! "$WARN" = true ]; then - ! [ $TERSE ] && echo "Removing files:" - fi - sed -n "/$TRIGGER/,/^$/p" < $ADM_DIR/packages/$PKGNAME | \ - fgrep -v "FILE LIST:" | sort -u > $TMP/delete_list$$ - # Pat's new-new && improved pre-removal routine. - cat_except $ADM_DIR/packages $PKGNAME | sort -u > $TMP/required_list$$ - if [ -r $ADM_DIR/scripts/$PKGNAME ]; then - extract_links < $ADM_DIR/scripts/$PKGNAME | sort -u > $TMP/del_link_list$$ - cat_except $ADM_DIR/scripts $PKGNAME | extract_links | \ - sort -u > $TMP/required_links$$ - mv $TMP/required_list$$ $TMP/required_files$$ - sort -u $TMP/required_links$$ $TMP/required_files$$ > $TMP/required_list$$ - comm -12 $TMP/del_link_list$$ $TMP/required_list$$ | keep_links - comm -23 $TMP/del_link_list$$ $TMP/required_list$$ | delete_links - else - cat $ADM_DIR/scripts/* 2> /dev/null | extract_links | \ - sort -u > $TMP/required_links$$ - mv $TMP/required_list$$ $TMP/required_files$$ - sort -u $TMP/required_links$$ $TMP/required_files$$ >$TMP/required_list$$ - fi - comm -12 $TMP/delete_list$$ $TMP/required_list$$ | keep_files - comm -23 $TMP/delete_list$$ $TMP/required_list$$ > $TMP/uniq_list$$ - delete_files < $TMP/uniq_list$$ - delete_dirs < $TMP/uniq_list$$ - delete_cats < $TMP/uniq_list$$ - if [ ! "$KEEP" = "true" ]; then - rm -f $TMP/delete_list$$ $TMP/required_files$$ $TMP/uniq_list$$ - rm -f $TMP/del_link_list$$ $TMP/required_links$$ $TMP/required_list$$ - fi - if [ "$PRESERVE" = "true" ]; then - if [ -r $ADM_DIR/scripts/$PKGNAME ]; then - if [ ! -d "$PRES_DIR/$PKGNAME/install" ]; then - mkdir -p "$PRES_DIR/$PKGNAME/install" - fi - cp -p $ADM_DIR/scripts/$PKGNAME $PRES_DIR/$PKGNAME/install/doinst.sh - fi - fi - if [ ! "$WARN" = "true" ]; then - # We won't assume that anything in /var/log can be trusted to remain there, - # so we'll remake the directories and symlinks first: - mkdir -p $LOG_DIR/removed_packages $LOG_DIR/removed_scripts - for symlink in removed_packages removed_scripts ; do - if [ ! -L $LOG_DIR/../$symlink ]; then - rm -rf $LOG_DIR/../$symlink - ( cd $LOG_DIR/.. ; ln -sf pkgtools/$symlink . ) - fi - done - # Now that we know we have log directories, move the files: - mv $ADM_DIR/packages/$PKGNAME $LOG_DIR/removed_packages - if [ -r $ADM_DIR/scripts/$PKGNAME ]; then - mv $ADM_DIR/scripts/$PKGNAME $LOG_DIR/removed_scripts - fi - fi - else - echo "No such package: $(basename $ADM_DIR/packages/$PKGNAME). Can't remove." - fi - # In the case where a library and symlink are removed but an earlier version - # remains on the machine, this will link it up and save potential problems: - if [ "$ROOT" = "" ] && [ -x /sbin/ldconfig ]; then - ( flock 9 || exit 11 - /sbin/ldconfig 2> /dev/null - ) 9> $INSTLOCKDIR/ldconfig.lock - fi - done -} - -if [ "$#" = "0" ]; then - echo "Usage: $(basename $0) [--copy] [--keep] [--preserve] [--terse] [--warn] packagename ..."; exit 1 -fi - -while : ; do - case "$1" in - -copy | --copy) WARN=true; PRESERVE=true; shift;; - -keep | --keep) KEEP=true; shift;; - -preserve | --preserve) PRESERVE=true; shift;; - -terse | --terse) TERSE=0; shift;; - -warn | --warn) WARN=true; shift;; - -* | --*) echo "Usage: $(basename $0) [-copy] [-keep] [-preserve] [-warn] packagename ..."; exit 1;; - *) break - esac -done - -if [ "$WARN" = "true" ]; then - unset TERSE - echo "Only warning... not actually removing any files." - if [ "$PRESERVE" = "true" ]; then - echo "Package contents is copied to $PRES_DIR." - fi - echo "Here's what would be removed (and left behind) if you" - echo "removed the package(s):" - echo -else - if [ "$PRESERVE" = "true" ]; then - echo "Package contents is copied to $PRES_DIR." - fi -fi - -remove_packages $* diff --git a/testing/source/pkgtools/scripts/setup.70.install-kernel b/testing/source/pkgtools/scripts/setup.70.install-kernel deleted file mode 100644 index 8edf6477..00000000 --- a/testing/source/pkgtools/scripts/setup.70.install-kernel +++ /dev/null @@ -1,5 +0,0 @@ -# Install the bootdisk or CD-ROM's Linux kernel: -#BLURB="Install a Linux kernel from a bootdisk" -if [ -x /usr/lib/setup/SeTkernel ]; then - . /usr/lib/setup/SeTkernel -fi diff --git a/testing/source/pkgtools/scripts/setup.80.make-bootdisk b/testing/source/pkgtools/scripts/setup.80.make-bootdisk deleted file mode 100644 index 0ed8b9a1..00000000 --- a/testing/source/pkgtools/scripts/setup.80.make-bootdisk +++ /dev/null @@ -1,267 +0,0 @@ -#!/bin/sh -#BLURB="Create a USB Linux boot stick" -if [ -r /usr/lib/setup/setup ]; then - RDIR=/dev/tty4 -else - RDIR=/dev/null -fi -TMP=/var/lib/pkgtools/setup/tmp - -if [ ! -d $TMP ]; then - mkdir -p $TMP -fi -if [ -z "$1" ]; then - T_PX=/ -else - T_PX="$1" -fi -if [ -z "$2" ]; then - ROOT_DEVICE=$(mount | head -n 1 | cut -f 1 -d ' ') -else - ROOT_DEVICE="$2" -fi - -if [ -r $T_PX/usr/share/syslinux/mbr.bin ]; then - MBR_BIN=$T_PX/usr/share/syslinux/mbr.bin -elif [ -r /usr/share/syslinux/mbr.bin ]; then - MBR_BIN=/usr/share/syslinux/mbr.bin -else - dialog --title "ERROR: USB BOOT STICK NOT CREATED" --msgbox \ - "Master Boot Record file mbr.bin not found. This script requires that the syslinux package is installed." 6 60 - exit -fi - -while [ 0 ]; do # the bootdisk menu loop - # Run "rescan-scsi-bus -l" to get an up to date overview of devices: - /sbin/rescan-scsi-bus -l 1>$RDIR 2>$RDIR - # Get a list of removable block devices before the USB stick is inserted: - echo "" > $TMP/remov_prior - for BDEV in $(ls --indicator-style none /sys/block | egrep -v "loop|ram"); do - [ -r /sys/block/$BDEV/removable -a "$(cat /sys/block/$BDEV/removable)" == "1" ] \ - && echo $BDEV >> $TMP/remov_prior - done - if [ "$T_PX" = "/" ]; then - DEFAULTITEM="Create" - else - DEFAULTITEM="Skip" - fi - dialog --title "MAKE USB FLASH BOOT" --default-item "$DEFAULTITEM" --menu \ -"If your computer supports booting from a USB device, it is recommended that you make \ -a USB boot stick for your system at this time. It will boot your computer straight \ -into the root filesystem on $ROOT_DEVICE. \n\ -\n\ -Please insert a USB flash memory stick and then press ENTER to create a boot stick. \n\ -\n\ -WARNING! The existing contents of the USB stick will be erased. \n\ - " 18 70 2 \ - "Create" "Make a USB Linux boot stick" \ - "Skip" "Skip making a USB boot stick" \ - 2> $TMP/return - REPLY=`cat $TMP/return` - rm -f $TMP/return - if [ "$REPLY" = "Create" ]; then - # Run "rescan-scsi-bus -l" to discover our USB stick if needed: - /sbin/rescan-scsi-bus -l 1>$RDIR 2>$RDIR - # Get a list of removable block devices after the USB stick is inserted: - echo "" > $TMP/remov_after - for BDEV in $(ls --indicator-style none /sys/block | egrep -v "loop|ram"); do - [ -r /sys/block/$BDEV/removable -a "$(cat /sys/block/$BDEV/removable)" == "1" ] \ - && echo $BDEV >> $TMP/remov_after - done - ADDED=$(diff -u $TMP/remov_prior $TMP/remov_after | sed -n 's/^\+//p' | grep -v '^+') - REMVD=$(diff -u $TMP/remov_prior $TMP/remov_after | sed -n 's/^\+//p' | grep -v '^+') - if [ -n "$ADDED" ] ; then STICK=$ADDED ; else STICK="" ; fi - rm $TMP/remov_prior $TMP/remov_after - if [ ! -n "$STICK" ]; then - dialog --title "NO NEW DEVICE DETECTED" --ok-label Restart --msgbox \ -"No new USB device was detected. -If you had already inserted your USB stick, please remove it now. \ -Then select 'Restart'." 7 70 - continue - else - VENDOR="Vendor : $(cat /sys/block/$STICK/device/vendor)" - MODEL="Model : $(cat /sys/block/$STICK/device/model)" - SIZE="Size : $(( $(cat /sys/block/$STICK/size) / 2048)) MB" - dialog --title "NEW DEVICE DETECTED" --yesno \ -"A new USB device '/dev/$STICK' was detected with specifications: - --- $VENDOR --- $MODEL --- $SIZE - -If this is the USB stick to use, select 'Yes', -otherwise select 'No'." 12 70 - if [ $? -eq 1 ]; then - continue - fi - fi - - dialog --title "CREATING USB BOOT STICK" --infobox "Creating SYSLINUX bootdisk for \ -$ROOT_DEVICE on /dev/$STICK." 3 64 - # Create a 16M partition with FAT16. This should be large enough for any kernel (for now). - PARTSIZE="+16384K" - # Zero out master boot record and then initialize it with one bootable dos partition - dd if=/dev/zero of=/dev/$STICK bs=512 count=1 1> $RDIR 2> $RDIR - echo "PARTSIZE=$PARTSIZE" 1> $RDIR - fdisk /dev/$STICK << EOF 1> $RDIR 2> $RDIR -n -p -1 -2048 -$PARTSIZE -t 1 -6 -a -w -EOF - if [ -x /sbin/mkdosfs ]; then - /sbin/mkdosfs -I -n USBSLACK -F 16 /dev/${STICK}1 1> $RDIR 2> $RDIR - else - chroot $T_PX /sbin/mkdosfs -I -n USBSLACK -F 16 /dev/${STICK}1 1> $RDIR 2> $RDIR - fi - sync - # install syslinux - if which syslinux-nomtools 1> $RDIR 2> $RDIR ; then - syslinux-nomtools -i -s /dev/${STICK}1 1> $RDIR 2> $RDIR - elif which strace 1> $RDIR 2> $RDIR ; then - # There is a race condition between udev >= 214 and mtools which causes - # the regular version of syslinux to fail when installing to USB, but - # strace changes the timing just enough that it usually works: - strace syslinux -i -s /dev/${STICK}1 1> $RDIR 2> $RDIR - else - # This might work when the issues with mtools and udev are addressed, - # or if syslinux is eventually able to work around them. - syslinux -i -s /dev/${STICK}1 1> $RDIR 2> $RDIR - fi - # make the device bootable: - echo "dd if=$MBR_BIN of=/dev/$STICK" 1> $RDIR 2> $RDIR - dd if=$MBR_BIN of=/dev/$STICK 1> $RDIR 2> $RDIR - sync - # mount the device and write some configuration files - if [ ! -d $TMP/bootdisk ]; then - mkdir $TMP/bootdisk 2> $RDIR - fi - mount -t vfat /dev/${STICK}1 $TMP/bootdisk 1> $RDIR 2> $RDIR - if [ -r $T_PX/boot/vmlinuz ]; then - cp $T_PX/boot/vmlinuz $TMP/bootdisk/vmlinuz 1> $RDIR 2> $RDIR - elif [ -r $T_PX/vmlinuz ]; then - cp $T_PX/vmlinuz $TMP/bootdisk/vmlinuz 1> $RDIR 2> $RDIR - fi - cat << EOF > $TMP/bootdisk/message.txt 2> $RDIR - -Welcome to the 09Slackware07 Linux custom USB boot stick! - -By default, this stick boots a root Linux partition on $ROOT_DEVICE when you -hit ENTER. If you'd like to boot some other partition, use a command like -this on the prompt below: - - mount root=/dev/sda1 ro - -Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that -the partition should be initially mounted as read-only. If you wish to mount -the partition read-write, use "rw" instead. To set the video console mode, -use the vga= parameter (press F1 to see a table). You may also add any other -kernel parameters you might need depending on your hardware, and which -drivers are included in your kernel. - -EOF - cat << EOF > $TMP/bootdisk/syslinux.cfg 2> $RDIR -default vmlinuz root=$ROOT_DEVICE vga=normal ro -prompt 1 -timeout 6000 -display message.txt -F1 f1.txt -F2 message.txt -#F3 f3.txt -#F4 f4.txt -#F5 f5.txt -#F6 f6.txt -#F7 f7.txt -label mount - kernel vmlinuz - append root=$ROOT_DEVICE vga=normal ro -EOF - cat << EOF > $TMP/bootdisk/f1.txt 2> $RDIR - STANDARD MODES: - To make the kernel prompt for standard video modes use: vga=ask - - FRAMEBUFFER MODES: - To get the kernel to start in VESA framebuffer mode, you need to pass it - a vga= init string on the "boot:" prompt. Here's a table: - - Colors 640x480 800x600 1024x768 1280x1024 1600x1200 - --------+--------------------------------------------- - 256 | 769 771 773 775 796 - 32,768 | 784 787 790 793 797 - 65,536 | 785 788 791 794 798 - 16.8M | 786 789 792 795 799 - - ...such as this for 1024x768x64k: - vga=791 - - F2 returns to the previous page. - -EOF - if [ "$(uname -m)" == "x86_64" ]; then # also install an EFI bootloader - mkdir -p $TMP/bootdisk/EFI/BOOT 1> $RDIR 2> $RDIR - cp $T_PX/boot/elilo-x86_64.efi $TMP/bootdisk/EFI/BOOT/BOOTX64.EFI 1> $RDIR 2> $RDIR - cat << EOF > $TMP/bootdisk/EFI/BOOT/message.txt 2> $RDIR - -Welcome to the Slackware Linux custom USB boot stick! - -By default, this stick boots a root Linux partition on $ROOT_DEVICE when you -hit ENTER. If you'd like to boot some other partition, use a command like -this on the prompt below: - - huge.s root=/dev/sda1 ro - -Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that -the partition should be initially mounted as read-only. If you wish to mount -the partition read-write, use "rw" instead. You may also add any other -kernel parameters you might need depending on your hardware, and which -drivers are included in your kernel. - -Hit ENTER to boot: - -EOF - cat << EOF > $TMP/bootdisk/EFI/BOOT/elilo.conf 2> $RDIR -chooser=simple -message=message.txt -delay=300 -timeout=300 -# -image=/vmlinuz - label=huge.s - read-only - append="root=$ROOT_DEVICE vga=normal ro" -EOF - fi # end EFI installation - sync - umount /dev/${STICK}1 - rm -r $TMP/bootdisk - # Sometimes the nomtools version of syslinux will leave the volume mounted, - # so umount again: - umount /dev/${STICK}1 2> $RDIR - if [ "$T_PX" = "/" ]; then - dialog --title "USB BOOT STICK CREATED" --msgbox \ - "The USB boot stick has been successfully created on device /dev/$STICK." 6 60 - exit - fi - dialog --title "USB BOOT STICK CREATED" --ok-label Continue --cancel-label Create --menu \ -"The USB boot stick has been successfully created on device /dev/$STICK. If you would like to \ -create an additional boot stick, please select 'Create' and we'll go back and make another \ -one, otherwise select 'Continue' to continue configuring your system." 12 71 2 \ - "Continue" "Continue the configuration (done making boot sticks)" \ - "Create" "Make a spare Linux boot stick in /dev/$STICK" \ - 2> $TMP/return - REPLY=`cat $TMP/return` - rm -f $TMP/return - if [ "$REPLY" = "Create" ]; then - continue - else - break - fi - else # ! Create - break - fi -done diff --git a/testing/source/pkgtools/scripts/setup.htmlview b/testing/source/pkgtools/scripts/setup.htmlview deleted file mode 100644 index 98039100..00000000 --- a/testing/source/pkgtools/scripts/setup.htmlview +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -#BLURB="Set a default browser link." -# Sorry, this is not a full menu, and may not ever be. -# It is trivial to find the htmllink symbolic link and -# point it at the browser that you like. Besides, -# this is not a Linux standard that could be locating -# in any official document. It seems to have been -# started without any consultation with other -# distributions by <take a wild guess>, and now things -# expect it to be there. -# -# -# Note 1. Listing a browser doesn't mean we ship it. -# Note 2. Complaints about our preferences or missing -# browsers in the list will be considered. -# Yell at Pat about it. ;-) - -# There must be no link, or we assume the admin set it and -# do nothing. Can you tell this Q+D script was written for -# the initial installation? - -for browser in firefox seamonkey konqueror galeon epiphany links lynx ; do - if [ ! -e usr/bin/htmlview -a -x usr/bin/$browser ]; then - cat << EOF > usr/bin/htmlview -#!/bin/sh -exec $browser "\$@" -EOF - fi -done -if [ -e usr/bin/htmlview ]; then - chmod 755 usr/bin/htmlview -fi - diff --git a/testing/source/pkgtools/scripts/setup.services b/testing/source/pkgtools/scripts/setup.services deleted file mode 100644 index 2e83cb93..00000000 --- a/testing/source/pkgtools/scripts/setup.services +++ /dev/null @@ -1,342 +0,0 @@ -#!/bin/sh -#BLURB="Select/deselect system daemons (services)" -TMP=/var/lib/pkgtools/setup/tmp -if [ ! -d $TMP ]; then - mkdir -p $TMP -fi -T_PX="$1" -cd $T_PX -rm -f $TMP/tmpscript - -cat << EOF > $TMP/tmpscript -dialog --title "CONFIRM STARTUP SERVICES TO RUN" --item-help --checklist \\ -"The selected services will be started at boot time. If you \\ -don't need them, you may unselect them to turn them off (which may improve \\ -overall system security). You may also choose to start services that are \\ -not run by default, but be aware that more services means less security. \\ -Use the spacebar to select or unselect the services you wish to run. \\ -Recommended choices have been preselected. \\ -Press the ENTER key when you are finished." \\ -20 75 7 \\ -EOF - -if [ -r etc/rc.d/rc.atalk ]; then - if [ -x etc/rc.d/rc.atalk ]; then - RC_ATALK=on - else - RC_ATALK=off - fi - cat << EOF >> $TMP/tmpscript - "rc.atalk" "Netatalk Appletalk file/print server" $RC_ATALK "The Netatalk server is a file and print server for Macintosh networks." \\ -EOF -fi - -if [ -r etc/rc.d/rc.atd ]; then - if [ -x etc/rc.d/rc.atd ]; then - RC_ATD=on - else - RC_ATD=off - fi - cat << EOF >> $TMP/tmpscript - "rc.atd" "Schedules jobs for later" $RC_ATD "The at daemon schedules jobs to be run at a specified time." \\ -EOF -fi - -if [ -r etc/rc.d/rc.bind ]; then - if [ -x etc/rc.d/rc.bind ]; then - RC_BIND=on - else - RC_BIND=off - fi - cat << EOF >> $TMP/tmpscript - "rc.bind" "BIND (Domain Name System) server" $RC_BIND "BIND (Berkeley Internet Name Domain) is a Domain Name System (DNS) server." \\ -EOF -fi - -if [ -r etc/rc.d/rc.crond ]; then - if [ -x etc/rc.d/rc.crond ]; then - RC_CROND=on - else - RC_CROND=off - fi - cat << EOF >> $TMP/tmpscript - "rc.crond" "Time based job scheduler" $RC_CROND "The cron daemon schedules jobs to run at fixed times, dates, or intervals." \\ -EOF -fi - -if [ -r etc/rc.d/rc.cups ]; then - if [ -x etc/rc.d/rc.cups ]; then - RC_CUPS=on - else - RC_CUPS=off - fi - cat << EOF >> $TMP/tmpscript - "rc.cups" "CUPS print server" $RC_CUPS "The Common UNIX Printing system (print spooler choice #1)." \\ -EOF -fi - -if [ -r etc/rc.d/rc.dnsmasq ]; then - if [ -x etc/rc.d/rc.dnsmasq ]; then - RC_DNSMASQ=on - else - RC_DNSMASQ=off - fi - cat << EOF >> $TMP/tmpscript - "rc.dnsmasq" "dnsmasq DHCP/DNS server" $RC_DNSMASQ "dnsmasq provides DNS and DHCP service to a LAN." \\ -EOF -fi - -if [ -r etc/rc.d/rc.dovecot ]; then - if [ -x etc/rc.d/rc.dovecot ]; then - RC_DOVECOT=on - else - RC_DOVECOT=off - fi - cat << EOF >> $TMP/tmpscript - "rc.dovecot" "Dovecot IMAP/POP3 server" $RC_DOVECOT "Dovecot provides remote mailbox access for email clients." \\ -EOF -fi - -if [ -r etc/rc.d/rc.fuse ]; then - if [ -x etc/rc.d/rc.fuse ]; then - RC_FUSE=on - else - RC_FUSE=off - fi - cat << EOF >> $TMP/tmpscript - "rc.fuse" "Filesystem in Userspace library" $RC_FUSE "FUSE is an interface to allow userspace programs to use filesystems." \\ -EOF -fi - -if [ -r etc/rc.d/rc.hald ]; then - if [ -x etc/rc.d/rc.hald ]; then - RC_HALD=on - else - RC_HALD=off - fi - cat << EOF >> $TMP/tmpscript - "rc.hald" "Hardware Abstraction Layer" $RC_HALD "HAL makes access to CD/DVD drives and USB devices easier." \\ -EOF -fi - -if [ -r etc/rc.d/rc.hplip ]; then - if [ -x etc/rc.d/rc.hplip ]; then - RC_HPLIP=on - else - RC_HPLIP=off - fi - cat << EOF >> $TMP/tmpscript - "rc.hplip" "HP printer/scanner daemons" $RC_HPLIP "Programs used to run printers and scanners from Hewlett Packard." \\ -EOF -fi - -if [ -r etc/rc.d/rc.httpd ]; then - if [ -x etc/rc.d/rc.httpd ]; then - RC_HTTPD=on - else - RC_HTTPD=off - fi - cat << EOF >> $TMP/tmpscript - "rc.httpd" "The Apache web server" $RC_HTTPD "Apache, the most widely used web server on the net." \\ -EOF -fi - -if [ -r etc/rc.d/rc.inetd ]; then - if [ -x etc/rc.d/rc.inetd ]; then - RC_INETD=on - else - RC_INETD=off - fi - cat << EOF >> $TMP/tmpscript - "rc.inetd" "The BSD Inetd daemon" $RC_INETD "Inetd daemon (this allows: time, ftp, comsat, talk, finger, and auth)." \\ -EOF -fi - -if [ -r etc/rc.d/rc.ip_forward ]; then - if [ -x etc/rc.d/rc.ip_forward ]; then - RC_IP_FORWARD=on - else - RC_IP_FORWARD=off - fi - cat << EOF >> $TMP/tmpscript - "rc.ip_forward" "Activate IP packet forwarding" $RC_IP_FORWARD "Packet forwarding allows your Linux machine to act as a router." \\ -EOF -fi - -if [ -r etc/rc.d/rc.lprng ]; then - if [ -x etc/rc.d/rc.lprng ]; then - RC_LPRNG=on - else - RC_LPRNG=off - fi - cat << EOF >> $TMP/tmpscript - "rc.lprng" "LPRng print server" $RC_LPRNG "The LPRng printing system (print spooler choice #2)." \\ -EOF -fi - -if [ -r etc/rc.d/rc.messagebus ]; then - if [ -x etc/rc.d/rc.messagebus ]; then - RC_MESSAGEBUS=on - else - RC_MESSAGEBUS=off - fi - cat << EOF >> $TMP/tmpscript - "rc.messagebus" "D-Bus system message bus" $RC_MESSAGEBUS "Used for interprocess communication and coordination." \\ -EOF -fi - -if [ -r etc/rc.d/rc.mysqld ]; then - if [ -x etc/rc.d/rc.mysqld ]; then - RC_MYSQLD=on - else - RC_MYSQLD=off - fi - cat << EOF >> $TMP/tmpscript - "rc.mysqld" "The MySQL database server" $RC_MYSQLD "MySQL, an SQL-based relational database daemon." \\ -EOF -fi - -if [ -r etc/rc.d/rc.ntpd ]; then - if [ -x etc/rc.d/rc.ntpd ]; then - RC_NTPD=on - else - RC_NTPD=off - fi - cat << EOF >> $TMP/tmpscript - "rc.ntpd" "The network time server" $RC_NTPD "NTP synchronizes your time to/from other NTP servers." \\ -EOF -fi - -if [ -r etc/rc.d/rc.pcmcia ]; then - if [ -x etc/rc.d/rc.pcmcia ]; then - RC_PCMCIA=on - else - RC_PCMCIA=off - fi - cat << EOF >> $TMP/tmpscript - "rc.pcmcia" "PCMCIA/Cardbus card services" $RC_PCMCIA "This supports PCMCIA or Cardbus cards used with laptops." \\ -EOF -fi - -if [ -r etc/rc.d/rc.postfix ]; then - if [ -x etc/rc.d/rc.postfix ]; then - RC_POSTFIX=on - else - RC_POSTFIX=off - fi - cat << EOF >> $TMP/tmpscript - "rc.postfix" "The Postfix mail server" $RC_POSTFIX "The Postfix server allows your machine to send and receive mail." \\ -EOF -fi - -if [ -r etc/rc.d/rc.rpc ]; then - if [ -x etc/rc.d/rc.rpc ]; then - RC_RPC=on - else - RC_RPC=off - fi - cat << EOF >> $TMP/tmpscript - "rc.rpc" "RPC (NFS) daemons" $RC_RPC "Needed to serve or mount NFS (Network File System) partitions." \\ -EOF -fi - -if [ -r etc/rc.d/rc.samba ]; then - if [ -x etc/rc.d/rc.samba ]; then - RC_SAMBA=on - else - RC_SAMBA=off - fi - cat << EOF >> $TMP/tmpscript - "rc.samba" "The Samba file/print server" $RC_SAMBA "Samba is a file and print server for Windows networks." \\ -EOF -fi - -if [ -r etc/rc.d/rc.saslauthd ]; then - if [ -x etc/rc.d/rc.saslauthd ]; then - RC_SASLAUTHD=on - else - RC_SASLAUTHD=off - fi - cat << EOF >> $TMP/tmpscript - "rc.saslauthd" "The SASL authentication server" $RC_SASLAUTHD "SASL is an authentication method often used by mail servers." \\ -EOF -fi - -if [ -r etc/rc.d/rc.sendmail ]; then - if [ -x etc/rc.d/rc.sendmail ]; then - RC_SENDMAIL=on - else - RC_SENDMAIL=off - fi - cat << EOF >> $TMP/tmpscript - "rc.sendmail" "The Sendmail mail server" $RC_SENDMAIL "The Sendmail server allows your machine to send and receive mail." \\ -EOF -fi - -if [ -r etc/rc.d/rc.smartd ]; then - if [ -x etc/rc.d/rc.smartd ]; then - RC_SMARTD=on - else - RC_SMARTD=off - fi - cat << EOF >> $TMP/tmpscript - "rc.smartd" "SMART monitoring daemon" $RC_SMARTD "The SMART daemon monitors your hard drives to help predict failures." \\ -EOF -fi - -if [ -r etc/rc.d/rc.snmpd ]; then - if [ -x etc/rc.d/rc.snmpd ]; then - RC_SNMPD=on - else - RC_SNMPD=off - fi - cat << EOF >> $TMP/tmpscript - "rc.snmpd" "Net-SNMP daemon" $RC_SNMPD "SNMP daemon that receives and logs SNMP TRAP and INFORM messages." \\ -EOF -fi - -if [ -r etc/rc.d/rc.syslog ]; then - if [ -x etc/rc.d/rc.syslog ]; then - RC_SYSLOGD=on - else - RC_SYSLOGD=off - fi - cat << EOF >> $TMP/tmpscript - "rc.syslog" "The Linux system logging utilities" $RC_SYSLOGD "The syslogd and klogd daemons log important messages under /var/log." \\ -EOF -fi - -if [ -r etc/rc.d/rc.sshd ]; then - if [ -x etc/rc.d/rc.sshd ]; then - RC_SSHD=on - else - RC_SSHD=off - fi - cat << EOF >> $TMP/tmpscript - "rc.sshd" "The SSHD (secure shell) daemon" $RC_SSHD "SSHD allows secure encrypted logins to your machine." \\ -EOF -fi - -cat << EOF >> $TMP/tmpscript - 2> $TMP/reply -EOF - -. $TMP/tmpscript - -if [ ! $? = 0 ]; then - rm -f $TMP/reply $TMP/tmpscript - exit -fi - -for service in rc.atalk rc.atd rc.bind rc.crond rc.cups rc.dovecot rc.dnsmasq rc.fuse rc.hald rc.hplip rc.httpd rc.inetd rc.ip_forward rc.lprng rc.messagebus rc.mysqld rc.ntpd rc.pcmcia rc.postfix rc.rpc rc.samba rc.saslauthd rc.smartd rc.snmpd rc.sendmail rc.syslog rc.sshd ; do - if [ -f etc/rc.d/$service ]; then - if grep -w $service $TMP/reply 1> /dev/null ; then - chmod 755 etc/rc.d/$service - else - chmod 644 etc/rc.d/$service - fi - fi -done - -rm -f $TMP/reply $TMP/tmpscript - diff --git a/testing/source/pkgtools/scripts/upgradepkg b/testing/source/pkgtools/scripts/upgradepkg deleted file mode 100644 index f53d21d9..00000000 --- a/testing/source/pkgtools/scripts/upgradepkg +++ /dev/null @@ -1,417 +0,0 @@ -#!/bin/bash -# 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. -# -# Mon Jun 4 21:17:58 UTC 2018 -# Use /var/lib/pkgtools, not /var/log. -# -# Thu May 24 20:23:55 UTC 2018 -# Added --terselength option to set the line length in --terse mode. -# Use a lockfile to prevent output collisions in --terse mode. -# -# Wed May 23 03:35:28 UTC 2018 -# Added --terse, which limits screen output to one line per package. -# -# 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. -# -# 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. -# -# Added --dry-run, Sat Apr 26 18:13:29 PDT 2003 -# -# Added --install-new and --reinstall, Fri May 31 14:11:14 PDT 2002 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 -# -# Modified to handle either old 8.3 or new package-version-arch-build.tgz -# packages, Sat Nov 17 14:25:58 PST 2001 volkerdi - -# Return a package name that has been stripped of the dirname portion -# and any of the valid extensions (only): -pkgbase() { - PKGRETURN=${1##*/} - case "$PKGRETURN" in *.t[gblx]z) - PKGRETURN=${PKGRETURN%.*} - esac - echo "$PKGRETURN" -} - -usage() { - cat << EOF - -Usage: upgradepkg [options] <newpackage> ... - upgradepkg [options] <oldpackage%newpackage> ... - -Upgrade, install, or reinstall Slackware packages (.tgz, .tbz, .tlz, .txz). - -To operate on an alternate directory, such as /mnt: - ROOT=/mnt upgradepkg package.txz - -Options: - --dry-run only display what would be done - --install-new install new packages also - --reinstall upgrade packages of the same version - --terse display a single line for each package operation - --terselength <length> maximum line length of terse output - --verbose display all the gory details of the upgrade - --help display this help - -For more details see upgradepkg(8). -EOF -} - -# Set the prefix for the package database directories (packages, scripts). -ADM_DIR="$ROOT/var/lib/pkgtools" - -# Make sure there's a proper temp directory: -TMP=$ADM_DIR/setup/tmp -# If the $TMP directory doesn't exist, create it: -if [ ! -d $TMP ]; then - mkdir -p $TMP - chmod 700 $TMP # no need to leave it open -fi - -# This script expects an 022 umask: -umask 022 - -# $ROOT defined? -if [ -d "$ROOT" ]; then - export ROOT -else - unset ROOT -fi - -# --help or no args? -if [ "$1" = "" -o "$1" = "-help" -o "$1" = "--help" -o "$1" = "-?" ]; then - usage; - exit 1; -fi - -# Create a lockfile directory if it doesn't exist. We can use it to prevent -# output line collisions in --terse mode. -INSTLOCKDIR=${INSTLOCKDIR:-/run/lock/pkgtools} -if [ ! -d $INSTLOCKDIR ]; then - mkdir -p $INSTLOCKDIR -fi - -# Set default line length for terse mode: -if tty -s && which tput 1> /dev/null 2> /dev/null ; then - TERSELENGTH=$(tput cols) -else - TERSELENGTH=80 -fi - -# Arg processing loop. These must come before any packages are listed. -while [ 0 ]; do - if [ "$1" = "-no-paranoia" -o "$1" = "--no-paranoia" ]; then - # Enable --no-paranoia mode. This is so not-recommended that we're - # not even going to document it. ;) If a file used to be directly - # managed and now is moved into place, using --no-paranoia will cause - # it to improperly disappear. It does slightly speed things up, though. - # Don't use it. - NOT_PARANOID="true" - shift 1 - elif [ "$1" = "-install-new" -o "$1" = "--install-new" ]; then - # Install packages that do not already have an installed version. - # The usual default is to skip them. - INSTALL_NEW="yes" - shift 1 - elif [ "$1" = "-reinstall" -o "$1" = "--reinstall" ]; then - # Reinstall packages even if the installed one is the same version. - REINSTALL="true" - shift 1 - elif [ "$1" = "-verbose" -o "$1" = "--verbose" -o "$1" = "-v" ]; then - # We're adding a --verbose mode that doesn't filter removepkg as much - VERBOSE="verbose" - shift 1 - elif [ "$1" = "-dry-run" -o "$1" = "--dry-run" ]; then - # Output a report about which packages would be installed or upgraded - # but don't actually perform the upgrades. - DRY_RUN="true" - shift 1 - elif [ "$1" = "-terse" -o "$1" = "--terse" ]; then - # Output one line per installed/upgraded package by calling installpkg - # with --terse. Use TERSE=0 for true, so we can check with test. - TERSE=0 - shift 1 - elif [ "$1" = "-terselength" -o "$1" = "--terselength" ]; then - # Set line length in --terse mode: - TERSELENGTH=$2 - shift 2 - else # no more args - break; - fi -done # processing args - -# A couple not-really-documented features to adjust the behavior of --terse -# mode. These need to be used in addition to --terse, and passed in as -# environment variables. -# PLAINTERSE=0 (This outputs the standard terse line from installpkg, rather -# than prefixing it with "Upgrading:" or "Installing:") -# INFOBOX=0 (This outputs the installpkg --infobox instead of a terse line) - -# Here's a function to figure out the package name from one of those -# new long filenames. We'll need this to double check the name of the -# old package. - -package_name() { - STRING=$(pkgbase "$1") - case "$STRING" in - *-*-*-*) - # At least four segments, strip version arch and build and return name: - echo "${STRING%-*-*-*}" - # cruft for later ;) - # BUILD=${STRING##*-} - # STRING=${STRING%*-} - # ARCH=${STRING##*-} - # STRING=${STRING%*-} - # VER=${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 -} - -ERRCODE=0 - -# Main processing loop: -for ARG; do - OLD=${ARG%'%'*} # first segment, = $ARG if no % - NEW=${ARG#*'%'} # second segment, = $ARG if no % - - # Simple package integrity check: - if ! [ -f "$NEW" ]; then - ERRCODE=4 - echo "Cannot install $NEW: file not found" - continue; - fi - - # Figure out the names of the old and new packages: - INCOMINGDIR=$(dirname $NEW) - # These are the package names with the extension: - NNAME=${NEW##*/} - ONAME=${OLD##*/} - # These are the package names without the extension: - OLD=$(pkgbase $OLD) - NEW=$(pkgbase $NEW) - - # Make sure the extension is valid: - if [ "$NNAME" = "$NEW" ]; then - # We won't throw an ERRCODE for this, but the package is skipped: - echo "Cannot install $OLD: invalid package extension" - continue; - fi - - # Check and fix the old package name: - SHORT="$(package_name $OLD)" - if [ ! -r $ADM_DIR/packages/$OLD ]; then - if ls $ADM_DIR/packages/$SHORT* 1> /dev/null 2> /dev/null ; then - for installed_package in $ADM_DIR/packages/$SHORT* ; do - if [ "$(package_name $installed_package)" = "$SHORT" ]; then # found one - OLD="${installed_package##*/}" - break - fi - done - fi - fi - - # Test to see if both the old and new packages are where we expect them - # to be - skip to the next package (or package pair) if anything's wrong: - - if [ ! -r $ADM_DIR/packages/$OLD ]; then - if [ ! "$INSTALL_NEW" = "yes" ]; then - if [ "$DRY_RUN" = "true" ]; then - echo "$OLD would not be upgraded (no installed package named $SHORT)." - else - ! [ $TERSE ] && echo - echo "Error: there is no installed package named $OLD." - ! [ $TERSE ] && echo " (looking for $ADM_DIR/packages/$OLD)" - ! [ $TERSE ] && echo - fi - ERRCODE=1 - else # --install-new was given, so install the new package: - if [ "$DRY_RUN" = "true" ]; then - echo "$NEW would be installed (new package)." - else - if [ $PLAINTERSE ]; then - /sbin/installpkg --terse --terselength $TERSELENGTH $INCOMINGDIR/$NNAME - elif [ $INFOBOX ]; then - /sbin/installpkg --infobox $INCOMINGDIR/$NNAME - elif [ $TERSE ]; then - OUTPUTLINE="$(/sbin/installpkg --terse --terselength $(expr $TERSELENGTH - 12) $INCOMINGDIR/$NNAME)" - ( flock 9 || exit 11 - echo "Installing: ${OUTPUTLINE}" - ) 9> $INSTLOCKDIR/outputline.lock - else - cat << EOF - -+============================================================================== -| Installing new package $INCOMINGDIR/$NNAME -+============================================================================== - -EOF - /sbin/installpkg $INCOMINGDIR/$NNAME - fi - fi - fi - continue; - elif [ ! -r "$INCOMINGDIR/$NNAME" ]; then - if [ "$DRY_RUN" = "true" ]; then - echo "$NEW incoming package not found (command line)." - else - ! [ $TERSE ] && echo - echo "Error: incoming package $INCOMINGDIR/$NNAME not found." - ! [ $TERSE ] && echo - fi - ERRCODE=1 - continue; - fi - - # Unless --reinstall was given, compare the package names - # and skip any exact matches: - if [ ! "$REINSTALL" = "true" ]; then - if [ "$OLD" = "$NEW" ]; then - if [ "$DRY_RUN" = "true" ]; then - echo "$NEW would be skipped (already installed)." - else - if ! [ $TERSE ]; then - cat << EOF - -+============================================================================== -| Skipping package $NEW (already installed) -+============================================================================== - -EOF - fi - fi - continue; - fi - fi - - # Showtime. Let's do the upgrade. First, we will rename all the - # installed packages with this basename to make them easy to remove later: - - TIMESTAMP=$(date +%Y-%m-%d,%T) - SHORT="$(package_name $OLD)" - if [ "$DRY_RUN" = "true" ]; then - echo -n "$NEW would upgrade: " - for installed_package in $ADM_DIR/packages/$SHORT* ; do - if [ "$(package_name $installed_package)" = "$SHORT" ]; then - echo -n "$(pkgbase $installed_package)" - fi - done - echo - continue - fi - for installed_package in $ADM_DIR/packages/$SHORT* ; do - if [ "$(package_name $installed_package)" = "$SHORT" ]; then - mv $installed_package ${installed_package}-upgraded-$TIMESTAMP - fi - done - for installed_script in $ADM_DIR/scripts/$SHORT* ; do - if [ "$(package_name $installed_script)" = "$SHORT" ]; then - if [ -r $installed_script ]; then - mv $installed_script ${installed_script}-upgraded-$TIMESTAMP - fi - fi - done - - # Print a banner for the current upgrade: - if ! [ $TERSE ]; then - cat << EOF - -+============================================================================== -| Upgrading $OLD package using $INCOMINGDIR/$NNAME -+============================================================================== -EOF - fi - # Next, the new package is pre-installed: - if [ "$VERBOSE" = "verbose" ]; then - if ! [ $TERSE ]; then - /sbin/installpkg $INCOMINGDIR/$NNAME - RETCODE=$? - else - /sbin/installpkg $INCOMINGDIR/$NNAME 1> /dev/null - RETCODE=$? - fi - else - if [ $PLAINTERSE ]; then - /sbin/installpkg --terse --terselength $TERSELENGTH $INCOMINGDIR/$NNAME - elif [ $INFOBOX ]; then - /sbin/installpkg --infobox $INCOMINGDIR/$NNAME - elif [ $TERSE ]; then - OUTPUTLINE="$(/sbin/installpkg --terse --terselength $(expr $TERSELENGTH - 12) $INCOMINGDIR/$NNAME)" - RETCODE=$? - ( flock 9 || exit 11 - echo "Upgrading: ${OUTPUTLINE}" - ) 9> $INSTLOCKDIR/outputline.lock - else - echo "Pre-installing package $NEW..." - /sbin/installpkg $INCOMINGDIR/$NNAME 1> /dev/null - RETCODE=$? - fi - fi - # Make sure that worked: - if [ ! $RETCODE = 0 ]; then - echo "ERROR: Package $INCOMINGDIR/$NNAME did not install" - echo "correctly. You may need to reinstall your old package" - echo "to avoid problems. Make sure the new package is not" - echo "corrupted." - sleep 15 - # Skip this package, but still try to proceed. Good luck... - continue; - fi - # Now, the leftovers from the old package(s) can go. Pretty simple, huh? :) - ( flock 9 || exit 11 - for rempkg in "$ADM_DIR/packages/"*"-$TIMESTAMP"; do - if [ "$VERBOSE" = "verbose" ]; then - /sbin/removepkg "${rempkg##*/}" - elif ! [ $TERSE ]; then - /sbin/removepkg "${rempkg##*/}" | grep -v 'Skipping\.\|Removing files:' - else - /sbin/removepkg "${rempkg##*/}" > /dev/null - fi - done - ) 9> $INSTLOCKDIR/removepkg.lock - # Again! Again! - # Seriously, the reinstalling of a package can be crucial if any files - # shift location, so we should always reinstall as the final step: - if [ ! "$NOT_PARANOID" = "true" ]; then - if ! [ $TERSE ]; then - /sbin/installpkg $INCOMINGDIR/$NNAME - else - /sbin/installpkg $INCOMINGDIR/$NNAME 1> /dev/null - fi - fi - ! [ $TERSE ] && echo "Package $OLD upgraded with new package $INCOMINGDIR/$NNAME." - ERRCODE=0 -done -exit $ERRCODE |