Last active
March 20, 2021 22:32
-
-
Save jaos/a7951ad00f619e8f3368c8fb3af28069 to your computer and use it in GitHub Desktop.
slack minimal root filesystem tarballs for docker import
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -ex | |
ROOT=/tmp/rfs | |
OUT=/tmp | |
S142_MIN_PKGS="aaa_base aaa_elflibs aaa_terminfo bash grep bzip2 coreutils cpio devs etc bin file procps-ng findutils glibc-solibs gzip less openssl patch pkgtools sed tar util-linux xz which pcre wget gnupg ncurses slapt-get curl dialog gawk libunistring libgcrypt utempter diffutils sqlite icu4c e2fsprogs ca-certificates perl" | |
S142_SMALL_PKGS="readline time mpfr libcgroup net-tools iproute2 tree ntp openssh vim" | |
S142_DEV_PKGS="gcc gcc-g++ gc guile make autoconf git glibc kernel-headers autoconf automake libtool m4 gettext gettext-tools pkg-config intltool atk glib2 gtk+2 pango zlib mesa libdrm libXxf86vm libunistring expat libxshmfence fribidi libpthread-stubs shared-mime-info fribidi libmpc flex bison libcroco libxml2 python font-misc-misc binutils texinfo adwaita-icon-theme hicolor-icon-theme libXtst at-spi2-atk at-spi2-core dbus gtk+3 libepoxy libSM libICE bigreqsproto compositeproto damageproto dmxproto dri2proto dri3proto fixesproto fontcacheproto fontsproto glproto inputproto kbproto presentproto printproto randrproto recordproto renderproto resourceproto scrnsaverproto videoproto xcb-proto xcmiscproto xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86miscproto xf86vidmodeproto xineramaproto xproto cairo fontconfig freetype gdk-pixbuf2 libX11 libXau libXcomposite libXcursor libXdamage libXdmcp libXext libXfixes libXi libXinerama libXrandr libXrender libpng libxcb pixman harfbuzz polkit slapt-src libffi" | |
S150_MIN_PKGS="aaa_base aaa_glibc-solibs aaa_libraries aaa_terminfo bash findutils grep coreutils etc bin gzip openssl-solibs pkgtools sed tar util-linux xz pcre2 curl gawk libcap libpsl nghttp2 libunistring libgcrypt sqlite icu4c e2fsprogs brotli perl ca-certificates zstd libnsl libtirpc krb5 keyutils openssl slapt-get" | |
S150_SMALL_PKGS="bzip2 lbzip2 cpio devs vim lzlib wget ncurses readline mpfr net-tools iproute2 iputils ntp openssh pcre time libcgroup tree less slapt-src procps-ng which file dialog hostname" | |
S150_DEV_PKGS="gcc gcc-g++ gc guile make autoconf git glibc kernel-headers autoconf automake libtool m4 gettext-tools pkg-config intltool atk glib2 gtk+2 pango zlib mesa libdrm libXxf86vm expat libxshmfence fribidi graphite2 libpthread-stubs xorgproto shared-mime-info graphite2 fribidi libmpc flex bison libxml2 python3 libglvnd font-misc-misc binutils texinfo adwaita-icon-theme hicolor-icon-theme libXtst at-spi2-atk at-spi2-core dbus gtk+3 libepoxy wayland wayland-protocols libxkbcommon check zstd libpng libXft liberation-fonts-ttf libcanberra gamin libvorbis libogg elogind openssl patch diffutils utempter gettext gslapt glibc-i18n meson ninja libffi dbus-glib" | |
# NOTE: slapt-get/gslapt deps omitted... might include: cyrus-sasl gpgme libgpg-error libassuan gnupg2 | |
SLAPT_DEPS="atk at-spi2-atk at-spi2-core brotli bzip2 cairo curl cyrus-sasl dbus e2fsprogs elogind fontconfig freetype fribidi gdk-pixbuf2 glib2 gnupg2 gpgme graphite2 gtk+3 harfbuzz keyutils krb5 libassuan libcap libepoxy libffi libglvnd libgpg-error libidn2 libnotify libnsl libpng libpsl libssh2 libtirpc libunistring libX11 libXau libxcb libXcomposite libXcursor libXdamage libXdmcp libXext libXfixes libXi libXinerama libxkbcommon libxml2 libXrandr libXrender nghttp2 openldap openssl openssl-solibs pango pcre pixman pkgtools polkit util-linux wayland xz zlib zstd" | |
function dobuild() { | |
set -ex | |
slackrel=${1:-slackware-15.0} | |
imgtype=${2:-minimal} | |
rm -rf $ROOT | |
mkdir -p ${ROOT}/etc/slapt-get | |
mkdir -p ${ROOT}/var/lib/pkgtools/packages | |
echo "WORKINGDIR=${ROOT}/var/cache/slapt-get" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
case "$slackrel" in | |
slackware64-15.0) | |
echo "SOURCE=https://storage.googleapis.com/slackpacks.jaos.org/slackware64-15.0/:OFFICIAL" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
echo "SOURCE=http://slackware.uk/slackware/slackware64-current/:OFFICIAL" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
;; | |
slackware-15.0) | |
echo "SOURCE=https://storage.googleapis.com/slackpacks.jaos.org/slackware-15.0/:OFFICIAL" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
echo "SOURCE=http://slackware.uk/slackware/slackware-current/:OFFICIAL" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
;; | |
slackwarearm-15.0) | |
echo "SOURCE=https://storage.googleapis.com/slackpacks.jaos.org/slackwarearm-15.0/:OFFICIAL" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
echo "SOURCE=http://slackware.uk/slackwarearm/slackwarearm-current/:OFFICIAL" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
;; | |
slarm64-15.0) | |
echo "#SOURCE=http://dl.fail.pp.ua/slackware/slarm64-current/:OFFICIAL" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
echo "SOURCE=https://slackware.uk/slarm64/slarm64-current/:OFFICIAL" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
echo "SOURCE=https://storage.googleapis.com/slackpacks.jaos.org/slarm64-15.0/:OFFICIAL" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
;; | |
slackware64-14.2) | |
echo "SOURCE=https://storage.googleapis.com/slackpacks.jaos.org/slackware64-14.2/:OFFICIAL" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
echo "SOURCE=http://slackware.uk/slackware/slackware64-14.2/:OFFICIAL" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
;; | |
slackware-14.2) | |
echo "SOURCE=https://storage.googleapis.com/slackpacks.jaos.org/slackware-14.2/:OFFICIAL" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
echo "SOURCE=http://slackware.uk/slackware/slackware-14.2/:OFFICIAL" >> ${ROOT}/etc/slapt-get/slapt-getrc | |
;; | |
*) | |
echo "Invalid slackware release ${slackrel}" | |
exit 1 | |
;; | |
esac | |
CLEANUP= | |
case "${slackrel}" in | |
*-15.0) | |
MIN_PKGS=${S150_MIN_PKGS} | |
SMALL_PKGS=${S150_SMALL_PKGS} | |
DEV_PKGS=${S150_DEV_PKGS} | |
;; | |
*-14.2) | |
MIN_PKGS=${S142_MIN_PKGS} | |
SMALL_PKGS=${S142_SMALL_PKGS} | |
DEV_PKGS=${S142_DEV_PKGS} | |
;; | |
esac | |
case "$imgtype" in | |
min*) | |
ROOT=${ROOT} slapt-get -c ${ROOT}/etc/slapt-get/slapt-getrc --update | |
ROOT=${ROOT} slapt-get -c ${ROOT}/etc/slapt-get/slapt-getrc --install ${MIN_PKGS} | |
CLEANUP="binutils perl openssl" | |
;; | |
small) | |
ROOT=${ROOT} slapt-get -c ${ROOT}/etc/slapt-get/slapt-getrc --update | |
ROOT=${ROOT} slapt-get -c ${ROOT}/etc/slapt-get/slapt-getrc --install ${MIN_PKGS} ${SMALL_PKGS} | |
CLEANUP="binutils openssl" | |
;; | |
dev) | |
ROOT=${ROOT} slapt-get -c ${ROOT}/etc/slapt-get/slapt-getrc --update | |
ROOT=${ROOT} slapt-get -c ${ROOT}/etc/slapt-get/slapt-getrc --install ${MIN_PKGS} ${SMALL_PKGS} ${DEV_PKGS} | |
pushd $ROOT/srv && for r in slapt-get slapt-src gslapt cpan2tgz slapt-update-service;do git clone "https://software.jaos.org/git/${r}" || true;done; popd | |
;; | |
*) | |
echo "Invalid slackware image type ${imgtype}" | |
exit 1 | |
;; | |
esac | |
if [ -d $ROOT/lib64 ]; then | |
if [ ! -e $ROOT/lib64/libdl.so.2 ]; then pushd $ROOT/lib64; ln -s libdl-*.so libdl.so.2 ;popd;fi | |
if [ ! -e $ROOT/lib64/libc.so.6 ]; then pushd $ROOT/lib64; ln -s libc-*.so libc.so.6; popd;fi | |
else | |
if [ ! -e $ROOT/lib/libdl.so.2 ]; then pushd $ROOT/lib; ln -s libdl-*.so libdl.so.2 ;popd;fi | |
if [ ! -e $ROOT/lib/libc.so.6 ]; then pushd $ROOT/lib; ln -s libc-*.so libc.so.6; popd;fi | |
fi | |
chroot $ROOT ldconfig | |
chroot $ROOT /bin/bash -c "LANG=C /usr/sbin/update-ca-certificates" || true | |
chroot $ROOT /bin/bash -c "cd /etc/ssl/certs; LANG=C /usr/bin/perl /usr/bin/c_rehash . " || true | |
chroot $ROOT /bin/bash -c "/usr/bin/update-mime-database /usr/share/mime" || true | |
#chroot $ROOT /bin/bash -c "/usr/bin/gdk-pixbuf-query-loaders \$(dirname \$(find /usr/lib/gdk-pixbuf* /usr/lib64/gdk-pixbuf* -type d -name loaders 2>/dev/null))/loaders.cache" || true | |
chroot $ROOT /bin/bash -c "/usr/bin/gdk-pixbuf-query-loaders \$(pkg-config --variable=gdk_pixbuf_moduledir gdk-pixbuf-2.0).cache" || true | |
#echo "update-mime-database /usr/share/mime 2>/dev/null || true" >> ${ROOT}/etc/profile.d/jaos.sh | |
#echo "gdk-pixbuf-query-loaders 2>/dev/null > \$(dirname \$(find /usr/lib/gdk-pixbuf* /usr/lib64/gdk-pixbuf* -type d -name loaders 2>/dev/null))/loaders.cache || true" >> ${ROOT}/etc/profile.d/jaos.sh | |
#chmod +x ${ROOT}/etc/profile.d/jaos.sh | |
if [[ ${CLEANUP} ]]; then | |
ROOT=${ROOT} slapt-get -c ${ROOT}/etc/slapt-get/slapt-getrc --remove --no-dep -y ${CLEANUP} &>/dev/null | |
fi | |
sed -i -re "s|$ROOT||" ${ROOT}/etc/slapt-get/slapt-getrc | |
rm -rf ${ROOT}/var/cache/slapt-get | |
pushd ${ROOT}/root && ln -s ../etc/profile .bashrc; popd | |
echo 'echo "To get started, run: slapt-get --add-keys && slapt-get --update"' > ${ROOT}/etc/profile.d/getstarted.sh | |
chmod +x ${ROOT}/etc/profile.d/getstarted.sh | |
pushd ${ROOT} && tar cf $OUT/${slackrel}-${imgtype}.tar *; popd | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment