all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ricardo Wurmus <rekado@elephly.net>
To: 26561@debbugs.gnu.org
Cc: Ricardo Wurmus <rekado@elephly.net>
Subject: bug#26561: [PATCH 3/9] gnu: Add libselinux.
Date: Wed, 19 Apr 2017 16:29:11 +0200	[thread overview]
Message-ID: <20170419142918.11688-3-rekado@elephly.net> (raw)
In-Reply-To: <20170419142918.11688-1-rekado@elephly.net>

* 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

  parent reply	other threads:[~2017-04-19 14:30 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-19 12:56 bug#26561: [PATCH 0/9] SELinux Ricardo Wurmus
2017-04-19 14:29 ` bug#26561: [PATCH 1/9] gnu: Add libsepol Ricardo Wurmus
2017-04-19 14:29   ` bug#26561: [PATCH 2/9] gnu: Add checkpolicy Ricardo Wurmus
2017-04-19 14:29   ` Ricardo Wurmus [this message]
2017-04-19 14:29   ` bug#26561: [PATCH 4/9] gnu: Add libsemanage Ricardo Wurmus
2017-04-19 14:29   ` bug#26561: [PATCH 5/9] gnu: Add secilc Ricardo Wurmus
2017-04-19 14:29   ` bug#26561: [PATCH 6/9] gnu: Add python-sepolgen Ricardo Wurmus
2017-04-19 14:29   ` bug#26561: [PATCH 7/9] gnu: Add python-ipy Ricardo Wurmus
2017-04-19 14:29   ` bug#26561: [PATCH 8/9] gnu: Add python-setools Ricardo Wurmus
2017-04-19 14:29   ` bug#26561: [PATCH 9/9] gnu: Add policycoreutils Ricardo Wurmus
2017-04-19 19:59     ` Marius Bakke
2017-04-19 19:57   ` bug#26561: [PATCH 1/9] gnu: Add libsepol Marius Bakke
2017-04-21 22:21     ` Ricardo Wurmus
2017-04-19 20:01 ` bug#26561: [PATCH 0/9] SELinux Marius Bakke
2017-04-20  8:30   ` julien lepiller
2017-04-21 22:40   ` Ricardo Wurmus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170419142918.11688-3-rekado@elephly.net \
    --to=rekado@elephly.net \
    --cc=26561@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.