diff --git a/.cirrus.yml b/.cirrus.yml index 938816d4..5e68c621 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -119,7 +119,7 @@ static_binary_task: # the next line and file an issue with details about the failure. # allow_failures: true - timeout_in: '240m' + timeout_in: '360m' gce_instance: image_name: "${FEDORA_CACHE_IMAGE_NAME}" @@ -139,12 +139,15 @@ static_binary_task: CACHIX_AUTH_TOKEN: ENCRYPTED[4c3b8d82b0333abf048c56a71f2559ddb1c9ed38f0c28916eca13f79affa5904cf90c76a5bd8686680c89f41079ef341] matrix: - - name: "Static intel binary" + - name: "Static amd64 binary" env: TARGET: default.nix - - name: "Static ARM binary" + - name: "Static arm64 binary" env: TARGET: default-arm64.nix + - name: "Static ppc64le binary" + env: + TARGET: default-ppc64le.nix build_script: | set -ex diff --git a/nix/default-ppc64le.nix b/nix/default-ppc64le.nix new file mode 100644 index 00000000..b44b5d35 --- /dev/null +++ b/nix/default-ppc64le.nix @@ -0,0 +1,36 @@ +let + static = import ./static.nix; + pkgs = (import ./nixpkgs.nix { + crossSystem = { config = "powerpc64le-unknown-linux-gnu"; }; + overlays = [ + (final: pkg: { + pcre = (static pkg.pcre).overrideAttrs (x: { + configureFlags = x.configureFlags ++ [ "--enable-static" ]; + }); + }) + ]; + config = { + packageOverrides = pkg: { + libseccomp = (static pkg.libseccomp); + glib = (static pkg.glib).overrideAttrs (x: { + outputs = [ "bin" "out" "dev" ]; + mesonFlags = [ + "-Ddefault_library=static" + "-Ddevbindir=${placeholder ''dev''}/bin" + "-Dgtk_doc=false" + "-Dnls=disabled" + ]; + postInstall = '' + moveToOutput "share/glib-2.0" "$dev" + substituteInPlace "$dev/bin/gdbus-codegen" --replace "$out" "$dev" + sed -i "$dev/bin/glib-gettextize" -e "s|^gettext_dir=.*|gettext_dir=$dev/share/glib-2.0/gettext|" + sed '1i#line 1 "${x.pname}-${x.version}/include/glib-2.0/gobject/gobjectnotifyqueue.c"' \ + -i "$dev"/include/glib-2.0/gobject/gobjectnotifyqueue.c + ''; + }); + }; + }; + }); + self = import ./derivation.nix { inherit pkgs; }; +in +self