From 905f4725562b8cf07d1a75fd6e5d6573d5cb5520 Mon Sep 17 00:00:00 2001 From: xeji Date: Tue, 20 Mar 2018 14:56:08 +0100 Subject: [PATCH] selinux-python: init at 2.7 tools written in python that upstream moved from policycoreutils into a separate package --- .../linux/selinux-python/default.nix | 49 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 5 ++ 2 files changed, 54 insertions(+) create mode 100644 pkgs/os-specific/linux/selinux-python/default.nix diff --git a/pkgs/os-specific/linux/selinux-python/default.nix b/pkgs/os-specific/linux/selinux-python/default.nix new file mode 100644 index 000000000000..8ac207d64214 --- /dev/null +++ b/pkgs/os-specific/linux/selinux-python/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchurl, python3 +, libselinux, libsemanage, libsepol, setools }: + +# this is python3 only because setools only supports python3 + +with stdenv.lib; +with python3.pkgs; + +stdenv.mkDerivation rec { + name = "selinux-python-${version}"; + version = "2.7"; + se_release = "20170804"; + se_url = "https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases"; + + src = fetchurl { + url = "${se_url}/${se_release}/selinux-python-${version}.tar.gz"; + sha256 = "1va0y4b7cah7rprh04b3ylmwqgnivpkw5z2zw68nrafdbsbcn5s2"; + }; + + nativeBuildInputs = [ wrapPython ]; + buildInputs = [ libsepol python3 ]; + propagatedBuildInputs = [ libselinux libsemanage setools ipy ]; + + postPatch = '' + substituteInPlace sepolicy/Makefile --replace "echo --root" "echo --prefix" + ''; + + preBuild = '' + makeFlagsArray+=("PREFIX=$out") + makeFlagsArray+=("DESTDIR=$out") + makeFlagsArray+=("LOCALEDIR=$out/share/locale") + makeFlagsArray+=("LIBSEPOLA=${libsepol}/lib/libsepol.a") + makeFlagsArray+=("BASHCOMPLETIONDIR=$out/share/bash-completion/completions") + makeFlagsArray+=("PYTHON=${python3}/bin/python") + makeFlagsArray+=("PYTHONLIBDIR=lib/${python3.libPrefix}/site-packages") + ''; + + postFixup = '' + wrapPythonPrograms + ''; + + meta = { + description = "SELinux policy core utilities written in Python"; + license = licenses.gpl2; + homepage = https://selinuxproject.org; + platforms = platforms.linux; + }; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 85fbb8894ecc..28ef4f64be7b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20660,6 +20660,11 @@ with pkgs; seafile-shared = callPackage ../misc/seafile-shared { }; serviio = callPackage ../servers/serviio {}; + selinux-python = callPackage ../os-specific/linux/selinux-python { + # needs python3 bindings + libselinux = libselinux.override { python = python3; }; + libsemanage = libsemanage.override { python = python3; }; + }; slock = callPackage ../misc/screensavers/slock { conf = config.slock.conf or null;