summaryrefslogtreecommitdiffstats
path: root/source/ap/slackpkg/files/slackpkg
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2016-06-30 20:26:57 +0000
committer Eric Hameleers <alien@slackware.com>2018-05-31 23:31:18 +0200
commitd31c50870d0bee042ce660e445c9294a59a3a65b (patch)
tree6bfc0de3c95267b401b620c2c67859557dc60f97 /source/ap/slackpkg/files/slackpkg
parent76fc4757ac91ac7947a01fb7b53dddf9a78a01d1 (diff)
downloadcurrent-d31c50870d0bee042ce660e445c9294a59a3a65b.tar.gz
current-d31c50870d0bee042ce660e445c9294a59a3a65b.tar.xz
Slackware 14.2slackware-14.2
Thu Jun 30 20:26:57 UTC 2016 Slackware 14.2 x86_64 stable is released! The long development cycle (the Linux community has lately been living in "interesting times", as they say) is finally behind us, and we're proud to announce the release of Slackware 14.2. The new release brings many updates and modern tools, has switched from udev to eudev (no systemd), and adds well over a hundred new packages to the system. Thanks to the team, the upstream developers, the dedicated Slackware community, and everyone else who pitched in to help make this release a reality. The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware project by picking up a copy from store.slackware.com. We're taking pre-orders now, and offer a discount if you sign up for a subscription. Have fun! :-)
Diffstat (limited to 'source/ap/slackpkg/files/slackpkg')
-rw-r--r--source/ap/slackpkg/files/slackpkg574
1 files changed, 574 insertions, 0 deletions
diff --git a/source/ap/slackpkg/files/slackpkg b/source/ap/slackpkg/files/slackpkg
new file mode 100644
index 000000000..9c45c8659
--- /dev/null
+++ b/source/ap/slackpkg/files/slackpkg
@@ -0,0 +1,574 @@
+#!/bin/sh
+#
+# SlackPkg - An Automated packaging tool for Slackware Linux
+# Copyright (C) 2003-2011 Roberto F. Batista, Evaldo Gardenali
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Project Page: http://slackpkg.org/
+# Roberto F. Batista (aka PiterPunk) piterpunk@slackware.com
+# Evaldo Gardenali (aka UdontKnow) evaldogardenali@fasternet.com.br
+#
+
+
+#========================================================================
+#
+# LOAD CONFIGURATIONS
+#
+
+#
+# CONF = configuration directory
+# SOURCE = A mirror of Slackware. Source can be sett by editing $CONF/mirrors
+#
+VERSION=@VERSION@
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+SLACKWARE_VERSION=$(cat /etc/slackware-version | cut -f2 -d\ )
+CONF=${CONF:-/etc/slackpkg}
+SOURCE=$(sed -e 's/^[[:blank:]]*//' $CONF/mirrors | grep -m1 -e "^\([a-z]\)")
+. $CONF/slackpkg.conf
+ERROR=""
+
+# Set temporary directory
+#
+TMPDIR=$(mktemp -p /tmp -d slackpkg.XXXXXX 2>/dev/null)
+if [ $? -ne 0 ]; then
+ TMPDIR="/tmp/slackpkg.${RANDOM}"
+ mkdir -m 700 $TMPDIR || TMPDIR="FAILED"
+fi
+
+#
+# Load the slackpkg functions
+#
+. /usr/libexec/slackpkg/core-functions.sh
+
+#========================================================================
+#
+# COMMAND LINE PARSING
+#
+if [ $# -eq 0 ]; then
+ usage
+fi
+
+while [ -n "$1" ] ; do
+ case $1 in
+ -delall=on)
+ DELALL=on
+ shift
+ ;;
+ -delall=off)
+ DELALL=off
+ shift
+ ;;
+ -checkmd5=on)
+ CHECKMD5=on
+ shift
+ ;;
+ -checkmd5=off)
+ CHECKMD5=off
+ shift
+ ;;
+ -checkgpg=on)
+ CHECKGPG=on
+ shift
+ ;;
+ -checkgpg=off)
+ CHECKGPG=off
+ shift
+ ;;
+ -checksize=on)
+ CHECKSIZE=on
+ shift
+ ;;
+ -checksize=off)
+ CHECKSIZE=off
+ shift
+ ;;
+ -postinst=on)
+ POSTINST=on
+ shift
+ ;;
+ -postinst=off)
+ POSTINST=off
+ shift
+ ;;
+ -onoff=on)
+ ONOFF=on
+ shift
+ ;;
+ -onoff=off)
+ ONOFF=off
+ shift
+ ;;
+ -download_all=on)
+ DOWNLOAD_ALL=on
+ shift
+ ;;
+ -download_all=off)
+ DOWNLOAD_ALL=off
+ shift
+ ;;
+ -dialog=on)
+ DIALOG=on
+ shift
+ ;;
+ -dialog=off)
+ DIALOG=off
+ shift
+ ;;
+ -dialog_maxargs=*)
+ DIALOG_MAXARGS=$(echo $1 | cut -f2 -d=)
+ shift
+ ;;
+ -batch=on)
+ BATCH=on
+ shift
+ ;;
+ -batch=off)
+ BATCH=off
+ shift
+ ;;
+ -only_new_dotnew=on)
+ ONLY_NEW_DOTNEW=on
+ shift
+ ;;
+ -only_new_dotnew=off)
+ ONLY_NEW_DOTNEW=off
+ shift
+ ;;
+ -use_includes=on)
+ USE_INCLUDES=on
+ shift
+ ;;
+ -use_includes=off)
+ USE_INCLUDES=off
+ shift
+ ;;
+ -spinning=on)
+ SPINNING=on
+ shift
+ ;;
+ -spinning=off)
+ SPINNING=off
+ shift
+ ;;
+ -default_answer=y|-default_answer=yes)
+ DEFAULT_ANSWER=y
+ shift
+ ;;
+ -default_answer=n|-default_answer=no)
+ DEFAULT_ANSWER=n
+ shift
+ ;;
+ -mirror=*)
+ SOURCE=$(echo $1 | cut -f2 -d=)
+ shift
+ ;;
+ install|reinstall|upgrade|remove|blacklist|download)
+ CMD=$1
+ shift
+ if [ -n "$1" ]; then
+ if echo $1 | egrep -q "^\.{0,2}/" ; then
+ if [ -e $1 ]; then
+ INPUTLIST=$(cat $1 | tr "\n" " ")
+ else
+ echo -e "The file $1 doesn't exist.\n"
+ cleanup
+ fi
+ else
+ #
+ # Sanitize the argument. We have some problems with dots
+ # and plus (.+)
+ #
+ #INPUTLIST="$(echo $@ | sed -e 's/\+/\\\+/g' -e 's/\./\\\./g')"
+ INPUTLIST="$@"
+ fi
+ elif [ "$CMD" != "blacklist" ]; then
+ usage
+ fi
+ shift $#
+ ;;
+ update)
+ CMD=$1
+ shift
+ if [ "$1" = "gpg" ]; then
+ UPARG="$1"
+ shift
+ fi
+ ;;
+ install-new|upgrade-all|clean-system|new-config|check-updates|help)
+ CMD=$1
+ shift
+ if [ -n "$1" ]; then
+ echo -e "\n$CMD: Ignoring extra arguments: $@" >&2 >&1
+ shift $#
+ fi
+ ;;
+ generate-template|install-template|remove-template|search|file-search|info)
+ CMD=$1
+ shift
+ if [ -n "$1" ]; then
+ ARG=$1
+ shift
+ else
+ usage
+ fi
+
+ if [ -n "$1" ]; then
+ echo -e "\n$CMD: Ignoring extra arguments: $@" >&2 >&1
+ shift $#
+ fi
+ ;;
+ *)
+ echo -e "\n$1: Unknown option.\n"
+ usage
+ ;;
+ esac
+done
+
+#========================================================================
+#
+# SYSTEM SETUP
+#
+system_setup
+
+#========================================================================
+#
+# SYNTAX CHECKING
+#
+system_checkup
+
+#========================================================================
+#
+# READ EXTRA FUNCTIONS
+#
+
+# If you want a new function or need a rewrite of an existing
+# feature, you can put your new function in a shell script under
+# /usr/libexec/slackpkg/functions.d/
+#
+# Remember - the new function scripts need to be executable
+#
+for i in /usr/libexec/slackpkg/functions.d/*.sh; do
+ if [ -x $i ]; then
+ . $i
+ fi
+done
+
+#========================================================================
+#
+# MAIN PROGRAM
+#
+
+#
+# A *BIG* case with all slackpkg commands -:)
+#
+case "$CMD" in
+ help)
+ full_usage
+ ;;
+ check-updates)
+ if checkchangelog 1>/dev/null 2>/dev/null ; then
+ echo "No news is good news"
+ else
+ echo "News on ChangeLog.txt"
+ fi
+ ;;
+ update)
+ # If you are using "slackpkg update gpg" OR the system
+ # doesn't have Slackware GPG key, download and install
+ # the key
+ #
+ if [ "$UPARG" = "gpg" ] || [ "$GPGFIRSTTIME" = "0" ]; then
+ #
+ # Creates .gnupg directory if doesn't exist
+ # without this dir, gpg got an error.
+ #
+ if ! [ -e ~/.gnupg ]; then
+ mkdir ~/.gnupg
+ fi
+ getfile ${SOURCE}GPG-KEY $TMPDIR/gpgkey
+ gpg --yes --batch --delete-key "$SLACKKEY" &>/dev/null
+ gpg --import $TMPDIR/gpgkey &>/dev/null && \
+ echo -e "\t\t\tSlackware Linux Project's GPG key added"
+ if [ "$UPARG" = "gpg" ]; then
+ cleanup
+ fi
+ fi
+ echo "Updating the package lists..."
+ updatefilelists
+ ;;
+ install)
+ makelist $INPUTLIST
+ if [ -n "$LIST" ]; then
+ showlist "$LIST" $CMD
+ install_pkg
+ else
+ echo -e "No packages match the pattern for install. Try:"
+ echo -e "\n\t$0 reinstall|upgrade $2\n"
+ POSTINST=off
+ fi
+ ;;
+ reinstall)
+ makelist $INPUTLIST
+ if [ -n "$LIST" ]; then
+ showlist "$LIST" $CMD
+ install_pkg
+ else
+ echo -e "No packages match the pattern for reinstall. Try:"
+ echo -e "\n\t$0 install|upgrade $2\n"
+ POSTINST=off
+ fi
+ ;;
+ upgrade)
+ sanity_check
+ makelist $INPUTLIST
+ if [ -n "$LIST" ]; then
+ showlist "$LIST" $CMD
+ upgrade_pkg
+ else
+ echo -e "No packages match the pattern for upgrade. Try:"
+ echo -e "\n\t$0 install|reinstall $2\n"
+ POSTINST=off
+ fi
+ ;;
+ download)
+ makelist $INPUTLIST
+ DELALL="off"
+ if ! [ "$LIST" = "" ]; then
+ showlist "$LIST" $CMD
+ for i in $SHOWLIST; do
+ getpkg $i true
+ done
+ else
+ echo -e "No packages match the pattern for download."
+ POSTINST=off
+ fi
+ ;;
+ remove)
+ makelist $INPUTLIST
+ if [ "$LIST" = "" ]; then
+ echo -e "The file(s) $INPUTLIST can't be removed - package not installed.\n"
+ cleanup
+ fi
+ showlist "$LIST" $CMD
+ remove_pkg
+ ;;
+ clean-system)
+ makelist $INPUTLIST
+ if [ -n "$LIST" ]; then
+ showlist "$LIST" remove
+ remove_pkg
+ else
+ echo -e "No packages match the pattern for clean-system\n"
+ POSTINST=off
+ fi
+ ;;
+ upgrade-all)
+ sanity_check
+ makelist $INPUTLIST
+ if ! [ -n "${LIST}" ]; then
+ echo -e "No packages match the pattern for upgrade. Try:"
+ echo -e "\n\t$0 install|reinstall $2\n"
+ POSTINST=off
+ else
+ showlist "$LIST" upgrade
+ if [ "$DOWNLOAD_ALL" = "on" ]; then
+ OLDDEL="$DELALL"
+ DELALL="off"
+ for i in $SHOWLIST; do
+ getpkg $i true
+ done
+ DELALL="$OLDDEL"
+ fi
+ FOUND=""
+ FOUND=$(echo $SHOWLIST | tr -s ' ' "\n" | grep "slackpkg-[0-9]")
+ if [ "$FOUND" != "" ]; then
+ getpkg $FOUND upgradepkg Upgrading
+ echo -e "slackpkg was upgraded - you will need start the upgrade process again...\n"
+ cleanup
+ exit 0
+ fi
+ for i in pkgtools glibc-solibs aaa_elflibs readline sed; do
+ FOUND=""
+ FOUND=$(echo $SHOWLIST | tr -s ' ' "\n" | grep "${i}-[0-9]")
+ if [ "$FOUND" != "" ]; then
+ getpkg $FOUND upgradepkg Upgrading
+ fi
+ done
+ upgrade_pkg
+ fi
+ ;;
+ install-new)
+ makelist ${INPUTLIST}
+ if ! [ -n "${LIST}" ]; then
+ echo -e "No packages match the pattern for install. Try:"
+ echo -e "\n\t$0 upgrade|reinstall $2\n"
+ POSTINST=off
+ else
+ showlist "$LIST" install
+ install_pkg
+ fi
+ ;;
+ blacklist)
+ #
+ # If blacklist is called without package name, list
+ # all blacklisted packages
+ if [ "$INPUTLIST" = "" ]; then
+ echo -e "Packages in blacklist:\n"
+ grep -e "^\([a-z]\)" $CONF/blacklist | $MORECMD
+ cleanup
+ fi
+
+ makelist ${INPUTLIST}
+ for i in $LIST; do
+ BASENAME=$(cutpkg $i)
+ BLACKLIST="$BLACKLIST $BASENAME"
+ done
+ BLACKLIST=$(echo $BLACKLIST | tr ' ' "\n")
+ if [ "$BLACKLIST" = "" ]; then
+ echo -e "No packages match the pattern."
+ cleanup
+ else
+ showlist "$BLACKLIST" $CMD
+ fi
+
+ blacklist_pkg
+ ;;
+ file-search)
+ PATTERN=$(echo $ARG | sed -e 's/\+/\\\+/g' -e 's/\./\\\./g' -e 's/ /\|/g')
+ makelist $PATTERN
+
+ if [ "$LIST" = "" ]; then
+ echo -e "No packages contains \"$PATTERN\" file."
+ else
+ echo -e "The list below shows the packages that contains \"$PATTERN\" file.\n"
+ searchlist "$LIST"
+ echo -e "\nYou can search specific packages using \"slackpkg search package\".\n"
+ fi
+ ;;
+ search)
+ PATTERN=$(echo $ARG | sed -e 's/\+/\\\+/g' -e 's/\./\\\./g' -e 's/ /\|/g')
+ makelist $PATTERN
+
+ if [ "$LIST" = "" ]; then
+ echo -e "No package name matches the pattern."
+ else
+ echo -e "The list below shows all packages with name matching \"$PATTERN\".\n"
+ searchlist "$LIST"
+ echo -e "\nYou can search specific files using \"slackpkg file-search file\".\n"
+ fi
+ ;;
+ info)
+ PATTERN=$(echo $ARG | sed -e 's/\+/\\\+/g' -e 's/\./\\\./g')
+ NAME=$(cutpkg $PATTERN)
+ awk -F: "/PACKAGE NAME:.* ${NAME}-[^-]+-(${ARCH}|fw|noarch)-[^-]+/,/^$/ {
+ found=1
+ if (\$1 ~ /"$NAME"/) {
+ print \$PATTERN
+ } else {
+ print \$0
+ }
+ }
+ END {
+ if ( found != 1 ) {
+ print \"No packages found! Try:\n\n\tslackpkg search $PATTERN\n\nand choose one (and ONLY one package).\n\"
+ }
+ }" ${WORKDIR}/PACKAGES.TXT 2>/dev/null
+ ;;
+ new-config)
+ POSTINST=on
+ ;;
+ generate-template)
+ TEMPLATE=$ARG.template
+ if [ -e $TEMPLATEDIR/$TEMPLATE ]; then
+ echo -e "\
+\"$TEMPLATE\" already exists!\n\
+\nDo you want to overwrite $TEMPLATE (y/N)? \c"
+ answer
+ if [ "$ANSWER" = "Y" -o "$ANSWER" = "y" ]; then
+ rm $TEMPLATEDIR/$TEMPLATE
+ echo
+ else
+ cleanup
+ fi
+ fi
+ generate_template $ARG
+ ;;
+ install-template)
+ TEMPLATE=$ARG.template
+ if [ -e $TEMPLATEDIR/$TEMPLATE ]; then
+ ( cd $TEMPLATEDIR
+ parse_template $TEMPLATE
+ )
+ INPUTLIST=$(cat ${TMPDIR}/${TEMPLATE}.tmp | tr "\n" " ")
+ else
+ echo -e "$ARG template not found!"
+ cleanup
+ fi
+
+ makelist $INPUTLIST
+ if [ -n "$LIST" ]; then
+ showlist "$LIST" $CMD
+ install_pkg
+ else
+ echo -e "All packages from $ARG template are already installed"
+ POSTINST=off
+ fi
+ ;;
+ remove-template)
+ TEMPLATE=$ARG.template
+ if [ -e $TEMPLATEDIR/$TEMPLATE ]; then
+ ( cd $TEMPLATEDIR
+ parse_template $TEMPLATE
+ )
+ INPUTLIST=$(cat ${TMPDIR}/${TEMPLATE}.tmp | tr "\n" " ")
+ else
+ echo -e "$ARG template not found!"
+ cleanup
+ fi
+
+ makelist $INPUTLIST
+ if [ "$LIST" = "" ]; then
+ echo -e "The template $ARG can't be removed - it isn't installed.\n"
+ cleanup
+ fi
+ showlist "$LIST" $CMD
+ remove_pkg
+ ;;
+ *)
+ usage
+ ;;
+esac
+
+#
+# Executes the post-install. This is the default
+# Before runs post-install, check if the slackpkg option is
+# remove, search, update, blacklist, info or clean-system.
+# That options don't change configurations files and, if
+# someone remove the kernel, i hope he knows what is doing.
+#
+for i in check-updates remove search file-search update blacklist info \
+ clean-system download generate-template remove-template; do
+ if [ "$CMD" = "$i" ]; then
+ POSTINST=off
+ fi
+done
+
+if [ "$POSTINST" != "off" ]; then
+ lookkernel
+ looknew
+fi
+
+cleanup