diff options
Diffstat (limited to 'nix')
| -rw-r--r-- | nix/package.nix | 56 | ||||
| -rw-r--r-- | nix/static.nix | 22 |
2 files changed, 48 insertions, 30 deletions
diff --git a/nix/package.nix b/nix/package.nix index b216242..e1eeaef 100644 --- a/nix/package.nix +++ b/nix/package.nix @@ -1,21 +1,26 @@ { lib, - rustPlatform, + stdenv, openssl, pkg-config, + rustPlatform, + + self, + nix-filter, lto ? true, optimizeSize ? false, }: + rustPlatform.buildRustPackage { pname = "nixpkgs-tracker-bot"; - inherit ((lib.importTOML ../Cargo.toml).workspace.package) version; + version = self.shortRev or self.dirtyShortRev or "unknown"; - src = lib.fileset.toSource { - root = ../.; - fileset = lib.fileset.unions [ - (lib.fileset.gitTracked ../crates) - ../Cargo.toml - ../Cargo.lock + src = nix-filter.lib.filter { + root = self; + include = [ + "crates" + "Cargo.toml" + "Cargo.lock" ]; }; @@ -26,28 +31,31 @@ rustPlatform.buildRustPackage { env = let - toRustFlags = lib.mapAttrs' ( - name: - lib.nameValuePair "CARGO_BUILD_RELEASE_${ - lib.toUpper (builtins.replaceStrings [ "-" ] [ "_" ] name) - }" - ); + rustFlags = + lib.optionalAttrs lto { + lto = "thin"; + } + // lib.optionalAttrs optimizeSize { + codegen-units = 1; + opt-level = "s"; + panic = "abort"; + strip = "symbols"; + }; in - lib.optionalAttrs lto (toRustFlags { - lto = "thin"; - }) - // lib.optionalAttrs optimizeSize (toRustFlags { - codegen-units = 1; - opt-level = "s"; - panic = "abort"; - strip = "symbols"; - }); + { + CARGO_BUILD_RUSTFLAGS = toString ( + lib.mapAttrsToList (name: value: "-C ${name}=${toString value}") rustFlags + ); + } + // lib.optionalAttrs stdenv.hostPlatform.isStatic { + OPENSSL_STATIC = 1; + }; meta = { description = "A Discord app for tracking nixpkgs pull requests"; homepage = "https://github.com/getchoo/nixpkgs-tracker-bot"; - mainProgram = "nixpkgs-tracker-bot"; license = lib.licenses.mit; maintainers = [ lib.maintainers.getchoo ]; + mainProgram = "nixpkgs-tracker-bot"; }; } diff --git a/nix/static.nix b/nix/static.nix index 8def285..5c7f528 100644 --- a/nix/static.nix +++ b/nix/static.nix @@ -1,4 +1,9 @@ -{ pkgsCross }: +{ + pkgsCross, + nix-filter, + self, +}: + let crossPkgsFor = with pkgsCross; { x86_64 = musl64.pkgsStatic; @@ -6,11 +11,16 @@ let }; in { arch }: + let crossPkgs = crossPkgsFor.${arch}; in -(crossPkgs.callPackage ./package.nix { optimizeSize = true; }).overrideAttrs (old: { - passthru = old.passthru or { } // { - inherit crossPkgs; - }; -}) +(crossPkgs.callPackage ./package.nix { + inherit nix-filter self; + optimizeSize = true; +}).overrideAttrs + (old: { + passthru = old.passthru or { } // { + inherit crossPkgs; + }; + }) |
