diff options
Diffstat (limited to 'pkgs/os-specific/linux/audit/default.nix')
-rw-r--r-- | pkgs/os-specific/linux/audit/default.nix | 105 |
1 files changed, 52 insertions, 53 deletions
diff --git a/pkgs/os-specific/linux/audit/default.nix b/pkgs/os-specific/linux/audit/default.nix index 30327fb1082..1e941a13767 100644 --- a/pkgs/os-specific/linux/audit/default.nix +++ b/pkgs/os-specific/linux/audit/default.nix @@ -1,74 +1,73 @@ -{ - lib, stdenv, buildPackages, fetchurl, fetchpatch, - runCommand, - autoconf, automake, libtool, - enablePython ? false, python ? null, -}: +{ lib +, stdenv +, fetchurl +, fetchpatch +, autoreconfHook +, bash +, buildPackages +, libtool +, linuxHeaders +, python3 +, swig -assert enablePython -> python != null; +# Enabling python support while cross compiling would be possible, but the +# configure script tries executing python to gather info instead of relying on +# python3-config exclusively +, enablePython ? stdenv.hostPlatform == stdenv.buildPlatform, +}: -stdenv.mkDerivation rec { - name = "audit-2.8.5"; # at the next release, remove the patches below! +stdenv.mkDerivation (finalAttrs: { + pname = "audit"; + version = "3.1.2"; src = fetchurl { - url = "https://people.redhat.com/sgrubb/audit/${name}.tar.gz"; - sha256 = "1dzcwb2q78q7x41shcachn7f4aksxbxd470yk38zh03fch1l2p8f"; + url = "https://people.redhat.com/sgrubb/audit/audit-${finalAttrs.version}.tar.gz"; + hash = "sha256-wLF5LR8KiMbxgocQUJy7mHBZ/GhxLJdmnKkOrhA9KH0="; }; + postPatch = '' + substituteInPlace bindings/swig/src/auditswig.i \ + --replace "/usr/include/linux/audit.h" \ + "${linuxHeaders}/include/linux/audit.h" + ''; + outputs = [ "bin" "dev" "out" "man" ]; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = lib.optionals stdenv.hostPlatform.isMusl - [ autoconf automake libtool ]; - buildInputs = lib.optional enablePython python; + strictDeps = true; + + depsBuildBuild = [ + buildPackages.stdenv.cc + ]; + + nativeBuildInputs = [ + autoreconfHook + ] + ++ lib.optionals enablePython [ + python3 + swig + ]; + + buildInputs = [ + bash + ]; configureFlags = [ - # z/OS plugin is not useful on Linux, - # and pulls in an extra openldap dependency otherwise + # z/OS plugin is not useful on Linux, and pulls in an extra openldap + # dependency otherwise "--disable-zos-remote" - (if enablePython then "--with-python" else "--without-python") "--with-arm" "--with-aarch64" + (if enablePython then "--with-python" else "--without-python") ]; enableParallelBuilding = true; - # TODO: Remove the musl patches when - # https://github.com/linux-audit/audit-userspace/pull/25 - # is available with the next release. - patches = [ ./patches/weak-symbols.patch ] - ++ lib.optional stdenv.hostPlatform.isMusl [ - ( - let patch = fetchpatch { - url = "https://github.com/linux-audit/audit-userspace/commit/d579a08bb1cde71f939c13ac6b2261052ae9f77e.patch"; - name = "Add-substitue-functions-for-strndupa-rawmemchr.patch"; - sha256 = "015bvzflg1s1k5viap30nznlpjj44a66khyc8yq0waa68qwvdlsd"; - }; - in - runCommand "Add-substitue-functions-for-strndupa-rawmemchr.patch-fix-copyright-merge-conflict" {} '' - cp ${patch} $out - substituteInPlace $out --replace \ - '-* Copyright (c) 2007-09,2011-16,2018 Red Hat Inc., Durham, North Carolina.' \ - '-* Copyright (c) 2007-09,2011-16 Red Hat Inc., Durham, North Carolina.' - '' - ) - ]; - - prePatch = '' - sed -i 's,#include <sys/poll.h>,#include <poll.h>\n#include <limits.h>,' audisp/audispd.c - '' - # According to https://stackoverflow.com/questions/13089166 - # --whole-archive linker flag is required to be sure that linker - # correctly chooses strong version of symbol regardless of order of - # object files at command line. - + lib.optionalString stdenv.hostPlatform.isStatic '' - export LDFLAGS=-Wl,--whole-archive - ''; meta = { - description = "Audit Library"; homepage = "https://people.redhat.com/sgrubb/audit/"; - license = lib.licenses.gpl2; + description = "Audit Library"; + changelog = "https://github.com/linux-audit/audit-userspace/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ AndersonTorres ]; platforms = lib.platforms.linux; - maintainers = with lib.maintainers; [ ]; }; -} +}) |