summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2022-05-16 12:02:51 +0000
committerGitHub <noreply@github.com>2022-05-16 12:02:51 +0000
commitf10256fb7a52bc37fe41fe49cb8dda88cea1bb9d (patch)
tree7414f3e117cc1ddee5d5d7b81368e607deda1343 /pkgs/applications
parentfc13119566e7cd28627190d777ce6600e1993402 (diff)
parentdee374cd6fd28adb97c696d0046c8faa26b023c6 (diff)
Merge master into staging-next
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/blockchains/clightning/default.nix4
-rw-r--r--pkgs/applications/misc/keepassx/community.nix37
-rw-r--r--pkgs/applications/misc/keepassx/darwin.patch56
-rw-r--r--pkgs/applications/misc/system76-keyboard-configurator/default.nix40
-rw-r--r--pkgs/applications/misc/yubioath-desktop/default.nix31
-rw-r--r--pkgs/applications/networking/cluster/kube-router/default.nix26
-rw-r--r--pkgs/applications/science/math/lrcalc/default.nix14
-rw-r--r--pkgs/applications/science/math/sage/default.nix10
-rw-r--r--pkgs/applications/science/math/sage/patches/Only-test-external-software-when-all-of-sage-is.patch46
-rw-r--r--pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch2
-rw-r--r--pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch4
-rw-r--r--pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch17
-rw-r--r--pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix2
-rw-r--r--pkgs/applications/science/math/sage/sage-env.nix2
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix89
-rw-r--r--pkgs/applications/science/math/sage/sage.nix15
-rw-r--r--pkgs/applications/science/math/sage/sagedoc.nix16
-rw-r--r--pkgs/applications/science/math/sage/sagelib.nix8
-rw-r--r--pkgs/applications/video/makemkv/default.nix2
19 files changed, 169 insertions, 252 deletions
diff --git a/pkgs/applications/blockchains/clightning/default.nix b/pkgs/applications/blockchains/clightning/default.nix
index 2ac761edd0085..2cf31ae3c95fb 100644
--- a/pkgs/applications/blockchains/clightning/default.nix
+++ b/pkgs/applications/blockchains/clightning/default.nix
@@ -21,11 +21,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "clightning";
-  version = "0.11.0.1";
+  version = "0.11.1";
 
   src = fetchurl {
     url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
-    sha256 = "e2ad6eead19a0cd8869e291c27d318cf553bb015339c1f0e8d8b30e7bc0910d8";
+    sha256 = "0vsh6gpv3458pfc5cggay9pw7bxjzyxpcniks9b2s3y1rxwk15xi";
   };
 
   # when building on darwin we need dawin.cctools to provide the correct libtool
diff --git a/pkgs/applications/misc/keepassx/community.nix b/pkgs/applications/misc/keepassx/community.nix
index c2e7ae58eb3c1..3daebeaabc977 100644
--- a/pkgs/applications/misc/keepassx/community.nix
+++ b/pkgs/applications/misc/keepassx/community.nix
@@ -5,34 +5,31 @@
 , darwin
 
 , asciidoctor
+, botan2
 , curl
-, glibcLocales
 , libXi
 , libXtst
 , libargon2
-, libgcrypt
-, libgpg-error
-, libsodium
-, libyubikey
+, libusb1
+, minizip
+, pcsclite
 , pkg-config
 , qrencode
 , qtbase
 , qtmacextras
 , qtsvg
 , qtx11extras
-, quazip
 , readline
 , wrapGAppsHook
 , wrapQtAppsHook
-, yubikey-personalization
 , zlib
 
 , withKeePassBrowser ? true
 , withKeePassKeeShare ? true
-, withKeePassKeeShareSecure ? true
 , withKeePassSSHAgent ? true
 , withKeePassNetworking ? true
 , withKeePassTouchID ? true
+, withKeePassYubiKey ? true
 , withKeePassFDOSecrets ? true
 
 , nixosTests
@@ -42,13 +39,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "keepassxc";
-  version = "2.6.6";
+  version = "2.7.1";
 
   src = fetchFromGitHub {
     owner = "keepassxreboot";
     repo = "keepassxc";
     rev = version;
-    sha256 = "15rm3avdmc2x2n92zq6w1zbcranak4j6dds2sxmgdqi1ffc0a3ci";
+    sha256 = "sha256-BOtehDzlWhhfXj8TOFvFN4f86Hl2EC3rO4qUIl9fqq4=";
   };
 
   NIX_CFLAGS_COMPILE = optionalString stdenv.cc.isClang [
@@ -66,15 +63,12 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-DKEEPASSXC_BUILD_TYPE=Release"
     "-DWITH_GUI_TESTS=ON"
-    "-DWITH_XC_AUTOTYPE=ON"
     "-DWITH_XC_UPDATECHECK=OFF"
-    "-DWITH_XC_YUBIKEY=ON"
   ]
   ++ (optional withKeePassBrowser "-DWITH_XC_BROWSER=ON")
   ++ (optional withKeePassKeeShare "-DWITH_XC_KEESHARE=ON")
