From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57497) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d0qcS-0006Yc-FT for guix-patches@gnu.org; Wed, 19 Apr 2017 10:30:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d0qcP-00041S-75 for guix-patches@gnu.org; Wed, 19 Apr 2017 10:30:08 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:58786) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d0qcP-00041M-2b for guix-patches@gnu.org; Wed, 19 Apr 2017 10:30:05 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1d0qcO-0001e7-Qh for guix-patches@gnu.org; Wed, 19 Apr 2017 10:30:04 -0400 Subject: bug#26561: [PATCH 3/9] gnu: Add libselinux. Resent-Message-ID: From: Ricardo Wurmus Date: Wed, 19 Apr 2017 16:29:11 +0200 Message-Id: <20170419142918.11688-3-rekado@elephly.net> In-Reply-To: <20170419142918.11688-1-rekado@elephly.net> References: <20170419142918.11688-1-rekado@elephly.net> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 26561@debbugs.gnu.org Cc: Ricardo Wurmus * gnu/packages/selinux.scm (libselinux): New variable. --- gnu/packages/selinux.scm | 62 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/gnu/packages/selinux.scm b/gnu/packages/selinux.scm index 5f7e11928..bf5a62a87 100644 --- a/gnu/packages/selinux.scm +++ b/gnu/packages/selinux.scm @@ -22,9 +22,14 @@ #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages bison) - #:use-module (gnu packages flex)) + #:use-module (gnu packages flex) + #:use-module (gnu packages pcre) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages swig)) ;; Update the SELinux packages together! @@ -104,3 +109,58 @@ Checkmodule is a program that checks and compiles a SELinux security policy module into a binary representation.") ;; GPLv2 only (license license:gpl2))) + +(define-public libselinux + (package (inherit libsepol) + (name "libselinux") + (arguments + (substitute-keyword-arguments (package-arguments libsepol) + ((#:make-flags flags) + `(cons* "PYTHON=python3" + (string-append "PYSITEDIR=" + (assoc-ref %outputs "out") + "/lib/python3.5/site-packages/") + ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (replace 'enter-dir + (lambda _ (chdir ,name) #t)) + ;; libsepol.a is not located in this package's LIBDIR. + (add-after 'enter-dir 'patch-libsepol-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/Makefile" + (("\\$\\(LIBDIR\\)/libsepol.a") + (string-append (assoc-ref inputs "libsepol") + "/lib/libsepol.a"))) + #t)) + (add-after 'enter-dir 'remove-Werror + (lambda _ + ;; GCC complains about the fact that the output does not (yet) + ;; have an "include" directory, even though it is referenced. + (substitute* '("src/Makefile" + "utils/Makefile") + (("-Werror ") "")) + #t)) + (add-after 'build 'pywrap + (lambda* (#:key make-flags #:allow-other-keys) + (zero? (apply system* "make" "pywrap" make-flags)))) + (add-after 'install 'install-pywrap + (lambda* (#:key make-flags #:allow-other-keys) + (zero? (apply system* "make" "install-pywrap" make-flags)))))))) + (inputs + `(("libsepol" ,libsepol) + ("pcre" ,pcre) + ;; For pywrap phase + ("python" ,python-wrapper))) + ;; These inputs are only needed for the pywrap phase. + (native-inputs + `(("swig" ,swig) + ("pkg-config" ,pkg-config))) + (synopsis "SELinux core libraries and utilities") + (description + "The libselinux library provides an API for SELinux applications to get +and set process and file security contexts, and to obtain security policy +decisions. It is required for any applications that use the SELinux API, and +used by all applications that are SELinux-aware. This package also includes +the core SELinux management utilities.") + (license license:public-domain))) -- 2.12.2