From 6c4f3e074f37695cdde7f3f340ce1a56b590ab67 Mon Sep 17 00:00:00 2001 From: Slack Coder Date: Sat, 20 Oct 2018 08:52:56 +0200 Subject: initial commit Hopefully this is a working system --- source/a/bash/bash.SlackBuild | 178 +++++++++++ source/a/coreutils/coreutils.SlackBuild | 212 +++++++++++++ source/a/procps-ng/procps-ng.SlackBuild | 260 ++++++++++++++++ source/a/shadow/shadow.SlackBuild | 192 ++++++++++++ .../sysvinit-functions.SlackBuild | 97 ++++++ .../a/sysvinit-scripts/sysvinit-scripts.SlackBuild | 73 +++++ source/a/sysvinit/sysvinit.SlackBuild | 131 +++++++++ source/a/tar/tar.SlackBuild | 171 +++++++++++ source/a/util-linux/util-linux.SlackBuild | 327 +++++++++++++++++++++ source/a/xz/xz.SlackBuild | 167 +++++++++++ 10 files changed, 1808 insertions(+) create mode 100644 source/a/bash/bash.SlackBuild create mode 100644 source/a/coreutils/coreutils.SlackBuild create mode 100644 source/a/procps-ng/procps-ng.SlackBuild create mode 100644 source/a/shadow/shadow.SlackBuild create mode 100644 source/a/sysvinit-functions/sysvinit-functions.SlackBuild create mode 100644 source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild create mode 100644 source/a/sysvinit/sysvinit.SlackBuild create mode 100644 source/a/tar/tar.SlackBuild create mode 100644 source/a/util-linux/util-linux.SlackBuild create mode 100644 source/a/xz/xz.SlackBuild diff --git a/source/a/bash/bash.SlackBuild b/source/a/bash/bash.SlackBuild new file mode 100644 index 0000000..94223a8 --- /dev/null +++ b/source/a/bash/bash.SlackBuild @@ -0,0 +1,178 @@ +#!/bin/sh + +# Copyright 2005-2015 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. + +# Modified 2011, 2012 by Eric Hameleers for ARM port. + + +# Set initial variables: +CWD=`pwd` +if [ "$TMP" = "" ]; then + TMP=/tmp +fi +PKG=$TMP/package-bash + +VERSION=${VERSION:-$(echo bash-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1_slack14.2} + +# Automatically determine the architecture we're building on: +MARCH=$( uname -m ) +if [ -z "$ARCH" ]; then + case "$MARCH" in + i?86) export ARCH=i586 ;; + armv7hl) export ARCH=$MARCH ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$MARCH ;; + esac +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +elif [ "$ARCH" = "armv7hl" ]; then + SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16" +else + SLKCFLAGS="-O2" +fi + +case "$ARCH" in + arm*) TARGET=$ARCH-slackware-linux-gnueabi ;; + *) TARGET=$ARCH-slackware-linux ;; +esac + +if [ "$USE_STATIC" = "true" ]; then + # TODO: Why is NLS disabled? + CONFIG_FLAGS="\ + --disable-nls \ + --without-bash-malloc" +fi + +if [ ! -d $TMP ]; then + mkdir -p $TMP # location to build the source +fi +rm -rf $PKG +mkdir -p $PKG + +# Determine bash patchlevel: +PATCHLEVEL="$( cd $CWD/bash-${VERSION}-patches ; /bin/ls bash4?-??? | tail -1 | cut -f 2 -d - 2> /dev/null )" +if [ "$PATCHLEVEL" = "" ]; then + PATCHLEVEL=0 +fi + +cd $TMP +rm -rf bash-$VERSION +tar xvf $CWD/bash-$VERSION.tar.?z* --no-same-owner || exit 1 +cd bash-$VERSION || exit 1 +chown -R root:root . +find . -perm 664 | xargs chmod 644 +find . -perm 775 | xargs chmod 755 + +if [ -d $CWD/bash-${VERSION}-patches ]; then + ( cd $CWD/bash-${VERSION}-patches ; cat bash4?-??? ) | patch -p0 --verbose || exit 1 +fi + +# End of preparations +if echo "$*" | grep -qw -- --prep ; then + exit 0 +fi + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --mandir=/usr/man \ + --infodir=/usr/info \ + $CONFIG_FLAGS \ + --build=$TARGET || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 +mv $PKG/usr/share/doc $PKG/usr +mkdir -p $PKG/bin +mv $PKG/usr/bin/bash $PKG/bin/bash4.new +# We don't include the "bashbug" script. +rm -rf $PKG/usr/bin $PKG/usr/man/man1/bashbug.1 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# bash.1 is already installed by "make install" +( cd doc + for page in builtins.1 rbash.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz + done +) + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/usr/doc/bash-$VERSION +cp -a AUTHORS CHANGES COMPAT COPYING* INSTALL MANIFEST NEWS NOTES \ + README* Y2K doc/FAQ doc/INTRO \ + $PKG/usr/doc/bash-$VERSION +( cd doc ; groff -ms -Tascii article.ms > $PKG/usr/doc/bash-$VERSION/article.txt ) + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/bash-$VERSION.$PATCHLEVEL-$ARCH-$BUILD.txz + diff --git a/source/a/coreutils/coreutils.SlackBuild b/source/a/coreutils/coreutils.SlackBuild new file mode 100644 index 0000000..71fc87a --- /dev/null +++ b/source/a/coreutils/coreutils.SlackBuild @@ -0,0 +1,212 @@ +#!/bin/bash + +# Copyright 2005-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. + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=coreutils +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | cut -d - -f 2 | rev | cut -f 3- -d . | rev)} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:--j6} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i586 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "arm" ]; then + SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "armel" ]; then + SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP + +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.xz --no-same-owner || exit 1 +cd $PKGNAM-$VERSION || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Patch uname to correctly display CPU information: +zcat $CWD/$PKGNAM.uname.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# Revert change to ls quoting style introduced in coreutils-8.25: +zcat $CWD/no_ls_quoting.patch.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1 + +# Compilation with glibc version later than 2.3.2 needs the environment +# variable DEFAULT_POSIX2_VERSION set to 199209. +# Without that line, the coreutils will start complaining about 'obsolete' +# command switches, like "tail -20" will be considered obsolete. +# This behaviour breaks many other packages... the 'obsolete' parameters are +# too commonly used to disregard them. Better to stick with the older more +# widely accepted standards until things begin to demand the new way. + +FORCE_UNSAFE_CONFIGURE=1 \ +CFLAGS="$SLKCFLAGS" \ +DEFAULT_POSIX2_VERSION=199209 \ +./configure \ + --prefix=/usr \ + --bindir=/bin \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --sysconfdir=/etc \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --without-gmp \ + --enable-install-program=arch \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# We have had the mktemp from debianutils included with Slackware for quite a +# long time, and certain options are changed here, like changing -u to mean a +# dry-run rather than to unlink the tempfile when finished. Since this could +# break existing scripts, unless someone can tell me a good reason why we +# should start using a new version of mktemp, we will continue to use the +# one we've been using. If the new one starts to become expected, let me know. +# We'll figure out what the best options are and go from there. +mv $PKG/bin/mktemp $PKG/bin/mktemp-gnu +mv $PKG/usr/man/man1/mktemp.1 $PKG/usr/man/man1/mktemp-gnu.1 + +# This seems wrong, and it stomps on files in the ksh93 package, though I'm +# not sure the placement of those is correct, either... The ksh93 package +# installs them as flat text files, while coreutils installs empty directories +# Oh well, this is what we've done for years, and nobody's complained... +rm -rf $PKG/usr/share/locale/*/LC_TIME + +# Move "arch" to /bin +mv $PKG/usr/bin/arch $PKG/bin + +# These are important enough that they should probably all go into /bin at this +# point... Having some of them unavailable when /usr isn't mounted is just a +# source of unending bug reports for various third party applications. +# Time to end those reports. :-) +mkdir -p $PKG/bin $PKG/usr/bin +( cd $PKG/usr/bin + for file in ../../bin/* ; do + ln --verbose -sf $file . + done +) + +# Add some defaults, although a very slack-like set of default options are built +# into /bin/ls now anyway: +mkdir -p $PKG/etc +zcat $CWD/DIR_COLORS.gz > $PKG/etc/DIR_COLORS.new + +# Since dircolors no longer provides any default aliases these scripts +# will be needed for ls to act as expected: +mkdir -p $PKG/etc/profile.d +zcat $CWD/coreutils-dircolors.csh.gz > $PKG/etc/profile.d/coreutils-dircolors.csh +zcat $CWD/coreutils-dircolors.sh.gz > $PKG/etc/profile.d/coreutils-dircolors.sh +chmod 755 $PKG/etc/profile.d/* + +# Remove things that are provided by other Slackware packages: +for dupe in hostname kill su uptime ; do + rm -f $PKG/bin/${dupe} $PKG/usr/bin/${dupe} \ + $PKG/usr/sbin/${dupe} $PKG/usr/man/man?/${dupe}.* ; +done + +# Add ginstall links (there's still a lot of stuff that needs this to compile): +( cd $PKG/bin ; ln -sf install ginstall ) +( cd $PKG/usr/bin ; ln -sf ../../bin/ginstall ginstall ) +( cd $PKG/usr/man/man1 ; ln -sf install.1 ginstall.1 ) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +rm -f $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README* THANKS THANKS-to-translators TODO \ + $PKG/usr/doc/$PKGNAM-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/procps-ng/procps-ng.SlackBuild b/source/a/procps-ng/procps-ng.SlackBuild new file mode 100644 index 0000000..07fac57 --- /dev/null +++ b/source/a/procps-ng/procps-ng.SlackBuild @@ -0,0 +1,260 @@ +#!/bin/bash + +# Copyright 2005-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. + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=procps-ng +VERSION=${VERSION:-3.3.15} +PSMISCVER=${PSMISCVER:-23.1} +PROCINFONGVER=${PROCINFONGVER:-2.0.304} +PROCINFOVER=${PROCINFOVER:-18} +BUILD=${BUILD:-2} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +NUMJOBS=${NUMJOBS:-" -j7 "} + +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +# TODO(muslack): procinfo should be built statically + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.xz --no-same-owner || exit 1 +cd $PKGNAM-$VERSION || exit 1 +tar xvf $CWD/psmisc-$PSMISCVER.tar.xz --no-same-owner || exit 1 +tar xvf $CWD/procinfo-ng-$PROCINFONGVER.tar.xz --no-same-owner || exit 1 +tar xvf $CWD/procinfo-$PROCINFOVER.tar.xz --no-same-owner || exit 1 +chown -R root:root . + +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/ \ + --bindir=/bin \ + --sbindir=/sbin \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --includedir=/usr/include \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --datarootdir=/usr/share \ + --docdir=/usr/doc/$PKGNAM-$VERSION \ + --disable-shared \ + --enable-static \ + --disable-silent-rules \ + --disable-rpath \ + --enable-watch8bit \ + --enable-skill \ + --enable-sigwinch \ + --enable-w-from \ + --disable-kill \ + --without-systemd \ + --disable-modern-top \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Move the shared library to $PKG/lib${LIBDIRSUFFIX}: +mkdir -p $PKG/lib${LIBDIRSUFFIX} +( cd $PKG/usr/lib${LIBDIRSUFFIX} + for file in lib*.so.?.* ; do + mv $file ../../lib${LIBDIRSUFFIX} + ln -sf ../../lib${LIBDIRSUFFIX}/$file . + done + cp -a lib*.so.? ../../lib${LIBDIRSUFFIX} +) + +# Remove .la file(s): +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la + +# It seems that upstream has shuffled the location of many tools with the +# 3.3.11 release. To me, this just doesn't make sense to break any existing +# scripts that might be using an absolute path, or to move tools that might +# be needed before /usr is mounted into /usr. So, we will make sure that +# everything is moved back to where the Slackware locations have always been. +# These tools belong in /bin: +mkdir -p $PKG/bin +for file in free killall ps ; do + find $PKG -name $file -exec mv "{}" $PKG/bin \; +done +# These tools belong in /sbin: +mkdir -p $PKG/sbin +for file in pidof sysctl ; do + find $PKG -name $file -exec mv "{}" $PKG/sbin \; +done +mkdir -p $PKG/usr/bin +# These tools belong in /usr/bin: +for file in fuser lsdev peekfd pgrep pkill pmap procinfo prtstat pstree pwdx skill slabtop snice socklist tload top uptime vmstat w watch ; do + find $PKG -name $file -exec mv "{}" $PKG/usr/bin \; +done +# These symlinks belong in /bin: +rm -f $PKG/bin/pidof +ln -sf /sbin/pidof $PKG/bin/pidof +# These symlinks belong in /usr/bin: +rm -f $PKG/usr/bin/free $PKG/usr/bin/pidof $PKG/usr/bin/ps +ln -sf /bin/free $PKG/usr/bin/free +ln -sf /sbin/pidof $PKG/usr/bin/pidof +ln -sf /bin/ps $PKG/usr/bin/ps + +# Create /etc/sysctl.d: +mkdir -p $PKG/etc/sysctl.d + +cd psmisc-$PSMISCVER || exit 1 + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/psmisc-$PSMISCVER \ + --disable-silent-rules \ + --disable-rpath \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Move "killall" to the traditional location: +mv $PKG/usr/bin/killall $PKG/bin +ln -s /bin/killall $PKG/usr/bin/killall + +mkdir -p $PKG/usr/doc/psmisc-$PSMISCVER +cp -a ChangeLog COPYING* NEWS README* $PKG/usr/doc/psmisc-$PSMISCVER + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$PKG/usr/doc/psmisc-$PSMISCVER + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +cd ../procinfo-ng-$PROCINFONGVER || exit 1 +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/procinfo-ng-$PROCINFONGVER \ + --enable-maintainer-mode \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || exit 1 +make install DESTDIR=$PKG || exit 1 + +mkdir -p $PKG/usr/doc/procinfo-ng-$PROCINFONGVER +cp -a GPL-2.txt LGPL-2.1.txt LICENSE.txt COPYING* README* $PKG/usr/doc/procinfo-ng-$PROCINFONGVER + +# Now install a couple of scripts from the original procinfo package. +cd ../procinfo-$PROCINFOVER || exit 1 +install -m 0755 lsdev.pl $PKG/usr/bin/lsdev +install -m 0755 socklist.pl $PKG/usr/bin/socklist +install -m 0644 lsdev.8 socklist.8 $PKG/usr/man/man8 + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1 | grep -v '\.gz$') ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Back to the procps-ng main source directory... +cd .. + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a \ + AUTHORS ChangeLog COPYING* NEWS README* \ + $PKG/usr/doc/$PKGNAM-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$PKG/usr/doc/$PKGNAM-$VERSION + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/shadow/shadow.SlackBuild b/source/a/shadow/shadow.SlackBuild new file mode 100644 index 0000000..a8d4673 --- /dev/null +++ b/source/a/shadow/shadow.SlackBuild @@ -0,0 +1,192 @@ +#!/bin/bash + +# Copyright 2005-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. + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=shadow +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-5} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i586 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +NUMJOBS=${NUMJOBS:--j6} + +TMP=${TMP:-/tmp} +PKG=$TMP/package-shadow + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf shadow-$VERSION +tar xvf $CWD/shadow-$VERSION.tar.xz --no-same-owner || exit 1 +cd shadow-$VERSION + +# Apply some patches taken from the svn trunk that +# fix some of the more serious bugs in 4.1.4.3: +for patch in $CWD/patches/*.diff.gz ; do + zcat $patch | patch -p0 --verbose || exit 1 +done + +# Relax the restrictions on "su -c" when it is used to become root. +# It's not likely that root is going to try to inject commands back into +# the user's shell to hack it, and the unnecessary restriction is causing +# breakage: +zcat $CWD/shadow.CVE-2005-4890.relax.diff.gz | patch -p1 --verbose || exit 1 + +# Patch a race condition that allows a user to kill processes that they don't +# own. Note that the bug requires that shadow is using PAM, which is not yet +# the case on Slackware. So we're unaffected, but patching this anyway in +# -current, because you never know... +zcat $CWD/shadow.CVE-2017-2616.diff.gz | patch -p1 --verbose || exit 1 + +# Re-run automake because of r3299 patch to man/ru/Makefile.am: +# (not used because it doesn't work... above patch does the intended fix) +#automake -f + +# Even if gethostname() returns the FQDN (long hostname), just display the +# short version up to the first '.' on the login prompt: +zcat $CWD/shadow.login.display.short.hostname.diff.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --docdir=/usr/doc/shadow-$VERSION \ + --enable-subordinate-ids \ + --enable-shared \ + --without-libcrack \ + --build=$ARCH-slackware-linux + +# --enable-utmpx # defaults to 'no' + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Fix user group = 100: +zcat $CWD/useradd.gz > $PKG/etc/default/useradd + +# /bin/groups is provided by coreutils. +rm -f $PKG/bin/groups +find $PKG -name groups.1 -exec rm {} \; + +# Install a login.defs with unsurprising defaults: +rm -f $PKG/etc/login.defs +zcat $CWD/login.defs.gz > $PKG/etc/login.defs.new + +mv $PKG/etc/login.access $PKG/etc/login.access.new + +# I don't think this works well enough to recommend it. +#mv $PKG/etc/limits $PKG/etc/limits.new +rm -f $PKG/etc/limits + +# Add the friendly 'adduser' script: +cat $CWD/adduser > $PKG/usr/sbin/adduser +chmod 0755 $PKG/usr/sbin/adduser + +# Add sulogin to the package: +cp -a src/sulogin $PKG/sbin +( cd $PKG/bin ; ln -s ../sbin/sulogin ) + +# Add the empty faillog log file: +mkdir -p $PKG/var/log +touch $PKG/var/log/faillog.new + +# Put some stuff back in "old" locations and make symlinks for compat +( cd $PKG/usr/bin + mv faillog ../sbin + mv lastlog ../sbin + ln -s ../sbin/faillog + ln -s ../sbin/lastlog +) + +# Use 4711 rather than 4755 permissions where setuid root is required: +find $PKG -type f -perm 4755 -exec chmod 4711 "{}" \; + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/shadow-$VERSION +cp -a \ + COPYING* NEWS README* TODO doc/{README*,HOWTO,WISHLIST,*.txt} \ + $PKG/usr/doc/shadow-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/shadow-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sysvinit-functions/sysvinit-functions.SlackBuild b/source/a/sysvinit-functions/sysvinit-functions.SlackBuild new file mode 100644 index 0000000..a6a81ab --- /dev/null +++ b/source/a/sysvinit-functions/sysvinit-functions.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/bash + +# Copyright 2005-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. + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=sysvinit-functions +VERSION=${VERSION:-8.53} +BUILD=${BUILD:-3} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i586 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +TMP=${TMP:-/tmp} +PKG=$TMP/package-sysvinit-functions + +rm -rf $PKG +mkdir -p $TMP $PKG + +# The functions that ship in /etc/rc.d/init.d are used mainly +# by Red Hat (and derived) systems. Most users will not need +# them, but since some commerical software makes the assuption +# that /etc/rc.d/init.d/functions will exist (and uses it), +# shipping at least it and the sysvinit runlevel directories +# will probably make life easier for everybody. We'll maybe +# ever consider splitting a few of the functions of the old +# venerable BSD-style init scripts into runlevel scripts (if +# it looks like it will make system maintainance easier). + +# Build supporting binaries: +cd $TMP +rm -rf function-src-$VERSION +# A small patch was applied to initlog to shut it the %^@& up. +tar xjf $CWD/function-src-$VERSION.tar.bz2 || exit 1 +cd function-src-$VERSION +make || exit 1 +find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +mkdir -p $PKG/bin $PKG/sbin $PKG/usr/man/man{1,8} +make install DESTDIR=$PKG || exit 1 +gzip -9 $PKG/usr/man/man?/*.? + +# The FHS/LSB is a little bit unclear as to what to do here -- +# /etc/rc.d/init.d has been declared "deprecated" for no good +# reason at all (commercial vendors couldn't find /etc/rc.d?), +# so we'll make both /etc/init.d and /etc/rc.d/init.d with the +# same contents. Hopefully this will make all the programs +# happy. +mkdir -p $PKG/etc/rc.d/init.d +for file in $CWD/README.functions $CWD/functions ; do + cat $file > $PKG/etc/rc.d/init.d/$(basename $file) +done +chmod 755 $PKG/etc/rc.d/init.d/functions + +# Make empty runlevel directories: +mkdir -p $PKG/etc/rc.d/rc{0,1,2,3,4,5,6}.d + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/sysvinit-functions-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild new file mode 100644 index 0000000..1fa513f --- /dev/null +++ b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild @@ -0,0 +1,73 @@ +#!/bin/bash + +# Copyright 2005-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. + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=sysvinit-scripts +VERSION=${VERSION:-2.1} +ARCH=noarch +BUILD=${BUILD:-19} + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +TMP=${TMP:-/tmp} +PKG=$TMP/package-sysvinit-scripts + +rm -rf $PKG +mkdir -p $TMP $PKG + +# Install Slackware scripts and config files from $CWD/scripts/: +mkdir -p $PKG/etc/rc.d +for file in rc.{4,6,K,M,S} rc.cpufreq rc.local rc.loop rc.sysvinit rc.modules rc.modules.local ; do + cp -a $CWD/scripts/$file $PKG/etc/rc.d/${file}.new + chmod 755 $PKG/etc/rc.d/${file}.new + chown root:root $PKG/etc/rc.d/${file}.new +done +cat $CWD/scripts/inittab > $PKG/etc/inittab.new +chmod 644 $PKG/etc/inittab.new +chown root:root $PKG/etc/inittab.new + +# Install /etc/default/cpufreq.new: +mkdir -p $PKG/etc/default +cat $CWD/default/cpufreq > $PKG/etc/default/cpufreq.new + +# Add a very handy tool for scanning new SCSI devices. Most useful for +# finding new USB and Firewire storage devices which show up as SCSI. +mkdir -p $PKG/sbin +cat $CWD/scripts/rescan-scsi-bus.sh > $PKG/sbin/rescan-scsi-bus +chmod 755 $PKG/sbin/rescan-scsi-bus +chown root:root $PKG/sbin/rescan-scsi-bus + +mkdir -p $PKG/install +zcat $CWD/doinst.sh > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +/sbin/makepkg -l y -c n $TMP/sysvinit-scripts-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/sysvinit/sysvinit.SlackBuild b/source/a/sysvinit/sysvinit.SlackBuild new file mode 100644 index 0000000..be64055 --- /dev/null +++ b/source/a/sysvinit/sysvinit.SlackBuild @@ -0,0 +1,131 @@ +#!/bin/bash + +# Copyright 2005-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. + +# NOTE: 2.90 used (from Current), 2.88 from 14.2 does not compile + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=sysvinit +VERSION=${VERSION:-2.90} +BUILD=${BUILD:-2} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i586 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +TMP=${TMP:-/tmp} +PKG=$TMP/package-sysvinit + +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf sysvinit-$VERSION +tar xvf $CWD/sysvinit-$VERSION.tar.xz --no-same-owner || exit 1 +cd sysvinit-$VERSION + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# sysvinit-2.90 added an undocumented feature that tries to spawn agetty if +# it sees console= in the kernel command line. Avoiding the debate about +# whether this code belongs in init at all, at least such a change # should +# be documented, and probably made opt-in. This patch disables the new behavior +# unless "sysvinit_agetty" is also seen in the kernel command line. +zcat $CWD/sysvinit.no.console.agetty.without.sysvinit_agetty.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1 + +# Fix paths for /etc/forcefsck and /etc/fastboot: +zcat $CWD/sysvinit.paths.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1 + +# Use /dev/initctl instead of /run/initctl ; this is a named pipe and probably +# should be in /dev anyway, but more importantly, having the upgraded package +# expect it in /run breaks shutdown/reboot without manual intervention +zcat $CWD/sysvinit.use_dev_initctl_not_run_initctl.diff.gz | patch -p1 --verbose || exit 1 + +mkdir -p $PKG/usr/doc/sysvinit-$VERSION +cp -a COPYING* COPYRIGHT* README* \ + doc/* \ + $PKG/usr/doc/sysvinit-$VERSION + +cd src +make clobber || exit 1 +make || exit 1 + +mkdir -p $PKG/sbin +for program in bootlogd halt init killall5 shutdown runlevel ; do + strip --strip-unneeded $program + cat $program > $PKG/sbin/$program + chmod 755 $PKG/sbin/$program + chown root:root $PKG/sbin/$program +done +mkdir -p $PKG/usr/bin +for program in last ; do + strip --strip-unneeded $program + cat $program > $PKG/usr/bin/$program + chmod 755 $PKG/usr/bin/$program + chown root:root $PKG/usr/bin/$program +done +( cd $PKG/usr/bin ; ln -sf last lastb ) +mv $PKG/sbin/init $PKG/sbin/init.new +chmod 755 $PKG/sbin/init.new +chown root:root $PKG/sbin/init.new + +cd ../man +mkdir -p $PKG/usr/man/man{1,5,8} +for page in last.1 ; do + cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz +done +for page in inittab.5 initscript.5 ; do + cat $page | gzip -9c > $PKG/usr/man/man5/$page.gz +done +for page in halt.8 init.8 killall5.8 poweroff.8 reboot.8 runlevel.8 \ + shutdown.8 telinit.8 bootlogd.8 ; do + cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz +done +( cd $PKG/usr/man/man1 ; ln -sf last.1.gz lastb.1.gz ) + +mkdir -p $PKG/install +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh +cat $CWD/slack-desc > $PKG/install/slack-desc + +# Build the package: +cd $PKG +makepkg -l y -c n $TMP/sysvinit-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/tar/tar.SlackBuild b/source/a/tar/tar.SlackBuild new file mode 100644 index 0000000..07cee5f --- /dev/null +++ b/source/a/tar/tar.SlackBuild @@ -0,0 +1,171 @@ +#!/bin/bash + +# Copyright 2005-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. + +# Slackware build script for tar + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=tar +VERSION=1.30 +BUILD=${BUILD:-2} + +NUMJOBS=${NUMJOBS:--j7} + +# Automatically determine architecture for build & packaging: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i586 ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +TMP=${TMP:-/tmp} +PKG=$TMP/package-tar + +rm -rf $PKG +mkdir -p $TMP $PKG + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +# This old version is the only one that won't clobber symlinks, e.g.: +# someone moves /opt to /usr/opt and makes a symlink. With newer +# versions of tar, installing any new package will remove the /opt +# symlink and plop down a new directory there. +# Well, there's a lot of other bugs (the remote stuff particularly I'm +# told is flaky) in tar-1.13, so it'll only be here now for use by the +# Slackware package utils. And, we'll even let people remove it and +# the pkgutils will still try to work (but eventually they'll pay the +# price :) +# +# NOTE: The latest versions of tar can supposedly work for the pkgtools, +# but some changes to add new options to the scripts might be required. +# +# Until tar-1.13 won't compile any more, it might be safer to keep using +# it, though. +cd $TMP +rm -rf tar-1.13 +tar xvf $CWD/tar-1.13.tar.gz --no-same-owner || exit 1 +cd tar-1.13 || exit 1 +zcat $CWD/tar-1.13.bzip2.diff.gz | patch -p1 --verbose || exit 1 +# The original config.{guess,sub} do not work on x86_64 +cp -p --verbose /usr/share/libtool/build-aux/config.{guess,sub} . +chown -R root:root . +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --disable-nls \ + --build=$ARCH-slackware-linux || exit 1 +make $NUMJOBS || make || exit 1 +mkdir -p $PKG/bin +cat src/tar > $PKG/bin/tar-1.13 +chmod 0755 $PKG/bin/tar-1.13 +# End building of tar-1.13 + +cd $TMP +rm -rf tar-$VERSION +tar xvf $CWD/tar-$VERSION.tar.xz --no-same-owner || exit 1 +cd tar-$VERSION || exit 1 +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# The "A lone zero block at %s" messages also cause problems: +zcat $CWD/tar.nolonezero.diff.gz | patch -p1 --verbose || exit 1 + +FORCE_UNSAFE_CONFIGURE=1 \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --infodir=/usr/info \ + --mandir=/usr/man \ + --docdir=/usr/doc/tar-$VERSION \ + --enable-backup-scripts \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ + xargs strip --strip-unneeded 2> /dev/null +) + +mv $PKG/usr/bin/tar $PKG/bin +( cd $PKG/usr/bin ; ln -sf /bin/tar . ) +( cd $PKG/bin ; ln -sf tar tar-$VERSION ) + +# Support "historic" rmt locations: +mkdir -p $PKG/{etc,sbin} +( cd $PKG/etc + ln -sf /usr/libexec/rmt . + cd $PKG/sbin + ln -sf /usr/libexec/rmt . +) + +# Compress manual pages: +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do + ln -s $( readlink $i ).gz $i.gz + rm $i +done + +# Compress info files, if any: +if [ -d $PKG/usr/info ]; then + ( cd $PKG/usr/info + rm -f dir + gzip -9 * + ) +fi + +mkdir -p $PKG/usr/doc/tar-$VERSION +cp -a \ + AUTHORS COPYING* NEWS PORTS README* THANKS TODO \ + $PKG/usr/doc/tar-$VERSION + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/tar-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/util-linux/util-linux.SlackBuild b/source/a/util-linux/util-linux.SlackBuild new file mode 100644 index 0000000..f33c1da --- /dev/null +++ b/source/a/util-linux/util-linux.SlackBuild @@ -0,0 +1,327 @@ +#!/bin/bash + +# Copyright 2008, 2009, 2010, 2011, 2012, 2013, 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. + +# Slackware build script for util-linux + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=util-linux +VERSION=${VERSION:-$(echo util-linux*.tar.xz | cut -d - -f 3 | rev | cut -f 3- -d . | rev)} +BUILD=${BUILD:-1} + +ADJTIMEXVERS=1.29 +SETSERIALVERS=2.17 +ZIPTOOLVERS=1.4.0 + +NUMJOBS=${NUMJOBS:-" -j7 "} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i586 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +TMP=${TMP:-/tmp} +PKG=$TMP/package-util-linux + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP || exit 1 +rm -rf util-linux-$VERSION +tar xvf $CWD/util-linux-$VERSION.tar.xz --no-same-owner || exit 1 +cd util-linux-$VERSION || exit 1 +chown -R root.root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Changing the fdisk -l output (this was done prior to util-linux-ng) broke +# our installation scripts, so we have changed the name of partition type +# 83 back to "Linux swap": +zcat $CWD/util-linux.fdisk-no-solaris.diff.gz | patch -p1 --verbose || exit 1 + +# This just call the configure script with $1 either being 2 for python2 +# or 3 for python3. +# +# The releasenotes say to use --runstatedir, but it doesn't work and the +# configure script fails. So we'll leave things using localstatedir, but +# check again later: +# +# --runstatedir=/run +configure_with_python(){ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + --docdir=/usr/doc/util-linux-$VERSION \ + --disable-shared \ + --enable-static \ + --disable-more \ + --enable-agetty \ + --enable-kill \ + --disable-last \ + --enable-libmount-support-mtab \ + --enable-line \ + --enable-mesg \ + --enable-partx \ + --enable-pg \ + --enable-raw \ + --enable-rename \ + --disable-login \ + --enable-schedutils \ + --disable-wall \ + --disable-write \ + --enable-use-tty-group \ + --enable-libblkid \ + --disable-libfdisk \ + --enable-libmount \ + --enable-libuuid \ + --disable-uuidd \ + --without-python \ + --build=$ARCH-slackware-linux +} + +CFLAGS="$SLKCFLAGS" \ + configure_with_python 2 || exit 1 + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG || exit 1 + +# Build python3 bindings for libmount: +make clean +CFLAGS="$SLKCFLAGS" \ + configure_with_python 3 || exit 1 +make \ + install-pylibmountexecLTLIBRARIES \ + install-pylibmountexecPYTHON \ + DESTDIR=$PKG || exit 1 + +# Remove all overlap with the shadow package, since --disable-login doesn't quite do that: +rm $PKG/sbin/nologin $PKG/usr/man/man8/nologin.8 $PKG/sbin/sulogin $PKG/usr/man/man8/sulogin.8 + +# Move the libblkid, libfdisk, libmount, libsmartcols, and +# libuuid libraries to /lib${LIBSUFFIX}: +mkdir -p $PKG/lib${LIBDIRSUFFIX} +( cd $PKG/usr/lib${LIBDIRSUFFIX} + mv libblkid.so.1* $PKG/lib${LIBDIRSUFFIX} + mv libfdisk.so.1* $PKG/lib${LIBDIRSUFFIX} + mv libmount.so.1* $PKG/lib${LIBDIRSUFFIX} + mv libsmartcols.so.1* $PKG/lib${LIBDIRSUFFIX} + mv libuuid.so.1* $PKG/lib${LIBDIRSUFFIX} + rm -f libblkid.so libfdisk.so libmount.so libsmartcols.so libuuid.so + ln -sf ../../lib${LIBDIRSUFFIX}/libblkid.so.1 libblkid.so + ln -sf ../../lib${LIBDIRSUFFIX}/libfdisk.so.1 libfdisk.so + ln -sf ../../lib${LIBDIRSUFFIX}/libmount.so.1 libmount.so + ln -sf ../../lib${LIBDIRSUFFIX}/libsmartcols.so.1 libsmartcols.so + ln -sf ../../lib${LIBDIRSUFFIX}/libuuid.so.1 libuuid.so +) + +# Moving things around that have been in the same place +# for 15 years is, IMHO, not a wise idea AT ALL. +# If this had to be moved, some place out of /usr might +# have shown a grain of insight... +if [ -r $PKG/usr/sbin/fdformat ]; then + mkdir -p $PKG/usr/bin + mv $PKG/usr/sbin/fdformat $PKG/usr/bin/fdformat + # Now since stuff will start looking in this new place, + # we have no choice but to link these: + ( cd $PKG/usr/sbin + ln -sf ../bin/fdformat . + ) +fi + +# ddate.{1,c} taken from https://github.com/bo0ts/ddate: +cp -a $CWD/ddate.? . +cc -O -o ddate ddate.c +cp -a ddate $PKG/usr/bin +cat ddate.1 > $PKG/usr/man/man1/ddate.1 +chown root:root $PKG/usr/bin/ddate + +# Build ziptool (install as jaztool to avoid conflict with libzip): +cd $TMP || exit 1 +rm -rf ziptool-$ZIPTOOLVERS +tar xvf $CWD/ziptool-$ZIPTOOLVERS.tar.xz --no-same-owner || exit 1 +cd ziptool-$ZIPTOOLVERS || exit 1 +zcat $CWD/ziptool-fix_build.patch.gz | patch -p1 || exit 1 +mkdir scsi +cat $CWD/scsi_ioctl.h > scsi/scsi_ioctl.h +chown -R root:root . +make || exit 1 +strip ziptool +cat ziptool > $PKG/sbin/jaztool +chmod 0755 $PKG/sbin/jaztool +mkdir -p $PKG/usr/doc/ziptool-$ZIPTOOLVERS +cp -a README $PKG/usr/doc/ziptool-$ZIPTOOLVERS +chmod 644 $PKG/usr/doc/ziptool-$ZIPTOOLVERS/* +cat ziptool.1.gz > $PKG/usr/man/man1/jaztool.1.gz + +# Build bsdstrings +cd $TMP || exit 1 +rm -rf bsdstrings +tar xvf $CWD/bsdstrings.tar.gz --no-same-owner || exit 1 +cd bsdstrings || exit 1 +zcat $CWD/bsdstrings-util-linux_overflow.diff.gz | patch -p1 --verbose || exit 1 +make || exit 1 +strip strings +cat strings > $PKG/usr/bin/strings-BSD +chmod 0755 $PKG/usr/bin/strings-BSD +cat strings.1 | gzip -9c > $PKG/usr/man/man1/strings-BSD.1.gz + +# Build adjtimex +cd $TMP || exit 1 +rm -rf adjtimex-$ADJTIMEXVERS +tar xvf $CWD/adjtimex_${ADJTIMEXVERS}.orig.tar.gz --no-same-owner || exit 1 +cd adjtimex-$ADJTIMEXVERS || exit 1 +chown -R root:root . +zcat $CWD/adjtimex_1.29-2.2.diff.gz | patch -p1 || exit 1 +CFLAGS=-O2 ./configure --prefix=/usr || exit 1 +make || exit 1 +strip adjtimex +cat adjtimex > $PKG/sbin/adjtimex +chmod 0755 $PKG/sbin/adjtimex +cat adjtimex.8 | gzip -9c > $PKG/usr/man/man8/adjtimex.8.gz +mkdir -p $PKG/usr/doc/adjtimex-$ADJTIMEXVERS +cp -a COPYING COPYRIGHT README README.ru adjtimex.lsm \ + $PKG/usr/doc/adjtimex-$ADJTIMEXVERS + +# Build setserial +cd $TMP || exit 1 +rm -rf setserial-$SETSERIALVERS +tar xvf $CWD/setserial-$SETSERIALVERS.tar.gz --no-same-owner || exit 1 +cd setserial-$SETSERIALVERS || exit 1 +chown -R root:root . +zcat $CWD/setserial-rc.serial.diff.gz | patch -E -p1 --verbose || exit 1 +zcat $CWD/setserial-undef_TIOCGHAYESESP.diff.gz | patch -E -p1 --verbose || exit 1 +# The original config.{guess,sub} do not work on x86_64 +cp -p /usr/share/libtool/config/config.{guess,sub} . +./configure --prefix=/usr || exit 1 +make || exit 1 +strip setserial +cat setserial > $PKG/sbin/setserial +chmod 0755 $PKG/sbin/setserial +mkdir -p $PKG/etc/rc.d +cat rc.serial > $PKG/etc/rc.d/rc.serial.new +cat serial.conf > $PKG/etc/serial.conf.new +cat setserial.8 | gzip -9c > $PKG/usr/man/man8/setserial.8.gz + +# These have always traditionally been available before /usr +# might be mounted: +( cd $PKG/usr/bin + mv getopt setterm $PKG/bin + cd $PKG/usr/bin + ln -s ../../bin/getopt . + ln -s ../../bin/setterm . +) + +cd $TMP/util-linux-$VERSION # Go back home :) + +# Now let's add some important symlinks :) +( cd $PKG/sbin + ln -s ../bin/mount . + ln -s ../bin/umount . + #ln -s ziptool jaztool + ln -s hwclock clock + cd $PKG/usr/sbin + ln -s ../../sbin/cfdisk . + ln -s ../../sbin/ctrlaltdel . + ln -s ../../sbin/sfdisk . + cd $PKG/usr/bin + ln -s ../sbin/readprofile . + # tunelp was removed by upstream: + #ln -s ../sbin/tunelp . + ln -s ../../bin/more . + ln -s ../../sbin/raw . + cd $PKG/usr/man/man1 + #ln -s ziptool.1 jaztool.1 + cd $PKG/usr/man/man8 + ln -s hwclock.8 clock.8 +) + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Don't ship .la files: +rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la + +# Compress and if needed symlink the man pages: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +# Compress info page and remove dir file +rm $PKG/usr/info/dir +gzip -9 $PKG/usr/info/* + +mkdir -p $PKG/usr/doc/util-linux-$VERSION +cp -a AUTHORS COPYING* DEPRECATED NEWS README* \ + Documentation/v${VERSION}-ReleaseNotes \ + Documentation/licenses/* Documentation/{TODO,*.txt} \ + $PKG/usr/doc/util-linux-$VERSION + +mkdir $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/util-linux-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/a/xz/xz.SlackBuild b/source/a/xz/xz.SlackBuild new file mode 100644 index 0000000..1c11711 --- /dev/null +++ b/source/a/xz/xz.SlackBuild @@ -0,0 +1,167 @@ +#!/bin/bash + +# Copyright 2009, 2010, 2011, 2012, 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. + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=xz +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz --no-same-owner | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1} + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i586 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +case "$ARCH" in + i586) SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" + ;; + s390) SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ;; + powerpc) SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ;; + x86_64) SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + ;; + athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" + LIBDIRSUFFIX="" + ;; + arm) SLKCFLAGS="-O2 -march=armv4 -mtune=xscale" + LIBDIRSUFFIX="" + ;; + armel) SLKCFLAGS="-O2 -march=armv4t" + LIBDIRSUFFIX="" + ;; + *) SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + ;; +esac + +NUMJOBS=${NUMJOBS:-" -j7 "} + +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1 +cd $PKGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --docdir=/usr/doc/xz-$VERSION \ + --sysconfdir=/etc \ + --mandir=/usr/man \ + --disable-shared \ + --enable-static \ + --disable-rpath \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux || exit 1 + +make $NUMJOBS || make || exit 1 +make DESTDIR=$PKG install || exit 1 + +# Don't ship .la files: +rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la + +# It might be advisable to have the libraries in /lib${LIBDIRSUFFIX}: +mkdir -p $PKG/lib${LIBDIRSUFFIX} +mv $PKG/usr/lib${LIBDIRSUFFIX}/liblzma.so.* $PKG/lib${LIBDIRSUFFIX} +( cd $PKG/usr/lib${LIBDIRSUFFIX} + rm -f liblzma.so + ln -sf ../../lib${LIBDIRSUFFIX}/liblzma.so.? liblzma.so +) + +# At least the xz binary should also be in /bin: +mkdir -p $PKG/bin +mv $PKG/usr/bin/xz $PKG/bin +( cd $PKG/usr/bin + ln -sf ../../bin/xz . +) + +# Strip binaries: +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) + +# Compress and link manpages, if any: +if [ -d $PKG/usr/man ]; then + ( cd $PKG/usr/man + for manpagedir in $(find . -type d -name "man*") ; do + ( cd $manpagedir + for eachpage in $( find . -type l -maxdepth 1) ; do + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a \ + ABOUT-NLS AUTHORS COPYING* INSTALL* NEWS PACKAGERS README* THANKS \ + $PKG/usr/doc/$PKGNAM-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $TMP/${PKGNAM}-${VERSION}-${ARCH}-${BUILD}.txz + -- cgit v1.2.3