diff options
Diffstat (limited to 'source/l')
-rw-r--r-- | source/l/glibc/doinst.sh-glibc | 67 | ||||
-rw-r--r-- | source/l/glibc/doinst.sh-glibc-solibs | 68 | ||||
-rwxr-xr-x | source/l/glibc/glibc.SlackBuild | 2 | ||||
-rw-r--r-- | source/l/glibc/slack-desc.glibc-solibs-linuxthreads | 19 |
4 files changed, 93 insertions, 63 deletions
diff --git a/source/l/glibc/doinst.sh-glibc b/source/l/glibc/doinst.sh-glibc index fc947587..e9929739 100644 --- a/source/l/glibc/doinst.sh-glibc +++ b/source/l/glibc/doinst.sh-glibc @@ -1,6 +1,6 @@ #!/bin/sh # Copyright (C) 2002, 2005 Slackware Linux, Inc. -# Copyright 2005, 2006, 2007, 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2005, 2006, 2007, 2011, 2012, 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -35,30 +35,55 @@ if [ -d lib/tls ]; then mv lib/tls lib/obsolete fi if [ -x sbin/ldconfig ]; then - sbin/ldconfig -r . + sbin/ldconfig -r . 2> /dev/null fi # Install NPTL glibc libraries: if [ -x /sbin/ldconfig -a -d lib/incoming ]; then # swap on the fly - # First create copies of the incoming libraries: - ( cd lib/incoming - for file in * ; do - if [ ! -r ../${file}.incoming ]; then - cp -a $file ../${file}.incoming - fi - done - ) - # Then switch to them all at once: - /sbin/ldconfig -l lib/*.incoming 2> /dev/null - # Finally, rename them and clean up: - ( cd lib - for file in *.incoming ; do - rm -f `basename $file .incoming` - cp -a $file `basename $file .incoming` - /sbin/ldconfig -l `basename $file .incoming` - rm -f $file - done - ) + # Try to protect with flock against another installpkg/removepkg running + # ldconfig while we're doing the on-the-fly install: + mkdir -p run/lock/pkgtools + ( flock 9 || exit 11 + # First create copies of the incoming libraries: + ( cd lib/incoming + for file in * ; do + if [ ! -r ../${file}.incoming ]; then + cp -a $file ../${file}.incoming + fi + done + ) + # Then switch to them all at once: + /sbin/ldconfig -l lib/*.incoming 2> /dev/null + # Remove old versions of the glibc libraries. If you really don't want to + # do this for some reason, create a file /etc/glibc-nowipe. + if [ ! -r etc/glibc-nowipe ]; then + ( cd lib + for INCOMING in incoming/*-* ; do + LIBPREFIX=$(basename $INCOMING | cut -f 1 -d -) + for LIBRARY in ${LIBPREFIX}-* ; do + # Don't remove the library if it ends in .incoming: + if [ "$(echo $LIBRARY | rev | cut -f 1 -d .)" = "gnimocni" ]; then + continue + fi + # Don't remove symlinks: + if [ -L $LIBRARY ]; then + continue + fi + rm -f $LIBRARY + done + done + ) + fi + # Finally, rename them and clean up: + ( cd lib + for file in *.incoming ; do + rm -f `basename $file .incoming` + cp -a $file `basename $file .incoming` + /sbin/ldconfig -l `basename $file .incoming` 2> /dev/null + rm -f $file + done + ) + ) 9> run/lock/pkgtools/ldconfig.lock else # no ldconfig? Good, it's safe to just jam it on home (and make links below): ( cd lib/incoming for file in * ; do diff --git a/source/l/glibc/doinst.sh-glibc-solibs b/source/l/glibc/doinst.sh-glibc-solibs index a11c36a5..a285f4ed 100644 --- a/source/l/glibc/doinst.sh-glibc-solibs +++ b/source/l/glibc/doinst.sh-glibc-solibs @@ -1,6 +1,6 @@ #!/bin/sh # Copyright (C) 2002, 2005 Slackware Linux, Inc. -# Copyright 2005, 2006, 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2005, 2006, 2011, 2012, 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -35,30 +35,55 @@ if [ -d lib/tls ]; then mv lib/tls lib/obsolete fi if [ -x sbin/ldconfig ]; then - sbin/ldconfig -r . + sbin/ldconfig -r . 2> /dev/null fi # Install NPTL glibc libraries: if [ -x /sbin/ldconfig -a -d lib/incoming ]; then # swap on the fly - # First create copies of the incoming libraries: - ( cd lib/incoming - for file in * ; do - if [ ! -r ../${file}.incoming ]; then - cp -a $file ../${file}.incoming - fi - done - ) - # Then switch to them all at once: - /sbin/ldconfig -l lib/*.incoming 2> /dev/null - # Finally, rename them and clean up: - ( cd lib - for file in *.incoming ; do - rm -f `basename $file .incoming` - cp -a $file `basename $file .incoming` - /sbin/ldconfig -l `basename $file .incoming` - rm -f $file - done - ) + # Try to protect with flock against another installpkg/removepkg running + # ldconfig while we're doing the on-the-fly install: + mkdir -p run/lock/pkgtools + ( flock 9 || exit 11 + # First create copies of the incoming libraries: + ( cd lib/incoming + for file in * ; do + if [ ! -r ../${file}.incoming ]; then + cp -a $file ../${file}.incoming + fi + done + ) + # Then switch to them all at once: + /sbin/ldconfig -l lib/*.incoming 2> /dev/null + # Remove old versions of the glibc libraries. If you really don't want to + # do this for some reason, create a file /etc/glibc-nowipe. + if [ ! -r etc/glibc-nowipe ]; then + ( cd lib + for INCOMING in incoming/*-* ; do + LIBPREFIX=$(basename $INCOMING | cut -f 1 -d -) + for LIBRARY in ${LIBPREFIX}-* ; do + # Don't remove the library if it ends in .incoming: + if [ "$(echo $LIBRARY | rev | cut -f 1 -d .)" = "gnimocni" ]; then + continue + fi + # Don't remove symlinks: + if [ -L $LIBRARY ]; then + continue + fi + rm -f $LIBRARY + done + done + ) + fi + # Finally, rename them and clean up: + ( cd lib + for file in *.incoming ; do + rm -f `basename $file .incoming` + cp -a $file `basename $file .incoming` + /sbin/ldconfig -l `basename $file .incoming` 2> /dev/null + rm -f $file + done + ) + ) 9> run/lock/pkgtools/ldconfig.lock else # no ldconfig? Good, it's safe to just jam it on home (and make links below): ( cd lib/incoming for file in * ; do @@ -134,4 +159,3 @@ fi if [ -x /sbin/telinit ]; then /sbin/telinit u fi - diff --git a/source/l/glibc/glibc.SlackBuild b/source/l/glibc/glibc.SlackBuild index b5fdf021..57479292 100755 --- a/source/l/glibc/glibc.SlackBuild +++ b/source/l/glibc/glibc.SlackBuild @@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=glibc VERSION=${VERSION:-$(echo glibc-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} CHECKOUT=${CHECKOUT:-""} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} # I was considering disabling NSCD, but MoZes talked me out of it. :) #DISABLE_NSCD=" --disable-nscd " diff --git a/source/l/glibc/slack-desc.glibc-solibs-linuxthreads b/source/l/glibc/slack-desc.glibc-solibs-linuxthreads deleted file mode 100644 index fd91f4c5..00000000 --- a/source/l/glibc/slack-desc.glibc-solibs-linuxthreads +++ /dev/null @@ -1,19 +0,0 @@ -# HOW TO EDIT THIS FILE: -# The "handy ruler" below makes it easier to edit a package description. Line -# up the first '|' above the ':' following the base package name, and the '|' on -# the right side marks the last column you can put a character in. You must make -# exactly 11 lines for the formatting to be correct. It's also customary to -# leave one space after the ':'. - - |-----handy-ruler------------------------------------------------------| -glibc-solibs-linuxthreads: glibc-solibs-linuxthreads (LinuxThreads shared GNU C libraries) -glibc-solibs-linuxthreads: -glibc-solibs-linuxthreads: This package contains the shared libraries for glibc that uses -glibc-solibs-linuxthreads: LinuxThreads, the threading implementation in Linux 2.4.x and -glibc-solibs-linuxthreads: earlier kernels. In some cases you'll need to use these libraries -glibc-solibs-linuxthreads: to run old binaries by setting these environment variables: -glibc-solibs-linuxthreads: export LD_ASSUME_KERNEL=2.4.33 -glibc-solibs-linuxthreads: export LD_LIBRARY_PATH=/lib/obsolete/linuxthreads -glibc-solibs-linuxthreads: old-program -glibc-solibs-linuxthreads: Most users should have no need for this package. Recompile. :-) -glibc-solibs-linuxthreads: |