diff options
-rw-r--r-- | README | 69 | ||||
-rwxr-xr-x | source/compat32-tools/compat32-tools.SlackBuild | 6 | ||||
-rwxr-xr-x | source/compat32-tools/convertpkg-compat32 | 12 | ||||
-rwxr-xr-x | source/compat32-tools/massconvert32.sh | 31 | ||||
-rwxr-xr-x | source/current/gcc/gcc-multilib.SlackBuild | 48 | ||||
-rwxr-xr-x | source/current/glibc/glibc-multilib.SlackBuild | 115 |
6 files changed, 173 insertions, 108 deletions
@@ -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 |