diff --git a/.github/workflows/amd64-linux.yml b/.github/workflows/amd64-linux.yml new file mode 100644 index 0000000..307c131 --- /dev/null +++ b/.github/workflows/amd64-linux.yml @@ -0,0 +1,22 @@ +name: release-amd64-linux + +on: [push] +#on: +# push: +# tags: +# - "v*.*.*" + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Build + run: NAME="debian_bullseye_amd64_sysroot" LIB_ARCH="x86_64" URL="https://commondatastorage.googleapis.com/chrome-linux-sysroot/toolchain/f5f68713249b52b35db9e08f67184cac392369ab/debian_bullseye_amd64_sysroot.tar.xz" ./build.sh + + - name: Release artifact + uses: softprops/action-gh-release@v1 + with: + files: debian_bullseye_amd64_sysroot.tar.xz diff --git a/.github/workflows/arm64-linux.yml b/.github/workflows/arm64-linux.yml new file mode 100644 index 0000000..409ae90 --- /dev/null +++ b/.github/workflows/arm64-linux.yml @@ -0,0 +1,22 @@ +name: release-arm64-linux + +on: [push] +#on: +# push: +# tags: +# - "v*.*.*" + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Build + run: NAME="debian_bullseye_arm64_sysroot" LIB_ARCH="aarch64" URL="https://commondatastorage.googleapis.com/chrome-linux-sysroot/toolchain/80fc74e431f37f590d0c85f16a9d8709088929e8/debian_bullseye_arm64_sysroot.tar.xz" ./build.sh + + - name: Release artifact + uses: softprops/action-gh-release@v1 + with: + files: debian_bullseye_arm64_sysroot.tar.xz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..328dff8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +clang+llvm-16.0.3-arm64-apple-darwin22.0* +bin/ +*.swp diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..5550b22 --- /dev/null +++ b/build.sh @@ -0,0 +1,68 @@ +set -eux + +curl -L "$URL" -o src.tar.xz +tar -xvf src.tar.xz \ + "./lib" \ + "./usr/include" \ + "./usr/lib/gcc" \ + "./usr/lib/$LIB_ARCH-linux-gnu" \ + &>/dev/null + +# Cleanup some includes Chrome uses. +# TODO(zbarsky): It would be cleaner to start from a clean state and build a more minimal sysroot. + +rm -rf "usr/include/X11/**" +rm -rf "usr/include/at-spi-2.0/**" +rm -rf "usr/include/atk-1.0/**" +rm -rf "usr/include/cairo/**" +rm -rf "usr/include/dbus-1.0/**" +rm -rf "usr/include/freetype2/**" +rm -rf "usr/include/fribidi/**" +rm -rf "usr/include/gdk-pixbuf-2.0/**" +rm -rf "usr/include/glib-2.0/**" +rm -rf "usr/include/gio-unix-2.0/**" +rm -rf "usr/include/gnutls/**" +rm -rf "usr/include/graphene-1.0/**" +rm -rf "usr/include/gtk-3.0/**" +rm -rf "usr/include/gtk-4.0/**" +rm -rf "usr/include/harfbuzz/**" +rm -rf "usr/include/libxml2/**" +rm -rf "usr/include/jsoncpp/**" +rm -rf "usr/include/krb5/**" +rm -rf "usr/include/libdbusmenu-glib-0.4/**" +rm -rf "usr/include/libdrm/**" +rm -rf "usr/include/libpng*/**" +rm -rf "usr/include/libxslt/**" +rm -rf "usr/include/nspr/**" +rm -rf "usr/include/nss/**" +rm -rf "usr/include/openssl/**" +rm -rf "usr/include/pango-1.0/**" +rm -rf "usr/include/pipewire-0.3/**" +rm -rf "usr/include/pulse/**" +rm -rf "usr/include/spa-0.2/**" +rm -rf "usr/include/systemd/**" +rm -rf "usr/include/valgrind/**" +rm -rf "usr/include/vulkan/**" +rm -rf "usr/include/zlib.h" +rm -rf "usr/include/$LIB_ARCH-linux-gnu/qt5" +rm -rf "usr/include/$LIB_ARCH-linux-gnu/qt6" + +mv "./usr/lib/$LIB_ARCH-linux-gnu" "./usr/lib/$LIB_ARCH-linux-gnu-backup" +mkdir "./usr/lib/$LIB_ARCH-linux-gnu" + +mv "./usr/lib/$LIB_ARCH-linux-gnu-backup"/{libc*,libm*,libpthread*,librt*} "./usr/lib/$LIB_ARCH-linux-gnu" +mv "./usr/lib/$LIB_ARCH-linux-gnu-backup"/*.o "./usr/lib/$LIB_ARCH-linux-gnu" +rm -rf "./usr/lib/$LIB_ARCH-linux-gnu-backup" + + +ls -la ./ +ls -la ./usr +ls -la ./usr/lib + +du -h ./usr | sort -h +du -h ./usr/lib | sort -h + +exit 1 +tar -cJf "$NAME.tar.xz" lib/ usr/ + +ls -lh "$NAME.tar.xz" diff --git a/release.sh b/release.sh new file mode 100755 index 0000000..bf9b132 --- /dev/null +++ b/release.sh @@ -0,0 +1,2 @@ +git tag -a $VERSION -m "$VERSION" +git push origin $VERSION