diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index b6e69da6d89c..0688de77af68 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -1059,6 +1059,16 @@ Superuser created successfully.
changelog.
+
+
+ opencv2 no longer includes the non-free
+ libraries by default, and consequently
+ pfstools no longer includes OpenCV support
+ by default. Both packages now support an
+ enableUnfree option to re-enable this
+ functionality.
+
+
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index ebc200c4ad52..56babf8ac006 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -331,6 +331,8 @@ In addition to numerous new and upgraded packages, this release has the followin
respectively. As a result `services.datadog-agent` has had breaking changes to the
configuration file. For details, see the [upstream changelog](https://github.com/DataDog/datadog-agent/blob/main/CHANGELOG.rst).
+- `opencv2` no longer includes the non-free libraries by default, and consequently `pfstools` no longer includes OpenCV support by default. Both packages now support an `enableUnfree` option to re-enable this functionality.
+
## Other Notable Changes {#sec-release-21.11-notable-changes}
diff --git a/pkgs/development/libraries/opencv/default.nix b/pkgs/development/libraries/opencv/default.nix
index 005257780e40..ed2f700dc82e 100644
--- a/pkgs/development/libraries/opencv/default.nix
+++ b/pkgs/development/libraries/opencv/default.nix
@@ -9,6 +9,7 @@
, enableFfmpeg ? false, ffmpeg
, enableGStreamer ? false, gst_all_1
, enableEigen ? true, eigen
+, enableUnfree ? false
, Cocoa, QTKit
}:
@@ -67,7 +68,7 @@ stdenv.mkDerivation rec {
(opencvFlag "PNG" enablePNG)
(opencvFlag "OPENEXR" enableEXR)
(opencvFlag "GSTREAMER" enableGStreamer)
- ];
+ ] ++ lib.optional (!enableUnfree) "-DBUILD_opencv_nonfree=OFF";
hardeningDisable = [ "bindnow" "relro" ];
@@ -82,7 +83,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Open Computer Vision Library with more than 500 algorithms";
homepage = "https://opencv.org/";
- license = licenses.bsd3;
+ license = if enableUnfree then licenses.unfree else licenses.bsd3;
maintainers = with maintainers; [ ];
platforms = platforms.linux;
};
diff --git a/pkgs/tools/graphics/pfstools/default.nix b/pkgs/tools/graphics/pfstools/default.nix
index 99b9e3e0e487..a81321204757 100644
--- a/pkgs/tools/graphics/pfstools/default.nix
+++ b/pkgs/tools/graphics/pfstools/default.nix
@@ -1,6 +1,7 @@
{ lib, stdenv, mkDerivation, fetchurl, cmake, pkg-config, darwin
, openexr, zlib, imagemagick6, libGLU, libGL, freeglut, fftwFloat
-, fftw, gsl, libexif, perl, opencv2, qtbase, netpbm
+, fftw, gsl, libexif, perl, qtbase, netpbm
+, enableUnfree ? false, opencv2
}:
mkDerivation rec {
@@ -28,12 +29,12 @@ mkDerivation rec {
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
openexr zlib imagemagick6 fftwFloat
- fftw gsl libexif perl opencv2 qtbase netpbm
+ fftw gsl libexif perl qtbase netpbm
] ++ (if stdenv.isDarwin then (with darwin.apple_sdk.frameworks; [
OpenGL GLUT
]) else [
libGLU libGL freeglut
- ]);
+ ]) ++ lib.optional enableUnfree (opencv2.override { enableUnfree = true; });
patches = [ ./threads.patch ./pfstools.patch ./pfsalign.patch ];