summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README69
-rwxr-xr-xsource/compat32-tools/compat32-tools.SlackBuild6
-rwxr-xr-xsource/compat32-tools/convertpkg-compat3212
-rwxr-xr-xsource/compat32-tools/massconvert32.sh31
-rwxr-xr-xsource/current/gcc/gcc-multilib.SlackBuild48
-rwxr-xr-xsource/current/glibc/glibc-multilib.SlackBuild115
6 files changed, 173 insertions, 108 deletions
diff --git a/README b/README
index e8cc540..c829234 100644
--- a/README
+++ b/README
@@ -12,7 +12,7 @@ This README contains instructions on how to use the packages in this
directory to create a multilib Slackware64.
A more extensive documentation is available on the Slackware Documentation
-Wiki, http://docs.slackware.com/slackware:multilib where you will also find
+Wiki, https://docs.slackware.com/slackware:multilib where you will also find
the main mirror locations for downloading these packages.
The exciting thing about Slackware64, is that you do not have to compile
@@ -26,20 +26,20 @@ Slackware computer straight away.
Enabling multilib
=================
-Fast-track (examples assume slackware64-14.2 ... change to your needs).
+Fast-track (examples assume slackware64-15.0 ... change to your needs).
All of the following commands should be executed as the 'root' user:
* In the location where you found this README, download the subdirectory with
the name that corresponds to the Slackware version you are running. For
- Slackware64 14.2 for instance, you would run the following command:
- # lftp -c 'open http://slackware.com/~alien/multilib/ ; mirror -c -e 14.2'
- and then change into the new "14.2" directory which has been created on
+ Slackware64 15.0 for instance, you would run the following command:
+ # lftp -c 'open http://slackware.com/~alien/multilib/ ; mirror -c -e 15.0'
+ and then change into the new "15.0" directory which has been created on
your computer:
- # cd 14.2
+ # cd 15.0
* First, you will upgrade your 64bit Slackware gcc and glibc packages to their
multilib versions by running the command:
# upgradepkg --reinstall --install-new *.t?z
- in the directory you just changed to (the "14.2" directory in our case).
+ in the directory you just changed to (the "15.0" directory in our case).
This will upgrade gcc and glibc packages, and also install a new package
called "compat32-tools".
* You are now going to install 32-bit compatibility packages to support all
@@ -163,22 +163,41 @@ and build, 32-bit software on your 64-bit Slackware computer:
- glibc-profile-2.23_multilib-x86_64-4alien.txz
- glibc-solibs-2.23_multilib-x86_64-4alien.txz
+==Slackware64 15.0 ==
+
+* The gcc compiler suite:
+ - gcc-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-brig-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-g++-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-gdc-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-gfortran-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-gnat-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-go-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-objc-11.2.0_multilib-x86_64-2alien.txz
+
+* The GNU libc libraries:
+ - aaa_glibc-solibs-2.33_multilib-x86_64-5alien.txz
+ - glibc-2.33_multilib-x86_64-5alien.txz
+ - glibc-i18n-2.33_multilib-x86_64-5alien.txz
+ - glibc-profile-2.33_multilib-x86_64-5alien.txz
+
==Slackware64 current==
* The gcc compiler suite:
- - gcc-8.2.0_multilib-x86_64-1alien.txz
- - gcc-brig-8.2.0_multilib-x86_64-1alien.txz
- - gcc-g++-8.2.0_multilib-x86_64-1alien.txz
- - gcc-gfortran-8.2.0_multilib-x86_64-1alien.txz
- - gcc-gnat-8.2.0_multilib-x86_64-1alien.txz
- - gcc-go-8.2.0_multilib-x86_64-1alien.txz
- - gcc-objc-8.2.0_multilib-x86_64-1alien.txz
+ - gcc-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-brig-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-g++-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-gdc-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-gfortran-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-gnat-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-go-11.2.0_multilib-x86_64-2alien.txz
+ - gcc-objc-11.2.0_multilib-x86_64-2alien.txz
* The GNU libc libraries:
- - glibc-2.29_multilib-x86_64-2alien.txz
- - glibc-i18n-2.29_multilib-x86_64-2alien.txz
- - glibc-profile-2.29_multilib-x86_64-2alien.txz
- - glibc-solibs-2.29_multilib-x86_64-2alien.txz
+ - aaa_glibc-solibs-2.33_multilib-x86_64-5alien.txz
+ - glibc-2.33_multilib-x86_64-5alien.txz
+ - glibc-i18n-2.33_multilib-x86_64-5alien.txz
+ - glibc-profile-2.33_multilib-x86_64-5alien.txz
=======================================================================
@@ -187,7 +206,7 @@ There is one more package (compat32-tools); you install it using the
* The compat32-tools package is a "32-bit toolkit" (containing scripts that
facilitate the creation of 32bit packages):
- - compat32-tools-3.7-noarch-18alien.tgz
+ - compat32-tools-3.9-noarch-28alien.tgz
* The above packages cover the essentials for getting ready to run and compile
32-bit software on Slackware64. But in order to be able to actually run
@@ -196,16 +215,16 @@ There is one more package (compat32-tools); you install it using the
scripts that are part of my "compat32-tools" package.
* You use the "massconvert32.sh" script for this conversion;
Suppose you have downloaded a local copy of 32-bit Slackware, and it is
- available in the directory: /home/ftp/pub/slackware/slackware-14.2
+ available in the directory: /home/ftp/pub/slackware/slackware-15.0
then you would run the command:
- # massconvert32.sh -i /home/ftp/pub/slackware/slackware-14.2/slackware"
+ # massconvert32.sh -i /home/ftp/pub/slackware/slackware-15.0/slackware
and the result is a number of subdirectories in your current directory,
containing "compat32" packages which you can install directly (they will not
conflict with your 64-bit packages).
* You can also instruct the "massconvert32.sh" script to download everything
you need from an external Slackware mirror, if you do not have (or do not
want to download) a complete local copy of Slackware:
- # massconvert32.sh -u http://slackware.mirrors.tds.net/pub/slackware/slackware-14.2/slackware"
+ # massconvert32.sh -u http://slackware.mirrors.tds.net/pub/slackware/slackware-15.0/slackware"
* Or if you are lazy you can just download the "slackware64-compat32" directory
in which I provide all these converted packages for you. It is a subdirectory
of the directory that contains the multilib gcc and glibc packages.
@@ -270,7 +289,7 @@ In this changed environment, you will be able to use standard SlackBuilds to
build 32-bit packages for Slackware64.
There's a couple of things to keep in mind:
-(1) You have to define the ARCH variable as 'i486' because even on your
+(1) You have to define the ARCH variable as 'i586' because even on your
'x86_64' computer you are compiling a 32-bit program!
This is related to the triplet of '$ARCH-slackware-linux' which
is normally used in the 'configure' command.
@@ -281,7 +300,7 @@ There's a couple of things to keep in mind:
(2) If you want to install this 32-bit package on Slackware64-multilib,
you will have to convert it to a 'compat32' package:
- # convertpkg-compat32 -i /path/to/your/fresh/foo-VERSION-i486-BUILD.tgz
+ # convertpkg-compat32 -i /path/to/your/fresh/foo-VERSION-i586-BUILD.tgz
# upgradepkg --install-new /tmp/foo-compat32-VERSION-x86_64-BUILDcompat32.txz
@@ -330,4 +349,4 @@ Have fun!
Eric
=============================================================================
-Eric Hameleers <alien@slackware.com> 04-feb-2019
+Eric Hameleers <alien@slackware.com> 02-feb-2022
diff --git a/source/compat32-tools/compat32-tools.SlackBuild b/source/compat32-tools/compat32-tools.SlackBuild
index 09c823f..96e319d 100755
--- a/source/compat32-tools/compat32-tools.SlackBuild
+++ b/source/compat32-tools/compat32-tools.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright (c) 2009 Frederick Emmott <fred@slackware.com>
-# Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Eric Hameleers, Eindhoven, NL
+# Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Eric Hameleers, Eindhoven, NL
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,10 +23,10 @@
PRGNAM=compat32-tools
-VERSION=3.9
+VERSION=3.10
ARCH=noarch
TAG=${TAG:-alien}
-BUILD=${BUILD:-11}
+BUILD=${BUILD:-3}
CWD=$(pwd)
TMP=${TMP:-/tmp}
diff --git a/source/compat32-tools/convertpkg-compat32 b/source/compat32-tools/convertpkg-compat32
index 2b2208a..5287873 100755
--- a/source/compat32-tools/convertpkg-compat32
+++ b/source/compat32-tools/convertpkg-compat32
@@ -181,7 +181,9 @@ fi
#
# Take special care of the following packages when stripping things:
-# gdk-pixbuf2, gtk+2, gtk+3, mesa, pango, polkit, samba, udev
+# elogind, eudev, gdk-pixbuf2, gtk+2, gtk+3, mesa, pango, polkit, samba, udev
+# and:
+# e2fsprogs, libgphoto2, libinput, libwacom, pipewire, pulseaudio, sane, v4l-utils
#
# Stuff we need to keep, we move into KDEP/ and move it back later:
@@ -205,7 +207,7 @@ then
find usr/bin -type f ! -name "*-32" -exec mv {} {}-32 \;
elif [ "$PKGNAM" = "llvm" ]; then
mkdir -p usr/bin/32
- for BIN in usr/bin/* ; do
+ for BIN in $(find usr/bin/ -maxdepth 1 -type f) ; do
ln -s ../$(basename $BIN)-32 usr/bin/32/$(basename $BIN)
done
find usr/bin -maxdepth 1 -type f ! -name "*-32" -exec mv {} {}-32 \;
@@ -217,7 +219,7 @@ elif [ -d usr/bin ]; then
fi
# These are part of the 64-bit package:
-if [ "$PKGNAM" = "udev" -o "$PKGNAM" = "eudev" ]; then
+if [ "$PKGNAM" = "udev" -o "$PKGNAM" = "eudev" -o "$PKGNAM" = "elogind" ]; then
rm -rf lib/firmware
rm -rf lib/modprobe.d
rm -rf lib/udev
@@ -226,6 +228,8 @@ if [ "$PKGNAM" = "udev" -o "$PKGNAM" = "eudev" ]; then
rm -rf usr/lib/ConsoleKit
elif [ "$PKGNAM" = "polkit" ]; then
rm -rf usr/lib/polkit-1
+elif [ "$PKGNAM" = "e2fsprogs" -o "$PKGNAM" = "libgphoto2" -o "$PKGNAM" = "libinput" -o "$PKGNAM" = "libwacom" -o "$PKGNAM" = "pipewire" -o "$PKGNAM" = "pulseaudio" -o "$PKGNAM" = "sane" -o "$PKGNAM" = "v4l-utils" ]; then
+ rm -rf lib/udev
fi
# Strip doinst.sh from everything we can't use:
@@ -251,7 +255,7 @@ elif [ "$PKGNAM" = "udev" -o "$PKGNAM" = "eudev" ]; then
> install/doinst.sh.2
cat install/doinst.sh.2 > install/doinst.sh
rm -f install/doinst.sh.2
-elif [ "$PKGNAM" = "polkit" ]; then
+elif [ "$PKGNAM" = "aaa_libraries" -o "$PKGNAM" = "openldap" -o "$PKGNAM" = "polkit" ]; then
# Remove the doinst.sh completely:
rm -f install/doinst.sh
elif [ -f install/doinst.sh ]; then
diff --git a/source/compat32-tools/massconvert32.sh b/source/compat32-tools/massconvert32.sh
index d67a6ee..e2199e7 100755
--- a/source/compat32-tools/massconvert32.sh
+++ b/source/compat32-tools/massconvert32.sh
@@ -347,6 +347,7 @@ fi
# The A/ series:
A_COMPAT32="
aaa_elflibs
+aaa_libraries
attr
bzip2
cracklib
@@ -354,8 +355,10 @@ cups
cxxlibs
dbus
e2fsprogs
+elogind
eudev
libgudev
+libpwquality
lzlib
openssl-solibs
openssl10-solibs
@@ -368,6 +371,7 @@ xz
# The AP/ series:
AP_COMPAT32="
+cdparanoia
cups
cups-filters
flac
@@ -394,6 +398,7 @@ SDL2_image
SDL2_mixer
SDL2_net
SDL2_ttf
+aalib
alsa-lib
alsa-oss
alsa-plugins
@@ -401,6 +406,7 @@ atk
at-spi2-atk
at-spi2-core
audiofile
+brotli
cairo
dbus-glib
elfutils
@@ -414,14 +420,17 @@ fribidi
gamin
gc
gdk-pixbuf2
+gdk-pixbuf2-xlib
giflib
glib2
gmp
gnome-keyring
gobject-introspection
+graphene
graphite2
gtk+2
gtk+3
+gst-plugins-bad-free
gst-plugins-base
gst-plugins-base0
gst-plugins-good
@@ -433,6 +442,7 @@ hal
harfbuzz
icu4c
isl
+jansson
jasper
json-c
json-glib
@@ -451,26 +461,34 @@ libcdio
libcdio-paranoia
libclc
libcroco
+libdbusmenu
+libdvdnav
libedit
libelf
libexif
libffi
libglade
+libgnt
libgphoto2
libidn
libidn2
libieee1284
libjpeg
libjpeg-turbo
+libmad
libmng
libmpc
+libnice
libnl3
+libnsl
libnotify
+libnss_nis
libogg
libpcap
libpng
librsvg
libsamplerate
+libsigc++3
libsndfile
libssh
libtasn1
@@ -479,6 +497,7 @@ libtheora
libtiff
libunistring
libunwind
+liburing
libusb
libvorbis
libvpx
@@ -487,17 +506,20 @@ libxkbcommon
libxml2
libxslt
lmdb
+lz4
lzo
mozilla-nss
ncurses
ocl-icd
openal-soft
+openexr
openjpeg
opus
orc
pango
pcre
pcre2
+pipewire
polkit
popt
pulseaudio
@@ -505,6 +527,7 @@ python-six
qt
qt5
readline
+rpcsvc-proto
sbc
sdl
slang
@@ -512,17 +535,22 @@ speex
speexdsp
startup-notification
svgalib
+taglib
talloc
tdb
tevent
v4l-utils
+vid.stab
wavpack
+woff2
+xxHash
zlib
zstd
"
# The N/ series:
N_COMPAT32="
+c-ares
curl
cyrus-sasl
gnutls
@@ -532,6 +560,7 @@ libgpg-error
libtirpc
nettle
openldap-client
+openldap
openssl
p11-kit
samba
@@ -539,6 +568,8 @@ samba
# The X/ series:
X_COMPAT32="
+egl-wayland
+eglexternalplatform
fontconfig
freeglut
glew
diff --git a/source/current/gcc/gcc-multilib.SlackBuild b/source/current/gcc/gcc-multilib.SlackBuild
index 3ad765d..dabeb14 100755
--- a/source/current/gcc/gcc-multilib.SlackBuild
+++ b/source/current/gcc/gcc-multilib.SlackBuild
@@ -2,7 +2,7 @@
# GCC package build script (written by volkerdi@slackware.com)
#
# Copyright 2003, 2004 Slackware Linux, Inc., Concord, California, USA
-# Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -53,14 +53,14 @@
# instructions. No need to throw i586 CPUs under the bus (yet).
# Notes by Eric Hameleers, Sun May 7 20:48:17 UTC 2017:
-# In order to compile gcc 7 multilib, you will have to create a 'compat32'
+# In order to compile gcc >= 7 multilib, you will have to create a 'compat32'
# package for Slackware's 'gc' package and install that. If you do not want
# this, then change "--enable-objc-gc \" to "--disable-objc-gc \" below.
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=gcc
-SRCVER=${SRCVER:-"9.3.0"}
+SRCVER=${SRCVER:-"12.2.0"}
VERSION=$(echo $SRCVER | cut -f 1 -d _)
BUILD=${BUILD:-1alien}
@@ -68,7 +68,7 @@ BUILD=${BUILD:-1alien}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
# What do we want to build
-LANGS=${LANGS:-'ada,brig,c,c++,d,fortran,go,lto,objc,obj-c++'}
+LANGS=${LANGS:-'ada,c,c++,d,fortran,go,lto,objc,obj-c++'}
echo "Building these compilers: $LANGS"; sleep 5
@@ -93,7 +93,6 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "gcc-gnat-${VERSION}_multilib-$ARCH-$BUILD.txz"
echo "gcc-objc-${VERSION}_multilib-$ARCH-$BUILD.txz"
echo "gcc-go-${VERSION}_multilib-$ARCH-$BUILD.txz"
- echo "gcc-brig-${VERSION}_multilib-$ARCH-$BUILD.txz"
echo "gcc-gdc-${VERSION}_multilib-$ARCH-$BUILD.txz"
exit 0
fi
@@ -156,14 +155,12 @@ PKG2=$TMP/package-gcc-g++
PKG3=$TMP/package-gcc-gfortran
PKG4=$TMP/package-gcc-gnat
PKG6=$TMP/package-gcc-objc
-#PKG7=$TMP/package-gcc-g++-gch
PKG8=$TMP/package-gcc-go
-PKG9=$TMP/package-gcc-brig
PKG10=$TMP/package-gcc-gdc
# Clear the build locations:
-rm -rf $PKG{1,2,3,4,6,8,9,10}
-mkdir -p $PKG{1,2,3,4,6,8,9,10}/usr/doc/gcc-$VERSION
+rm -rf $PKG{1,2,3,4,6,8,10}
+mkdir -p $PKG{1,2,3,4,6,8,10}/usr/doc/gcc-$VERSION
# Insert package descriptions:
mkdir -p $PKG{1,2,3,4,6,8,9,10}/install
@@ -172,9 +169,7 @@ cat $CWD/slack-desc.gcc-g++ > $PKG2/install/slack-desc
cat $CWD/slack-desc.gcc-gfortran > $PKG3/install/slack-desc
cat $CWD/slack-desc.gcc-gnat > $PKG4/install/slack-desc
cat $CWD/slack-desc.gcc-objc > $PKG6/install/slack-desc
-#cat $CWD/slack-desc.gcc-g++-gch > $PKG7/install/slack-desc
cat $CWD/slack-desc.gcc-go > $PKG8/install/slack-desc
-cat $CWD/slack-desc.gcc-brig > $PKG9/install/slack-desc
cat $CWD/slack-desc.gcc-gdc > $PKG10/install/slack-desc
# Extract the source code:
@@ -271,14 +266,6 @@ tar xf $CWD/gcc-$SRCVER.tar.?z || exit 1
$PKG8/usr/doc/gcc-${VERSION}/gcc/go
)
- mkdir -p $PKG9/usr/doc/gcc-${VERSION}/gcc/brig
- ( cd brig || exit 0
- if [ -r ChangeLog ]; then
- cat ChangeLog | head -n 1000 > $PKG9/usr/doc/gcc-${VERSION}/gcc/brig/ChangeLog
- touch -r ChangeLog $PKG9/usr/doc/gcc-${VERSION}/gcc/brig/ChangeLog
- fi
- )
-
mkdir -p $PKG10/usr/doc/gcc-${VERSION}/gcc/d
( cd d || exit 0
if [ -r ChangeLog ]; then
@@ -371,7 +358,7 @@ tar xf $CWD/gcc-$SRCVER.tar.?z || exit 1
# First run: use
# LANGS="all" to just build c,c++,fortran,lto,objc
# Second run: use
- # LANGS="ada,brig,c,c++,fortran,go,lto,objc"
+ # LANGS="ada,c,c++,d,fortran,go,lto,objc,obj-c++"
if [ "$ARCH" = "x86_64" ]; then
export PKG_CONFIG_PATH="/usr/lib64/pkgconfig:/usr/lib/pkgconfig"
@@ -504,6 +491,7 @@ tar xf $CWD/gcc-$SRCVER.tar.?z || exit 1
ln -sf gcc-$VERSION gcc
ln -sf g++ c++
ln -sf gcc cc
+ ln -sf gcc-$VERSION ${TARGET}-cc
ln -sf gcc-$VERSION ${TARGET}-gcc
ln -sf gcc-$VERSION ${TARGET}-gcc-$VERSION
ln -sf gcc-ar ${TARGET}-gcc-ar
@@ -700,22 +688,6 @@ fi
mv $PKG1/usr/man/man1/gofmt.1.gz usr/man/man1
)
-# gcc-brig:
-( cd $PKG9
- mkdir -p usr/bin
- mv $PKG1/usr/bin/*brig* usr/bin
- mkdir -p usr/lib${LIBDIRSUFFIX}
- mv $PKG1/usr/lib${LIBDIRSUFFIX}/libhsail* usr/lib${LIBDIRSUFFIX}
- if [ "$ARCH" = "x86_64" ]; then
- mkdir -p usr/lib
- mv $PKG1/usr/lib/libhsail* usr/lib
- fi
- mkdir -p usr/libexec/gcc/$TARGET/$VERSION
- mv $PKG1/usr/libexec/gcc/$TARGET/$VERSION/brig1 usr/libexec/gcc/$TARGET/$VERSION
- mkdir -p usr/man/man1
- mv $PKG1/usr/man/man1/gccbrig.1.gz usr/man/man1
-)
-
# gcc-gdc:
( cd $PKG10
mkdir -p usr/bin
@@ -771,10 +743,6 @@ echo $LANGS | grep -qw go && \
( cd $PKG8
makepkg -l y -c n $TMP/gcc-go-${VERSION}_multilib-$ARCH-$BUILD.txz )
-echo $LANGS | grep -qw brig && \
-( cd $PKG9
- makepkg -l y -c n $TMP/gcc-brig-${VERSION}_multilib-$ARCH-$BUILD.txz )
-
echo $LANGS | grep -qw d && \
( cd $PKG10
makepkg -l y -c n $TMP/gcc-gdc-${VERSION}_multilib-$ARCH-$BUILD.txz )
diff --git a/source/current/glibc/glibc-multilib.SlackBuild b/source/current/glibc/glibc-multilib.SlackBuild
index 4b42360..9473f1b 100755
--- a/source/current/glibc/glibc-multilib.SlackBuild
+++ b/source/current/glibc/glibc-multilib.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2006, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,8 +20,6 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-## build glibc-$VERSION for Slackware, including 32-bit compatibility libraries
-
# Extended to build 32-bit compatibility libraries on x86_64,
# by Fred Emmott <mail@fredemmott.co.uk>. No copyright claim.
# Simplified to produce combined packages (no separate compat-32),
@@ -30,7 +28,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=glibc
-VERSION=${VERSION:-2.29}
+VERSION=${VERSION:-2.36}
CHECKOUT=${CHECKOUT:-""}
BUILD=${BUILD:-3alien}
@@ -55,7 +53,7 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "glibc-${VERSION}_multilib-$ARCH-$BUILD.txz"
echo "glibc-i18n-${VERSION}_multilib-$ARCH-$BUILD.txz"
echo "glibc-profile-${VERSION}_multilib-$ARCH-$BUILD.txz"
- echo "glibc-solibs-${VERSION}_multilib-$ARCH-$BUILD.txz"
+ echo "aaa_glibc-solibs-${VERSION}_multilib-$ARCH-$BUILD.txz"
exit 0
fi
@@ -167,10 +165,12 @@ apply_patches() {
zcat $CWD/glibc.locale.no-archive.diff.gz | patch -p1 --verbose || exit 1
# Support ru_RU.CP1251 locale:
zcat $CWD/glibc.ru_RU.CP1251.diff.gz | patch -p1 --verbose || exit 1
- # Add a C.UTF-8 locale:
- zcat $CWD/glibc-c-utf8-locale.patch.gz | patch -p1 --verbose || exit 1
# Don't use AM/PM format for date(1). That's just plain crazy.
- zcat $CWD/glibc-2.29.en_US.no.am.pm.date.format.diff.gz | patch -p1 --verbose || exit 1
+ zcat $CWD/glibc-2.32.en_US.no.am.pm.date.format.diff.gz | patch -p1 --verbose || exit 1
+ # Other regression fixes from git:
+ for git_patch in $CWD/patches/*.patch.gz ; do
+ zcat $git_patch | patch -p1 --verbose || exit 1
+ done
if [ $BOOTSTRP -eq 1 ] ; then
# Multilib - Disable check for forced unwind (Patch from eglibc) since we
# do not have a multilib glibc yet to link to;
@@ -181,7 +181,7 @@ apply_patches() {
# This is going to be the initial $DESTDIR:
export PKG=$TMP/package-glibc-incoming-tree
PGLIBC=$TMP/package-glibc
-PSOLIBS=$TMP/package-glibc-solibs
+PSOLIBS=$TMP/package-aaa_glibc-solibs
PI18N=$TMP/package-glibc-i18n
PPROFILE=$TMP/package-glibc-profile
PDEBUG=$TMP/package-glibc-debug
@@ -217,6 +217,7 @@ echo "-- Extracting sources"
cd $TMP
rm -rf glibc-$CVSVER
tar xf $CWD/glibc-$CVSVER.tar.xz \
+ || tar xf $CWD/glibc-$CVSVER.tar.lz \
|| tar xf $CWD/glibc-$CVSVER.tar.bz2 \
|| tar xf $CWD/glibc-$CVSVER.tar.gz
cd glibc-$CVSVER
@@ -227,28 +228,22 @@ if [ $BOOTSTRP -eq 1 ] ; then
sed -i -e 's/-lgcc_eh//g' Makeconfig
fi
-chown -R root:root .
-find . -perm 666 -exec chmod 644 {} \;
-find . -perm 664 -exec chmod 644 {} \;
-find . -perm 600 -exec chmod 644 {} \;
-find . -perm 444 -exec chmod 644 {} \;
-find . -perm 400 -exec chmod 644 {} \;
-find . -perm 440 -exec chmod 644 {} \;
-find . -perm 777 -exec chmod 755 {} \;
-find . -perm 775 -exec chmod 755 {} \;
-find . -perm 511 -exec chmod 755 {} \;
-find . -perm 711 -exec chmod 755 {} \;
-find . -perm 555 -exec chmod 755 {} \;
-
-# Clean up leftover CVS directories:
-find . -type d -name CVS -exec rm -r {} \; 2> /dev/null
-
# Apply patches; exit if any fail.
apply_patches
if [ ! $? = 0 ]; then
exit 1
fi
+# Clean up leftover CVS directories:
+find . -type d -name CVS -exec rm -r {} \; 2> /dev/null
+
+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 {} \+
+
build_glibc() {
CFLAGS="-g $OPTIMIZ -I/usr/include" \
../configure \
@@ -257,8 +252,6 @@ build_glibc() {
--enable-kernel=2.6.32 \
--with-headers=/usr/include \
--enable-add-ons \
- --enable-obsolete-nsl \
- --enable-obsolete-rpc \
--enable-profile \
$DISABLE_NSCD \
--infodir=/usr/info \
@@ -269,10 +262,10 @@ build_glibc() {
$TARGET-slackware-linux
make $NUMJOBS || exit 1
- make install install_root=$PKG || exit 1
+ make $NUMJOBS install install_root=$PKG || exit 1
# Don't use this, as it makes the i18n package WAY bigger:
#make localedata/install-locale-files DESTDIR=$PKG || exit 1
- make localedata/install-locales install_root=$PKG DESTDIR=$PKG || exit 1
+ make $NUMJOBS localedata/install-locales install_root=$PKG DESTDIR=$PKG || exit 1
}
# Build the 32-bit binaries first,
@@ -293,7 +286,6 @@ if [ "x$LIBDIRSUFFIX" = "x64" ]; then
fi
# Make build directory:
-
mkdir build-glibc-$VERSION
cd build-glibc-$VERSION || exit 1
@@ -471,7 +463,7 @@ mkdir install
cat $CWD/slack-desc.glibc-i18n > install/slack-desc
/sbin/makepkg -l y -c n $TMP/glibc-i18n-${VERSION}_multilib-$SLACKWARE_ARCH-$BUILD.txz
-# glibc-solibs:
+# aaa_glibc-solibs:
cd $PSOLIBS
mkdir -p etc/profile.d
cp -a $CWD/profile.d/* etc/profile.d
@@ -482,12 +474,36 @@ cp -a $PKG/lib${LIBDIRSUFFIX}/* lib${LIBDIRSUFFIX}
( cd lib${LIBDIRSUFFIX}
mkdir incoming
mv *so* incoming
- mv incoming/libSegFault.so .
+ mv incoming/libmemusage.so .
+ # Beginning with glibc-2.34, shared objects are using their ABI sonames
+ # directly, which is frankly, a terrible idea. It might help other package
+ # managers, but doesn't do us any favors where we already had a system for
+ # dealing with upgrades (and downgrades!). We'll change these libraries to
+ # use the versioned naming system of glibc-2.33 and earlier so that we don't
+ # have to handle these files differently and so that it's easy to see what
+ # version of glibc is in use at a glance.
+ cd incoming
+ for library in *.so.* ; do
+ mv $library $(echo $library | cut -f 1 -d .)-${VERSION}.so
+ done
+ # This one is a special case. We don't want an $ARCH embedded in the
+ # filename. It prevents using the same install scripts on all $ARCH
+ # and does no good since we'll never have multiple $ARCH libraries
+ # installed in the same directory anyway. So give it the previous name
+ # format:
+ mv ld-linux*-${VERSION}.so ld-${VERSION}.so
)
if [ "x$LIBDIRSUFFIX" = "x64" ]; then
# Same exercise for lib:
mkdir -p lib
cp -a $PKG/lib/* lib
+ ( cd lib
+ # For the reason why, see above block for the 64bit part:
+ for library in *.so.* ; do
+ mv $library $(echo $library | cut -f 1 -d .)-${VERSION}.so
+ done
+ mv ld-linux*-${VERSION}.so ld-${VERSION}.so
+ )
fi
mkdir -p usr
cp -a $PKG/usr/bin usr
@@ -511,8 +527,8 @@ mv sbin/ldconfig .
rm sbin/*
mv ldconfig sbin
mkdir install
-cat $CWD/slack-desc.glibc-solibs > install/slack-desc
-cat $CWD/doinst.sh-glibc-solibs > install/doinst.sh
+cat $CWD/slack-desc.aaa_glibc-solibs > install/slack-desc
+cat $CWD/doinst.sh-aaa_glibc-solibs > install/doinst.sh
# Fix specific versioning for the symlink creation script. This part of the
# script would only be used in the case where there is no ldconfig on the
# running system that's used to install the package. That should never be the
@@ -528,7 +544,7 @@ if [ "x$LIBDIRSUFFIX" = "x64" ]; then
find lib -type l -exec rm {} \;
fi
# Build the package:
-/sbin/makepkg -l y -c n $TMP/glibc-solibs-${VERSION}_multilib-$SLACKWARE_ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/aaa_glibc-solibs-${VERSION}_multilib-$SLACKWARE_ARCH-$BUILD.txz
# And finally, the complete "all-in-one" glibc package is created
# from whatever was leftover:
@@ -557,8 +573,35 @@ fix_doinst
( cd lib${LIBDIRSUFFIX}
mkdir incoming
mv *so* incoming
- mv incoming/libSegFault.so .
+ mv incoming/libmemusage.so .
+ # Beginning with glibc-2.34, shared objects are using their ABI sonames
+ # directly, which is frankly, a terrible idea. It might help other package
+ # managers, but doesn't do us any favors where we already had a system for
+ # dealing with upgrades (and downgrades!). We'll change these libraries to
+ # use the versioned naming system of glibc-2.33 and earlier so that we don't
+ # have to handle these files differently and so that it's easy to see what
+ # version of glibc is in use at a glance.
+ cd incoming
+ for library in *.so.* ; do
+ mv $library $(echo $library | cut -f 1 -d .)-${VERSION}.so
+ done
+ # This one is a special case. We don't want an $ARCH embedded in the
+ # filename. It prevents using the same install scripts on all $ARCH
+ # and does no good since we'll never have multiple $ARCH libraries
+ # installed in the same directory anyway. So give it the previous name
+ # format:
+ mv ld-linux*-${VERSION}.so ld-${VERSION}.so
)
+if [ "x$LIBDIRSUFFIX" = "x64" ]; then
+ # Same exercise for lib:
+ ( cd lib
+ # For the reason why, see above block for the 64bit part:
+ for library in *.so.* ; do
+ mv $library $(echo $library | cut -f 1 -d .)-${VERSION}.so
+ done
+ mv ld-linux*-${VERSION}.so ld-${VERSION}.so
+ )
+fi
# Build the package:
/sbin/makepkg -l y -c n $TMP/glibc-${VERSION}_multilib-$SLACKWARE_ARCH-$BUILD.txz