X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=flakes%2Fopenarc%2Fflake.nix;h=17a3fdd8bd0e3817dde832a693007ec573fd7879;hb=1a64deeb894dc95e2645a75771732c6cc53a79ad;hp=fbb7fb13a8bc72bc18b7a0200d013b4897e1b8cf;hpb=ef43c36272ca539cbfe803ded03949451b17b679;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/flakes/openarc/flake.nix b/flakes/openarc/flake.nix index fbb7fb1..17a3fdd 100644 --- a/flakes/openarc/flake.nix +++ b/flakes/openarc/flake.nix @@ -2,9 +2,7 @@ description = "Open source ARC implementation"; inputs.myuids = { - url = "https://git.immae.eu/perso/Immae/Config/Nix.git"; - type = "git"; - dir = "flakes/myuids"; + url = "path:../myuids"; }; inputs.flake-utils.url = "github:numtide/flake-utils"; inputs.nixpkgs.url = "github:NixOS/nixpkgs"; @@ -15,30 +13,9 @@ outputs = { self, myuids, openarc, flake-utils, nixpkgs }: flake-utils.lib.eachDefaultSystem (system: let - lock = builtins.fromJSON (builtins.readFile ./flake.lock); pkgs = import nixpkgs { inherit system; overlays = []; }; - inherit (pkgs) stdenv automake autoconf libbsd libtool openssl pkg-config libmilter file; in rec { - packages.openarc = stdenv.mkDerivation rec { - pname = "openarc"; - version = "master-${builtins.substring 0 7 lock.nodes.openarc.locked.rev}"; - src = openarc; - buildInputs = [ automake autoconf libbsd libtool openssl pkg-config libmilter ]; - - configureFlags = [ - "--with-milter=${libmilter}" - ]; - preConfigure = '' - autoreconf --force --install - sed -i -e "s@/usr/bin/file@${file}/bin/file@" ./configure - ''; - meta = { - description = "Open source ARC implementation"; - homepage = "https://github.com/trusteddomainproject/OpenARC"; - platforms = stdenv.lib.platforms.unix; - }; - }; - + packages.openarc = pkgs.callPackage ./. { src = openarc; }; defaultPackage = packages.openarc; legacyPackages.openarc = packages.openarc; apps.openarc = flake-utils.lib.mkApp { drv = packages.openarc; }; @@ -74,13 +51,21 @@ ''; }; }; - }) // { + }) // rec { + overlays = { + openarc = final: prev: { + openarc = self.defaultPackage."${final.system}"; + }; + }; + overlay = overlays.openarc; nixosModule = { config, lib, pkgs, ... }: let cfg = config.services.openarc; - defaultSock = "local:/run/openarc/openarc.sock"; - args = [ "-f" "-p" cfg.socket ] ++ lib.optionals (cfg.configFile != null) [ "-c" cfg.configFile ]; + defaultSock = "/run/openarc/openarc.sock"; + args = [ "-f" "-p" "local:${cfg.socket}" ] ++ lib.optionals (cfg.configFile != null) [ "-c" cfg.configFile ]; in { + # Necessary for situations where flake gets included multiple times + key = builtins.hashString "sha256" (builtins.path { path = self.sourceInfo.outPath; name = "source"; }); options = { services.openarc = { enable = lib.mkOption { @@ -117,6 +102,7 @@ }; config = lib.mkIf cfg.enable { + nixpkgs.overlays = [ self.overlay ]; users.users = lib.optionalAttrs (cfg.user == "openarc") { openarc = { group = cfg.group; @@ -128,7 +114,7 @@ openarc.gid = myuids.lib.gids.openarc; }; - environment.systemPackages = [ self.defaultPackage."${pkgs.system}" ]; + environment.systemPackages = [ pkgs.openarc ]; systemd.services.openarc = { description = "OpenARC daemon";