-  ++ (optional withKeePassKeeShareSecure "-DWITH_XC_KEESHARE_SECURE=ON")
   ++ (optional withKeePassNetworking "-DWITH_XC_NETWORKING=ON")
-  ++ (optional (withKeePassTouchID && stdenv.isDarwin) "-DWITH_XC_TOUCHID=ON")
+  ++ (optional (withKeePassYubiKey && stdenv.isLinux) "-DWITH_XC_YUBIKEY=ON")
   ++ (optional (withKeePassFDOSecrets && stdenv.isLinux) "-DWITH_XC_FDOSECRETS=ON")
   ++ (optional withKeePassSSHAgent "-DWITH_XC_SSHAGENT=ON");
 
@@ -95,26 +89,22 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     curl
-    glibcLocales
+    botan2
     libXi
     libXtst
     libargon2
-    libgcrypt
-    libgpg-error
-    libsodium
-    libyubikey
+    minizip
+    pcsclite
     qrencode
     qtbase
     qtsvg
     qtx11extras
     readline
-    yubikey-personalization
     zlib
   ]
-  ++ optional withKeePassKeeShareSecure quazip
+  ++ optional stdenv.isLinux libusb1
   ++ optional stdenv.isDarwin qtmacextras
-  ++ optional (stdenv.isDarwin && withKeePassTouchID)
-    darwin.apple_sdk.frameworks.LocalAuthentication;
+  ++ optional (stdenv.isDarwin && withKeePassTouchID) darwin.apple_sdk.frameworks.LocalAuthentication;
 
   passthru.tests = nixosTests.keepassxc;
 
@@ -131,5 +121,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jonafato turion ];
     platforms = platforms.linux ++ platforms.darwin;
+    broken = stdenv.isDarwin;  # see to https://github.com/NixOS/nixpkgs/issues/172165
   };
 }
diff --git a/pkgs/applications/misc/keepassx/darwin.patch b/pkgs/applications/misc/keepassx/darwin.patch
index 95ca5d4587fea..1ec7db5863635 100644
--- a/pkgs/applications/misc/keepassx/darwin.patch
+++ b/pkgs/applications/misc/keepassx/darwin.patch
@@ -8,46 +8,30 @@ index 74b1a7ff..0a713a32 100644
  elseif(APPLE AND WITH_APP_BUNDLE)
 +    set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications")
      set(BUNDLE_INSTALL_DIR "${PROGNAME}.app/Contents")
-     set(CMAKE_INSTALL_MANDIR "${PROGNAME}.app/Contents/Resources/man")
-     set(CLI_INSTALL_DIR "${PROGNAME}.app/Contents/MacOS")
-@@ -369,12 +370,6 @@ set(CMAKE_AUTORCC ON)
+     set(CMAKE_INSTALL_MANDIR "${BUNDLE_INSTALL_DIR}/Resources/man")
+     set(CLI_INSTALL_DIR "${BUNDLE_INSTALL_DIR}/MacOS")
+@@ -470,11 +470,6 @@ set(CMAKE_AUTORCC ON)
  
  if(APPLE)
      set(CMAKE_MACOSX_RPATH TRUE)
--    find_program(MACDEPLOYQT_EXE macdeployqt HINTS ${Qt5_PREFIX}/bin ENV PATH)
+-    find_program(MACDEPLOYQT_EXE macdeployqt HINTS ${Qt5_PREFIX}/bin ${Qt5_PREFIX}/tools/qt5/bin ENV PATH)
 -    if(NOT MACDEPLOYQT_EXE)
 -        message(FATAL_ERROR "macdeployqt is required to build on macOS")
--    else()
--        message(STATUS "Using macdeployqt: ${MACDEPLOYQT_EXE}")
 -    endif()
- elseif(MINGW)
-     find_program(WINDEPLOYQT_EXE windeployqt HINTS ${Qt5_PREFIX}/bin ENV PATH)
-     if(NOT WINDEPLOYQT_EXE)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index f142f368..0742512d 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -351,11 +351,6 @@ if(APPLE AND WITH_APP_BUNDLE)
-     set(CPACK_PACKAGE_FILE_NAME "${PROGNAME}-${KEEPASSXC_VERSION}")
-     include(CPack)
+-    message(STATUS "Using macdeployqt: ${MACDEPLOYQT_EXE}")
+     set(MACDEPLOYQT_EXTRA_BINARIES "")
+ elseif(WIN32)
+     find_program(WINDEPLOYQT_EXE windeployqt HINTS ${Qt5_PREFIX}/bin ${Qt5_PREFIX}/tools/qt5/bin ENV PATH)
+diff --git a/src/post_install/CMakeLists.txt b/src/post_install/CMakeLists.txt
+index 359c891f..a6a061a3 100644
+--- a/src/post_install/CMakeLists.txt
++++ b/src/post_install/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ # The install commands in this subdirectory will be executed after all the install commands in the
+ # current scope are ran. It is required for correct functtioning of macdeployqt.
  
