From c99479d87e0e03ff2ed4098be7d2ffced425d92c Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 22 May 2023 13:51:12 +0200 Subject: [PATCH 1/8] Aarch sysroot [CLARM-13] --- .github/workflows/aarch64-sysroot.yaml | 31 ++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/aarch64-sysroot.yaml diff --git a/.github/workflows/aarch64-sysroot.yaml b/.github/workflows/aarch64-sysroot.yaml new file mode 100644 index 0000000..44632f3 --- /dev/null +++ b/.github/workflows/aarch64-sysroot.yaml @@ -0,0 +1,31 @@ +--- +name: aarch64 sysroot +on: + pull_request: + paths: + - .github/workflows/aarch64-sysroot.yaml + push: + tags: + - "aarch-sysroot-*" + +jobs: + toolchains: + runs-on: ubuntu-22.04 + name: aarch64 sysroot + steps: + - name: Download & adjust script + run: | + wget -c https://chromium.googlesource.com/chromium/src/+archive/main/build/linux/sysroot_scripts.tar.gz -O - | tar -xz + sed -s -i 's|local chrome_dir=$(cd "${SCRIPT_DIR}/../../.." && pwd)|local chrome_dir=.|' sysroot-creator.sh + + - name: Create sysroot + run: ./sysroot-creator.sh + + - name: Upload sysroot + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + uses: svenstaro/upload-release-action@v1-release + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: "out/sysroot-build/bullseye/debian_bullseye_arm64_sysroot.tar.xz" + tag: ${{ github.ref }} + overwrite: true From 6f6d9852ea234cd7dd7770c1208f2a816daaeff9 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 22 May 2023 13:56:13 +0200 Subject: [PATCH 2/8] Add arch --- .github/workflows/aarch64-sysroot.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/aarch64-sysroot.yaml b/.github/workflows/aarch64-sysroot.yaml index 44632f3..83108ca 100644 --- a/.github/workflows/aarch64-sysroot.yaml +++ b/.github/workflows/aarch64-sysroot.yaml @@ -19,7 +19,7 @@ jobs: sed -s -i 's|local chrome_dir=$(cd "${SCRIPT_DIR}/../../.." && pwd)|local chrome_dir=.|' sysroot-creator.sh - name: Create sysroot - run: ./sysroot-creator.sh + run: ./sysroot-creator.sh arm64 - name: Upload sysroot if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') From 50a47d60ced08adf07b449dea5b311cd8658f3ab Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Mon, 22 May 2023 13:58:03 +0200 Subject: [PATCH 3/8] Fix --- .github/workflows/aarch64-sysroot.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/aarch64-sysroot.yaml b/.github/workflows/aarch64-sysroot.yaml index 83108ca..f073ca4 100644 --- a/.github/workflows/aarch64-sysroot.yaml +++ b/.github/workflows/aarch64-sysroot.yaml @@ -19,7 +19,7 @@ jobs: sed -s -i 's|local chrome_dir=$(cd "${SCRIPT_DIR}/../../.." && pwd)|local chrome_dir=.|' sysroot-creator.sh - name: Create sysroot - run: ./sysroot-creator.sh arm64 + run: ./sysroot-creator.sh build arm64 - name: Upload sysroot if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') From 9b4212aa9b0b16eab6a91fccd1422f380cd647e9 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 23 May 2023 13:39:30 +0200 Subject: [PATCH 4/8] Add sysroot-creator.sh script --- .github/workflows/aarch64-sysroot.yaml | 18 +- .../generated_package_lists/bullseye.arm64 | 8 + aarch64-sysroot/keyring.gpg | Bin 0 -> 94381 bytes aarch64-sysroot/merge-package-lists.py | 34 + aarch64-sysroot/sysroot-creator.sh | 623 ++++++++++++++++++ 5 files changed, 676 insertions(+), 7 deletions(-) create mode 100644 aarch64-sysroot/generated_package_lists/bullseye.arm64 create mode 100644 aarch64-sysroot/keyring.gpg create mode 100755 aarch64-sysroot/merge-package-lists.py create mode 100755 aarch64-sysroot/sysroot-creator.sh diff --git a/.github/workflows/aarch64-sysroot.yaml b/.github/workflows/aarch64-sysroot.yaml index f073ca4..b708040 100644 --- a/.github/workflows/aarch64-sysroot.yaml +++ b/.github/workflows/aarch64-sysroot.yaml @@ -3,29 +3,33 @@ name: aarch64 sysroot on: pull_request: paths: + - "aarch64-sysroot/**" - .github/workflows/aarch64-sysroot.yaml push: tags: - - "aarch-sysroot-*" + - "aarch64-sysroot-*" jobs: toolchains: runs-on: ubuntu-22.04 name: aarch64 sysroot steps: - - name: Download & adjust script - run: | - wget -c https://chromium.googlesource.com/chromium/src/+archive/main/build/linux/sysroot_scripts.tar.gz -O - | tar -xz - sed -s -i 's|local chrome_dir=$(cd "${SCRIPT_DIR}/../../.." && pwd)|local chrome_dir=.|' sysroot-creator.sh + - name: Checkout source + uses: actions/checkout@v2 - name: Create sysroot - run: ./sysroot-creator.sh build arm64 + run: ./aarch64-sysroot/sysroot-creator.sh build arm64 + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + path: aarch64-sysroot/out/sysroot-build/bullseye/debian_bullseye_arm64_sysroot.tar.xz - name: Upload sysroot if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') uses: svenstaro/upload-release-action@v1-release with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: "out/sysroot-build/bullseye/debian_bullseye_arm64_sysroot.tar.xz" + file: "aarch64-sysroot/out/sysroot-build/bullseye/debian_bullseye_arm64_sysroot.tar.xz" tag: ${{ github.ref }} overwrite: true diff --git a/aarch64-sysroot/generated_package_lists/bullseye.arm64 b/aarch64-sysroot/generated_package_lists/bullseye.arm64 new file mode 100644 index 0000000..ebe6feb --- /dev/null +++ b/aarch64-sysroot/generated_package_lists/bullseye.arm64 @@ -0,0 +1,8 @@ +https://snapshot.debian.org/archive/debian/20230329T085712Z/pool/main/g/gcc-10/libgcc-10-dev_10.2.1-6_arm64.deb +https://snapshot.debian.org/archive/debian/20230329T085712Z/pool/main/g/gcc-10/libgcc-s1_10.2.1-6_arm64.deb +https://snapshot.debian.org/archive/debian/20230329T085712Z/pool/main/g/gcc-10/libstdc++-10-dev_10.2.1-6_arm64.deb +https://snapshot.debian.org/archive/debian/20230329T085712Z/pool/main/g/gcc-10/libstdc++6_10.2.1-6_arm64.deb +https://snapshot.debian.org/archive/debian/20230329T085712Z/pool/main/g/glibc/libc6_2.31-13+deb11u5_arm64.deb +https://snapshot.debian.org/archive/debian/20230329T085712Z/pool/main/g/glibc/libc6-dev_2.31-13+deb11u5_arm64.deb +https://snapshot.debian.org/archive/debian/20230329T085712Z/pool/main/l/linux/linux-libc-dev_6.1.12-1~bpo11+1_arm64.deb +https://snapshot.debian.org/archive/debian/20230329T085712Z/pool/main/u/util-linux/uuid-dev_2.36.1-8+deb11u1_arm64.deb diff --git a/aarch64-sysroot/keyring.gpg b/aarch64-sysroot/keyring.gpg new file mode 100644 index 0000000000000000000000000000000000000000..81e2624c5f3845a1642d9379bf47ed2221a291a4 GIT binary patch literal 94381 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

