X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=.gitlab-ci%2Fcreate-rootfs.sh;h=fdb1f587f367bed91e8fb9f43cb2a95ead4b9498;hb=HEAD;hp=b11a774c0210a8bed3063275ca0b45104a76fb30;hpb=257415863b8431214f9eefa47df910053007c053;p=mesa.git diff --git a/.gitlab-ci/create-rootfs.sh b/.gitlab-ci/create-rootfs.sh index b11a774c021..fdb1f587f36 100644 --- a/.gitlab-ci/create-rootfs.sh +++ b/.gitlab-ci/create-rootfs.sh @@ -2,14 +2,53 @@ set -ex +if [ $DEBIAN_ARCH = arm64 ]; then + ARCH_PACKAGES="firmware-qcom-media" +elif [ $DEBIAN_ARCH = amd64 ]; then + # Upstream LLVM package repository + apt-get -y install --no-install-recommends gnupg ca-certificates + apt-key add /llvm-snapshot.gpg.key + echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/sources.list.d/llvm9.list + apt-get update + + ARCH_PACKAGES="libelf1 + libllvm9 + libxcb-dri2-0 + libxcb-dri3-0 + libxcb-present0 + libxcb-sync1 + libxcb-xfixes0 + libxshmfence1 + firmware-amd-graphics + " +fi + apt-get -y install --no-install-recommends \ + ca-certificates \ + curl \ initramfs-tools \ libpng16-16 \ strace \ libsensors5 \ libexpat1 \ - libdrm2 \ - libdrm-nouveau2 \ + libx11-6 \ + libx11-xcb1 \ + $ARCH_PACKAGES \ + netcat-openbsd \ + python3 \ + libpython3.7 \ + python3-pil \ + python3-pytest \ + python3-requests \ + python3-yaml \ + sntp \ + wget \ + xz-utils + +if [ -n "$INCLUDE_VK_CTS" ]; then + apt-get install -y libvulkan1 +fi + passwd root -d chsh -s /bin/sh @@ -20,17 +59,28 @@ exec sh EOF chmod +x /init +mkdir -p /lib/firmware/rtl_nic +wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/rtl_nic/rtl8153a-3.fw -O /lib/firmware/rtl_nic/rtl8153a-3.fw + ####################################################################### # Strip the image to a small minimal system without removing the debian # toolchain. +# xz compress firmware so it doesn't waste RAM at runtime. Except db820c's +# GPU firmware, due to using a precompiled kernel without compression support. +find /lib/firmware -type f -print0 | \ + grep -vz a530 | \ + xargs -0r -P4 -n4 xz -T1 -C crc32 +ln -s /lib/firmware/qcom/a530* /lib/firmware/ + # Copy timezone file and remove tzdata package rm -rf /etc/localtime cp /usr/share/zoneinfo/Etc/UTC /etc/localtime UNNEEDED_PACKAGES="libfdisk1 tzdata - diffutils" + diffutils + gnupg" export DEBIAN_FRONTEND=noninteractive @@ -52,6 +102,7 @@ rm -rf /var/log/* # Dropping documentation, localization, i18n files, etc rm -rf /usr/share/doc/* rm -rf /usr/share/locale/* +rm -rf /usr/share/X11/locale/* rm -rf /usr/share/man rm -rf /usr/share/i18n/* rm -rf /usr/share/info/* @@ -81,8 +132,8 @@ rm -rf usr/share/misc/usb.ids # IMPORTANT: The Debian system is not longer functional at this point, # for example, apt and dpkg will stop working -UNNEEDED_PACKAGES="apt libapt-pkg5.0 "\ -"ncurses-bin ncurses-base libncursesw5 libncurses5 "\ +UNNEEDED_PACKAGES="apt libapt-pkg6.0 "\ +"ncurses-bin ncurses-base libncursesw6 libncurses6 "\ "perl-base "\ "debconf libdebconfclient0 "\ "e2fsprogs e2fslibs libfdisk1 "\ @@ -91,14 +142,23 @@ UNNEEDED_PACKAGES="apt libapt-pkg5.0 "\ "init-system-helpers "\ "bash "\ "cpio "\ +"xz-utils "\ "passwd "\ "libsemanage1 libsemanage-common "\ "libsepol1 "\ -"gzip "\ "gpgv "\ "hostname "\ "adduser "\ "debian-archive-keyring "\ +"libegl1-mesa-dev "\ +"libegl-mesa0 "\ +"libgl1-mesa-dev "\ +"libgl1-mesa-dri "\ +"libglapi-mesa "\ +"libgles2-mesa-dev "\ +"libglx-mesa0 "\ +"mesa-common-dev "\ +"libz3-4 "\ # Removing unneeded packages for PACKAGE in ${UNNEEDED_PACKAGES} @@ -152,10 +212,10 @@ rm -rf usr/lib/xtables rm -rf usr/lib/locale/* # partition helpers -rm usr/sbin/*fdisk +rm -rf usr/sbin/*fdisk # local compiler -rm usr/bin/localedef +rm -rf usr/bin/localedef # Systemd dns resolver find usr etc -name '*systemd-resolve*' -prune -exec rm -r {} \; @@ -176,18 +236,16 @@ find usr etc -name '*fuse*' -prune -exec rm -r {} \; rm -rf usr/lib/lsb # Only needed when adding libraries -rm usr/sbin/ldconfig* +rm -rf usr/sbin/ldconfig* # Games, unused rmdir usr/games # Remove pam module to authenticate against a DB # plus libdb-5.3.so that is only used by this pam module -rm usr/lib/*/security/pam_userdb.so -rm usr/lib/*/libdb-5.3.so +rm -rf usr/lib/*/security/pam_userdb.so +rm -rf usr/lib/*/libdb-5.3.so # remove NSS support for nis, nisplus and hesiod -rm usr/lib/*/libnss_hesiod* -rm usr/lib/*/libnss_nis* - -rm bin/tar +rm -rf usr/lib/*/libnss_hesiod* +rm -rf usr/lib/*/libnss_nis*