--    add_custom_command(TARGET ${PROGNAME}
--            POST_BUILD
--            COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app
--            WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
--            COMMENT "Deploying app bundle")
- endif()
- 
- install(TARGETS ${PROGNAME}
-diff --git a/src/autotype/mac/CMakeLists.txt b/src/autotype/mac/CMakeLists.txt
-index 7427450a..a0a58d71 100644
---- a/src/autotype/mac/CMakeLists.txt
-+++ b/src/autotype/mac/CMakeLists.txt
-@@ -8,7 +8,6 @@ if(WITH_APP_BUNDLE)
-     add_custom_command(TARGET keepassx-autotype-cocoa
-             POST_BUILD
-             COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/libkeepassx-autotype-cocoa.so ${PLUGIN_INSTALL_DIR}
--            COMMAND ${MACDEPLOYQT_EXE} ${PROGNAME}.app -executable=${PLUGIN_INSTALL_DIR}/libkeepassx-autotype-cocoa.so -no-plugins
-             WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
-             COMMENT "Deploying autotype plugin")
- else()
+-if(APPLE AND WITH_APP_BUNDLE)
++if(FALSE)
+     # Run macdeloyqt on the main app and any extra binaries and plugins as specified by the
+     # _MACDEPLOYQT_EXTRA_BINARIES global property.
+     # All install(TARGETS) calls should have already been called.
diff --git a/pkgs/applications/misc/system76-keyboard-configurator/default.nix b/pkgs/applications/misc/system76-keyboard-configurator/default.nix
new file mode 100644
index 0000000000000..2708fb04a610b
--- /dev/null
+++ b/pkgs/applications/misc/system76-keyboard-configurator/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, gtk3, glib, wrapGAppsHook, libusb1, hidapi, udev, pkgconfig }:
+
+# system76-keyboard-configurator tries to spawn a daemon as root via pkexec, so
+# your system needs a PolicyKit authentication agent running for the
+# configurator to work.
+
+rustPlatform.buildRustPackage rec {
+  pname = "system76-keyboard-configurator";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = "keyboard-configurator";
+    rev = "v${version}";
+    sha256 = "sha256-CVCXNPmc/0T8vkxfU+i1nSbfusZGFVkLEveSoCePK0M=";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    glib # for glib-compile-resources
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3
+    hidapi
+    libusb1
+    udev
+  ];
+
+  cargoSha256 = "sha256-/p2cVxOvWKkcVOYIR0N8tQSCniw+QhXhC+pus4NsQ8k=";
+
+  meta = with lib; {
+    description = "Keyboard configuration application for System76 keyboards and laptops";
+    homepage = "https://github.com/pop-os/keyboard-configurator";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ mirrexagon ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/yubioath-desktop/default.nix b/pkgs/applications/misc/yubioath-desktop/default.nix
index 3d35e3658e568..8a1645239082c 100644
--- a/pkgs/applications/misc/yubioath-desktop/default.nix
+++ b/pkgs/applications/misc/yubioath-desktop/default.nix
@@ -1,27 +1,38 @@
-{ lib, stdenv, fetchurl, mkDerivation
-, qmake, qtbase, qtquickcontrols2, qtgraphicaleffects
-, python3, pyotherside
-, pcsclite, yubikey-personalization
-, yubikey-manager, makeWrapper }:
+{ lib
+, stdenv
+, fetchurl
+, mkDerivation
+, qmake
+, qtbase
+, qtquickcontrols2
+, qtgraphicaleffects
+, qtmultimedia
+, python3
+, pyotherside
+, pcsclite
+, yubikey-personalization
+, yubikey-manager
+, makeWrapper
+}:
 
 mkDerivation rec {
   pname = "yubioath-desktop";
-  version = "5.0.5";
+  version = "5.1.0";
 
   src = fetchurl {
     url = "https://developers.yubico.com/yubioath-desktop/Releases/yubioath-desktop-${version}.tar.gz";
-    sha256 = "05xs6xh9pi50h0668arirj0gnz11adpixgsdkds072077gasdm0g";
+    hash = "sha256-Lm9F4eaG9T5brAV7XDAkoj0WClmXEYIhuUzh2rk0oc0=";
   };
 
   doCheck = false;
 
-  buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects python3 ];
+  buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects qtmultimedia python3 ];
 
   nativeBuildInputs = [ qmake makeWrapper python3.pkgs.wrapPython ];
 
   postPatch = ''
-    substituteInPlace deployment.pri \
-      --replace '/usr/bin' "$out/bin"
+    substituteInPlace QZXing/QZXing-components.pri \
+      --replace 'target.path = $$PREFIX/lib' 'target.path = $$PREFIX/bin'
   '';
 
   pythonPath = [ yubikey-manager ];
