selinux: 2.9 -> 3.0 (#104087)

Notably, Python 2 code is not be supported in this project anymore and
new Python code should be written only for Python 3, which is no longer
restricted to Python 3.7 (see 780fb563c7,
5dfd3c4975)

https://github.com/SELinuxProject/selinux/releases/tag/20191204
This commit is contained in:
Arnout Engelen 2020-11-20 14:54:14 +01:00 committed by GitHub
parent cbb4e4733b
commit 70ecb218f1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 16 deletions

View file

@ -1,26 +1,26 @@
{ stdenv, fetchurl, pcre, pkgconfig, libsepol
, enablePython ? true, swig ? null, python ? null
, enablePython ? true, swig ? null, python3 ? null
, fts
}:
assert enablePython -> swig != null && python != null;
assert enablePython -> swig != null && python3 != null;
with stdenv.lib;
stdenv.mkDerivation rec {
pname = "libselinux";
version = "2.9";
version = "3.0";
inherit (libsepol) se_release se_url;
outputs = [ "bin" "out" "dev" "man" ] ++ optional enablePython "py";
src = fetchurl {
url = "${se_url}/${se_release}/libselinux-${version}.tar.gz";
sha256 = "14r69mgmz7najf9wbizvp68q56mqx4yjbkxjlbcqg5a47s3wik0v";
sha256 = "0cr4p0qkr4qd5z1x677vwhz6mlz55kxyijwi2dmrvbhxcw7v78if";
};
nativeBuildInputs = [ pkgconfig ] ++ optionals enablePython [ swig python ];
buildInputs = [ libsepol pcre fts ] ++ optionals enablePython [ python ];
nativeBuildInputs = [ pkgconfig ] ++ optionals enablePython [ swig python3 ];
buildInputs = [ libsepol pcre fts ] ++ optionals enablePython [ python3 ];
# drop fortify here since package uses it by default, leading to compile error:
# command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
@ -35,14 +35,18 @@ stdenv.mkDerivation rec {
"MAN3DIR=$(man)/share/man/man3"
"MAN5DIR=$(man)/share/man/man5"
"MAN8DIR=$(man)/share/man/man8"
"PYTHON=${python.pythonForBuild}/bin/python"
"PYTHONLIBDIR=$(py)/${python.sitePackages}"
"PYTHON=${python3.pythonForBuild}/bin/python"
"PYTHONLIBDIR=$(py)/${python3.sitePackages}"
"SBINDIR=$(bin)/sbin"
"SHLIBDIR=$(out)/lib"
"LIBSEPOLA=${stdenv.lib.getLib libsepol}/lib/libsepol.a"
];
preInstall = ''
mkdir -p $py/${python3.sitePackages}/selinux
'';
installTargets = [ "install" ] ++ optional enablePython "install-pywrap";
meta = removeAttrs libsepol.meta ["outputsToInstall"] // {

View file

@ -2,15 +2,15 @@
stdenv.mkDerivation rec {
pname = "libsepol";
version = "2.9";
se_release = "20190315";
version = "3.0";
se_release = "20191204";
se_url = "https://github.com/SELinuxProject/selinux/releases/download";
outputs = [ "bin" "out" "dev" "man" ];
src = fetchurl {
url = "${se_url}/${se_release}/libsepol-${version}.tar.gz";
sha256 = "0p8x7w73jn1nysx1d7416wqrhbi0r6isrjxib7jf68fi72q14jx3";
sha256 = "0ygb6dh5lng91xs6xiqf5v0nxa68qmjc787p0s5h9w89364f2yjv";
};
nativeBuildInputs = [ flex ];

View file

@ -18505,9 +18505,7 @@ in
keyutils = callPackage ../os-specific/linux/keyutils { };
libselinux = callPackage ../os-specific/linux/libselinux {
python = python37;
};
libselinux = callPackage ../os-specific/linux/libselinux { };
libsemanage = callPackage ../os-specific/linux/libsemanage {
python = python3;

View file

@ -3447,13 +3447,13 @@ in {
p.overrideAttrs (super: {
meta = super.meta // {
outputsToInstall = [ "py" ];
broken = (super.meta.broken or false) || pythonAtLeast "3.8";
broken = super.meta.broken or isPy27;
};
}))
(p:
p.override {
enablePython = true;
inherit python;
python3 = python;
})
(p: p.py)
];