diff --git a/BasePlatform/v2/.gitignore b/BasePlatform/v2/.gitignore new file mode 100644 index 0000000..fccbace --- /dev/null +++ b/BasePlatform/v2/.gitignore @@ -0,0 +1,3 @@ +/docs.tar +/i386.tar +/locale.tar \ No newline at end of file diff --git a/BasePlatform/v2/Base-x86_64.yaml b/BasePlatform/v2/Base-x86_64.yaml new file mode 100644 index 0000000..fa1eff1 --- /dev/null +++ b/BasePlatform/v2/Base-x86_64.yaml @@ -0,0 +1,44 @@ +build-runtime: true +writable-sdk: true + +id: de.marko10_000.winebarrels.BaseSdk +id-platform: de.marko10_000.winebarrels.BasePlatform +branch: "v2" + +sdk: de.marko10_000.winebarrels.RawSdk +runtime: de.marko10_000.winebarrels.RawPlatform +runtime-version: "v2" +separate-locales: false + +inherit-extensions: + - org.freedesktop.Platform.GL32 + - org.freedesktop.Platform.GL + - org.freedesktop.Platform.Timezones + - org.freedesktop.Platform.GStreamer + - org.freedesktop.Platform.Icontheme + - org.gtk.Gtk3theme + - org.freedesktop.Platform.VAAPI.Intel + - org.freedesktop.Platform.openh264 + +modules: + - name: test-arch + buildsystem: simple + build-commands: + - false + skip-arches: + - x86_64 + - platform/platform.yaml + - sdk/sdk.yaml + +cleanup-platform: + - /include + - "/lib/x86_64-linux-gnu/*.o" + - "/lib32/*.o" + - "*.a" + - "*.la" + - /lib/pkgconfig + - /lib/x86_64-linux-gnu/pkgconfig + - /lib32/pkgconfig + - /share/doc + - /share/info + - /share/man diff --git a/BasePlatform/v2/RawPlatform-x86_64.yaml b/BasePlatform/v2/RawPlatform-x86_64.yaml new file mode 100644 index 0000000..a39848a --- /dev/null +++ b/BasePlatform/v2/RawPlatform-x86_64.yaml @@ -0,0 +1,84 @@ +build-runtime: true +writable-sdk: true + +id: de.marko10_000.winebarrels.RawPlatform +branch: "v2" + +sdk: org.freedesktop.Platform +runtime: org.freedesktop.Platform +runtime-version: "19.08" +separate-locales: false + +add-extensions: + org.freedesktop.Platform.GL32: + directory: lib32/GL + version: '1.4' + versions: 19.08;1.4 + subdirectories: true + no-autodownload: true + autodelete: false + add-ld-path: lib + merge-dirs: vulkan/icd.d;glvnd/egl_vendor.d + download-if: active-gl-driver + enable-if: active-gl-driver + org.freedesktop.Platform.GL: + versions: 19.08;1.4 + version: "1.4" + directory: lib/x86_64-linux-gnu/GL + subdirectories: true + no-autodownload: true + autodelete: false + add-ld-path: lib + merge-dirs: vulkan/icd.d;glvnd/egl_vendor.d;OpenCL/vendors;lib/dri;lib/d3d;vulkan/explicit_layer.d + download-if: active-gl-driver + enable-if: active-gl-driver + org.freedesktop.Platform.Timezones: + versions: "19.08" + version: "19.08" + directory: share/zoneinfo + org.freedesktop.Platform.GStreamer: + versions: "19.08" + version: "19.08" + directory: lib/extensions/gstreamer-1.0 + subdirectories: true + no-autodownload: true + org.freedesktop.Platform.Icontheme: + versions: "19.08;1.0" + version: "1.0" + directory: share/runtime/share/icons + subdirectories: true + no-autodownload: true + org.gtk.Gtk3theme: + versions: "19.08;3.22" + version: "3.22" + directory: share/runtime/share/themes + subdirectories: true + subdirectory-suffix: gtk-3.0 + no-autodownload: true + download-if: active-gtk-theme + org.freedesktop.Platform.VAAPI.Intel: + versions: "19.08" + version: "19.08" + directory: lib/x86_64-linux-gnu/dri/intel-vaapi-driver + autodelete: false + no-autodownload: true + add-ld-path: lib + download-if: have-intel-gpu + org.freedesktop.Platform.openh264: + versions: "19.08" + version: "19.08" + directory: lib/x86_64-linux-gnu/openh264 + add-ld-path: extra + autodelete: false + +modules: + - name: test-arch + buildsystem: simple + build-commands: + - false + skip-arches: + - x86_64 + - raw/platform.yaml + +cleanup: + - /lib/debug diff --git a/BasePlatform/v2/RawSdk-x86_64.yaml b/BasePlatform/v2/RawSdk-x86_64.yaml new file mode 100644 index 0000000..b021d88 --- /dev/null +++ b/BasePlatform/v2/RawSdk-x86_64.yaml @@ -0,0 +1,85 @@ +build-runtime: true +writable-sdk: true + +id: de.marko10_000.winebarrels.RawSdk +branch: "v2" + +sdk: org.freedesktop.Sdk +runtime: org.freedesktop.Sdk +runtime-version: "19.08" +separate-locales: false + +add-extensions: + org.freedesktop.Platform.GL32: + directory: lib32/GL + version: '1.4' + versions: 19.08;1.4 + subdirectories: true + no-autodownload: true + autodelete: false + add-ld-path: lib + merge-dirs: vulkan/icd.d;glvnd/egl_vendor.d + download-if: active-gl-driver + enable-if: active-gl-driver + org.freedesktop.Platform.GL: + versions: 19.08;1.4 + version: "1.4" + directory: lib/x86_64-linux-gnu/GL + subdirectories: true + no-autodownload: true + autodelete: false + add-ld-path: lib + merge-dirs: vulkan/icd.d;glvnd/egl_vendor.d;OpenCL/vendors;lib/dri;lib/d3d;vulkan/explicit_layer.d + download-if: active-gl-driver + enable-if: active-gl-driver + org.freedesktop.Platform.Timezones: + versions: "19.08" + version: "19.08" + directory: share/zoneinfo + org.freedesktop.Platform.GStreamer: + versions: "19.08" + version: "19.08" + directory: lib/extensions/gstreamer-1.0 + subdirectories: true + no-autodownload: true + org.freedesktop.Platform.Icontheme: + versions: "19.08;1.0" + version: "1.0" + directory: share/runtime/share/icons + subdirectories: true + no-autodownload: true + org.gtk.Gtk3theme: + versions: "19.08;3.22" + version: "3.22" + directory: share/runtime/share/themes + subdirectories: true + subdirectory-suffix: gtk-3.0 + no-autodownload: true + download-if: active-gtk-theme + org.freedesktop.Platform.VAAPI.Intel: + versions: "19.08" + version: "19.08" + directory: lib/x86_64-linux-gnu/dri/intel-vaapi-driver + autodelete: false + no-autodownload: true + add-ld-path: lib + download-if: have-intel-gpu + org.freedesktop.Platform.openh264: + versions: "19.08" + version: "19.08" + directory: lib/x86_64-linux-gnu/openh264 + add-ld-path: extra + autodelete: false + +modules: + - name: test-arch + buildsystem: simple + build-commands: + - false + skip-arches: + - x86_64 + - raw/platform.yaml + - raw/sdk.yaml + +cleanup: + - /lib/debug diff --git a/BasePlatform/v2/build.base.sh b/BasePlatform/v2/build.base.sh new file mode 100755 index 0000000..f62f081 --- /dev/null +++ b/BasePlatform/v2/build.base.sh @@ -0,0 +1,13 @@ +#! /usr/bin/env bash + +CONF_PATH=`dirname $0` + +if [ -z "$BUILD_DIR_64BIT" ]; then + BUILD_DIR_64BIT=build64 +fi + +if [ -z "$2" ]; then + flatpak-builder $1 --rebuild-on-sdk-change --arch=x86_64 "$BUILD_DIR_64BIT" "$CONF_PATH/Base-x86_64.yaml" || exit 1 +else + flatpak-builder $1 --rebuild-on-sdk-change --arch=x86_64 --gpg-sign=winebarrels@marko10-000.de "--repo=$2" "$BUILD_DIR_64BIT" "$CONF_PATH/Base-x86_64.yaml" || exit 1 +fi \ No newline at end of file diff --git a/BasePlatform/v2/build.raw.sh b/BasePlatform/v2/build.raw.sh new file mode 100755 index 0000000..7ee3119 --- /dev/null +++ b/BasePlatform/v2/build.raw.sh @@ -0,0 +1,40 @@ +#! /usr/bin/env bash + +CONF_PATH=`dirname $0` + +if [ -z "$BUILD_DIR_64BIT" ]; then + BUILD_DIR_64BIT=build64 +fi + +if [ -z "$NO_REBUILD_I386" ]; then + ostree export --repo ~/.local/share/flatpak/repo runtime/org.freedesktop.Platform.Compat.i386/x86_64/19.08 > "$CONF_PATH/i386.tar" || exit 1 +fi +if [ -z "$2" ]; then + if [ -z "$NO_PLATFORM" ]; then + if [ -z "$NO_REBUILD_LOCALE" ]; then + ostree export --repo ~/.local/share/flatpak/repo runtime/org.freedesktop.Platform.Locale/x86_64/19.08 > "$CONF_PATH/locale.tar" || exit 2 + fi + flatpak-builder $1 --rebuild-on-sdk-change --arch=x86_64 "$BUILD_DIR_64BIT" "$CONF_PATH/RawPlatform-x86_64.yaml" || exit 3 + fi + if [ -z "$NO_SDK" ]; then + if [ -z "$NO_REBUILD_LOCALE" ]; then + ostree export --repo ~/.local/share/flatpak/repo runtime/org.freedesktop.Sdk.Locale/x86_64/19.08 > "$CONF_PATH/locale.tar" || exit 4 + ostree export --repo ~/.local/share/flatpak/repo runtime/org.freedesktop.Sdk.Docs/x86_64/19.08 > "$CONF_PATH/docs.tar" || exit 5 + fi + flatpak-builder $1 --rebuild-on-sdk-change --arch=x86_64 "$BUILD_DIR_64BIT" "$CONF_PATH/RawSdk-x86_64.yaml" || exit 6 + fi +else + if [ -z "$NO_PLATFORM" ]; then + if [ -z "$NO_REBUILD_LOCALE" ]; then + ostree export --repo ~/.local/share/flatpak/repo runtime/org.freedesktop.Platform.Locale/x86_64/19.08 > "$CONF_PATH/locale.tar" || exit 2 + fi + flatpak-builder $1 --rebuild-on-sdk-change --arch=x86_64 --gpg-sign=winebarrels@marko10-000.de "--repo=$2" "$BUILD_DIR_64BIT" "$CONF_PATH/RawPlatform-x86_64.yaml" || exit 3 + fi + if [ -z "$NO_SDK" ]; then + if [ -z "$NO_REBUILD_LOCALE" ]; then + ostree export --repo ~/.local/share/flatpak/repo runtime/org.freedesktop.Sdk.Locale/x86_64/19.08 > "$CONF_PATH/locale.tar" || exit 4 + ostree export --repo ~/.local/share/flatpak/repo runtime/org.freedesktop.Sdk.Docs/x86_64/19.08 > "$CONF_PATH/docs.tar" || exit 5 + fi + flatpak-builder $1 --rebuild-on-sdk-change --arch=x86_64 --gpg-sign=winebarrels@marko10-000.de "--repo=$2" "$BUILD_DIR_64BIT" "$CONF_PATH/RawSdk-x86_64.yaml" || exit 6 + fi +fi diff --git a/BasePlatform/v2/install.raw.sh b/BasePlatform/v2/install.raw.sh new file mode 100755 index 0000000..7ca81e7 --- /dev/null +++ b/BasePlatform/v2/install.raw.sh @@ -0,0 +1,9 @@ +#! /usr/bin/env bash + +flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo && +flatpak install -y --noninteractive --user flathub org.freedesktop.Platform/x86_64/19.08 && +flatpak install -y --noninteractive --user flathub org.freedesktop.Platform.Locale/x86_64/19.08 && +flatpak install -y --noninteractive --user flathub org.freedesktop.Sdk/x86_64/19.08 && +flatpak install -y --noninteractive --user flathub org.freedesktop.Sdk.Docs/x86_64/19.08 && +flatpak install -y --noninteractive --user flathub org.freedesktop.Sdk.Locale/x86_64/19.08 && +flatpak update -y --noninteractive --user \ No newline at end of file diff --git a/BasePlatform/v2/platform/platform.yaml b/BasePlatform/v2/platform/platform.yaml new file mode 100644 index 0000000..d1b0190 --- /dev/null +++ b/BasePlatform/v2/platform/platform.yaml @@ -0,0 +1,2 @@ +name: meta-platform +modules: [] diff --git a/BasePlatform/v2/raw/docs.yaml b/BasePlatform/v2/raw/docs.yaml new file mode 100644 index 0000000..37e8581 --- /dev/null +++ b/BasePlatform/v2/raw/docs.yaml @@ -0,0 +1,16 @@ +name: docs +sources: + - type: archive + path: ../docs.tar + dest: docs +buildsystem: simple +build-commands: + - rm -v /usr/share/doc && cp -rav docs/doc /usr/share && rm -rvf docs/doc + - rm -v /usr/share/info && cp -rav docs/info /usr/share && rm -rvf docs/info + - rm -v /usr/share/man && cp -rav docs/man /usr/share && rm -rvf docs/man + - rm -v /usr/share/ri && cp -rav docs/ri /usr/share && rm -rvf docs/ri + - rm -v /usr/share/gtk-doc/html && cp -rav docs/gtk-doc/html /usr/share/gtk-doc && rm -rvf docs/gtk-doc + - rm -v /usr/share/cmake-3.15/Help && mkdir /usr/share/cmake-3.15/Help && cp -rav docs/cmake-3.15/* /usr/share/cmake-3.15/Help && rm -rvf docs/cmake-3.15 + - cp -rav docs /usr/share/runtime +only-arches: + - x86_64 \ No newline at end of file diff --git a/BasePlatform/v2/raw/fix-libs.py b/BasePlatform/v2/raw/fix-libs.py new file mode 100644 index 0000000..c044713 --- /dev/null +++ b/BasePlatform/v2/raw/fix-libs.py @@ -0,0 +1,15 @@ +import os +import sys +import re + +_padder = re.compile("^(?P.*\\.so)\\.[0-9]+$") +assert _padder.match("tmp.so.7") +assert not _padder.match("tmp.so") +assert not _padder.match("tmp.so.7.2") +for i in sys.argv[1:]: + for j in filter(lambda x: x is not None, map(_padder.match, os.listdir(i))): + name = j.groupdict()["file"] + try: + os.symlink(j.string, os.path.join(i, name)) + except Exception: + print("Doesn't work for " + repr(name)) diff --git a/BasePlatform/v2/raw/fix-libs.yaml b/BasePlatform/v2/raw/fix-libs.yaml new file mode 100644 index 0000000..679199b --- /dev/null +++ b/BasePlatform/v2/raw/fix-libs.yaml @@ -0,0 +1,9 @@ +name: fix-libs +sources: + - type: file + path: fix-libs.py +buildsystem: simple +build-commands: + - python3 fix-libs.py /usr/lib32 +only-arches: + - x86_64 diff --git a/BasePlatform/v2/raw/libs.yaml b/BasePlatform/v2/raw/libs.yaml new file mode 100644 index 0000000..d9a7e0c --- /dev/null +++ b/BasePlatform/v2/raw/libs.yaml @@ -0,0 +1,16 @@ +name: libs +sources: + - type: archive + path: ../i386.tar + dest: lib32 +buildsystem: simple +build-commands: + - cp -rav lib32 /usr + - mkdir -p /usr/lib32/GL + - cp /etc/ld.so.conf . && rm /etc/ld.so.conf && cp ld.so.conf /etc/ + - echo /usr/lib32 >> /etc/ld.so.conf + - echo /usr/lib32/GL >> /etc/ld.so.conf + - rm -rfv /lib/i386-linux-gnu + - ln -s /usr/lib32 /lib/i386-linux-gnu +only-arches: + - x86_64 diff --git a/BasePlatform/v2/raw/locale.yaml b/BasePlatform/v2/raw/locale.yaml new file mode 100644 index 0000000..b62c4c8 --- /dev/null +++ b/BasePlatform/v2/raw/locale.yaml @@ -0,0 +1,13 @@ +name: locales +sources: + - type: archive + path: ../locale.tar + dest: locale +buildsystem: simple +build-commands: + - cp -rav locale /usr/share/runtime + - cd /usr/share/locale && for i in *; do if [ -L "$i" ]; then (mkdir "_$i"; cp -rav $i/* "_$i"; rm -v "$i"; mv -v "_$i" "$i"); fi done + - cd /usr/lib/locale && for i in *; do if [ -L "$i" ]; then (mkdir "_$i"; cp -rav $i/* "_$i"; rm -v "$i"; mv -v "_$i" "$i"); fi done + - rm -rf /usr/share/runtime/locale +only-arches: + - x86_64 diff --git a/BasePlatform/v2/raw/platform.yaml b/BasePlatform/v2/raw/platform.yaml new file mode 100644 index 0000000..d23d914 --- /dev/null +++ b/BasePlatform/v2/raw/platform.yaml @@ -0,0 +1,4 @@ +name: meta-platform +modules: + - libs.yaml + - locale.yaml \ No newline at end of file diff --git a/BasePlatform/v2/raw/sdk.yaml b/BasePlatform/v2/raw/sdk.yaml new file mode 100644 index 0000000..48234c9 --- /dev/null +++ b/BasePlatform/v2/raw/sdk.yaml @@ -0,0 +1,4 @@ +name: meta-sdk +modules: + - fix-libs.yaml + - docs.yaml \ No newline at end of file diff --git a/BasePlatform/v2/sdk/cross.yaml b/BasePlatform/v2/sdk/cross.yaml new file mode 100644 index 0000000..b3736ec --- /dev/null +++ b/BasePlatform/v2/sdk/cross.yaml @@ -0,0 +1,329 @@ +name: cross +only-arches: + - x86_64 +modules: + - name: cross-gmp + sources: + - type: archive + url: https://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.xz + sha256: 87b565e89a9a684fe4ebeeddb8399dce2599f9c9049854ca8c0dfbdea0e21912 + config-opts: + - --host=x86_64-unknown-linux + - --build=x86_64-unknown-linux + - --target=x86_64-unknown-linux + - --disable-static + - --enable-assert + - --enable-cxx + - --enable-fat + - --enable-maintainer-mode + - --enable-shared + - --with-gnu-ld + builddir: true + post-install: + - make -j$FLATPAK_BUILDER_N_JOBS check + - name: cross-mpfr + sources: + - type: archive + url: https://ftp.gnu.org/gnu/mpfr/mpfr-4.0.2.tar.xz + sha256: 1d3be708604eae0e42d578ba93b390c2a145f17743a744d8f3f8c2ad5855a38a + config-opts: + - --host=x86_64-unknown-linux + - --build=x86_64-unknown-linux + - --target=x86_64-unknown-linux + - --disable-static + - --enable-assert + - --enable-dependency-tracking + - --enable-maintainer-mode + - --enable-shared-cache + - --enable-shared + - --enable-thread-safe + - --enable-warnings + - --with-gnu-ld + builddir: true + post-install: + - make -j$FLATPAK_BUILDER_N_JOBS check + - name: cross-mpc + sources: + - type: archive + url: https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz + sha256: 6985c538143c1208dcb1ac42cedad6ff52e267b47e5f970183a3e75125b43c2e + config-opts: + - --host=x86_64-unknown-linux + - --build=x86_64-unknown-linux + - --target=x86_64-unknown-linux + - --disable-static + - --enable-dependency-tracking + - --enable-maintainer-mode + - --enable-shared + - --with-gnu-ld + builddir: true + post-install: + - make -j$FLATPAK_BUILDER_N_JOBS check + - name: cross-libs-fix1 + buildsystem: simple + build-commands: + - libtool --finish /usr/lib/x86_64-linux-gnu + - name: cross-binutils + sources: + - type: archive + url: https://ftp.gnu.org/gnu/binutils/binutils-2.33.1.tar.xz + sha256: ab66fc2d1c3ec0359b8e08843c9f33b63e8707efdff5e4cc5c200eae24722cbf + config-opts: + - --host=x86_64-unknown-linux + - --build=x86_64-unknown-linux + - --target=x86_64-unknown-linux + - --disable-libdecnumber + - --disable-readline + - --disable-sim + - --disable-werror + - --enable-64-bit-bfd + - --enable-gold + - --enable-ld=default + - --enable-lto + - --enable-multiarch + - --enable-multilib + - --enable-plugins + - --enable-relro=yes + - --enable-shared + - --enable-static + - --enable-static-pie + - --enable-targets=x86_64-pep + - --with-system-zlib + - --with-lib-path=/usr/lib:/usr/lib32:/usr/lib/x86_64-linux-gnu:/usr/lib64:/app/lib:/app/lib32:/app/lib64 + builddir: true + post-install: + - make -k -j$FLATPAK_BUILDER_N_JOBS check || true + - name: cross-gcc-pass1 + sources: &GCC_SOURCES + - &GCC_SOURCE + type: archive + url: https://ftp.gnu.org/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.xz + sha256: ea6ef08f121239da5695f76c9b33637a118dcf63e24164422231917fa61fb206 + - type: patch + path: ./gcc.patch + - type: shell + commands: + - ln -s /usr/bin/cpp /lib/cpp + config-opts: + - --host=x86_64-unknown-linux + - --build=x86_64-unknown-linux + - --target=x86_64-unknown-linux + - --disable-bootstrap + - --disable-decimal-float + - --disable-libatomic + - --disable-libmpx + - --disable-libgomp + - --disable-libquadmath + - --disable-libstdcxx + - --disable-libssp + - --disable-libvtv + - --disable-nls + - --disable-shared + - --disable-threads + - --enable-default-pie + - --enable-default-ssp + - --enable-languages=c,c++,lto + - --enable-linker-build-id + - --enable-lto + - --enable-multilib + - --with-glibc-version=2.30 + - --with-newlib + - --with-system-zlib + - --without-headers + - --without-isl + builddir: true + post-install: + - rm -v /lib/cpp + cleanup-platform: &GCC_CLEANUP_PLATFORM + - /bin + - /libexec/gcc + - /share + - name: cross-prepare-glibc + sources: + - type: archive + url: https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.2.1.tar.xz + sha256: 3581e84e9d63298a14c147f925cd496ebb25c5a08cf065ba63c54cdee6d86506 + dest: kernel_headers + buildsystem: simple + build-commands: + - cd kernel_headers; make -j$FLATPAK_BUILDER_N_JOBS mrproper + - cd kernel_headers; make -j$FLATPAK_BUILDER_N_JOBS headers_check + - cd kernel_headers; make -j$FLATPAK_BUILDER_N_JOBS INSTALL_HDR_PATH=/usr/tmp ARCH=x86_64 headers_install + - cp -rav /usr/tmp/include /usr && rm -rf /usr/tmp + - rm -v /usr/share/info/dir + - name: cross-glibc-32bit-pass1 + sources: &GLIBC_SOURCE_32BIT + - type: archive + url: https://ftp.gnu.org/gnu/glibc/glibc-2.30.tar.xz + sha256: e2c4114e569afbe7edbc29131a43be833850ab9a459d81beb2588016d2bbb8af + - type: shell + commands: + - echo slibdir=/usr/lib32 >> configparms + - echo rtlddir=/usr/lib32 >> configparms + config-opts: &GLIBC_CONFIG_32BIT + - --host=i686-unknown-linux + - --build=i686-unknown-linux + - --target=i686-unknown-linux + - --disable-werror + - --enable-bind-now + - --enable-cet + - --enable-multi-arch + - --enable-shared + - --enable-stack-protector=strong + - --enable-stackguard-randomization + - --enable-static + - --enable-static-pie + - --libdir=/usr/lib32 + - --libexecdir=/usr/lib32 + - CC=/usr/bin/gcc -m32 + - CXX=/usr/bin/g++ -m32 + - CFLAGS=-D_FORTIFY_SOURCE=0 -O2 + - CPPFLAGS=-D_FORTIFY_SOURCE=0 -O2 + - is_selinux_enabled=false + build-options: &GLIBC_BUILD_OPTIONS_32BIT + make-install-args: + - install_root=/usr/tmp + - install + post-install: &GLIBC_POST_INSTALL_32BIT + - rm -rvf /usr/tmp/usr/bin /usr/tmp/usr/sbin /usr/tmp/usr/lib /usr/tmp/usr/share + - find "/usr/tmp/usr/include" -type f -not -name '*-32.h' -delete + - cp -rav /usr/tmp/usr/* /usr/ && rm -rf /usr/tmp + builddir: true + - name: cross-glibc-64bit-pass1 + sources: &GLIBC_SOURCE_64BIT + - type: archive + url: https://ftp.gnu.org/gnu/glibc/glibc-2.30.tar.xz + sha256: e2c4114e569afbe7edbc29131a43be833850ab9a459d81beb2588016d2bbb8af + - type: shell + commands: + - echo slibdir=/usr/lib/x86_64-linux-gnu >> configparms + - echo rtlddir=/usr/lib/x86_64-linux-gnu >> configparms + - echo complocaledir=/usr/lib/locale >> configparms + config-opts: &GLIBC_CONFIG_64BIT + - --host=x86_64-unknown-linux + - --build=x86_64-unknown-linux + - --target=x86_64-unknown-linux + - --disable-werror + - --enable-bind-now + - --enable-cet + - --enable-multi-arch + - --enable-shared + - --enable-stack-protector=strong + - --enable-stackguard-randomization + - --enable-static + - --enable-static-pie + - CC=/usr/bin/gcc + - CXX=/usr/bin/g++ + - CFLAGS=-D_FORTIFY_SOURCE=0 -O2 + - CPPFLAGS=-D_FORTIFY_SOURCE=0 -O2 + - is_selinux_enabled=false + build-options: &GLIBC_BUILD_OPTIONS_64BIT + make-install-args: + - install_root=/usr/tmp + - install + post-install: &GLIBC_POST_INSTALL_64BIT + - mv -v /usr/tmp/usr/sbin/* /usr/tmp/usr/bin && rm -rf /usr/tmp/usr/sbin + - cp -rav /usr/tmp/usr/* /usr && cp -rav /usr/tmp/etc/* /etc && rm -rf /usr/tmp + builddir: true + - name: cross-test + buildsystem: simple + build-commands: &TESTS + - echo "int main() { return 0; }" > test.c + - gcc test.c + - ./a.out + - gcc -m64 test.c + - ./a.out + - gcc -m32 test.c + - ./a.out + build-options: + env: + PATH: "/usr/tools/usr/bin:/usr/bin" + - name: cross-stdcpp-pass + sources: + - *GCC_SOURCE + - type: shell + commands: + - sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64 + - echo "exec \"\$(dirname \$0)/libstdc++-v3/configure\" \"\$@\"" > configure && chmod +x configure + - ln -s /usr/bin/cpp /lib/cpp + config-opts: + - --host=x86_64-unknown-linux + - --build=x86_64-unknown-linux + - --target=x86_64-unknown-linux + - --prefix=/usr + - --disable-werror + - --enable-multilib + - --enable-shared + - --enable-static + - CC=/usr/bin/gcc + - CXX=/usr/bin/g++ + builddir: true + post-install: + - make -j$FLATPAK_BUILDER_N_JOBS check + - rm -v /lib/cpp + - name: cross-gcc-pass2 + sources: *GCC_SOURCES + config-opts: &GCC_CONFIG + - --host=x86_64-unknown-linux + - --build=x86_64-unknown-linux + - --target=x86_64-unknown-linux + - --enable-bootstrap + - --enable-default-pie + - --enable-default-ssp + - --enable-languages=c,c++,lto + - --enable-linker-build-id + - --enable-lto + - --enable-multiarch + - --enable-multilib + - --enable-shared + - --enable-static + - --without-isl + - CC=/usr/bin/gcc + - CXX=/usr/bin/g++ + build-options: &GCC_BUILD_OPTIONS + make-install-args: + - DESTDIR=/usr/tmp + - install + builddir: true + post-install: &GCC_POST_INSTALL + - cp -rav /usr/tmp/usr/* /usr && rm -rf /usr/tmp + - make -j$FLATPAK_BUILDER_N_JOBS check || true + - rm -v /lib/cpp + cleanup-platform: *GCC_CLEANUP_PLATFORM + - name: cross-test2 + buildsystem: simple + build-commands: *TESTS + - name: cross-glibc-32bit-pass2 + sources: *GLIBC_SOURCE_32BIT + config-opts: *GLIBC_CONFIG_32BIT + build-options: *GLIBC_BUILD_OPTIONS_32BIT + post-install: *GLIBC_POST_INSTALL_32BIT + builddir: true + - name: cross-glibc-64bit-pass2 + sources: *GLIBC_SOURCE_64BIT + config-opts: *GLIBC_CONFIG_64BIT + build-options: *GLIBC_BUILD_OPTIONS_64BIT + post-install: *GLIBC_POST_INSTALL_64BIT + builddir: true + - name: cross-gcc + sources: *GCC_SOURCES + config-opts: *GCC_CONFIG + build-options: *GCC_BUILD_OPTIONS + builddir: true + post-install: *GCC_POST_INSTALL + cleanup-platform: *GCC_CLEANUP_PLATFORM + - name: cross-glibc-32bit + sources: *GLIBC_SOURCE_32BIT + config-opts: *GLIBC_CONFIG_32BIT + build-options: *GLIBC_BUILD_OPTIONS_32BIT + post-install: *GLIBC_POST_INSTALL_32BIT + builddir: true + - name: cross-glibc-64bit + sources: *GLIBC_SOURCE_64BIT + config-opts: *GLIBC_CONFIG_64BIT + build-options: *GLIBC_BUILD_OPTIONS_64BIT + post-install: *GLIBC_POST_INSTALL_64BIT + builddir: true + - name: cross-test3 + buildsystem: simple + build-commands: *TESTS diff --git a/BasePlatform/v2/sdk/gcc.patch b/BasePlatform/v2/sdk/gcc.patch new file mode 100644 index 0000000..e2ee1ba --- /dev/null +++ b/BasePlatform/v2/sdk/gcc.patch @@ -0,0 +1,12 @@ +diff -ru gcc-9.2.0_/gcc/config/i386/t-linux64 gcc-9.2.0/gcc/config/i386/t-linux64 +--- gcc-9.2.0_/gcc/config/i386/t-linux64 2019-01-01 13:31:55.000000000 +0100 ++++ gcc-9.2.0/gcc/config/i386/t-linux64 2019-12-31 00:49:48.876777126 +0100 +@@ -33,6 +33,6 @@ + comma=, + MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) + MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) +-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) +-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) ++MULTILIB_OSDIRNAMES = m64=../lib/x86_64-linux-gnu$(call if_multiarch,:x86_64-linux-gnu) ++MULTILIB_OSDIRNAMES+= m32=../lib32$(call if_multiarch,:i386-linux-gnu) + MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) diff --git a/BasePlatform/v2/sdk/sdk.yaml b/BasePlatform/v2/sdk/sdk.yaml new file mode 100644 index 0000000..867f063 --- /dev/null +++ b/BasePlatform/v2/sdk/sdk.yaml @@ -0,0 +1,3 @@ +name: meta-sdk +modules: + - cross.yaml