diff --git a/pkgs/applications/networking/cluster/kube-router/default.nix b/pkgs/applications/networking/cluster/kube-router/default.nix
index b9a282b5cd161..c74fdbc749d47 100644
--- a/pkgs/applications/networking/cluster/kube-router/default.nix
+++ b/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -1,23 +1,33 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, testers, kube-router }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "kube-router";
-  version = "1.2.2";
-
-  goPackagePath = "github.com/cloudnativelabs/kube-router";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "cloudnativelabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/VToLQexvRtcBU+k8WnGEcfLfxme/hgRnhU8723BEFU=";
+    sha256 = "sha256-WBnJPCZHtJWckoFvE8e+eAa2EC/RA7yOMlW+Cemw53Q=";
   };
 
+  vendorSha256 = "sha256-5co+288KZf/dx/jZ7xIGh6kxuW3DdbpAsrZgYob3nWk=";
+
+  CGO_ENABLED = 0;
+
   ldflags = [
-    "-X ${goPackagePath}/pkg/cmd.version=${version}"
-    "-X ${goPackagePath}/pkg/cmd.buildDate=Nix"
+    "-s"
+    "-w"
+    "-X github.com/cloudnativelabs/kube-router/pkg/version.Version=${version}"
+    "-X github.com/cloudnativelabs/kube-router/pkg/version.BuildDate=Nix"
   ];
 