^@JshjYRDQ8~aK!RNCANDOKnV(a5JM&{>{; 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 P4WwqbAxNZ&`o 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 Fe*lF0>74)o literal 0 HcmV?d00001 diff --git a/aarch64-sysroot/merge-package-lists.py b/aarch64-sysroot/merge-package-lists.py new file mode 100755 index 0000000..e2a5a63 --- /dev/null +++ b/aarch64-sysroot/merge-package-lists.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 +# Copyright 2016 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""Merge package entries from different package lists. +""" + +# This is used for replacing packages in eg. bullseye with those in bookworm. +# The updated packages are ABI compatible, but include security patches, so we +# should use those instead in our sysroots. + +import sys + +if len(sys.argv) != 2: + exit(1) + +packages = {} + +def AddPackagesFromFile(file): + global packages + lines = file.readlines() + if len(lines) % 3 != 0: + exit(1) + for i in range(0, len(lines), 3): + packages[lines[i]] = (lines[i + 1], lines[i + 2]) + +AddPackagesFromFile(open(sys.argv[1], 'r')) +AddPackagesFromFile(sys.stdin) + +output_file = open(sys.argv[1], 'w') + +for (package, (filename, sha256)) in packages.items(): + output_file.write(package + filename + sha256) diff --git a/aarch64-sysroot/sysroot-creator.sh b/aarch64-sysroot/sysroot-creator.sh new file mode 100755 index 0000000..60af2b5 --- /dev/null +++ b/aarch64-sysroot/sysroot-creator.sh @@ -0,0 +1,623 @@ +#!/bin/bash + +# Copyright 2014 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +#@ This script builds Debian sysroot images for building Google Chrome. +#@ +#@ Usage: +#@ sysroot-creator.sh {build,upload} \ +#@ {amd64,i386,armhf,arm64,armel,mipsel,mips64el} +#@ + +###################################################################### +# Config +###################################################################### + +set -o nounset +set -o errexit + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +DISTRO=debian +RELEASE=bullseye + +# This number is appended to the sysroot key to cause full rebuilds. It +# should be incremented when removing packages or patching existing packages. +# It should not be incremented when adding packages. +SYSROOT_RELEASE=1 + +ARCHIVE_TIMESTAMP=20230329T085712Z + +ARCHIVE_URL="https://snapshot.debian.org/archive/debian/$ARCHIVE_TIMESTAMP/" +APT_SOURCES_LIST=( + # Debian 12 (Bookworm) is needed for GTK4. It should be kept before bullseye + # so that bullseye takes precedence. + "${ARCHIVE_URL} bookworm main" + "${ARCHIVE_URL} bookworm-updates main" + + # Debian 9 (Stretch) is needed for gnome-keyring. It should be kept before + # bullseye so that bullseye takes precedence. + "${ARCHIVE_URL} stretch main" + "${ARCHIVE_URL} stretch-updates main" + + # This mimics a sources.list from bullseye. + "${ARCHIVE_URL} bullseye main contrib non-free" + "${ARCHIVE_URL} bullseye-updates main contrib non-free" + "${ARCHIVE_URL} bullseye-backports main contrib non-free" +) + +# gpg keyring file generated using generate_keyring.sh +KEYRING_FILE="${SCRIPT_DIR}/keyring.gpg" + +# Sysroot packages: these are the packages needed to build chrome. +DEBIAN_PACKAGES="\ + libc6 + libc6-dev + libstdc++-10-dev + libstdc++6 + linux-libc-dev + uuid-dev + libgcc-10-dev + libgcc-s1 +" + +DEBIAN_PACKAGES_AMD64=" + libasan6 + libdrm-intel1 + libitm1 + liblsan0 + libquadmath0 + libtsan0 + libubsan1 + valgrind +" + +DEBIAN_PACKAGES_I386=" + libasan6 + libdrm-intel1 + libitm1 + libquadmath0 + libubsan1 + valgrind +" + +DEBIAN_PACKAGES_ARMHF=" + libasan6 + libdrm-etnaviv1 + libdrm-exynos1 + libdrm-freedreno1 + libdrm-omap1 + libdrm-tegra0 + libubsan1 + valgrind +" + +DEBIAN_PACKAGES_ARM64=" +" + +DEBIAN_PACKAGES_ARMEL=" + libasan6 + libdrm-exynos1 + libdrm-freedreno1 + libdrm-omap1 + libdrm-tegra0 + libubsan1 +" + +DEBIAN_PACKAGES_MIPSEL=" +" + +DEBIAN_PACKAGES_MIPS64EL=" + valgrind +" + +readonly REQUIRED_TOOLS="curl xzcat" + +###################################################################### +# Package Config +###################################################################### + +readonly PACKAGES_EXT=xz +readonly RELEASE_FILE="Release" +readonly RELEASE_FILE_GPG="Release.gpg" + +###################################################################### +# Helper +###################################################################### + +Banner() { + echo "######################################################################" + echo $* + echo "######################################################################" +} + + +SubBanner() { + echo "----------------------------------------------------------------------" + echo $* + echo "----------------------------------------------------------------------" +} + + +Usage() { + egrep "^#@" "${BASH_SOURCE[0]}" | cut --bytes=3- +} + + +DownloadOrCopyNonUniqueFilename() { + # Use this function instead of DownloadOrCopy when the url uniquely + # identifies the file, but the filename (excluding the directory) + # does not. + local url="$1" + local dest="$2" + + local hash="$(echo "$url" | sha256sum | cut -d' ' -f1)" + + DownloadOrCopy "${url}" "${dest}.${hash}" + # cp the file to prevent having to redownload it, but mv it to the + # final location so that it's atomic. + cp "${dest}.${hash}" "${dest}.$$" + mv "${dest}.$$" "${dest}" +} + +DownloadOrCopy() { + if [ -f "$2" ] ; then + echo "$2 already in place" + return + fi + + HTTP=0 + echo "$1" | grep -Eqs '^https?://' && HTTP=1 + if [ "$HTTP" = "1" ]; then + SubBanner "downloading from $1 -> $2" + # Appending the "$$" shell pid is necessary here to prevent concurrent + # instances of sysroot-creator.sh from trying to write to the same file. + local temp_file="${2}.partial.$$" + # curl --retry doesn't retry when the page gives a 4XX error, so we need to + # manually rerun. + for i in {1..10}; do + # --create-dirs is added in case there are slashes in the filename, as can + # happen with the "debian/security" release class. + local http_code=$(curl -L "$1" --create-dirs -o "${temp_file}" \ + -w "%{http_code}") + if [ ${http_code} -eq 200 ]; then + break + fi + echo "Bad HTTP code ${http_code} when downloading $1" + rm -f "${temp_file}" + sleep $i + done + if [ ! -f "${temp_file}" ]; then + exit 1 + fi + mv "${temp_file}" $2 + else + SubBanner "copying from $1" + cp "$1" "$2" + fi +} + +SetEnvironmentVariables() { + case $ARCH in + amd64) + TRIPLE=x86_64-linux-gnu + DEBIAN_PACKAGES_ARCH="${DEBIAN_PACKAGES_AMD64}" + ;; + i386) + TRIPLE=i386-linux-gnu + DEBIAN_PACKAGES_ARCH="${DEBIAN_PACKAGES_I386}" + ;; + armhf) + TRIPLE=arm-linux-gnueabihf + DEBIAN_PACKAGES_ARCH="${DEBIAN_PACKAGES_ARMHF}" + ;; + arm64) + TRIPLE=aarch64-linux-gnu + DEBIAN_PACKAGES_ARCH="${DEBIAN_PACKAGES_ARM64}" + ;; + armel) + TRIPLE=arm-linux-gnueabi + DEBIAN_PACKAGES_ARCH="${DEBIAN_PACKAGES_ARMEL}" + ;; + mipsel) + TRIPLE=mipsel-linux-gnu + DEBIAN_PACKAGES_ARCH="${DEBIAN_PACKAGES_MIPSEL}" + ;; + mips64el) + TRIPLE=mips64el-linux-gnuabi64 + DEBIAN_PACKAGES_ARCH="${DEBIAN_PACKAGES_MIPS64EL}" + ;; + *) + echo "ERROR: Unsupported architecture: $ARCH" + Usage + exit 1 + ;; + esac +} + +# some sanity checks to make sure this script is run from the right place +# with the right tools +SanityCheck() { + Banner "Sanity Checks" + + local chrome_dir=. + BUILD_DIR="${chrome_dir}/out/sysroot-build/${RELEASE}" + mkdir -p ${BUILD_DIR} + echo "Using build directory: ${BUILD_DIR}" + + for tool in ${REQUIRED_TOOLS} ; do + if ! which ${tool} > /dev/null ; then + echo "Required binary $tool not found." + echo "Exiting." + exit 1 + fi + done + + # This is where the staging sysroot is. + INSTALL_ROOT="${BUILD_DIR}/${RELEASE}_${ARCH}_staging" + TARBALL="${BUILD_DIR}/${DISTRO}_${RELEASE}_${ARCH}_sysroot.tar.xz" + + if ! mkdir -p "${INSTALL_ROOT}" ; then + echo "ERROR: ${INSTALL_ROOT} can't be created." + exit 1 + fi +} + + +ChangeDirectory() { + # Change directory to where this script is. + cd ${SCRIPT_DIR} +} + + +ClearInstallDir() { + Banner "Clearing dirs in ${INSTALL_ROOT}" + rm -rf ${INSTALL_ROOT}/* +} + + +CreateTarBall() { + Banner "Creating tarball ${TARBALL}" + tar -I "xz -9 -T0" -cf ${TARBALL} -C ${INSTALL_ROOT} . +} + +ExtractPackageXz() { + local src_file="$1" + local dst_file="$2" + local repo="$3" + xzcat "${src_file}" | egrep '^(Package:|Filename:|SHA256:) ' | + sed "s|Filename: |Filename: ${repo}|" > "${dst_file}" +} + +GeneratePackageListDistRepo() { + local arch="$1" + local repo="$2" + local dist="$3" + local repo_name="$4" + + local tmp_package_list="${BUILD_DIR}/Packages.${dist}_${repo_name}_${arch}" + local repo_basedir="${repo}/dists/${dist}" + local package_list="${BUILD_DIR}/Packages.${dist}_${repo_name}_${arch}.${PACKAGES_EXT}" + local package_file_arch="${repo_name}/binary-${arch}/Packages.${PACKAGES_EXT}" + local package_list_arch="${repo_basedir}/${package_file_arch}" + + DownloadOrCopyNonUniqueFilename "${package_list_arch}" "${package_list}" + VerifyPackageListing "${package_file_arch}" "${package_list}" ${repo} ${dist} + ExtractPackageXz "${package_list}" "${tmp_package_list}" ${repo} + cat "${tmp_package_list}" | ./merge-package-lists.py "${list_base}" +} + +GeneratePackageListDist() { + local arch="$1" + set -- $2 + local repo="$1" + local dist="$2" + shift 2 + while (( "$#" )); do + GeneratePackageListDistRepo "$arch" "$repo" "$dist" "$1" + shift + done +} + +GeneratePackageList() { + local output_file="$1" + local arch="$2" + local packages="$3" + + local list_base="${BUILD_DIR}/Packages.${RELEASE}_${arch}" + > "${list_base}" # Create (or truncate) a zero-length file. + printf '%s\n' "${APT_SOURCES_LIST[@]}" | while read source; do + GeneratePackageListDist "${arch}" "${source}" + done + + GeneratePackageListImpl "${list_base}" "${output_file}" \ + "${DEBIAN_PACKAGES} ${packages}" +} + +StripChecksumsFromPackageList() { + local package_file="$1" + sed -i 's/ [a-f0-9]\{64\}$//' "$package_file" +} + +###################################################################### +# +###################################################################### + +HacksAndPatches() { + Banner "Misc Hacks & Patches" + + # Remove an unnecessary dependency on qtchooser. + # rm "${INSTALL_ROOT}/usr/lib/${TRIPLE}/qt-default/qtchooser/default.conf" + + # libxcomposite1 is missing a symbols file. + # cp "${SCRIPT_DIR}/libxcomposite1-symbols" \ + # "${INSTALL_ROOT}/debian/libxcomposite1/DEBIAN/symbols" + + # __GLIBC_MINOR__ is used as a feature test macro. Replace it with the + # earliest supported version of glibc (2.26, obtained from the oldest glibc + # version in //chrome/installer/linux/debian/dist_packag_versions.json and + # //chrome/installer/linux/rpm/dist_package_provides.json). + local usr_include="${INSTALL_ROOT}/usr/include" + # local features_h="${usr_include}/features.h" + # sed -i 's|\(#define\s\+__GLIBC_MINOR__\)|\1 26 //|' "${features_h}" + + # fcntl64() was introduced in glibc 2.28. Make sure to use fcntl() instead. + # local fcntl_h="${INSTALL_ROOT}/usr/include/fcntl.h" + # sed -i '{N; s/#ifndef __USE_FILE_OFFSET64\(\nextern int fcntl\)/#if 1\1/}' \ + # "${fcntl_h}" + + # Do not use pthread_cond_clockwait as it was introduced in glibc 2.30. + local cppconfig_h="${usr_include}/${TRIPLE}/c++/10/bits/c++config.h" + sed -i 's|\(#define\s\+_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT\)|// \1|' \ + "${cppconfig_h}" + + # This is for chrome's ./build/linux/pkg-config-wrapper + # which overwrites PKG_CONFIG_LIBDIR internally + SubBanner "Move pkgconfig scripts" + mkdir -p ${INSTALL_ROOT}/usr/lib/pkgconfig + mv ${INSTALL_ROOT}/usr/lib/${TRIPLE}/pkgconfig/* \ + ${INSTALL_ROOT}/usr/lib/pkgconfig + + # Avoid requiring unsupported glibc versions. + "${SCRIPT_DIR}/reversion_glibc.py" \ + "${INSTALL_ROOT}/lib/${TRIPLE}/libc.so.6" + "${SCRIPT_DIR}/reversion_glibc.py" \ + "${INSTALL_ROOT}/lib/${TRIPLE}/libm.so.6" + # "${SCRIPT_DIR}/reversion_glibc.py" \ + # "${INSTALL_ROOT}/lib/${TRIPLE}/libcrypt.so.1" +} + +InstallIntoSysroot() { + Banner "Install Libs And Headers Into Jail" + + mkdir -p ${BUILD_DIR}/debian-packages + # The /debian directory is an implementation detail that's used to cd into + # when running dpkg-shlibdeps. + mkdir -p ${INSTALL_ROOT}/debian + # An empty control file is necessary to run dpkg-shlibdeps. + touch ${INSTALL_ROOT}/debian/control + while (( "$#" )); do + local file="$1" + local package="${BUILD_DIR}/debian-packages/${file##*/}" + shift + local sha256sum="$1" + shift + if [ "${#sha256sum}" -ne "64" ]; then + echo "Bad sha256sum from package list" + exit 1 + fi + + Banner "Installing $(basename ${file})" + DownloadOrCopy ${file} ${package} + if [ ! -s "${package}" ] ; then + echo + echo "ERROR: bad package ${package}" + exit 1 + fi + echo "${sha256sum} ${package}" | sha256sum --quiet -c + + SubBanner "Extracting to ${INSTALL_ROOT}" + dpkg-deb -x ${package} ${INSTALL_ROOT} + + base_package=$(dpkg-deb --field ${package} Package) + mkdir -p ${INSTALL_ROOT}/debian/${base_package}/DEBIAN + dpkg-deb -e ${package} ${INSTALL_ROOT}/debian/${base_package}/DEBIAN + done + + # Prune /usr/share, leaving only pkgconfig, wayland, and wayland-protocols. + ls -d ${INSTALL_ROOT}/usr/share/* | \ + grep -v "/\(pkgconfig\|wayland\|wayland-protocols\)$" | xargs rm -r +} + + +CleanupJailSymlinks() { + Banner "Jail symlink cleanup" + + SAVEDPWD=$(pwd) + cd ${INSTALL_ROOT} + local libdirs="lib usr/lib" + if [ -d lib64 ]; then + libdirs="${libdirs} lib64" + fi + + find $libdirs -type l -printf '%p %l\n' | while read link target; do + # skip links with non-absolute paths + echo "${target}" | grep -qs ^/ || continue + echo "${link}: ${target}" + # Relativize the symlink. + prefix=$(echo "${link}" | sed -e 's/[^/]//g' | sed -e 's|/|../|g') + ln -snfv "${prefix}${target}" "${link}" + done + + failed=0 + while read link target; do + # Make sure we catch new bad links. + if [ ! -r "${link}" ]; then + echo "ERROR: FOUND BAD LINK ${link}" + ls -l ${link} + failed=1 + fi + done < <(find $libdirs -type l -printf '%p %l\n') + if [ $failed -eq 1 ]; then + exit 1 + fi + cd "$SAVEDPWD" +} + + +VerifyLibraryDeps() { + local find_dirs=( + "${INSTALL_ROOT}/lib/" + "${INSTALL_ROOT}/lib/${TRIPLE}/" + "${INSTALL_ROOT}/usr/lib/${TRIPLE}/" + ) + local needed_libs="$( + find ${find_dirs[*]} -name "*\.so*" -type f -exec file {} \; | \ + grep ': ELF' | sed 's/^\(.*\): .*$/\1/' | xargs readelf -d | \ + grep NEEDED | sort | uniq | sed 's/^.*Shared library: \[\(.*\)\]$/\1/g')" + local all_libs="$(find ${find_dirs[*]} -printf '%f\n')" + # Ignore missing libdbus-1.so.0 + all_libs+="$(echo -e '\nlibdbus-1.so.0')" + local missing_libs="$(grep -vFxf <(echo "${all_libs}") \ + <(echo "${needed_libs}"))" + if [ ! -z "${missing_libs}" ]; then + echo "Missing libraries:" + echo "${missing_libs}" + exit 1 + fi +} + +BuildSysroot() { + ClearInstallDir + local package_file="generated_package_lists/${RELEASE}.${ARCH}" + GeneratePackageList "${package_file}" $ARCH "${DEBIAN_PACKAGES_ARCH}" + local files_and_sha256sums="$(cat ${package_file})" + StripChecksumsFromPackageList "$package_file" + InstallIntoSysroot ${files_and_sha256sums} + # HacksAndPatches + # CleanupJailSymlinks + # VerifyLibraryDeps + CreateTarBall +} + +UploadSysroot() { + local sha=$(sha1sum "${TARBALL}" | awk '{print $1;}') + set -x + gsutil.py cp -a public-read "${TARBALL}" \ + "gs://chrome-linux-sysroot/toolchain/$sha/" + set +x +} + +# +# CheckForDebianGPGKeyring +# +# Make sure the Debian GPG keys exist. Otherwise print a helpful message. +# +CheckForDebianGPGKeyring() { + if [ ! -e "$KEYRING_FILE" ]; then + echo "KEYRING_FILE not found: ${KEYRING_FILE}" + echo "Debian GPG keys missing. Install the debian-archive-keyring package." + exit 1 + fi +} + +# +# VerifyPackageListing +# +# Verifies the downloaded Packages.xz file has the right checksums. +# +VerifyPackageListing() { + local file_path="$1" + local output_file="$2" + local repo="$3" + local dist="$4" + + local repo_basedir="${repo}/dists/${dist}" + local release_list="${repo_basedir}/${RELEASE_FILE}" + local release_list_gpg="${repo_basedir}/${RELEASE_FILE_GPG}" + + local release_file="${BUILD_DIR}/${dist}-${RELEASE_FILE}" + local release_file_gpg="${BUILD_DIR}/${dist}-${RELEASE_FILE_GPG}" + + CheckForDebianGPGKeyring + + DownloadOrCopyNonUniqueFilename ${release_list} ${release_file} + DownloadOrCopyNonUniqueFilename ${release_list_gpg} ${release_file_gpg} + echo "Verifying: ${release_file} with ${release_file_gpg}" + set -x + gpgv --keyring "${KEYRING_FILE}" "${release_file_gpg}" "${release_file}" + set +x + + echo "Verifying: ${output_file}" + local sha256sum=$(grep -E "${file_path}\$|:\$" "${release_file}" | \ + grep "SHA256:" -A 1 | xargs echo | awk '{print $2;}') + + if [ "${#sha256sum}" -ne "64" ]; then + echo "Bad sha256sum from ${release_list}" + exit 1 + fi + + echo "${sha256sum} ${output_file}" | sha256sum --quiet -c +} + +# +# GeneratePackageListImpl +# +# Looks up package names in ${BUILD_DIR}/Packages and write list of URLs +# to output file. +# +GeneratePackageListImpl() { + local input_file="$1" + local output_file="$2" + echo "Updating: ${output_file} from ${input_file}" + /bin/rm -f "${output_file}" + shift + shift + local failed=0 + for pkg in $@ ; do + local pkg_full=$(grep -A 1 " ${pkg}\$" "$input_file" | \ + egrep "pool/.*" | sed 's/.*Filename: //') + if [ -z "${pkg_full}" ]; then + echo "ERROR: missing package: $pkg" + local failed=1 + else + local sha256sum=$(grep -A 4 " ${pkg}\$" "$input_file" | \ + grep ^SHA256: | sed 's/^SHA256: //') + if [ "${#sha256sum}" -ne "64" ]; then + echo "Bad sha256sum from Packages" + local failed=1 + fi + echo $pkg_full $sha256sum >> "$output_file" + fi + done + if [ $failed -eq 1 ]; then + exit 1 + fi + # sort -o does an in-place sort of this file + sort "$output_file" -o "$output_file" +} + +if [ $# -ne 2 ]; then + Usage + exit 1 +else + ChangeDirectory + ARCH=$2 + SetEnvironmentVariables + SanityCheck + case "$1" in + build) + BuildSysroot + ;; + upload) + UploadSysroot + ;; + *) + echo "ERROR: Invalid command: $1" + Usage + exit 1 + ;; + esac +fi From 02c30172599b6e955b0743ff52c74420b28c25e4 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 23 May 2023 13:51:46 +0200 Subject: [PATCH 5/8] Fix --- .github/workflows/aarch64-sysroot.yaml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/aarch64-sysroot.yaml b/.github/workflows/aarch64-sysroot.yaml index b708040..cbc5797 100644 --- a/.github/workflows/aarch64-sysroot.yaml +++ b/.github/workflows/aarch64-sysroot.yaml @@ -20,11 +20,6 @@ jobs: - name: Create sysroot run: ./aarch64-sysroot/sysroot-creator.sh build arm64 - - name: Upload artifact - uses: actions/upload-artifact@v3 - with: - path: aarch64-sysroot/out/sysroot-build/bullseye/debian_bullseye_arm64_sysroot.tar.xz - - name: Upload sysroot if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') uses: svenstaro/upload-release-action@v1-release @@ -32,4 +27,5 @@ jobs: repo_token: ${{ secrets.GITHUB_TOKEN }} file: "aarch64-sysroot/out/sysroot-build/bullseye/debian_bullseye_arm64_sysroot.tar.xz" tag: ${{ github.ref }} + asset_name: debian_bullseye_arm64_sysroot.tar.xz overwrite: true From a9e63e242de04cca15fbd99cd4f5175bea3ec3fe Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 23 May 2023 19:44:23 +0200 Subject: [PATCH 6/8] Rename --- .github/workflows/aarch64-sysroot.yaml | 12 ++++++------ .../generated_package_lists/bullseye.arm64 | 0 {aarch64-sysroot => sysroot}/keyring.gpg | Bin {aarch64-sysroot => sysroot}/merge-package-lists.py | 0 {aarch64-sysroot => sysroot}/sysroot-creator.sh | 0 5 files changed, 6 insertions(+), 6 deletions(-) rename {aarch64-sysroot => sysroot}/generated_package_lists/bullseye.arm64 (100%) rename {aarch64-sysroot => sysroot}/keyring.gpg (100%) rename {aarch64-sysroot => sysroot}/merge-package-lists.py (100%) rename {aarch64-sysroot => sysroot}/sysroot-creator.sh (100%) diff --git a/.github/workflows/aarch64-sysroot.yaml b/.github/workflows/aarch64-sysroot.yaml index cbc5797..0c15fa6 100644 --- a/.github/workflows/aarch64-sysroot.yaml +++ b/.github/workflows/aarch64-sysroot.yaml @@ -1,9 +1,9 @@ --- -name: aarch64 sysroot +name: bullseye-aarch64 sysroot on: pull_request: paths: - - "aarch64-sysroot/**" + - "sysroot/**" - .github/workflows/aarch64-sysroot.yaml push: tags: @@ -12,20 +12,20 @@ on: jobs: toolchains: runs-on: ubuntu-22.04 - name: aarch64 sysroot + name: bullseye-aarch64 sysroot steps: - name: Checkout source uses: actions/checkout@v2 - name: Create sysroot - run: ./aarch64-sysroot/sysroot-creator.sh build arm64 + run: ./sysroot/sysroot-creator.sh build arm64 - name: Upload sysroot if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') uses: svenstaro/upload-release-action@v1-release with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: "aarch64-sysroot/out/sysroot-build/bullseye/debian_bullseye_arm64_sysroot.tar.xz" + file: "sysroot/out/sysroot-build/bullseye/debian_bullseye_arm64_sysroot.tar.xz" tag: ${{ github.ref }} - asset_name: debian_bullseye_arm64_sysroot.tar.xz + asset_name: debian_bullseye_aarch64_sysroot.tar.xz overwrite: true diff --git a/aarch64-sysroot/generated_package_lists/bullseye.arm64 b/sysroot/generated_package_lists/bullseye.arm64 similarity index 100% rename from aarch64-sysroot/generated_package_lists/bullseye.arm64 rename to sysroot/generated_package_lists/bullseye.arm64 diff --git a/aarch64-sysroot/keyring.gpg b/sysroot/keyring.gpg similarity index 100% rename from aarch64-sysroot/keyring.gpg rename to sysroot/keyring.gpg diff --git a/aarch64-sysroot/merge-package-lists.py b/sysroot/merge-package-lists.py similarity index 100% rename from aarch64-sysroot/merge-package-lists.py rename to sysroot/merge-package-lists.py diff --git a/aarch64-sysroot/sysroot-creator.sh b/sysroot/sysroot-creator.sh similarity index 100% rename from aarch64-sysroot/sysroot-creator.sh rename to sysroot/sysroot-creator.sh From 738b34e06174796f5de3995017748561e0d52ffb Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 23 May 2023 19:58:23 +0200 Subject: [PATCH 7/8] Rename --- .github/workflows/aarch64-sysroot.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/aarch64-sysroot.yaml b/.github/workflows/aarch64-sysroot.yaml index 0c15fa6..22890d4 100644 --- a/.github/workflows/aarch64-sysroot.yaml +++ b/.github/workflows/aarch64-sysroot.yaml @@ -7,7 +7,7 @@ on: - .github/workflows/aarch64-sysroot.yaml push: tags: - - "aarch64-sysroot-*" + - "bullseye-aarch64-sysroot-*" jobs: toolchains: From cadef8dccfcf66f988a62b27f5c2659841e923f7 Mon Sep 17 00:00:00 2001 From: Krzysztof Naglik Date: Tue, 23 May 2023 20:02:42 +0200 Subject: [PATCH 8/8] Rename --- .../{aarch64-sysroot.yaml => bullseye-aarch64-sysroot.yaml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{aarch64-sysroot.yaml => bullseye-aarch64-sysroot.yaml} (93%) diff --git a/.github/workflows/aarch64-sysroot.yaml b/.github/workflows/bullseye-aarch64-sysroot.yaml similarity index 93% rename from .github/workflows/aarch64-sysroot.yaml rename to .github/workflows/bullseye-aarch64-sysroot.yaml index 22890d4..844cc37 100644 --- a/.github/workflows/aarch64-sysroot.yaml +++ b/.github/workflows/bullseye-aarch64-sysroot.yaml @@ -4,7 +4,7 @@ on: pull_request: paths: - "sysroot/**" - - .github/workflows/aarch64-sysroot.yaml + - .github/workflows/bullseye-aarch64-sysroot.yaml push: tags: - "bullseye-aarch64-sysroot-*"