diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 5510944b2152..90c2d09fc979 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -222,6 +222,7 @@ ./programs/noisetorch.nix ./programs/npm.nix ./programs/oblogout.nix + ./programs/oddjobd.nix ./programs/openvpn3.nix ./programs/pantheon-tweaks.nix ./programs/partition-manager.nix diff --git a/nixos/modules/programs/oddjobd.nix b/nixos/modules/programs/oddjobd.nix new file mode 100644 index 000000000000..a37df0482c9a --- /dev/null +++ b/nixos/modules/programs/oddjobd.nix @@ -0,0 +1,28 @@ +{ config, pkgs, lib, ... }: + +let + cfg = config.programs.oddjobd; +in +{ + options.programs.oddjobd = { + enable = lib.mkEnableOption "oddjob"; + package = lib.mkPackageOption pkgs "oddjob" {}; + }; + + config = lib.mkIf cfg.enable { + systemd.packages = [ cfg.package ]; + + systemd.services.oddjobd = { + wantedBy = [ "multi-user.target"]; + after = [ "network.target"]; + description = "DBUS Odd-job Daemon"; + enable = true; + documentation = [ "man:oddjobd(8)" "man:oddjobd.conf(5)" ]; + serviceConfig = { + Type = "dbus"; + BusName = "org.freedesktop.oddjob"; + ExecStart = "${lib.getExe cfg.package}/bin/oddjobd"; + }; + }; + }; +} diff --git a/pkgs/os-specific/linux/oddjob/default.nix b/pkgs/os-specific/linux/oddjob/default.nix new file mode 100644 index 000000000000..bcbea9086488 --- /dev/null +++ b/pkgs/os-specific/linux/oddjob/default.nix @@ -0,0 +1,60 @@ +{ lib +, fetchurl +, stdenv +, autoreconfHook +, dbus +, libxml2 +, pam +, pkg-config +, systemd +}: + +stdenv.mkDerivation rec { + pname = "oddjob"; + version = "0.34.7"; + + src = fetchurl { + url = "https://pagure.io/oddjob/archive/${pname}-${version}/oddjob-${pname}-${version}.tar.gz"; + hash = "sha256-SUOsMH55HtEsk5rX0CXK0apDObTj738FGOaL5xZRnIM="; + }; + + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + + buildInputs =[ + libxml2 + dbus + pam + systemd + ]; + + postPatch = '' + substituteInPlace configure.ac \ + --replace 'SYSTEMDSYSTEMUNITDIR=`pkg-config --variable=systemdsystemunitdir systemd 2> /dev/null`' "SYSTEMDSYSTEMUNITDIR=${placeholder "out"}" \ + --replace 'SYSTEMDSYSTEMUNITDIR=`pkg-config --variable=systemdsystemunitdir systemd`' "SYSTEMDSYSTEMUNITDIR=${placeholder "out"}" + ''; + + configureFlags = [ + "--prefix=${placeholder "out"}" + "--sysconfdir=${placeholder "out"}/etc" + "--with-selinux-acls=no" + "--with-selinux-labels=no" + "--disable-systemd" + ]; + + postConfigure = '' + substituteInPlace src/oddjobd.c \ + --replace "globals.selinux_enabled" "FALSE" + ''; + + meta = with lib; { + description = "Odd Job Daemon"; + homepage = "https://pagure.io/oddjob"; + changelog = "https://pagure.io/oddjob/blob/oddjob-${version}/f/ChangeLog"; + license = licenses.bsd0; + platforms = platforms.linux; + maintainers = with maintainers; [ SohamG ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d18778d4642f..f3e6945e7473 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9888,6 +9888,8 @@ with pkgs; notesnook = callPackage ../applications/misc/notesnook { }; + oddjob = callPackage ../os-specific/linux/oddjob { }; + openipmi = callPackage ../tools/system/openipmi { }; ox = callPackage ../applications/editors/ox { };