+  checkFlags = [ "-short" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = kube-router;
+  };
+
   meta = with lib; {
     homepage = "https://www.kube-router.io/";
     description = "All-in-one router, firewall and service proxy for Kubernetes";
diff --git a/pkgs/applications/science/math/lrcalc/default.nix b/pkgs/applications/science/math/lrcalc/default.nix
index 96eb779645169..90ee50c682800 100644
--- a/pkgs/applications/science/math/lrcalc/default.nix
+++ b/pkgs/applications/science/math/lrcalc/default.nix
@@ -1,18 +1,17 @@
 { lib, stdenv
 , fetchFromBitbucket
-, fetchpatch
 , autoreconfHook
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.2";
+  version = "2.1";
   pname = "lrcalc";
 
   src = fetchFromBitbucket {
     owner = "asbuch";
     repo = "lrcalc";
     rev = "lrcalc-${version}";
-    sha256 = "1c12d04jdyxkkav4ak8d1aqrv594gzihwhpxvc6p9js0ry1fahss";
+    sha256 = "0s3amf3z75hnrjyszdndrvk4wp5p630dcgyj341i6l57h43d1p4k";
   };
 
   doCheck = true;
@@ -21,15 +20,6 @@ stdenv.mkDerivation rec {
     autoreconfHook
   ];
 
-  patches = [
-    # Fix include syntax:
-    # For private includes, use `#include "..."` instead of `#include <...>`
-    (fetchpatch {
-      url = "https://bitbucket.org/asbuch/lrcalc/commits/226981a0/raw/";
-      sha256 = "02kaqx5s3l642rhh28kn2wg9wr098vzpknxyl4pv627lqa3lv9vm";
-    })
-  ];
-
   meta = with lib; {
     description = "Littlewood-Richardson calculator";
     homepage = "http://math.rutgers.edu/~asbuch/lrcalc/";
diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix
index 70e24e2608d00..84b511de8fc24 100644
--- a/pkgs/applications/science/math/sage/default.nix
+++ b/pkgs/applications/science/math/sage/default.nix
@@ -48,6 +48,12 @@ let
     logo64 = "${sage-src}/src/doc/common/themes/sage/static/sageicon.png";
   };
 
+  jupyter-kernel-specs = pkgs.jupyter-kernel.create {
+    definitions = pkgs.jupyter-kernel.default // {
+      sagemath = jupyter-kernel-definition;
+    };
+  };
+
   three = callPackage ./threejs-sage.nix { };
 
   # A bash script setting various environment variables to tell sage where
@@ -73,7 +79,7 @@ let
   # The documentation for sage, building it takes a lot of ram.
   sagedoc = callPackage ./sagedoc.nix {
     inherit sage-with-env;
-    inherit python3 maxima;
+    inherit python3 maxima jupyter-kernel-specs;
   };
 
   # sagelib with added wrappers and a dependency on sage-tests to make sure thet tests were run.
@@ -167,6 +173,6 @@ let
 in
 # A wrapper around sage that makes sure sage finds its docs (if they were build).
 callPackage ./sage.nix {
-  inherit sage-tests sage-with-env sagedoc jupyter-kernel-definition;
+  inherit sage-tests sage-with-env sagedoc jupyter-kernel-specs;
   inherit withDoc requireSageTests;
 }
diff --git a/pkgs/applications/science/math/sage/patches/Only-test-external-software-when-all-of-sage-is.patch b/pkgs/applications/science/math/sage/patches/Only-test-external-software-when-all-of-sage-is.patch
deleted file mode 100644
index a478f50d92e86..0000000000000
--- a/pkgs/applications/science/math/sage/patches/Only-test-external-software-when-all-of-sage-is.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py
-index 01f32fb8e4..4d83dc7b47 100644
---- a/src/sage/doctest/control.py
-+++ b/src/sage/doctest/control.py
-@@ -1253,6 +1253,7 @@ class DocTestController(SageObject):
- 
-             self.log("Using --optional=" + self._optional_tags_string())
-             available_software._allow_external = self.options.optional is True or 'external' in self.options.optional
-+            available_software._autodetect_safe = self.options.optional is True or 'sage' in self.options.optional
-             self.log("Features to be detected: " + ','.join(available_software.detectable()))
-             self.add_files()
-             self.expand_files_into_sources()
-diff --git a/src/sage/doctest/external.py b/src/sage/doctest/external.py
-index 84dae19ea5..badc61466e 100644
---- a/src/sage/doctest/external.py
-+++ b/src/sage/doctest/external.py
-@@ -409,6 +409,7 @@ class AvailableSoftware(object):
-             []
-         """
-         self._allow_external = True
-+        self._autodetect_safe = True
-         # For multiprocessing of doctests, the data self._seen should be
-         # shared among subprocesses. Thus we use Array class from the
-         # multiprocessing module.
-@@ -430,6 +431,8 @@ class AvailableSoftware(object):
-             sage: 'internet' in available_software # random, optional - internet
-             True
-         """
-+        if not self._autodetect_safe:
-+            return False
-         try:
-             idx = self._indices[item]
-         except KeyError:
-diff --git a/src/sage/features/sagemath.py b/src/sage/features/sagemath.py
-index 433338766d..233623b14a 100644
---- a/src/sage/features/sagemath.py
-+++ b/src/sage/features/sagemath.py
-@@ -12,7 +12,7 @@ class sagemath_doc_html(StaticFile):
- 
-     EXAMPLES::
- 
--        sage: from sage.features.sagemath import sagemath_doc_html
-+        sage: from sage.features.sagemath import sagemath_doc_html  # optional - sagemath_doc_html
-         sage: sagemath_doc_html().is_present()  # optional - sagemath_doc_html
-         FeatureTestResult('sagemath_doc_html', True)
-     """
diff --git a/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch b/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch
index e687281ad1a7c..ca01eba29a2bd 100644
--- a/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch
+++ b/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch
@@ -13,7 +13,7 @@ index 67d7d2accf..18279581e2 100644
 -    True
 +    sage: print(output)
 +    sage...[False, True]
-+    sage...Exiting Sage ...
++    ...
  """
  
  #*****************************************************************************
diff --git a/pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch b/pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch
index 94e0488e21e77..0a19e7af10483 100644
--- a/pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch
+++ b/pkgs/applications/science/math/sage/patches/docutils-0.18.1-deprecation.patch
@@ -1,11 +1,11 @@
 diff --git a/src/sage/misc/sagedoc.py b/src/sage/misc/sagedoc.py
-index 4c56aea078..e51a77ae8a 100644
+index 08c4225b87..3a9bbe4ed0 100644
 --- a/src/sage/misc/sagedoc.py
 +++ b/src/sage/misc/sagedoc.py
 @@ -1402,6 +1402,8 @@ class _sage_doc:
              sage: identity_matrix.__doc__ in browse_sage_doc(identity_matrix, 'rst')
              True
-             sage: browse_sage_doc(identity_matrix, 'html', False)             # optional - sphinx
+             sage: browse_sage_doc(identity_matrix, 'html', False)             # optional - sphinx sagemath_doc_html
 +            ...
 +            FutureWarning: The configuration setting "embed_images" will be removed in Docutils 1.2. Use "image_loading: link".
              '...div...File:...Type:...Definition:...identity_matrix...'
diff --git a/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
index 1ff081b25e0fd..3e7e37508ff47 100644
--- a/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
+++ b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
@@ -1,10 +1,10 @@
 diff --git a/src/sage_docbuild/__init__.py b/src/sage_docbuild/__init__.py
-index 8a5c1a19d2..21fd192642 100644
+index b12d56a3c9..df9d949ed1 100644
 --- a/src/sage_docbuild/__init__.py
 +++ b/src/sage_docbuild/__init__.py
-@@ -89,27 +89,6 @@ def builder_helper(type):
+@@ -88,30 +88,6 @@ def builder_helper(type):
      """
-     Returns a function which builds the documentation for
+     Return a function which builds the documentation for
      output type ``type``.
 -
 -    TESTS:
@@ -19,10 +19,13 @@ index 8a5c1a19d2..21fd192642 100644
 -        ....:     raise BaseException("abort pool operation")
 -        sage: original_runsphinx, sage_docbuild.sphinxbuild.runsphinx = sage_docbuild.sphinxbuild.runsphinx, raiseBaseException
 -
+-        sage: from sage.misc.temporary_file import tmp_dir
+-        sage: os.environ['SAGE_DOC'] = tmp_dir()
+-        sage: sage.env.var('SAGE_DOC') # random
 -        sage: from sage_docbuild import builder_helper, build_ref_doc
 -        sage: from sage_docbuild import _build_many as build_many
 -        sage: helper = builder_helper("html")
--        sage: try:
+-        sage: try:  # optional - sagemath_doc_html
 -        ....:     build_many(build_ref_doc, [("docname", "en", "html", {})])
 -        ....: except Exception as E:
 -        ....:     "Non-exception during docbuild: abort pool operation" in str(E)
@@ -30,7 +33,7 @@ index 8a5c1a19d2..21fd192642 100644
      """
      def f(self, *args, **kwds):
          output_dir = self._output_dir(type)
-@@ -131,10 +110,9 @@ def builder_helper(type):
+@@ -139,10 +115,9 @@ def builder_helper(type):
          logger.debug(build_command)
  
          # Run Sphinx with Sage's special logger
@@ -44,10 +47,10 @@ index 8a5c1a19d2..21fd192642 100644
              if ABORT_ON_ERROR:
                  raise
 diff --git a/src/sage_docbuild/sphinxbuild.py b/src/sage_docbuild/sphinxbuild.py
-index d917c3e9d4..551cc8028a 100644
+index a39c99ffe9..73be823684 100644
 --- a/src/sage_docbuild/sphinxbuild.py
 +++ b/src/sage_docbuild/sphinxbuild.py
-@@ -327,3 +327,8 @@ def runsphinx():
+@@ -330,3 +330,8 @@ def runsphinx():
          sys.stderr = saved_stderr
          sys.stdout.flush()
          sys.stderr.flush()
diff --git a/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix b/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix
index 1766cec3e35db..b0f40bf065874 100644
--- a/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix
+++ b/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , sage-src
 , sphinx
+, jupyter-sphinx
 }:
 
 buildPythonPackage rec {
@@ -11,6 +12,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     sphinx
+    jupyter-sphinx
   ];
 
   preBuild = ''
