summaryrefslogtreecommitdiff
path: root/source/l
diff options
context:
space:
mode:
Diffstat (limited to 'source/l')
-rw-r--r--source/l/glibc/doinst.sh-glibc67
-rw-r--r--source/l/glibc/doinst.sh-glibc-solibs68
-rwxr-xr-xsource/l/glibc/glibc.SlackBuild2
-rw-r--r--source/l/glibc/slack-desc.glibc-solibs-linuxthreads19
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: