summaryrefslogtreecommitdiffstats
path: root/nix
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-16 17:12:05 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-16 17:12:05 +0000
commit9ec46d47bedefa10bdaaa8a587ddb1851ef396ec (patch)
treeba7545ee99b384a6fc3e5ea028ae4c643648d683 /nix
parentInitial commit. (diff)
downloadgolang-github-containers-buildah-9ec46d47bedefa10bdaaa8a587ddb1851ef396ec.tar.xz
golang-github-containers-buildah-9ec46d47bedefa10bdaaa8a587ddb1851ef396ec.zip
Adding upstream version 1.33.5+ds1.upstream/1.33.5+ds1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'nix')
-rw-r--r--nix/default-arm64.nix85
-rw-r--r--nix/default.nix83
-rw-r--r--nix/nixpkgs.json10
-rw-r--r--nix/nixpkgs.nix9
4 files changed, 187 insertions, 0 deletions
diff --git a/nix/default-arm64.nix b/nix/default-arm64.nix
new file mode 100644
index 0000000..77eaa51
--- /dev/null
+++ b/nix/default-arm64.nix
@@ -0,0 +1,85 @@
+let
+ pkgs = (import ./nixpkgs.nix {
+ crossSystem = {
+ config = "aarch64-unknown-linux-gnu";
+ };
+ config = {
+ packageOverrides = pkg: {
+ gpgme = (static pkg.gpgme);
+ libassuan = (static pkg.libassuan);
+ libgpgerror = (static pkg.libgpgerror);
+ 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
+ '';
+ });
+ pcsclite = (static pkg.pcsclite).overrideAttrs (x: {
+ configureFlags = [
+ "--enable-confdir=/etc"
+ "--enable-usbdropdir=/var/lib/pcsc/drivers"
+ "--disable-libsystemd"
+ "--disable-libudev"
+ "--disable-libusb"
+ ];
+ buildInputs = [ pkgs.python3 pkgs.dbus ];
+ });
+ systemd = (static pkg.systemd).overrideAttrs (x: {
+ outputs = [ "out" "dev" ];
+ mesonFlags = x.mesonFlags ++ [
+ "-Dglib=false"
+ "-Dstatic-libsystemd=true"
+ ];
+ });
+ };
+ };
+ });
+
+ static = pkg: pkg.overrideAttrs (x: {
+ doCheck = false;
+ configureFlags = (x.configureFlags or [ ]) ++ [
+ "--without-shared"
+ "--disable-shared"
+ ];
+ dontDisableStatic = true;
+ enableSharedExecutables = false;
+ enableStatic = true;
+ });
+
+ self = with pkgs; buildGoModule rec {
+ name = "buildah";
+ src = ./..;
+ vendorSha256 = null;
+ doCheck = false;
+ enableParallelBuilding = true;
+ outputs = [ "out" ];
+ nativeBuildInputs = [ bash gitMinimal go-md2man pkg-config which ];
+ buildInputs = [ glibc glibc.static glib gpgme libassuan libgpgerror libseccomp libapparmor libselinux ];
+ prePatch = ''
+ export CFLAGS='-static -pthread'
+ export LDFLAGS='-s -w -static-libgcc -static'
+ export EXTRA_LDFLAGS='-s -w -linkmode external -extldflags "-static -lm"'
+ export BUILDTAGS='static netgo osusergo exclude_graphdriver_btrfs exclude_graphdriver_devicemapper seccomp apparmor selinux'
+ export CGO_ENABLED=1
+ '';
+ buildPhase = ''
+ patchShebangs .
+ make bin/buildah
+ '';
+ installPhase = ''
+ install -Dm755 bin/buildah $out/bin/buildah
+ '';
+ };
+in
+self
diff --git a/nix/default.nix b/nix/default.nix
new file mode 100644
index 0000000..9b5c39f
--- /dev/null
+++ b/nix/default.nix
@@ -0,0 +1,83 @@
+{ system ? builtins.currentSystem }:
+let
+ pkgs = (import ./nixpkgs.nix {
+ config = {
+ packageOverrides = pkg: {
+ gpgme = (static pkg.gpgme);
+ libassuan = (static pkg.libassuan);
+ libgpgerror = (static pkg.libgpgerror);
+ 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
+ '';
+ });
+ pcsclite = (static pkg.pcsclite).overrideAttrs (x: {
+ configureFlags = [
+ "--enable-confdir=/etc"
+ "--enable-usbdropdir=/var/lib/pcsc/drivers"
+ "--disable-libsystemd"
+ "--disable-libudev"
+ "--disable-libusb"
+ ];
+ buildInputs = [ pkgs.python3 pkgs.dbus ];
+ });
+ systemd = (static pkg.systemd).overrideAttrs (x: {
+ outputs = [ "out" "dev" ];
+ mesonFlags = x.mesonFlags ++ [
+ "-Dglib=false"
+ "-Dstatic-libsystemd=true"
+ ];
+ });
+ };
+ };
+ });
+
+ static = pkg: pkg.overrideAttrs (x: {
+ doCheck = false;
+ configureFlags = (x.configureFlags or [ ]) ++ [
+ "--without-shared"
+ "--disable-shared"
+ ];
+ dontDisableStatic = true;
+ enableSharedExecutables = false;
+ enableStatic = true;
+ });
+
+ self = with pkgs; buildGoModule rec {
+ name = "buildah";
+ src = ./..;
+ vendorSha256 = null;
+ doCheck = false;
+ enableParallelBuilding = true;
+ outputs = [ "out" ];
+ nativeBuildInputs = [ bash gitMinimal go-md2man pkg-config which ];
+ buildInputs = [ glibc glibc.static glib gpgme libassuan libgpgerror libseccomp libapparmor libselinux ];
+ prePatch = ''
+ export CFLAGS='-static -pthread'
+ export LDFLAGS='-s -w -static-libgcc -static'
+ export EXTRA_LDFLAGS='-s -w -linkmode external -extldflags "-static -lm"'
+ export BUILDTAGS='static netgo osusergo exclude_graphdriver_btrfs exclude_graphdriver_devicemapper seccomp apparmor selinux'
+ export CGO_ENABLED=1
+ '';
+ buildPhase = ''
+ patchShebangs .
+ make bin/buildah
+ '';
+ installPhase = ''
+ install -Dm755 bin/buildah $out/bin/buildah
+ '';
+ };
+in
+self
diff --git a/nix/nixpkgs.json b/nix/nixpkgs.json
new file mode 100644
index 0000000..efcfe20
--- /dev/null
+++ b/nix/nixpkgs.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/nixos/nixpkgs",
+ "rev": "2a96414d7e350160a33ed0978449c9ff5b5a6eb3",
+ "date": "2021-07-13T18:21:47+02:00",
+ "path": "/nix/store/2ai9q8ac6vxb2rrngdz82y8jxnk15cvm-nixpkgs",
+ "sha256": "1dzrfqdjq3yq5jjskiqflzy58l2xx6059gay9p1k07zrlm1wigy5",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/nix/nixpkgs.nix b/nix/nixpkgs.nix
new file mode 100644
index 0000000..11c2038
--- /dev/null
+++ b/nix/nixpkgs.nix
@@ -0,0 +1,9 @@
+let
+ json = builtins.fromJSON (builtins.readFile ./nixpkgs.json);
+ nixpkgs = import (builtins.fetchTarball {
+ name = "nixos-unstable";
+ url = "${json.url}/archive/${json.rev}.tar.gz";
+ inherit (json) sha256;
+ });
+in
+nixpkgs