diff --git a/pkgs/applications/science/math/sage/sage-env.nix b/pkgs/applications/science/math/sage/sage-env.nix
index cdff1e8477abd..4c22470de9109 100644
--- a/pkgs/applications/science/math/sage/sage-env.nix
+++ b/pkgs/applications/science/math/sage/sage-env.nix
@@ -186,7 +186,7 @@ writeTextFile rec {
     export SAGE_EXTCODE='${sagelib.src}/src/sage/ext_data'
 
   # for find_library
-    export DYLD_LIBRARY_PATH="${lib.makeLibraryPath [stdenv.cc.libc singular]}''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH"
+    export DYLD_LIBRARY_PATH="${lib.makeLibraryPath [stdenv.cc.libc singular giac]}''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH"
   '';
 } // { # equivalent of `passthru`, which `writeTextFile` doesn't support
   lib = sagelib;
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index b230b0d42a03a..95da9b26e54e8 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -58,30 +58,19 @@ let
   );
 in
 stdenv.mkDerivation rec {
-  version = "9.5";
+  version = "9.6";
   pname = "sage-src";
 
   src = fetchFromGitHub {
     owner = "sagemath";
     repo = "sage";
     rev = version;
-    sha256 = "sha256-uOsLpsGpcIGs8Xr82X82MElnTB2E908gytyNJ8WVD5w=";
+    sha256 = "sha256-QY8Yga3hD1WhSCtA2/PVry8hHlMmC31J8jCBFtWgIU0=";
   };
 
   # Patches needed because of particularities of nix or the way this is packaged.
   # The goal is to upstream all of them and get rid of this list.
   nixPatches = [
-    # Since https://trac.sagemath.org/ticket/32174, some external features are
-    # marked as "safe" and get auto-detected, in which case the corresponding
-    # optional tests are executed. We disable auto-detection of safe features if
-    # we are doctesting with an "--optional" argument which does not include
-    # "sage", because tests from autodetected features expect context provided
-    # by running basic sage tests. This is necessary to test sagemath_doc_html
-    # separately. See https://trac.sagemath.org/ticket/26110 for a related
-    # upstream discussion (from the time when Sage still had optional py2/py3
-    # tags).
-    ./patches/Only-test-external-software-when-all-of-sage-is.patch
-
     # Fixes a potential race condition which can lead to transient doctest failures.
     ./patches/fix-ecl-race.patch
 
@@ -120,81 +109,13 @@ stdenv.mkDerivation rec {
     # https://trac.sagemath.org/ticket/32959
     ./patches/linbox-1.7-upgrade.patch
 
-    # https://trac.sagemath.org/ticket/33170
-    (fetchSageDiff {
-      base = "9.6.beta5";
-      name = "ipython-8.1-update.patch";
-      rev = "4d2b53f1541375861310af3a7f7109c1c2ed475d";
-      sha256 = "sha256-ELda/VBzsQH7NdFas69fQ35QPUoJCeLx/gxT1j7qGR8=";
-    })
-
-    # https://trac.sagemath.org/ticket/32968
-    (fetchSageDiff {
-      base = "9.5";
-      name = "sphinx-4.3-update.patch";
-      rev = "fc84f82f52b6f05f512cb359ec7c100f93cf8841";
-      sha256 = "sha256-bBbfdcnw/9LUOlY8rHJRbFJEdMXK4shosqTNaobTS1Q=";
-    })
-
-    # https://trac.sagemath.org/ticket/33189
-    (fetchSageDiff {
-      base = "9.5";
-      name = "arb-2.22-update.patch";
-      rev = "53532ddd4e2dc92469c1590ebf0c40f8f69bf579";
-      sha256 = "sha256-6SoSBvIlqvNwZV3jTB6uPdUtaWIOeNmddi2poK/WvGs=";
-    })
-
-    # TODO: This will not be necessary when Sphinx 4.4.1 is released,
-    # since some warnings introduced in 4.4.0 will be disabled by then
-    # (https://github.com/sphinx-doc/sphinx/pull/10126).
-    # https://trac.sagemath.org/ticket/33272
-    (fetchSageDiff {
-      base = "9.5";
-      name = "sphinx-4.4-warnings.patch";
-      rev = "97d7958bed441cf2ccc714d88f83d3a8426bc085";
-      sha256 = "sha256-y1STE0oxswnijGCsBw8eHWWqpmT1XMznIfA0vvX9pFA=";
-    })
-
     # adapted from https://trac.sagemath.org/ticket/23712#comment:22
     ./patches/tachyon-renamed-focallength.patch
 
-    # https://trac.sagemath.org/ticket/33336
-    (fetchSageDiff {
-      base = "9.6.beta2";
-      name = "scipy-1.8-update.patch";
-      rev = "9c8235e44ffb509efa8a3ca6cdb55154e2b5066d";
-      sha256 = "sha256-bfc4ljNOxVnhlmxIuNbjbKl4vJXYq2tlF3Z8bbC8PWw=";
-    })
-
-    # https://trac.sagemath.org/ticket/33495
-    (fetchSageDiff {
-      base = "9.6.beta5";
-      name = "networkx-2.7-update.patch";
-      rev = "8452003846a7303100847d8d0ed642fc642c11d6";
-      sha256 = "sha256-A/XMouPlc2sjFp30L+56fBGJXydS2EtzfPOV98FCDqI=";
-    })
-
-    # https://trac.sagemath.org/ticket/33226
-    (fetchSageDiff {
-      base = "9.6.beta0";
-      name = "giac-1.7.0-45-update.patch";
-      rev = "33ea2adf01e9e2ce9f1e33779f0b1ac0d9d1989c";
-      sha256 = "sha256-DOyxahf3+IaYdkgmAReNDCorRzMgO8+yiVrJ5TW1km0=";
-    })
-
-    # https://trac.sagemath.org/ticket/33398
-    (fetchSageDiff {
-      base = "9.6.beta4";
-      name = "sympy-1.10-update.patch";
-      rev = "6b7c3a28656180e42163dc10f7b4a571b93e5f27";
-      sha256 = "sha256-fnUyM2yjHkCykKRfzQQ4glcUYmCS/fYzDzmCf0nuebk=";
-      # The patch contains a whitespace change to a file that didn't exist in Sage 9.5.
-      excludes = [ "build/*" "src/sage/manifolds/vector_bundle_fiber_element.py" ];
-    })
-
     # docutils 0.18.1 now triggers Sphinx warnings. tolerate them for
-    # now, because patching Sphinx is not feasible.
-    # https://github.com/sphinx-doc/sphinx/issues/9777#issuecomment-1104481271
+    # now, because patching Sphinx is not feasible. remove when Sphinx
+    # 5.0 hits nixpkgs.
+    # https://github.com/sphinx-doc/sphinx/pull/10372
     ./patches/docutils-0.18.1-deprecation.patch
   ];
 
diff --git a/pkgs/applications/science/math/sage/sage.nix b/pkgs/applications/science/math/sage/sage.nix
index 96122fba5ab42..78fd8d598d0b6 100644
--- a/pkgs/applications/science/math/sage/sage.nix
+++ b/pkgs/applications/science/math/sage/sage.nix
@@ -2,8 +2,7 @@
 , makeWrapper
 , sage-tests
 , sage-with-env
-, jupyter-kernel-definition
-, jupyter-kernel
+, jupyter-kernel-specs
 , sagedoc
 , withDoc
 , requireSageTests
@@ -12,14 +11,6 @@
 # A wrapper that makes sure sage finds its docs (if they were build) and the
 # jupyter kernel spec.
 
-let
-  # generate kernel spec + default kernels
-  kernel-specs = jupyter-kernel.create {
-    definitions = jupyter-kernel.default // {
-      sagemath = jupyter-kernel-definition;
-    };
-  };
-in
 stdenv.mkDerivation rec {
   version = src.version;
   pname = "sage";
@@ -43,7 +34,7 @@ stdenv.mkDerivation rec {
       --set SAGE_DOC_SRC_OVERRIDE "${src}/src/doc" ${
         lib.optionalString withDoc "--set SAGE_DOC_OVERRIDE ${sagedoc}/share/doc/sage"
       } \
-      --prefix JUPYTER_PATH : "${kernel-specs}"
+      --prefix JUPYTER_PATH : "${jupyter-kernel-specs}"
   '';
 
   doInstallCheck = withDoc;
@@ -58,7 +49,7 @@ stdenv.mkDerivation rec {
     quicktest = sage-tests.override { longTests = false; timeLimit = 600; }; # as many tests as possible in ~10m
     doc = sagedoc;
     lib = sage-with-env.env.lib;
-    kernelspec = jupyter-kernel-definition;
+    kernelspec = jupyter-kernel-specs.definition.sagemath;
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/science/math/sage/sagedoc.nix b/pkgs/applications/science/math/sage/sagedoc.nix
index 489fc2edfe55a..67d754caff3c2 100644
--- a/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/pkgs/applications/science/math/sage/sagedoc.nix
@@ -1,6 +1,7 @@
 { stdenv
 , sage-with-env
 , python3
+, jupyter-kernel-specs
 , maxima
 , tachyon
 , jmol
@@ -59,10 +60,15 @@ stdenv.mkDerivation rec {
     OUTPUT="$OUTPUT_DIR/options.txt"
     ${sage-with-env}/bin/sage -advanced > "$OUTPUT"
 
-    ${sage-with-env}/bin/sage --docbuild \
+    # jupyter-sphinx calls the sagemath jupyter kernel during docbuild
+    export JUPYTER_PATH=${jupyter-kernel-specs}
+
+    # sage --docbuild unsets JUPYTER_PATH, so we call sage_docbuild directly
+    # https://trac.sagemath.org/ticket/33650#comment:32
+    ${sage-with-env}/bin/sage --python3 -m sage_docbuild \
       --mathjax \
       --no-pdf-links \
-      all html
+      all html < /dev/null
   '';
 
   installPhase = ''
@@ -83,6 +89,10 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
   checkPhase = ''
-    ${sage-with-env}/bin/sage -t --optional=sagemath_doc_html --all
+    # sagemath_doc_html tests assume sage tests are being run, so we
+    # compromise: we run standard tests, but only on files containing
+    # relevant tests. as of Sage 9.6, there are only 4 such files.
+    grep -PRl "#.*optional.*sagemath_doc_html" ${src}/src/sage{,_docbuild} | \
+      xargs ${sage-with-env}/bin/sage -t --optional=sage,sagemath_doc_html
   '';
 }
diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix
index 92eae35688f71..8f864d136928a 100644
--- a/pkgs/applications/science/math/sage/sagelib.nix
+++ b/pkgs/applications/science/math/sage/sagelib.nix
@@ -67,7 +67,9 @@
 , pillow
 , ipykernel
 , networkx
-, sphinx # TODO: this is in setup.cfg, bug should we override it?
+, ptyprocess
+, lrcalc-python
+, sphinx # TODO: this is in setup.cfg, should we override it?
 }:
 
 assert (!blas.isILP64) && (!lapack.isILP64);
@@ -157,6 +159,8 @@ buildPythonPackage rec {
     networkx
     jupyter-client
     ipywidgets
+    ptyprocess
+    lrcalc-python
     sphinx
   ];
 
@@ -188,7 +192,7 @@ buildPythonPackage rec {
     # Sage tests already catch any relevant API breakage.
     # according to the discussion at https://trac.sagemath.org/ticket/33520,
     # upper bounds will be less noisy starting from Sage 9.6.
-    sed -i 's/==2.1.0rc1/>=2.1.1/' ../gmpy2/install-requires.txt
+    sed -i 's/==0.5.1/>=0.5.1/' ../ptyprocess/install-requires.txt
     sed -i 's/, <[^, ]*//' ../*/install-requires.txt
 
     for infile in src/*.m4; do
diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix
index 712ccacd7a0c0..2c15513d4d65e 100644
--- a/pkgs/applications/video/makemkv/default.nix
+++ b/pkgs/applications/video/makemkv/default.nix
@@ -55,7 +55,7 @@ in mkDerivation {
   installPhase = ''
     runHook preInstall
 
-    install -Dm555 -t $out/bin                              out/makemkv ../makemkv-bin-${version}/bin/amd64/makemkvcon
+    install -Dm555 -t $out/bin                              out/makemkv out/mmccextr ../makemkv-bin-${version}/bin/amd64/makemkvcon
     install -D     -t $out/lib                              out/lib{driveio,makemkv,mmbd}.so.*
     install -D     -t $out/share/MakeMKV                    ../makemkv-bin-${version}/src/share/*
     install -Dm444 -t $out/share/applications               ../makemkv-oss-${version}/makemkvgui/share/makemkv.desktop