Skip to content

Commit

Permalink
grsecurity: discontinue support
Browse files Browse the repository at this point in the history
Upstream has decided to make -testing patches private, effectively ceasing
free support for grsecurity/PaX [1].  Consequently, we can no longer
responsibly support grsecurity on NixOS.

This patch turns the kernel and patch expressions into build errors and
adds a warning to the manual, but retains most of the infrastructure, in
an effort to make the transition smoother.  For 17.09 all of it should
probably be pruned.

[1]: https://grsecurity.net/passing_the_baton.php
  • Loading branch information
joachifm committed Apr 28, 2017
1 parent a012b15 commit 32b8512
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 26 deletions.
2 changes: 1 addition & 1 deletion nixos/modules/security/grsecurity.nix
Expand Up @@ -13,7 +13,7 @@ in

{
meta = {
maintainers = with maintainers; [ joachifm ];
maintainers = with maintainers; [ ];
doc = ./grsecurity.xml;
};

Expand Down
8 changes: 5 additions & 3 deletions nixos/modules/security/grsecurity.xml
Expand Up @@ -26,9 +26,11 @@
<link xlink:href="https://wiki.archlinux.org/index.php/Grsecurity">Arch
Linux wiki page on grsecurity</link>.

<note><para>grsecurity/PaX is only available for the latest linux -stable
kernel; patches against older kernels are available from upstream only for
a fee.</para></note>
<warning><para>Upstream has ceased free support for grsecurity/PaX. See
<link xlink:href="https://grsecurity.net/passing_the_baton.php">
the announcement</link> for more information. Consequently, NixOS
support for grsecurity/PaX also must cease. Enabling this module will
result in a build error.</para></warning>
<note><para>We standardise on a desktop oriented configuration primarily due
to lack of resources. The grsecurity/PaX configuration state space is huge
and each configuration requires quite a bit of testing to ensure that the
Expand Down
1 change: 0 additions & 1 deletion nixos/release.nix
Expand Up @@ -248,7 +248,6 @@ in rec {
tests.gocd-server = callTest tests/gocd-server.nix {};
tests.gnome3 = callTest tests/gnome3.nix {};
tests.gnome3-gdm = callTest tests/gnome3-gdm.nix {};
tests.grsecurity = callTest tests/grsecurity.nix {};
tests.hibernate = callTest tests/hibernate.nix {};
tests.hound = callTest tests/hound.nix {};
tests.i3wm = callTest tests/i3wm.nix {};
Expand Down
12 changes: 7 additions & 5 deletions pkgs/os-specific/linux/kernel/patches.nix
Expand Up @@ -99,11 +99,13 @@ rec {
sha256 = "00b1rqgd4yr206dxp4mcymr56ymbjcjfa4m82pxw73khj032qw3j";
};

grsecurity_testing = grsecPatch
{ kver = "4.9.24";
grrev = "201704220732";
sha512 = "0n9v066z3qh296fyvsg1gnygy7jd0cy0pnywxzglh58dnibl28q2ywjnp4ff30andzzq7rvjkk4n151xvs1n04pf2azkgz6igwfisg7";
};
grsecurity_testing = throw ''
Upstream has ceased free support for grsecurity/PaX.
See https://grsecurity.net/passing_the_baton.php
and https://grsecurity.net/passing_the_baton_faq.php
for more information.
'';

# This patch relaxes grsec constraints on the location of usermode helpers,
# e.g., modprobe, to allow calling into the Nix store.
Expand Down
17 changes: 1 addition & 16 deletions pkgs/top-level/all-packages.nix
Expand Up @@ -11893,22 +11893,7 @@ with pkgs;

# Grsecurity packages

linux_grsec_nixos = callPackage ../build-support/grsecurity {
inherit (lib) overrideDerivation;
kernel = callPackage ../os-specific/linux/kernel/linux-grsecurity.nix {
kernelPatches = with self.kernelPatches; [
bridge_stp_helper
modinst_arg_list_too_long
] ++ lib.optionals ((platform.kernelArch or null) == "mips")
[ kernelPatches.mips_fpureg_emu
kernelPatches.mips_fpu_sigill
kernelPatches.mips_ext3_n32
];
};
grsecPatch = self.kernelPatches.grsecurity_testing;
kernelPatches = [ self.kernelPatches.grsecurity_nixos_kmod ];
extraConfig = callPackage ../os-specific/linux/kernel/grsecurity-nixos-config.nix { };
};
linux_grsec_nixos = kernelPatches.grsecurity_testing;

linuxPackages_grsec_nixos =
recurseIntoAttrs (linuxPackagesFor linux_grsec_nixos);
Expand Down

2 comments on commit 32b8512

@danbst
Copy link
Contributor

@danbst danbst commented on 32b8512 Apr 28, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

perhaps this deserves an entry in release notes

@joachifm
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, I've added it to my todo list

Please sign in to comment.