Ricardo Wurmus writes: > * gnu/packages/selinux.scm: New file. > * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. > --- > gnu/local.mk | 1 + > gnu/packages/selinux.scm | 71 ++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 72 insertions(+) > create mode 100644 gnu/packages/selinux.scm > > diff --git a/gnu/local.mk b/gnu/local.mk > index 5822add4c..77302573a 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -342,6 +342,7 @@ GNU_SYSTEM_MODULES = \ > %D%/packages/sdl.scm \ > %D%/packages/search.scm \ > %D%/packages/security-token.scm \ > + %D%/packages/selinux.scm \ > %D%/packages/serialization.scm \ > %D%/packages/serveez.scm \ > %D%/packages/shells.scm \ > diff --git a/gnu/packages/selinux.scm b/gnu/packages/selinux.scm > new file mode 100644 > index 000000000..75758dd6b > --- /dev/null > +++ b/gnu/packages/selinux.scm > @@ -0,0 +1,71 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright © 2016, 2017 Ricardo Wurmus > +;;; > +;;; This file is part of GNU Guix. > +;;; > +;;; GNU Guix is free software; you can redistribute it and/or modify it > +;;; under the terms of the GNU General Public License as published by > +;;; the Free Software Foundation; either version 3 of the License, or (at > +;;; your option) any later version. > +;;; > +;;; GNU Guix is distributed in the hope that it will be useful, but > +;;; WITHOUT ANY WARRANTY; without even the implied warranty of > +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +;;; GNU General Public License for more details. > +;;; > +;;; You should have received a copy of the GNU General Public License > +;;; along with GNU Guix. If not, see . > + > +(define-module (gnu packages selinux) > + #:use-module ((guix licenses) #:prefix license:) > + #:use-module (guix packages) > + #:use-module (guix download) > + #:use-module (guix utils) > + #:use-module (guix build-system gnu) > + #:use-module (gnu packages) > + #:use-module (gnu packages flex)) > + > +;; Update the SELinux packages together! > + > +(define-public libsepol > + (package > + (name "libsepol") > + (version "2.6") > + (source (let ((release "20161014")) > + (origin > + (method url-fetch) > + (uri (string-append "https://github.com/SELinuxProject/selinux/" > + "archive/" release ".tar.gz")) > + (file-name (string-append "selinux-" release ".tar.gz")) > + (sha256 > + (base32 > + "1dpwynfb6n31928343blac4159g4jbrwxdp61q5yffmxpy3c3czi"))))) > + (build-system gnu-build-system) > + (arguments > + `(#:tests? #f ; tests require checkpolicy, which requires libsepol I guess we could work around this as with other circular dependencies, but that can be done later. > + #:test-target "test" > + #:make-flags > + (let ((out (assoc-ref %outputs "out"))) > + (list (string-append "PREFIX=" out) > + (string-append "DESTDIR=" out) > + (string-append "MAN3DIR=" out "/share/man/man3") > + (string-append "MAN5DIR=" out "/share/man/man5") > + (string-append "MAN8DIR=" out "/share/man/man8") > + (string-append "LDFLAGS=-Wl,-rpath=" out "/lib") > + "CC=gcc")) > + #:phases > + (modify-phases %standard-phases > + (delete 'configure) > + (add-after 'unpack 'enter-dir > + (lambda _ (chdir ,name) #t))))) > + (native-inputs > + `(("flex" ,flex))) > + (home-page "http://selinuxproject.org/") ^^^ https* > + (synopsis "Library for manipulating SELinux policies") > + (description > + "The libsepol library provides an API for the manipulation of SELinux > +binary policies. It is used by @code{checkpolicy} (the policy compiler) and > +similar tools, and programs such as @code{load_policy}, which must perform > +specific transformations on binary policies (for example, customizing policy > +boolean settings).") > + (license license:lgpl2.1+))) > -- > 2.12.2