From 5b833f4bcaf12a47dfb551d6bc7d9209c851b720 Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Fri, 24 Jun 2016 00:22:38 +0200 Subject: Add support for multilib. New parameter '-M' to the "make_slackware_live.sh" script will add a squashfs module "0020-slackware_multilib-VERSION-ARCH.sxz" to the iso, its contents based on the ./pkglists/multilib.* package repo definitions. Only for the x86_64 architecture of course. If you already have a USB Live, you can simply copy this module into the directory "/liveslak/addons" to transform your pure 64bit Slackware Live Edition into a multilib variant. --- make_slackware_live.sh | 20 +++++- pkglists/multilib.conf | 12 ++++ pkglists/multilib.lst | 185 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 216 insertions(+), 1 deletion(-) create mode 100644 pkglists/multilib.conf create mode 100644 pkglists/multilib.lst diff --git a/make_slackware_live.sh b/make_slackware_live.sh index 0e79070..6c92546 100755 --- a/make_slackware_live.sh +++ b/make_slackware_live.sh @@ -129,6 +129,9 @@ MARKER=${MARKER:-"SLACKWARELIVE"} # The filesystem label we will be giving our ISO: MEDIALABEL=${MEDIALABEL:-"LIVESLAK"} +# For x86_64 you can add multilib: +MULTILIB=${MULTILIB:-"NO"} + # The name of the directory used for storing persistence data: PERSISTENCE=${PERSISTENCE:-"persistence"} @@ -596,7 +599,7 @@ EOL # Action! # --------------------------------------------------------------------------- -while getopts "a:d:efhm:r:s:t:vz:HO:R:X" Option +while getopts "a:d:efhm:r:s:t:vz:H:MO:R:X" Option do case $Option in h ) @@ -629,6 +632,7 @@ do echo " -v Show debug/error output." echo " -z version Define your ${DISTRO^} version (default: $SL_VERSION)." echo " -H hostname Hostname of the Live OS (default: $LIVE_HOSTNAME)." + echo " -M Add multilib (x86_64 only)." echo " -O outfile Custom filename for the ISO." echo " -R runlevel Runlevel to boot into (default: $RUNLEVEL)." echo " -X Use xorriso instead of mkisofs/isohybrid." @@ -656,6 +660,8 @@ do ;; H ) LIVE_HOSTNAME="${OPTARG}" ;; + M ) MULTILIB="YES" + ;; O ) OUTFILE="${OPTARG}" OUTPUT="$(cd $(dirname "${OUTFILE}"); pwd)" ;; @@ -692,6 +698,11 @@ if [ $RUNLEVEL -ne 3 -a $RUNLEVEL -ne 4 ]; then exit 1 fi +if [ "$SL_ARCH" != "x86_64" -a "$MULTILIB" = "YES" ]; then + echo ">> Multilib is only supported on x86_64 architecture." + exit 1 +fi + # Directory suffix, arch dependent: if [ "$SL_ARCH" = "x86_64" ]; then DIRSUFFIX="64" @@ -800,8 +811,15 @@ case "$LIVEDE" in ;; esac +# Do we need to include multilib? +if [ "$MULTILIB" = "YES" ]; then + echo "-- Adding multilib." + MSEQ="${MSEQ} pkglist:multilib" +fi + # Do we need to create/include additional module(s) defined by a pkglist: if [ -n "$SEQ_ADDMOD" ]; then + echo "-- Adding ${SEQ_ADDMOD}." MSEQ="${MSEQ} pkglist:${SEQ_ADDMOD}" fi diff --git a/pkglists/multilib.conf b/pkglists/multilib.conf new file mode 100644 index 0000000..1f8d5e6 --- /dev/null +++ b/pkglists/multilib.conf @@ -0,0 +1,12 @@ +# If 'SL_REPO_URL' is a rsync:// URL and 'SL_REPO' points to a non-existent +# or empty directory, then the content of 'SL_REPO_URL' will be rsync-ed +# to the local directory 'SL_REPO'. +SL_REPO_URL="rsync://slackware.uk/people/alien/multilib/${SL_VERSION}" +SL_REPO="/mnt/auto/sox/www/sox/slackware/multilib/${SL_VERSION}" + +# Package root directory: +SL_PKGROOT=${SL_REPO} + +# Patches root directory: +SL_PATCHROOT="" + diff --git a/pkglists/multilib.lst b/pkglists/multilib.lst new file mode 100644 index 0000000..af3beaa --- /dev/null +++ b/pkglists/multilib.lst @@ -0,0 +1,185 @@ +# The core multilib packages: +compat32-tools +gcc +gcc-g++ +gcc-gfortran +gcc-gnat +gcc-go +gcc-java +gcc-objc +glibc +glibc-i18n +glibc-profile +glibc-solibs +# This is what I consider as the essential 32bit multilib package set. +# You can find this list embedded in the 'massconvert32.sh' script. +# The A/ series: +aaa_elflibs-compat32 +attr-compat32 +bzip2-compat32 +cups-compat32 +cxxlibs-compat32 +dbus-compat32 +e2fsprogs-compat32 +eudev-compat32 +libgudev-compat32 +openssl-solibs-compat32 +udev-compat32 +util-linux-compat32 +xz-compat32 +# The AP/ series: +cups-compat32 +cups-filters-compat32 +flac-compat32 +mariadb-compat32 +mpg123-compat32 +mysql-compat32 +sqlite-compat32 +# The D/ series: +libtool-compat32 +llvm-compat32 +# The L/ series: +alsa-lib-compat32 +alsa-oss-compat32 +alsa-plugins-compat32 +atk-compat32 +audiofile-compat32 +cairo-compat32 +dbus-glib-compat32 +elfutils-compat32 +esound-compat32 +expat-compat32 +fftw-compat32 +freetype-compat32 +fribidi-compat32 +gamin-compat32 +gdk-pixbuf2-compat32 +giflib-compat32 +glib2-compat32 +gmp-compat32 +gnome-keyring-compat32 +gtk+2-compat32 +gst-plugins-base-compat32 +gst-plugins-base0-compat32 +gst-plugins-good-compat32 +gst-plugins-good0-compat32 +gstreamer-compat32 +gstreamer0-compat32 +hal-compat32 +harfbuzz-compat32 +icu4c-compat32 +jasper-compat32 +json-c-compat32 +lcms-compat32 +lcms2-compat32 +libaio-compat32 +libart_lgpl-compat32 +libasyncns-compat32 +libelf-compat32 +libexif-compat32 +libffi-compat32 +libglade-compat32 +libgphoto2-compat32 +libidn-compat32 +libieee1284-compat32 +libjpeg-compat32 +libjpeg-turbo-compat32 +libmng-compat32 +libmpc-compat32 +libnl3-compat32 +libnotify-compat32 +libogg-compat32 +libpcap-compat32 +libpng-compat32 +libsamplerate-compat32 +libsndfile-compat32 +libtasn1-compat32 +libtermcap-compat32 +libtiff-compat32 +libusb-compat32 +libvorbis-compat32 +libxml2-compat32 +libxslt-compat32 +lzo-compat32 +ncurses-compat32 +openjpeg-compat32 +orc-compat32 +pango-compat32 +popt-compat32 +pulseaudio-compat32 +qt-compat32 +readline-compat32 +sbc-compat32 +sdl-compat32 +seamonkey-solibs-compat32 +speexdsp-compat32 +startup-notification-compat32 +svgalib-compat32 +v4l-utils-compat32 +zlib-compat32 +# The N/ series: +curl-compat32 +cyrus-sasl-compat32 +gnutls-compat32 +libgcrypt-compat32 +libgpg-error-compat32 +libtirpc-compat32 +nettle-compat32 +openldap-client-compat32 +openssl-compat32 +p11-kit-compat32 +samba-compat32 +# The X/ series: +fontconfig-compat32 +freeglut-compat32 +glew-compat32 +glu-compat32 +libFS-compat32 +libICE-compat32 +libSM-compat32 +libX11-compat32 +libXScrnSaver-compat32 +libXTrap-compat32 +libXau-compat32 +libXaw-compat32 +libXcomposite-compat32 +libXcursor-compat32 +libXdamage-compat32 +libXdmcp-compat32 +libepoxy-compat32 +libXevie-compat32 +libXext-compat32 +libXfixes-compat32 +libXfont-compat32 +libXfontcache-compat32 +libXft-compat32 +libXi-compat32 +libXinerama-compat32 +libXmu-compat32 +libXp-compat32 +libXpm-compat32 +libXprintUtil-compat32 +libXrandr-compat32 +libXrender-compat32 +libXres-compat32 +libXt-compat32 +libXtst-compat32 +libXv-compat32 +libXvMC-compat32 +libXxf86dga-compat32 +libXxf86misc-compat32 +libXxf86vm-compat32 +libdmx-compat32 +libdrm-compat32 +libfontenc-compat32 +libpciaccess-compat32 +libva-compat32 +libva-intel-driver-compat32 +libvdpau-compat32 +libxcb-compat32 +libxshmfence-compat32 +mesa-compat32 +pixman-compat32 +xcb-util-compat32 +# The XAP/ series: +sane-compat32 -- cgit v1.2.3