Package: guix-patches;
Reported by: Hilton Chain <hako <at> ultrarare.space>
Date: Thu, 17 Nov 2022 16:29:02 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Message #26 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Hilton Chain <hako <at> ultrarare.space> To: guix-patches <at> gnu.org Subject: [PATCH v2 0/3] gnu: Add apparmor. Date: Fri, 18 Nov 2022 12:28:17 +0800
v1 -> v2: 1. Build Ruby bindings for libapparmor. 2. Build the original apparmor, apparmor-parser, apparmor-utils, apparmor-profiles into a single package, apparmor. 3. Fix paths in aa-easyprof's config file. Hilton Chain (3): gnu: Add libapparmor. gnu: Add apparmor. gnu: Add pam-apparmor. gnu/local.mk | 1 + gnu/packages/apparmor.scm | 196 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 197 insertions(+) create mode 100644 gnu/packages/apparmor.scm The following is the diff range from v1 to v2: diff --git a/gnu/packages/apparmor.scm b/gnu/packages/apparmor.scm index 85f3e9c6ae..3136091747 100644 --- a/gnu/packages/apparmor.scm +++ b/gnu/packages/apparmor.scm @@ -55,10 +55,31 @@ (define-public libapparmor (arguments (list #:configure-flags #~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib") - "--with-perl" "--with-python") + "--with-perl" "--with-python" "--with-ruby") #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'change-directory + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (for-each patch-shebang + '("common/list_af_names.sh" + "common/list_capabilities.sh")) + (for-each (lambda (file) + (substitute* file + (("/usr") "") + (("/bin/\\<(pod2man|pod2html|podchecker|prove)\\>" path) + (search-input-file inputs path)) + (("/include/linux/capability.h" path) + (search-input-file inputs path)))) + '("common/Make-po.rules" + "common/Make.rules" + "binutils/Makefile" + "parser/Makefile" + "parser/tst/Makefile" + "profiles/Makefile" + "utils/Makefile" + "utils/python-tools-setup.py" + "utils/vim/Makefile")))) + (add-after 'fix-paths 'change-directory (lambda _ (chdir "libraries/libapparmor")))))) (native-inputs @@ -70,6 +91,7 @@ (define-public libapparmor libtool perl python-minimal + ruby swig which)) (home-page "https://apparmor.net") @@ -90,112 +112,67 @@ (define-public libapparmor (license license:lgpl2.1))) (define-public apparmor - (package - (inherit libapparmor) - (name "apparmor") - (arguments - (list #:make-flags - #~(list (string-append "CC=" #$(cc-for-target)) - (string-append "DESTDIR=" #$output) - "USE_SYSTEM=1") - #:phases - #~(modify-phases %standard-phases + (let ((base libapparmor)) + (package + (inherit base) + (name "apparmor") + (arguments + (append + (list #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "DESTDIR=" #$output) + "USE_SYSTEM=1" + ;; No need to run the linter + "PYFLAKES=true")) + (substitute-keyword-arguments (package-arguments base) + ((#:phases phases) + #~(modify-phases #$phases (delete 'configure) - (add-after 'unpack 'fix-makefile-paths - (lambda _ - (for-each patch-shebang - '("common/list_af_names.sh" - "common/list_capabilities.sh")) - (for-each (lambda (file) - (substitute* file - (("/usr/bin/\\<(pod2man|pod2html|prove)\\>" all cmd) cmd) - (("/usr") ""))) - '("common/Make-po.rules" - "common/Make.rules" - "binutils/Makefile" - "parser/Makefile" - "parser/tst/Makefile" - "profiles/Makefile" - "utils/Makefile" - "utils/python-tools-setup.py" - "utils/vim/Makefile")))) - (add-after 'fix-makefile-paths 'change-directory + ;; apparmor-binutils + (replace 'change-directory (lambda _ - (chdir "binutils")))))) - (native-inputs (list gettext-minimal perl which)) - (inputs (list libapparmor)) - (license license:gpl2))) + (chdir "binutils"))) -(define-public apparmor-parser - (let ((base apparmor)) - (package - (inherit base) - (name "apparmor-parser") - (arguments - (substitute-keyword-arguments (package-arguments base) - ((#:phases phases) - #~(modify-phases #$phases - (replace 'change-directory - (lambda _ - (chdir "parser"))) - (add-after 'change-directory 'fix-kernel-header-path - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "Makefile" - (("/include/linux/capability.h" path) - (search-input-file inputs path))))))))) - (native-inputs - (modify-inputs (package-native-inputs base) - (append bison flex python-minimal)))))) + ;; apparmor-parser + (add-after 'install 'chdir-parser + (lambda _ + (chdir "../parser"))) + (add-after 'chdir-parser 'patch-source-shebangs-parser + (assoc-ref %standard-phases 'patch-source-shebangs)) + (add-after 'patch-source-shebangs-parser 'build-parser + (assoc-ref %standard-phases 'build)) + (add-after 'build-parser 'check-parser + (assoc-ref %standard-phases 'check)) + (add-after 'check-parser 'install-parser + (assoc-ref %standard-phases 'install)) -(define-public apparmor-utils - (let ((base apparmor)) - (package - (inherit base) - (name "apparmor-utils") - (arguments - (append - ;; FIXME: Tests required Python library from this package (itself). - (list #:tests? #f) - (substitute-keyword-arguments (package-arguments base) - ((#:phases phases) - #~(modify-phases #$phases - (replace 'change-directory + ;; apparmor-utils + ;; FIXME: Tests required Python library from this package + ;; (itself). + (add-after 'install-parser 'chdir-utils (lambda _ - (chdir "utils"))) - (add-after 'change-directory 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - ;; Fix kernel header path - (substitute* "Makefile" - (("/include/linux/capability.h" path) - (search-input-file inputs path))) - ;; Fix apparmor_parser path - (for-each (lambda (file) - (substitute* file - (("/sbin/apparmor_parser" path) - (search-input-file inputs path)))) - '("apparmor/aa.py" - "apparmor/easyprof.py" - "logprof.conf"))))))))) - (native-inputs - (modify-inputs (package-native-inputs base) - (append python-minimal))) - (inputs - (modify-inputs (package-inputs base) - (append apparmor-parser)))))) + (chdir "../utils") + ;; Fix paths to installed policygroups and templates for + ;; easyprof. + (substitute* "easyprof/easyprof.conf" + (("/usr") #$output)))) + (add-after 'chdir-utils 'build-utils + (assoc-ref %standard-phases 'build)) + (add-after 'build-utils 'install-utils + (assoc-ref %standard-phases 'install)) -(define-public apparmor-profiles - (let ((base apparmor)) - (package - (inherit base) - (name "apparmor-profiles") - (arguments - (append - (list #:tests? #f) ;Needs an AppArmor-enabled system. - (substitute-keyword-arguments (package-arguments base) - ((#:phases phases) - #~(modify-phases #$phases - (replace 'change-directory + ;; apparmor-profiles + ;; FIXME: Tests need an AppArmor-enabled system. + (add-after 'install-utils 'chdir-profiles (lambda _ - (chdir "profiles")))))))) - (native-inputs (list which)) - (inputs '())))) + (chdir "../profiles"))) + (add-after 'chdir-profiles 'build-profiles + (assoc-ref %standard-phases 'build)) + (add-after 'check-build 'install-profiles + (assoc-ref %standard-phases 'install))))))) + (propagated-inputs + (list libapparmor)) + ;; Python module `readline' needed + (native-inputs + (list bison flex gettext-minimal perl python which)) + (license license:gpl2)))) (define-public pam-apparmor (let ((base apparmor)) base-commit: 8e42bfaffa3ecee4c3f0ee6ff257f4fcd90d4677 -- 2.38.1
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.