Loading nixos/modules/services/networking/kea.nix +52 −22 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ config, lib, pkgs, utils, ... }: let Loading Loading @@ -34,11 +35,11 @@ let DhcpDdns = cfg.dhcp-ddns.settings; } ); package = pkgs.kea; in { options.services.kea = with lib.types; { package = lib.mkPackageOption pkgs "kea" { }; ctrl-agent = lib.mkOption { description = '' Kea Control Agent configuration Loading @@ -60,7 +61,7 @@ in type = nullOr path; default = null; description = '' Kea Control Agent configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html>. Kea Control Agent configuration as a path, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/agent.html>. Takes preference over [settings](#opt-services.kea.ctrl-agent.settings). Most users should prefer using [settings](#opt-services.kea.ctrl-agent.settings) instead. Loading @@ -71,7 +72,7 @@ in type = format.type; default = null; description = '' Kea Control Agent configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html>. Kea Control Agent configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/agent.html>. ''; }; }; Loading Loading @@ -99,7 +100,7 @@ in type = nullOr path; default = null; description = '' Kea DHCP4 configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp4-srv.html>. Kea DHCP4 configuration as a path, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp4-srv.html>. Takes preference over [settings](#opt-services.kea.dhcp4.settings). Most users should prefer using [settings](#opt-services.kea.dhcp4.settings) instead. Loading Loading @@ -136,7 +137,7 @@ in ]; }; description = '' Kea DHCP4 configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp4-srv.html>. Kea DHCP4 configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp4-srv.html>. ''; }; }; Loading Loading @@ -164,7 +165,7 @@ in type = nullOr path; default = null; description = '' Kea DHCP6 configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp6-srv.html>. Kea DHCP6 configuration as a path, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp6-srv.html>. Takes preference over [settings](#opt-services.kea.dhcp6.settings). Most users should prefer using [settings](#opt-services.kea.dhcp6.settings) instead. Loading Loading @@ -202,7 +203,7 @@ in ]; }; description = '' Kea DHCP6 configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp6-srv.html>. Kea DHCP6 configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp6-srv.html>. ''; }; }; Loading Loading @@ -230,7 +231,7 @@ in type = nullOr path; default = null; description = '' Kea DHCP-DDNS configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/ddns.html>. Kea DHCP-DDNS configuration as a path, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/ddns.html>. Takes preference over [settings](#opt-services.kea.dhcp-ddns.settings). Most users should prefer using [settings](#opt-services.kea.dhcp-ddns.settings) instead. Loading @@ -255,7 +256,7 @@ in }; }; description = '' Kea DHCP-DDNS configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/ddns.html>. Kea DHCP-DDNS configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/ddns.html>. ''; }; }; Loading @@ -266,9 +267,10 @@ in config = let commonEnvironment = { KEA_CONTROL_SOCKET_DIR = "/run/kea"; KEA_LOCKFILE_DIR = "/run/kea"; KEA_PIDFILE_DIR = "/run/kea"; # Allow hook scripts only when they originate from the system configuration KEA_HOOK_SCRIPTS_PATH = lib.mkDefault "/nix/store"; # Allow hooks to originate from the configured package KEA_HOOKS_PATH = lib.mkDefault "${cfg.package}/lib/kea/hooks"; }; commonServiceConfig = { Loading @@ -291,7 +293,7 @@ in lib.mkIf (cfg.ctrl-agent.enable || cfg.dhcp4.enable || cfg.dhcp6.enable || cfg.dhcp-ddns.enable) ( lib.mkMerge [ { environment.systemPackages = [ package ]; environment.systemPackages = [ cfg.package ]; users.users.kea = { isSystemUser = true; Loading @@ -314,7 +316,7 @@ in description = "Kea Control Agent"; documentation = [ "man:kea-ctrl-agent(8)" "https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html" "https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/agent.html" ]; wants = [ Loading @@ -337,7 +339,14 @@ in ]; serviceConfig = { ExecStart = "${package}/bin/kea-ctrl-agent -c /etc/kea/ctrl-agent.conf ${lib.escapeShellArgs cfg.ctrl-agent.extraArgs}"; ExecStart = utils.escapeSystemdExecArgs ( [ (lib.getExe' cfg.package "kea-ctrl-agent") "-c" "/etc/kea/ctrl-agent.conf" ] ++ cfg.ctrl-agent.extraArgs ); KillMode = "process"; Restart = "on-failure"; } Loading @@ -359,7 +368,7 @@ in description = "Kea DHCP4 Server"; documentation = [ "man:kea-dhcp4(8)" "https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp4-srv.html" "https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp4-srv.html" ]; after = [ Loading @@ -380,7 +389,14 @@ in ]; serviceConfig = { ExecStart = "${package}/bin/kea-dhcp4 -c /etc/kea/dhcp4-server.conf ${lib.escapeShellArgs cfg.dhcp4.extraArgs}"; ExecStart = utils.escapeSystemdExecArgs ( [ (lib.getExe' cfg.package "kea-dhcp4") "-c" "etc/kea/dhcp4-server.conf" ] ++ cfg.dhcp4.extraArgs ); # Kea does not request capabilities by itself AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" Loading Loading @@ -409,7 +425,7 @@ in description = "Kea DHCP6 Server"; documentation = [ "man:kea-dhcp6(8)" "https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp6-srv.html" "https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp6-srv.html" ]; after = [ Loading @@ -430,7 +446,14 @@ in ]; serviceConfig = { ExecStart = "${package}/bin/kea-dhcp6 -c /etc/kea/dhcp6-server.conf ${lib.escapeShellArgs cfg.dhcp6.extraArgs}"; ExecStart = utils.escapeSystemdExecArgs ( [ (lib.getExe' cfg.package "kea-dhcp6") "-c" "/etc/kea/dhcp6-server.conf" ] ++ cfg.dhcp6.extraArgs ); # Kea does not request capabilities by itself AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" Loading @@ -457,7 +480,7 @@ in description = "Kea DHCP-DDNS Server"; documentation = [ "man:kea-dhcp-ddns(8)" "https://kea.readthedocs.io/en/kea-${package.version}/arm/ddns.html" "https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/ddns.html" ]; wants = [ "network-online.target" ]; Loading @@ -476,7 +499,14 @@ in ]; serviceConfig = { ExecStart = "${package}/bin/kea-dhcp-ddns -c /etc/kea/dhcp-ddns.conf ${lib.escapeShellArgs cfg.dhcp-ddns.extraArgs}"; ExecStart = utils.escapeSystemdExecArgs ( [ (lib.getExe' cfg.package "kea-dhcp-ddns") "-c" "/etc/kea/dhcp-ddns.conf" ] ++ cfg.dhcp-ddns.extraArgs ); AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; Loading pkgs/by-name/ke/kea/dont-create-system-paths.patch 0 → 100644 +15 −0 Original line number Diff line number Diff line diff --git a/meson.build b/meson.build index 24ab9b5bd7..8f44076cf7 100644 --- a/meson.build +++ b/meson.build @@ -1118,10 +1118,6 @@ top_docs = [ ] install_data(top_docs, install_dir: DATADIR / 'doc/kea') -install_emptydir(LOGDIR) -install_emptydir(RUNSTATEDIR) -install_emptydir(SHAREDSTATEDIR) - # Meson is annoying with its opinionated alteration of certain paths based on whether prefix is default or not. # So we revert what it does.. # In case prefix is default, install to hardcoded path. pkgs/by-name/ke/kea/dont-create-var.patchdeleted 100644 → 0 +0 −34 Original line number Diff line number Diff line diff --git a/Makefile.am b/Makefile.am index a81f4cc..5d61407 100644 --- a/Makefile.am +++ b/Makefile.am @@ -173,18 +173,6 @@ cppcheck: docs: $(MAKE) -C doc/sphinx - -# These steps are necessary during installation. chmod is for reinstallation/upgrade. -install-exec-hook: - mkdir -m 750 -p "$(DESTDIR)${localstatedir}/lib/${PACKAGE_NAME}" - chmod 750 "$(DESTDIR)${localstatedir}/lib/${PACKAGE_NAME}" - mkdir -m 750 -p "$(DESTDIR)${localstatedir}/log/${PACKAGE_NAME}" - chmod 750 "$(DESTDIR)${localstatedir}/log/${PACKAGE_NAME}" - mkdir -m 750 -p "$(DESTDIR)${runstatedir}/${PACKAGE_NAME}" - chmod 750 "$(DESTDIR)${runstatedir}/${PACKAGE_NAME}" - mkdir -m 750 -p "$(DESTDIR)${sysconfdir}/${PACKAGE_NAME}" - chmod 750 "$(DESTDIR)${sysconfdir}/${PACKAGE_NAME}" - EXTRA_DIST = tools/path_replacer.sh EXTRA_DIST += tools/mk_cfgrpt.sh diff --git a/src/lib/dhcpsrv/Makefile.am b/src/lib/dhcpsrv/Makefile.am index 7e0f3c4..08c53d8 100644 --- a/src/lib/dhcpsrv/Makefile.am +++ b/src/lib/dhcpsrv/Makefile.am @@ -420,6 +420,3 @@ libkea_dhcpsrv_parsers_include_HEADERS = \ parsers/shared_networks_list_parser.h \ parsers/simple_parser4.h \ parsers/simple_parser6.h - -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(dhcp_data_dir) pkgs/by-name/ke/kea/package.nix +58 −39 Original line number Diff line number Diff line Loading @@ -4,87 +4,108 @@ fetchurl, # build time autoreconfHook, bison, flex, meson, ninja, pkg-config, python3Packages, # runtime withMysql ? stdenv.buildPlatform.system == stdenv.hostPlatform.system, withPostgres ? stdenv.buildPlatform.system == stdenv.hostPlatform.system, boost186, libmysqlclient, boost, log4cplus, openssl, libpq, python3, withKrb5 ? true, krb5, withMysql ? stdenv.buildPlatform.system == stdenv.hostPlatform.system, libmysqlclient, withPostgresql ? stdenv.buildPlatform.system == stdenv.hostPlatform.system, libpq, # tests nixosTests, }: stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: { pname = "kea"; version = "2.6.3"; # only even minor versions are stable version = "3.0.0"; # only even minor versions are stable src = fetchurl { url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz"; hash = "sha256-ACQaWVX/09IVosCYxFJ/nX9LIDGIsnb5o2JQ3T2d1hI="; url = "https://ftp.isc.org/isc/kea/${finalAttrs.version}/kea-${finalAttrs.version}.tar.xz"; hash = "sha256-v5Y9HhCVHYxXDGBCr8zyfHCdReA4E70mOde7HPxP7nY="; }; patches = [ ./dont-create-var.patch ./dont-create-system-paths.patch ]; postPatch = '' substituteInPlace ./src/bin/keactrl/Makefile.am --replace-fail '@sysconfdir@' "$out/etc" # darwin special-casing just causes trouble substituteInPlace ./m4macros/ax_crypto.m4 --replace-fail 'apple-darwin' 'nope' patchShebangs \ scripts/grabber.py \ doc/sphinx/*.sh.in ''; outputs = [ "out" "doc" "man" "python" ]; configureFlags = [ "--enable-perfdhcp" "--enable-shell" "--localstatedir=/var" "--with-openssl=${lib.getDev openssl}" ] ++ lib.optional withPostgres "--with-pgsql=${libpq.pg_config}/bin/pg_config" ++ lib.optional withMysql "--with-mysql=${lib.getDev libmysqlclient}/bin/mysql_config"; mesonFlags = [ (lib.mesonOption "crypto" "openssl") (lib.mesonEnable "krb5" withKrb5) (lib.mesonEnable "mysql" withMysql) (lib.mesonEnable "netconf" false) # missing libyang-cpp, sysinfo, libsysrepo-cpp (lib.mesonEnable "postgresql" withPostgresql) (lib.mesonOption "localstatedir" "/var") (lib.mesonOption "runstatedir" "/run") ]; postConfigure = '' # Mangle embedded paths to dev-only inputs. sed -e "s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" -i config.report for file in config.report meson-info/intro*.json; do sed -e "s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" -i "$file" done ''; nativeBuildInputs = [ autoreconfHook bison flex meson ninja pkg-config python3 ] ++ (with python3Packages; [ sphinxHook sphinx sphinx-rtd-theme ]); sphinxBuilders = [ "html" "man" ]; sphinxRoot = "doc/sphinx"; buildInputs = [ boost186 # does not build with 1.87 yet, see https://gitlab.isc.org/isc-projects/kea/-/merge_requests/2523 libmysqlclient boost log4cplus openssl python3 ] ++ lib.optionals withMysql [ libmysqlclient ] ++ lib.optionals withPostgresql [ libpq ] ++ lib.optionals withKrb5 [ krb5 ]; enableParallelBuilding = true; postBuild = '' ninja doc ''; postFixup = '' mkdir -p $python/lib mv $out/lib/python* $python/lib/ ''; passthru.tests = { kea = nixosTests.kea; Loading @@ -98,9 +119,7 @@ stdenv.mkDerivation rec { }; meta = { # error: implicit instantiation of undefined template 'std::char_traits<unsigned char>' broken = stdenv.hostPlatform.isDarwin; changelog = "https://downloads.isc.org/isc/kea/${version}/Kea-${version}-ReleaseNotes.txt"; changelog = "https://gitlab.isc.org/isc-projects/kea/-/wikis/Release-Notes/release-notes-${finalAttrs.version}"; homepage = "https://kea.isc.org/"; description = "High-performance, extensible DHCP server by ISC"; longDescription = '' Loading @@ -117,4 +136,4 @@ stdenv.mkDerivation rec { hexa ]; }; } }) Loading
nixos/modules/services/networking/kea.nix +52 −22 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ config, lib, pkgs, utils, ... }: let Loading Loading @@ -34,11 +35,11 @@ let DhcpDdns = cfg.dhcp-ddns.settings; } ); package = pkgs.kea; in { options.services.kea = with lib.types; { package = lib.mkPackageOption pkgs "kea" { }; ctrl-agent = lib.mkOption { description = '' Kea Control Agent configuration Loading @@ -60,7 +61,7 @@ in type = nullOr path; default = null; description = '' Kea Control Agent configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html>. Kea Control Agent configuration as a path, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/agent.html>. Takes preference over [settings](#opt-services.kea.ctrl-agent.settings). Most users should prefer using [settings](#opt-services.kea.ctrl-agent.settings) instead. Loading @@ -71,7 +72,7 @@ in type = format.type; default = null; description = '' Kea Control Agent configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html>. Kea Control Agent configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/agent.html>. ''; }; }; Loading Loading @@ -99,7 +100,7 @@ in type = nullOr path; default = null; description = '' Kea DHCP4 configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp4-srv.html>. Kea DHCP4 configuration as a path, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp4-srv.html>. Takes preference over [settings](#opt-services.kea.dhcp4.settings). Most users should prefer using [settings](#opt-services.kea.dhcp4.settings) instead. Loading Loading @@ -136,7 +137,7 @@ in ]; }; description = '' Kea DHCP4 configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp4-srv.html>. Kea DHCP4 configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp4-srv.html>. ''; }; }; Loading Loading @@ -164,7 +165,7 @@ in type = nullOr path; default = null; description = '' Kea DHCP6 configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp6-srv.html>. Kea DHCP6 configuration as a path, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp6-srv.html>. Takes preference over [settings](#opt-services.kea.dhcp6.settings). Most users should prefer using [settings](#opt-services.kea.dhcp6.settings) instead. Loading Loading @@ -202,7 +203,7 @@ in ]; }; description = '' Kea DHCP6 configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp6-srv.html>. Kea DHCP6 configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp6-srv.html>. ''; }; }; Loading Loading @@ -230,7 +231,7 @@ in type = nullOr path; default = null; description = '' Kea DHCP-DDNS configuration as a path, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/ddns.html>. Kea DHCP-DDNS configuration as a path, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/ddns.html>. Takes preference over [settings](#opt-services.kea.dhcp-ddns.settings). Most users should prefer using [settings](#opt-services.kea.dhcp-ddns.settings) instead. Loading @@ -255,7 +256,7 @@ in }; }; description = '' Kea DHCP-DDNS configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${package.version}/arm/ddns.html>. Kea DHCP-DDNS configuration as an attribute set, see <https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/ddns.html>. ''; }; }; Loading @@ -266,9 +267,10 @@ in config = let commonEnvironment = { KEA_CONTROL_SOCKET_DIR = "/run/kea"; KEA_LOCKFILE_DIR = "/run/kea"; KEA_PIDFILE_DIR = "/run/kea"; # Allow hook scripts only when they originate from the system configuration KEA_HOOK_SCRIPTS_PATH = lib.mkDefault "/nix/store"; # Allow hooks to originate from the configured package KEA_HOOKS_PATH = lib.mkDefault "${cfg.package}/lib/kea/hooks"; }; commonServiceConfig = { Loading @@ -291,7 +293,7 @@ in lib.mkIf (cfg.ctrl-agent.enable || cfg.dhcp4.enable || cfg.dhcp6.enable || cfg.dhcp-ddns.enable) ( lib.mkMerge [ { environment.systemPackages = [ package ]; environment.systemPackages = [ cfg.package ]; users.users.kea = { isSystemUser = true; Loading @@ -314,7 +316,7 @@ in description = "Kea Control Agent"; documentation = [ "man:kea-ctrl-agent(8)" "https://kea.readthedocs.io/en/kea-${package.version}/arm/agent.html" "https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/agent.html" ]; wants = [ Loading @@ -337,7 +339,14 @@ in ]; serviceConfig = { ExecStart = "${package}/bin/kea-ctrl-agent -c /etc/kea/ctrl-agent.conf ${lib.escapeShellArgs cfg.ctrl-agent.extraArgs}"; ExecStart = utils.escapeSystemdExecArgs ( [ (lib.getExe' cfg.package "kea-ctrl-agent") "-c" "/etc/kea/ctrl-agent.conf" ] ++ cfg.ctrl-agent.extraArgs ); KillMode = "process"; Restart = "on-failure"; } Loading @@ -359,7 +368,7 @@ in description = "Kea DHCP4 Server"; documentation = [ "man:kea-dhcp4(8)" "https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp4-srv.html" "https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp4-srv.html" ]; after = [ Loading @@ -380,7 +389,14 @@ in ]; serviceConfig = { ExecStart = "${package}/bin/kea-dhcp4 -c /etc/kea/dhcp4-server.conf ${lib.escapeShellArgs cfg.dhcp4.extraArgs}"; ExecStart = utils.escapeSystemdExecArgs ( [ (lib.getExe' cfg.package "kea-dhcp4") "-c" "etc/kea/dhcp4-server.conf" ] ++ cfg.dhcp4.extraArgs ); # Kea does not request capabilities by itself AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" Loading Loading @@ -409,7 +425,7 @@ in description = "Kea DHCP6 Server"; documentation = [ "man:kea-dhcp6(8)" "https://kea.readthedocs.io/en/kea-${package.version}/arm/dhcp6-srv.html" "https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/dhcp6-srv.html" ]; after = [ Loading @@ -430,7 +446,14 @@ in ]; serviceConfig = { ExecStart = "${package}/bin/kea-dhcp6 -c /etc/kea/dhcp6-server.conf ${lib.escapeShellArgs cfg.dhcp6.extraArgs}"; ExecStart = utils.escapeSystemdExecArgs ( [ (lib.getExe' cfg.package "kea-dhcp6") "-c" "/etc/kea/dhcp6-server.conf" ] ++ cfg.dhcp6.extraArgs ); # Kea does not request capabilities by itself AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" Loading @@ -457,7 +480,7 @@ in description = "Kea DHCP-DDNS Server"; documentation = [ "man:kea-dhcp-ddns(8)" "https://kea.readthedocs.io/en/kea-${package.version}/arm/ddns.html" "https://kea.readthedocs.io/en/kea-${cfg.package.version}/arm/ddns.html" ]; wants = [ "network-online.target" ]; Loading @@ -476,7 +499,14 @@ in ]; serviceConfig = { ExecStart = "${package}/bin/kea-dhcp-ddns -c /etc/kea/dhcp-ddns.conf ${lib.escapeShellArgs cfg.dhcp-ddns.extraArgs}"; ExecStart = utils.escapeSystemdExecArgs ( [ (lib.getExe' cfg.package "kea-dhcp-ddns") "-c" "/etc/kea/dhcp-ddns.conf" ] ++ cfg.dhcp-ddns.extraArgs ); AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; Loading
pkgs/by-name/ke/kea/dont-create-system-paths.patch 0 → 100644 +15 −0 Original line number Diff line number Diff line diff --git a/meson.build b/meson.build index 24ab9b5bd7..8f44076cf7 100644 --- a/meson.build +++ b/meson.build @@ -1118,10 +1118,6 @@ top_docs = [ ] install_data(top_docs, install_dir: DATADIR / 'doc/kea') -install_emptydir(LOGDIR) -install_emptydir(RUNSTATEDIR) -install_emptydir(SHAREDSTATEDIR) - # Meson is annoying with its opinionated alteration of certain paths based on whether prefix is default or not. # So we revert what it does.. # In case prefix is default, install to hardcoded path.
pkgs/by-name/ke/kea/dont-create-var.patchdeleted 100644 → 0 +0 −34 Original line number Diff line number Diff line diff --git a/Makefile.am b/Makefile.am index a81f4cc..5d61407 100644 --- a/Makefile.am +++ b/Makefile.am @@ -173,18 +173,6 @@ cppcheck: docs: $(MAKE) -C doc/sphinx - -# These steps are necessary during installation. chmod is for reinstallation/upgrade. -install-exec-hook: - mkdir -m 750 -p "$(DESTDIR)${localstatedir}/lib/${PACKAGE_NAME}" - chmod 750 "$(DESTDIR)${localstatedir}/lib/${PACKAGE_NAME}" - mkdir -m 750 -p "$(DESTDIR)${localstatedir}/log/${PACKAGE_NAME}" - chmod 750 "$(DESTDIR)${localstatedir}/log/${PACKAGE_NAME}" - mkdir -m 750 -p "$(DESTDIR)${runstatedir}/${PACKAGE_NAME}" - chmod 750 "$(DESTDIR)${runstatedir}/${PACKAGE_NAME}" - mkdir -m 750 -p "$(DESTDIR)${sysconfdir}/${PACKAGE_NAME}" - chmod 750 "$(DESTDIR)${sysconfdir}/${PACKAGE_NAME}" - EXTRA_DIST = tools/path_replacer.sh EXTRA_DIST += tools/mk_cfgrpt.sh diff --git a/src/lib/dhcpsrv/Makefile.am b/src/lib/dhcpsrv/Makefile.am index 7e0f3c4..08c53d8 100644 --- a/src/lib/dhcpsrv/Makefile.am +++ b/src/lib/dhcpsrv/Makefile.am @@ -420,6 +420,3 @@ libkea_dhcpsrv_parsers_include_HEADERS = \ parsers/shared_networks_list_parser.h \ parsers/simple_parser4.h \ parsers/simple_parser6.h - -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(dhcp_data_dir)
pkgs/by-name/ke/kea/package.nix +58 −39 Original line number Diff line number Diff line Loading @@ -4,87 +4,108 @@ fetchurl, # build time autoreconfHook, bison, flex, meson, ninja, pkg-config, python3Packages, # runtime withMysql ? stdenv.buildPlatform.system == stdenv.hostPlatform.system, withPostgres ? stdenv.buildPlatform.system == stdenv.hostPlatform.system, boost186, libmysqlclient, boost, log4cplus, openssl, libpq, python3, withKrb5 ? true, krb5, withMysql ? stdenv.buildPlatform.system == stdenv.hostPlatform.system, libmysqlclient, withPostgresql ? stdenv.buildPlatform.system == stdenv.hostPlatform.system, libpq, # tests nixosTests, }: stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: { pname = "kea"; version = "2.6.3"; # only even minor versions are stable version = "3.0.0"; # only even minor versions are stable src = fetchurl { url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz"; hash = "sha256-ACQaWVX/09IVosCYxFJ/nX9LIDGIsnb5o2JQ3T2d1hI="; url = "https://ftp.isc.org/isc/kea/${finalAttrs.version}/kea-${finalAttrs.version}.tar.xz"; hash = "sha256-v5Y9HhCVHYxXDGBCr8zyfHCdReA4E70mOde7HPxP7nY="; }; patches = [ ./dont-create-var.patch ./dont-create-system-paths.patch ]; postPatch = '' substituteInPlace ./src/bin/keactrl/Makefile.am --replace-fail '@sysconfdir@' "$out/etc" # darwin special-casing just causes trouble substituteInPlace ./m4macros/ax_crypto.m4 --replace-fail 'apple-darwin' 'nope' patchShebangs \ scripts/grabber.py \ doc/sphinx/*.sh.in ''; outputs = [ "out" "doc" "man" "python" ]; configureFlags = [ "--enable-perfdhcp" "--enable-shell" "--localstatedir=/var" "--with-openssl=${lib.getDev openssl}" ] ++ lib.optional withPostgres "--with-pgsql=${libpq.pg_config}/bin/pg_config" ++ lib.optional withMysql "--with-mysql=${lib.getDev libmysqlclient}/bin/mysql_config"; mesonFlags = [ (lib.mesonOption "crypto" "openssl") (lib.mesonEnable "krb5" withKrb5) (lib.mesonEnable "mysql" withMysql) (lib.mesonEnable "netconf" false) # missing libyang-cpp, sysinfo, libsysrepo-cpp (lib.mesonEnable "postgresql" withPostgresql) (lib.mesonOption "localstatedir" "/var") (lib.mesonOption "runstatedir" "/run") ]; postConfigure = '' # Mangle embedded paths to dev-only inputs. sed -e "s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" -i config.report for file in config.report meson-info/intro*.json; do sed -e "s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" -i "$file" done ''; nativeBuildInputs = [ autoreconfHook bison flex meson ninja pkg-config python3 ] ++ (with python3Packages; [ sphinxHook sphinx sphinx-rtd-theme ]); sphinxBuilders = [ "html" "man" ]; sphinxRoot = "doc/sphinx"; buildInputs = [ boost186 # does not build with 1.87 yet, see https://gitlab.isc.org/isc-projects/kea/-/merge_requests/2523 libmysqlclient boost log4cplus openssl python3 ] ++ lib.optionals withMysql [ libmysqlclient ] ++ lib.optionals withPostgresql [ libpq ] ++ lib.optionals withKrb5 [ krb5 ]; enableParallelBuilding = true; postBuild = '' ninja doc ''; postFixup = '' mkdir -p $python/lib mv $out/lib/python* $python/lib/ ''; passthru.tests = { kea = nixosTests.kea; Loading @@ -98,9 +119,7 @@ stdenv.mkDerivation rec { }; meta = { # error: implicit instantiation of undefined template 'std::char_traits<unsigned char>' broken = stdenv.hostPlatform.isDarwin; changelog = "https://downloads.isc.org/isc/kea/${version}/Kea-${version}-ReleaseNotes.txt"; changelog = "https://gitlab.isc.org/isc-projects/kea/-/wikis/Release-Notes/release-notes-${finalAttrs.version}"; homepage = "https://kea.isc.org/"; description = "High-performance, extensible DHCP server by ISC"; longDescription = '' Loading @@ -117,4 +136,4 @@ stdenv.mkDerivation rec { hexa ]; }; } })