about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/doc/manual/release-notes/rl-2405.section.md2
-rw-r--r--nixos/modules/config/sysctl.nix24
-rw-r--r--nixos/modules/services/torrent/transmission.nix2
-rw-r--r--nixos/modules/services/web-apps/node-red.nix2
-rw-r--r--nixos/modules/services/web-servers/caddy/default.nix3
-rw-r--r--pkgs/applications/misc/qMasterPassword/default.nix41
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.nix16
-rw-r--r--pkgs/applications/video/shotcut/default.nix62
-rw-r--r--pkgs/applications/video/shotcut/fix-mlt-ffmpeg-path.patch80
-rw-r--r--pkgs/build-support/dotnet/make-nuget-source/default.nix20
-rw-r--r--pkgs/by-name/ha/hare/001-tzdata.patch28
-rw-r--r--pkgs/by-name/ha/hare/package.nix91
-rw-r--r--pkgs/by-name/ha/hare/setup-hook.sh (renamed from pkgs/development/compilers/hare/setup-hook.sh)0
-rw-r--r--pkgs/by-name/ha/harec/package.nix (renamed from pkgs/development/compilers/harec/default.nix)6
-rw-r--r--pkgs/by-name/xd/xdg-terminal-exec/package.nix32
-rw-r--r--pkgs/data/fonts/fg-virgil/default.nix4
-rw-r--r--pkgs/development/compilers/hare/default.nix100
-rw-r--r--pkgs/development/hare-third-party/hare-compress/default.nix31
-rw-r--r--pkgs/development/interpreters/erlang/26.nix4
-rw-r--r--pkgs/development/libraries/mlt/default.nix2
-rw-r--r--pkgs/development/libraries/nvidia-optical-flow-sdk/default.nix12
-rw-r--r--pkgs/development/python-modules/pyatv/default.nix5
-rw-r--r--pkgs/development/python-modules/renault-api/default.nix4
-rw-r--r--pkgs/development/python-modules/zeroconf/default.nix4
-rw-r--r--pkgs/os-specific/linux/framework-laptop-kmod/default.nix38
-rw-r--r--pkgs/servers/computing/slurm/default.nix4
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix2
-rw-r--r--pkgs/servers/home-assistant/default.nix6
-rw-r--r--pkgs/servers/home-assistant/stubs.nix4
-rw-r--r--pkgs/top-level/all-packages.nix13
-rw-r--r--pkgs/top-level/hare-third-party.nix2
-rw-r--r--pkgs/top-level/linux-kernels.nix2
32 files changed, 435 insertions, 211 deletions
diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md
index d758a30bacf1..e44369ea6f98 100644
--- a/nixos/doc/manual/release-notes/rl-2405.section.md
+++ b/nixos/doc/manual/release-notes/rl-2405.section.md
@@ -71,6 +71,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
   `globalRedirect` can now have redirect codes other than 301 through
   `redirectCode`.
 
+- [](#opt-boot.kernel.sysctl._net.core.wmem_max_) changed from a string to an integer because of the addition of a custom merge option (taking the highest value defined to avoid conflicts between 2 services trying to set that value), just as [](#opt-boot.kernel.sysctl._net.core.rmem_max_) since 22.11.
+
 - Gitea 1.21 upgrade has several breaking changes, including:
   - Custom themes and other assets that were previously stored in `custom/public/*` now belong in `custom/public/assets/*`
   - New instances of Gitea using MySQL now ignore the `[database].CHARSET` config option and always use the `utf8mb4` charset, existing instances should migrate via the `gitea doctor convert` CLI command.
diff --git a/nixos/modules/config/sysctl.nix b/nixos/modules/config/sysctl.nix
index 452c050b6dda..b779f12aca30 100644
--- a/nixos/modules/config/sysctl.nix
+++ b/nixos/modules/config/sysctl.nix
@@ -21,19 +21,27 @@ in
   options = {
 
     boot.kernel.sysctl = mkOption {
-      type = types.submodule {
+      type = let
+        highestValueType = types.ints.unsigned // {
+          merge = loc: defs:
+            foldl
+              (a: b: if b.value == null then null else lib.max a b.value)
+              0
+              (filterOverrides defs);
+        };
+      in types.submodule {
         freeformType = types.attrsOf sysctlOption;
         options."net.core.rmem_max" = mkOption {
-          type = types.nullOr types.ints.unsigned // {
-            merge = loc: defs:
-              foldl
-                (a: b: if b.value == null then null else lib.max a b.value)
-                0
-                (filterOverrides defs);
-          };
+          type = types.nullOr highestValueType;
           default = null;
           description = lib.mdDoc "The maximum socket receive buffer size. In case of conflicting values, the highest will be used.";
         };
+
+        options."net.core.wmem_max" = mkOption {
+          type = types.nullOr highestValueType;
+          default = null;
+          description = lib.mdDoc "The maximum socket send buffer size. In case of conflicting values, the highest will be used.";
+        };
       };
       default = {};
       example = literalExpression ''
diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix
index 88537f8c4f7b..7fb7847ce935 100644
--- a/nixos/modules/services/torrent/transmission.nix
+++ b/nixos/modules/services/torrent/transmission.nix
@@ -434,7 +434,7 @@ in
       # at least up to the values hardcoded here:
       (mkIf cfg.settings.utp-enabled {
         "net.core.rmem_max" = mkDefault 4194304; # 4MB
-        "net.core.wmem_max" = mkDefault "1048576"; # 1MB
+        "net.core.wmem_max" = mkDefault 1048576; # 1MB
       })
       (mkIf cfg.performanceNetParameters {
         # Increase the number of available source (local) TCP and UDP ports to 49151.
diff --git a/nixos/modules/services/web-apps/node-red.nix b/nixos/modules/services/web-apps/node-red.nix
index de78f05a98ca..7f265d289bdb 100644
--- a/nixos/modules/services/web-apps/node-red.nix
+++ b/nixos/modules/services/web-apps/node-red.nix
@@ -19,7 +19,7 @@ in
   options.services.node-red = {
     enable = mkEnableOption (lib.mdDoc "the Node-RED service");
 
-    package = mkPackageOption pkgs "nodePackages.node-red" { };
+    package = mkPackageOption pkgs.nodePackages "node-red" { };
 
     openFirewall = mkOption {
       type = types.bool;
diff --git a/nixos/modules/services/web-servers/caddy/default.nix b/nixos/modules/services/web-servers/caddy/default.nix
index 9a544e98cfc4..95dc219d108c 100644
--- a/nixos/modules/services/web-servers/caddy/default.nix
+++ b/nixos/modules/services/web-servers/caddy/default.nix
@@ -342,8 +342,9 @@ in
       }
     '';
 
-    # https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size
+    # https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes
     boot.kernel.sysctl."net.core.rmem_max" = mkDefault 2500000;
+    boot.kernel.sysctl."net.core.wmem_max" = mkDefault 2500000;
 
     systemd.packages = [ cfg.package ];
     systemd.services.caddy = {
diff --git a/pkgs/applications/misc/qMasterPassword/default.nix b/pkgs/applications/misc/qMasterPassword/default.nix
index 8ac8ae5f4f55..436c1fc70377 100644
--- a/pkgs/applications/misc/qMasterPassword/default.nix
+++ b/pkgs/applications/misc/qMasterPassword/default.nix
@@ -3,27 +3,35 @@
 , fetchFromGitHub
 , libX11
 , libXtst
-, qmake
+, cmake
 , qtbase
 , qttools
+, qtwayland
 , openssl
 , libscrypt
 , wrapQtAppsHook
+, testers
+, qMasterPassword
+, x11Support ? true
+, waylandSupport ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "qMasterPassword";
-  version = "1.2.4";
+  version = "2.0";
 
   src = fetchFromGitHub {
     owner = "bkueng";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-VQ1ZkXaZ5sUbtWa/GreTr5uXvnZ2Go6owJ2ZBK25zns=";
+    hash = "sha256-4qxPjrf6r2S0l/hcs6bqfJm56jdDz+0a0xEkqGBYGBs=";
   };
 
-  buildInputs = [ qtbase libX11 libXtst openssl libscrypt ];
-  nativeBuildInputs = [ qmake qttools wrapQtAppsHook ];
+  buildInputs = [ qtbase qtwayland openssl libscrypt ] ++ lib.optionals x11Support [ libX11 libXtst ];
+  nativeBuildInputs = [ cmake qttools wrapQtAppsHook ];
+  cmakeFlags = lib.optionals waylandSupport [
+    "-DDISABLE_FILL_FORM_SHORTCUTS=1"
+  ];
 
   # Upstream install is mostly defunct. It hardcodes target.path and doesn't
   # install anything but the binary.
@@ -34,17 +42,22 @@ stdenv.mkDerivation rec {
   '' else ''
     mkdir -p $out/bin
     mkdir -p $out/share/{applications,doc/qMasterPassword,icons/qmasterpassword,icons/hicolor/512x512/apps,qMasterPassword/translations}
-    mv qMasterPassword $out/bin
-    mv data/qMasterPassword.desktop $out/share/applications
-    mv LICENSE README.md $out/share/doc/qMasterPassword
-    mv data/icons/app_icon.png $out/share/icons/hicolor/512x512/apps/qmasterpassword.png
-    mv data/icons/* $out/share/icons/qmasterpassword
-    lrelease ./data/translations/translation_de.ts
-    lrelease ./data/translations/translation_pl.ts
-    mv ./data/translations/translation_de.qm $out/share/qMasterPassword/translations/translation_de.qm
-    mv ./data/translations/translation_pl.qm $out/share/qMasterPassword/translations/translation_pl.qm
+    cp qMasterPassword $out/bin
+    cp $src/data/qMasterPassword.desktop $out/share/applications
+    cp $src/LICENSE $src/README.md $out/share/doc/qMasterPassword
+    cp $src/data/icons/app_icon.png $out/share/icons/hicolor/512x512/apps/qmasterpassword.png
+    cp $src/data/icons/* $out/share/icons/qmasterpassword
+    cp ./translations/translation_de.qm $out/share/qMasterPassword/translations/translation_de.qm
+    cp ./translations/translation_pl.qm $out/share/qMasterPassword/translations/translation_pl.qm
   '';
 
+  passthru = {
+    tests.version = testers.testVersion {
+      package = qMasterPassword;
+      version = "v${version}";
+    };
+  };
+
   meta = with lib; {
     description = "Stateless Master Password Manager";
     longDescription = ''
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index f600049011a0..011d36562e1b 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -15,9 +15,9 @@
         version = "2023-10-23";
       };
     };
-    hash = "sha256-2IYdIhe299Fn5gtmLKxqIPqTYYEpCJqbXh3Vx8zN9Uo=";
-    hash_deb_amd64 = "sha256-xHwBLIU1QoDM0swG2DzRJ7BY9ESiqOrm4SwvK0mfIZc=";
-    version = "120.0.6099.71";
+    hash = "sha256-Zbo8xvOfvJVkjdqBaApK6hekmuRKHuYWRBTZTpqcOSM=";
+    hash_deb_amd64 = "sha256-ScFJQB9fY1cWHtFO8GpQ8yuCLaO1AvyAV5lbnqSrPCs=";
+    version = "120.0.6099.109";
   };
   ungoogled-chromium = {
     deps = {
@@ -28,12 +28,12 @@
         version = "2023-10-23";
       };
       ungoogled-patches = {
-        hash = "sha256-S0Kt9M21zyjIozJuyy4kBDt07kJxXBR7SoNzdvf0iPI=";
-        rev = "120.0.6099.71-1";
+        hash = "sha256-wiW1w+HVPpEjROuE3yhYuGiZSwI8z5+k1CFnVZ0HtME=";
+        rev = "120.0.6099.109-1";
       };
     };
-    hash = "sha256-2IYdIhe299Fn5gtmLKxqIPqTYYEpCJqbXh3Vx8zN9Uo=";
-    hash_deb_amd64 = "sha256-xHwBLIU1QoDM0swG2DzRJ7BY9ESiqOrm4SwvK0mfIZc=";
-    version = "120.0.6099.71";
+    hash = "sha256-Zbo8xvOfvJVkjdqBaApK6hekmuRKHuYWRBTZTpqcOSM=";
+    hash_deb_amd64 = "sha256-ScFJQB9fY1cWHtFO8GpQ8yuCLaO1AvyAV5lbnqSrPCs=";
+    version = "120.0.6099.109";
   };
 }
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index efa7782891ce..42f281567749 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -1,6 +1,8 @@
 { lib
 , fetchFromGitHub
-, mkDerivation
+, stdenv
+, wrapQtAppsHook
+, substituteAll
 , SDL2
 , frei0r
 , ladspaPlugins
@@ -8,72 +10,54 @@
 , mlt
 , jack1
 , pkg-config
+, fftw
 , qtbase
-, qtmultimedia
-, qtx11extras
-, qtwebsockets
-, qtquickcontrols2
-, qtgraphicaleffects
-, qmake
 , qttools
+, qtmultimedia
+, qtcharts
+, cmake
 , gitUpdater
 }:
-
-assert lib.versionAtLeast mlt.version "6.24.0";
-
-mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "shotcut";
-  version = "21.09.20";
+  version = "23.11.29";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "shotcut";
     rev = "v${version}";
-    sha256 = "1y46n5gmlayfl46l0vhg5g5dbbc0sg909mxb68sia0clkaas8xrh";
+    hash = "sha256-szWXX/DIJk5ktESgecglptU1qrnrd/u0N6AffwZ5Tos=";
   };
 
-  nativeBuildInputs = [ pkg-config qmake ];
+  nativeBuildInputs = [ pkg-config cmake wrapQtAppsHook ];
   buildInputs = [
     SDL2
     frei0r
     ladspaPlugins
     gettext
     mlt
+    fftw
     qtbase
+    qttools
     qtmultimedia
-    qtx11extras
-    qtwebsockets
-    qtquickcontrols2
-    qtgraphicaleffects
+    qtcharts
   ];
 
-  env.NIX_CFLAGS_COMPILE = "-I${mlt.dev}/include/mlt++ -I${mlt.dev}/include/mlt";
-  qmakeFlags = [
-    "QMAKE_LRELEASE=${lib.getDev qttools}/bin/lrelease"
-    "SHOTCUT_VERSION=${version}"
-    "DEFINES+=SHOTCUT_NOUPGRADE"
+  env.NIX_CFLAGS_COMPILE = "-DSHOTCUT_NOUPGRADE";
+  cmakeFlags = [
+    "-DSHOTCUT_VERSION=${version}"
   ];
 
-  prePatch = ''
-    sed 's_shotcutPath, "melt[^"]*"_"${mlt}/bin/melt"_' -i src/jobs/meltjob.cpp
-    sed 's_shotcutPath, "ffmpeg"_"${mlt.ffmpeg}/bin/ffmpeg"_' -i src/jobs/ffmpegjob.cpp
-    sed 's_qApp->applicationDirPath(), "ffmpeg"_"${mlt.ffmpeg}/bin/ffmpeg"_' -i src/docks/encodedock.cpp
-    NICE=$(type -P nice)
-    sed "s_/usr/bin/nice_''${NICE}_" -i src/jobs/meltjob.cpp src/jobs/ffmpegjob.cpp
-  '';
+  patches = [
+    (substituteAll { inherit mlt; src = ./fix-mlt-ffmpeg-path.patch; })
+  ];
 
   qtWrapperArgs = [
-    "--prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1"
-    "--prefix LADSPA_PATH : ${ladspaPlugins}/lib/ladspa"
-    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ jack1 SDL2 ]}"
-    "--prefix PATH : ${mlt}/bin"
+    "--set FREI0R_PATH ${frei0r}/lib/frei0r-1"
+    "--set LADSPA_PATH ${ladspaPlugins}/lib/ladspa"
+    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [jack1 SDL2]}"
   ];
 
-  postInstall = ''
-    mkdir -p $out/share/shotcut
-    cp -r src/qml $out/share/shotcut/
-  '';
-
   passthru.updateScript = gitUpdater {
     rev-prefix = "v";
   };
diff --git a/pkgs/applications/video/shotcut/fix-mlt-ffmpeg-path.patch b/pkgs/applications/video/shotcut/fix-mlt-ffmpeg-path.patch
new file mode 100644
index 000000000000..fa584162cbe8
--- /dev/null
+++ b/pkgs/applications/video/shotcut/fix-mlt-ffmpeg-path.patch
@@ -0,0 +1,80 @@
+diff --git a/src/docks/encodedock.cpp b/src/docks/encodedock.cpp
+index 3359f676..24e44f98 100644
+--- a/src/docks/encodedock.cpp
++++ b/src/docks/encodedock.cpp
+@@ -2177,7 +2177,7 @@ bool EncodeDock::detectHardwareEncoders()
+ {
+     MAIN.showStatusMessage(tr("Detecting hardware encoders..."));
+     QStringList hwlist;
+-    QFileInfo ffmpegPath(qApp->applicationDirPath(), "ffmpeg");
++    QFileInfo ffmpegPath("@ffmpeg@/bin/ffmpeg");
+     foreach (const QString &codec, codecs()) {
+         LOG_INFO() << "checking for" << codec;
+         QProcess proc;
+@@ -2220,7 +2220,7 @@ bool EncodeDock::detectHardwareEncoders()
+ QString &EncodeDock::defaultFormatExtension()
+ {
+     auto format = ui->formatCombo->currentText();
+-    QFileInfo ffmpegPath(qApp->applicationDirPath(), "ffmpeg");
++    QFileInfo ffmpegPath("@ffmpeg@/bin/ffmpeg");
+     QProcess proc;
+     QStringList args;
+     args << "-hide_banner" << "-h" << format.prepend("muxer=");
+diff --git a/src/jobs/ffmpegjob.cpp b/src/jobs/ffmpegjob.cpp
+index 1f15e647..b6ad6633 100644
+--- a/src/jobs/ffmpegjob.cpp
++++ b/src/jobs/ffmpegjob.cpp
+@@ -54,7 +54,7 @@ FfmpegJob::~FfmpegJob()
+ void FfmpegJob::start()
+ {
+     QString shotcutPath = qApp->applicationDirPath();
+-    QFileInfo ffmpegPath(shotcutPath, "ffmpeg");
++    QFileInfo ffmpegPath("@ffmpeg@/bin/ffmpeg");
+     setReadChannel(QProcess::StandardError);
+     LOG_DEBUG() << ffmpegPath.absoluteFilePath() + " " + m_args.join(' ');
+     AbstractJob::start(ffmpegPath.absoluteFilePath(), m_args);
+diff --git a/src/jobs/meltjob.cpp b/src/jobs/meltjob.cpp
+index fd8c00b8..9150fe7b 100644
+--- a/src/jobs/meltjob.cpp
++++ b/src/jobs/meltjob.cpp
+@@ -98,9 +98,9 @@ void MeltJob::start()
+     }
+     QString shotcutPath = qApp->applicationDirPath();
+ #if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
+-    QFileInfo meltPath(shotcutPath, "melt-7");
++    QFileInfo meltPath("@mlt@/bin/melt");
+ #else
+-    QFileInfo meltPath(shotcutPath, "melt");
++    QFileInfo meltPath("@mlt@/bin/melt");
+ #endif
+     setReadChannel(QProcess::StandardError);
+     QStringList args;
+diff --git a/src/mltcontroller.cpp b/src/mltcontroller.cpp
+index 1e2299ac..b8f39f12 100644
+--- a/src/mltcontroller.cpp
++++ b/src/mltcontroller.cpp
+@@ -1555,9 +1555,9 @@ int Controller::checkFile(const QString &path)
+             || path.endsWith(".aep")) {
+         QString shotcutPath = qApp->applicationDirPath();
+ #if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
+-        QFileInfo meltPath(shotcutPath, "melt-7");
++        QFileInfo meltPath("@mlt@/bin/melt");
+ #else
+-        QFileInfo meltPath(shotcutPath, "melt");
++        QFileInfo meltPath("@mlt@/bin/melt");
+ #endif
+         QStringList args;
+         args << "-quiet" << "-consumer" << "null" << "real_time=0" << "out=0" << "terminate_on_pause=1" <<
+diff --git a/src/widgets/directshowvideowidget.cpp b/src/widgets/directshowvideowidget.cpp
+index c91ba821..73dd5a61 100644
+--- a/src/widgets/directshowvideowidget.cpp
++++ b/src/widgets/directshowvideowidget.cpp
+@@ -35,7 +35,7 @@ DirectShowVideoWidget::DirectShowVideoWidget(QWidget *parent) :
+     ui->setupUi(this);
+     Util::setColorsToHighlight(ui->label);
+ #ifdef Q_OS_WIN
+-    QFileInfo ffmpegPath(qApp->applicationDirPath(), "ffmpeg");
++    QFileInfo ffmpegPath("@ffmpeg@/bin/ffmpeg");
+     QProcess proc;
+     QStringList args;
+     args << "-hide_banner" << "-list_devices" << "true" << "-f" << "dshow" << "-i" << "dummy";
diff --git a/pkgs/build-support/dotnet/make-nuget-source/default.nix b/pkgs/build-support/dotnet/make-nuget-source/default.nix
index a23a143ab246..48de65e8a881 100644
--- a/pkgs/build-support/dotnet/make-nuget-source/default.nix
+++ b/pkgs/build-support/dotnet/make-nuget-source/default.nix
@@ -6,10 +6,9 @@
 }:
 
 let
-  nuget-source = stdenvNoCC.mkDerivation rec {
+  nuget-source = stdenvNoCC.mkDerivation {
     inherit name;
 
-    meta.description = description;
     nativeBuildInputs = [ python3 ];
 
     buildCommand = ''
@@ -18,17 +17,22 @@ let
       # use -L to follow symbolic links. When `projectReferences` is used in
       # buildDotnetModule, one of the deps will be a symlink farm.
       find -L ${lib.concatStringsSep " " deps} -type f -name '*.nupkg' -exec \
-        cp --no-clobber '{}' $out/lib ';'
+        ln -s '{}' -t $out/lib ';'
 
       # Generates a list of all licenses' spdx ids, if available.
       # Note that this currently ignores any license provided in plain text (e.g. "LICENSE.txt")
       python ${./extract-licenses-from-nupkgs.py} $out/lib > $out/share/licenses
     '';
+
+    meta.description = description;
   } // { # We need data from `$out` for `meta`, so we have to use overrides as to not hit infinite recursion.
-    meta.licence = let
-      depLicenses = lib.splitString "\n" (builtins.readFile "${nuget-source}/share/licenses");
-    in (lib.flatten (lib.forEach depLicenses (spdx:
-      lib.optionals (spdx != "") (lib.getLicenseFromSpdxId spdx)
-    )));
+    meta = nuget-source.meta // {
+      licenses = let
+        # TODO: avoid IFD
+        depLicenses = lib.splitString "\n" (builtins.readFile "${nuget-source}/share/licenses");
+      in lib.flatten (lib.forEach depLicenses (spdx:
+        lib.optionals (spdx != "") (lib.getLicenseFromSpdxId spdx)
+      ));
+    };
   };
 in nuget-source
diff --git a/pkgs/by-name/ha/hare/001-tzdata.patch b/pkgs/by-name/ha/hare/001-tzdata.patch
new file mode 100644
index 000000000000..bb510514eb53
--- /dev/null
+++ b/pkgs/by-name/ha/hare/001-tzdata.patch
@@ -0,0 +1,28 @@
+diff --git a/time/chrono/+freebsd.ha b/time/chrono/+freebsd.ha
+index 26d78ab1..6861bfe8 100644
+--- a/time/chrono/+freebsd.ha
++++ b/time/chrono/+freebsd.ha
+@@ -2,7 +2,7 @@
+ // (c) Hare authors <https://harelang.org>
+ 
+ def LOCALTIME_PATH: str = "/etc/localtime";
+-def ZONEINFO_PREFIX: str = "/usr/share/zoneinfo/";
++def ZONEINFO_PREFIX: str = "@tzdata@/share/zoneinfo/";
+ 
+ // The filepath of the system's "leap-seconds.list" file, which contains UTC/TAI
+ // leap second data.
+diff --git a/time/chrono/+linux.ha b/time/chrono/+linux.ha
+index 600f606c..8d5617e2 100644
+--- a/time/chrono/+linux.ha
++++ b/time/chrono/+linux.ha
+@@ -2,8 +2,8 @@
+ // (c) Hare authors <https://harelang.org>
+ 
+ def LOCALTIME_PATH: str = "/etc/localtime";
+-def ZONEINFO_PREFIX: str = "/usr/share/zoneinfo/";
++def ZONEINFO_PREFIX: str = "@tzdata@/share/zoneinfo/";
+ 
+ // The filepath of the system's "leap-seconds.list" file, which contains UTC/TAI
+ // leap second data.
+-export def UTC_LEAPSECS_FILE: str = "/usr/share/zoneinfo/leap-seconds.list";
++export def UTC_LEAPSECS_FILE: str = "@tzdata@/share/zoneinfo/leap-seconds.list";
diff --git a/pkgs/by-name/ha/hare/package.nix b/pkgs/by-name/ha/hare/package.nix
new file mode 100644
index 000000000000..c509955c6f09
--- /dev/null
+++ b/pkgs/by-name/ha/hare/package.nix
@@ -0,0 +1,91 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, binutils-unwrapped
+, harec
+, makeWrapper
+, qbe
+, scdoc
+, tzdata
+, substituteAll
+}:
+
+let
+  # We use harec's override of qbe until 1.2 is released, but the `qbe` argument
+  # is kept to avoid breakage.
+  qbe = harec.qbeUnstable;
+  # https://harelang.org/platforms/
+  arch = stdenv.hostPlatform.uname.processor;
+  platform = lib.strings.toLower stdenv.hostPlatform.uname.system;
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hare";
+  version = "unstable-2023-11-27";
+
+  outputs = [ "out" "man" ];
+
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "hare";
+    rev = "d94f355481a320fb2aec13ef62cb3bfe2416f5e4";
+    hash = "sha256-Mpl3VO4xvLCKHeYr/FPuS6jl8CkyeqDz18mQ6Zv05oc=";
+  };
+
+  patches = [
+    # Replace FHS paths with nix store
+    (substituteAll {
+      src = ./001-tzdata.patch;
+      inherit tzdata;
+    })
+  ];
+
+  nativeBuildInputs = [
+    harec
+    makeWrapper
+    qbe
+    scdoc
+  ];
+
+  buildInputs = [
+    binutils-unwrapped
+    harec
+    qbe
+    tzdata
+  ];
+
+  makeFlags = [
+    "HARECACHE=.harecache"
+    "PREFIX=${builtins.placeholder "out"}"
+    "PLATFORM=${platform}"
+    "ARCH=${arch}"
+  ];
+
+  enableParallelBuilding = true;
+
+  # Append the distribution name to the version
+  env.LOCALVER = "nixpkgs";
+
+  strictDeps = true;
+
+  doCheck = true;
+
+  preConfigure = ''
+    ln -s config.example.mk config.mk
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/hare \
+      --prefix PATH : ${lib.makeBinPath [binutils-unwrapped harec qbe]}
+  '';
+
+  setupHook = ./setup-hook.sh;
+
+  meta = {
+    homepage = "https://harelang.org/";
+    description = "Systems programming language designed to be simple, stable, and robust";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ onemoresuza ];
+    mainProgram = "hare";
+    inherit (harec.meta) platforms badPlatforms;
+  };
+})
diff --git a/pkgs/development/compilers/hare/setup-hook.sh b/pkgs/by-name/ha/hare/setup-hook.sh
index d2d2c34354d6..d2d2c34354d6 100644
--- a/pkgs/development/compilers/hare/setup-hook.sh
+++ b/pkgs/by-name/ha/hare/setup-hook.sh
diff --git a/pkgs/development/compilers/harec/default.nix b/pkgs/by-name/ha/harec/package.nix
index 6ddb5ff1f01c..cbcb53b1ac4e 100644
--- a/pkgs/development/compilers/harec/default.nix
+++ b/pkgs/by-name/ha/harec/package.nix
@@ -19,13 +19,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "harec";
-  version = "unstable-2023-10-22";
+  version = "unstable-2023-11-29";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "harec";
-    rev = "64dea196ce040fbf3417e1b4fb11331688672aca";
-    hash = "sha256-2Aeb+OZ/hYUyyxx6aTw+Oxiac+p+SClxtg0h68ZBSHc=";
+    rev = "ec3193e3870436180b0f3df82b769adc57a1c099";
+    hash = "sha256-HXQIgFC4YVDJjo5xbyg1ea3jWYKLEwKkD1KFzWFz9UI= ";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/xd/xdg-terminal-exec/package.nix b/pkgs/by-name/xd/xdg-terminal-exec/package.nix
new file mode 100644
index 000000000000..1dd07bd22396
--- /dev/null
+++ b/pkgs/by-name/xd/xdg-terminal-exec/package.nix
@@ -0,0 +1,32 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchFromGitHub,
+}:
+stdenvNoCC.mkDerivation {
+  pname = "xdg-terminal-exec";
+  version = "unstable-2023-12-08";
+
+  src = fetchFromGitHub {
+    owner = "Vladimir-csp";
+    repo = "xdg-terminal-exec";
+    rev = "04f37d4337b6ce157d4a7338dd600a32deb43a28";
+    hash = "sha256-QIPdF+/dMUEVcz5j9o+wQ4dnw2yWwz7slnLdMNETkGs=";
+  };
+
+  dontBuild = true;
+  installPhase = ''
+    runHook preInstall
+    install -Dm555 xdg-terminal-exec -t $out/bin
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Proposal for XDG terminal execution utility";
+    homepage = "https://github.com/Vladimir-csp/xdg-terminal-exec";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "xdg-terminal-exec";
+    maintainers = with lib.maintainers; [quantenzitrone];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/data/fonts/fg-virgil/default.nix b/pkgs/data/fonts/fg-virgil/default.nix
index fdf83df42e03..e0837c71d8eb 100644
--- a/pkgs/data/fonts/fg-virgil/default.nix
+++ b/pkgs/data/fonts/fg-virgil/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "fg-virgil";
-  version = "0.16.1";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "excalidraw";
     repo = "excalidraw";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-iziCCHacaShPqb0f5nI8cCinFFs5fB3TcMJrifNhg4I=";
+    hash = "sha256-awd5jTz4sSiliEq7xt6dUR31C85oDcCP5GLuQn0ohj0=";
   };
 
   installPhase = ''
diff --git a/pkgs/development/compilers/hare/default.nix b/pkgs/development/compilers/hare/default.nix
deleted file mode 100644
index a78b3706f678..000000000000
--- a/pkgs/development/compilers/hare/default.nix
+++ /dev/null
@@ -1,100 +0,0 @@
-{ lib
-, stdenv
-, fetchFromSourcehut
-, binutils-unwrapped
-, harec
-, makeWrapper
-, qbe
-, scdoc
-}:
-
-let
-  # We use harec's override of qbe until 1.2 is released, but the `qbe` argument
-  # is kept to avoid breakage.
-  qbe = harec.qbeUnstable;
-in
-stdenv.mkDerivation (finalAttrs: {
-  pname = "hare";
-  version = "unstable-2023-10-23";
-
-  src = fetchFromSourcehut {
-    owner = "~sircmpwn";
-    repo = "hare";
-    rev = "1048620a7a25134db370bf24736efff1ffcb2483";
-    hash = "sha256-slQPIhrcM+KAVAvjuRnqNdEAEr4Xa4iQNVEpI7Wl+Ks=";
-  };
-
-  nativeBuildInputs = [
-    binutils-unwrapped
-    harec
-    makeWrapper
-    qbe
-    scdoc
-  ];
-
-  buildInputs = [
-    binutils-unwrapped
-    harec
-    qbe
-  ];
-
-  # Append the distribution name to the version
-  env.LOCALVER = "nix";
-
-  configurePhase =
-    let
-      # https://harelang.org/platforms/
-      arch =
-        if stdenv.isx86_64 then "x86_64"
-        else if stdenv.isAarch64 then "aarch64"
-        else if stdenv.hostPlatform.isRiscV && stdenv.is64bit then "riscv64"
-        else "unsupported";
-      platform =
-        if stdenv.isLinux then "linux"
-        else if stdenv.isFreeBSD then "freebsd"
-        else "unsupported";
-    in
-    ''
-      runHook preConfigure
-
-      cp config.example.mk config.mk
-      makeFlagsArray+=(
-        PREFIX="${builtins.placeholder "out"}"
-        HARECACHE="$(mktemp -d --tmpdir harecache.XXXXXXXX)"
-        BINOUT="$(mktemp -d --tmpdir bin.XXXXXXXX)"
-        PLATFORM="${platform}"
-        ARCH="${arch}"
-      )
-
-      runHook postConfigure
-    '';
-
-  doCheck = true;
-
-  postFixup =
-    let
-      binPath = lib.makeBinPath [
-        binutils-unwrapped
-        harec
-        qbe
-      ];
-    in
-    ''
-      wrapProgram $out/bin/hare --prefix PATH : ${binPath}
-    '';
-
-  setupHook = ./setup-hook.sh;
-
-  strictDeps = true;
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = "https://harelang.org/";
-    description =
-      "A systems programming language designed to be simple, stable, and robust";
-    license = lib.licenses.gpl3Only;
-    maintainers = with lib.maintainers; [ onemoresuza ];
-    mainProgram = "hare";
-    inherit (harec.meta) platforms badPlatforms;
-  };
-})
diff --git a/pkgs/development/hare-third-party/hare-compress/default.nix b/pkgs/development/hare-third-party/hare-compress/default.nix
new file mode 100644
index 000000000000..cc52e3e47eab
--- /dev/null
+++ b/pkgs/development/hare-third-party/hare-compress/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, hare, harec, fetchFromSourcehut }:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hare-compress";
+  version = "unstable-2023-11-01";
+
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "hare-compress";
+    rev = "562706946871d1c994f60361883269916cbaa08e";
+    hash = "sha256-sz8xPBZaUFye3HH4lkRnH52ye451e6seZXN/qvg87jE=";
+  };
+
+  nativeBuildInputs = [ hare ];
+
+  makeFlags = [
+    "HARECACHE=.harecache"
+    "PREFIX=${builtins.placeholder "out"}"
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://git.sr.ht/~sircmpwn/hare-compress/";
+    description = "Compression algorithms for Hare";
+    license = with licenses; [ mpl20 ];
+    maintainers = with maintainers; [ starzation ];
+
+    inherit (harec.meta) platforms badPlatforms;
+  };
+})
diff --git a/pkgs/development/interpreters/erlang/26.nix b/pkgs/development/interpreters/erlang/26.nix
index a0e55bad3c5a..502983438df5 100644
--- a/pkgs/development/interpreters/erlang/26.nix
+++ b/pkgs/development/interpreters/erlang/26.nix
@@ -1,6 +1,6 @@
 { mkDerivation }:
 
 mkDerivation {
-  version = "26.1.2";
-  sha256 = "sha256-exLLdg7z/HKJI81w33vcQUDF6NG5n2WKtcYwdPxN+0A=";
+  version = "26.2";
+  sha256 = "sha256-mk8vPgWFTMo4oPY/OIdboYMTyxG/22Ow4EYs1b+nHuM=";
 }
diff --git a/pkgs/development/libraries/mlt/default.nix b/pkgs/development/libraries/mlt/default.nix
index ded5a5990a60..22a38921ec49 100644
--- a/pkgs/development/libraries/mlt/default.nix
+++ b/pkgs/development/libraries/mlt/default.nix
@@ -24,6 +24,7 @@
 , cudaSupport ? config.cudaSupport
 , cudaPackages ? { }
 , enableJackrack ? stdenv.isLinux
+, glib
 , ladspa-sdk
 , ladspaPlugins
 , enablePython ? false
@@ -83,6 +84,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals cudaSupport [
     cudaPackages.cuda_cudart
   ] ++ lib.optionals enableJackrack [
+    glib
     ladspa-sdk
     ladspaPlugins
   ] ++ lib.optionals enableQt [
diff --git a/pkgs/development/libraries/nvidia-optical-flow-sdk/default.nix b/pkgs/development/libraries/nvidia-optical-flow-sdk/default.nix
index 2914d059cfaf..813821bfb71c 100644
--- a/pkgs/development/libraries/nvidia-optical-flow-sdk/default.nix
+++ b/pkgs/development/libraries/nvidia-optical-flow-sdk/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub, cudaPackages }:
 
 stdenv.mkDerivation {
   pname = "nvidia-optical-flow-sdk";
@@ -18,10 +18,12 @@ stdenv.mkDerivation {
     cp -R * $out/include
   '';
 
-  postFixup = ''
-    mkdir -p $out/nix-support
-    echo $pname >> "$out/nix-support/include-in-cudatoolkit-root"
-  '';
+  # Makes setupCudaHook propagate nvidia-optical-flow-sdk together with cuda
+  # packages. Currently used by opencv4.cxxdev, hopefully can be removed in the
+  # future
+  nativeBuildInputs = [
+    cudaPackages.markForCudatoolkitRootHook
+  ];
 
   meta = with lib; {
     description = "Nvidia optical flow headers for computing the relative motion of pixels between images";
diff --git a/pkgs/development/python-modules/pyatv/default.nix b/pkgs/development/python-modules/pyatv/default.nix
index b5785dfd3f2e..73c843404565 100644
--- a/pkgs/development/python-modules/pyatv/default.nix
+++ b/pkgs/development/python-modules/pyatv/default.nix
@@ -92,7 +92,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = lib.optionals (stdenv.isDarwin) [
+  disabledTests = [
+    # https://github.com/postlund/pyatv/issues/2307
+    "test_zeroconf_service_published"
+  ] ++ lib.optionals (stdenv.isDarwin) [
     # tests/protocols/raop/test_raop_functional.py::test_stream_retransmission[raop_properties2-2-True] - assert False
     "test_stream_retransmission"
   ];
diff --git a/pkgs/development/python-modules/renault-api/default.nix b/pkgs/development/python-modules/renault-api/default.nix
index 58fc148997b9..6310d70d2cc6 100644
--- a/pkgs/development/python-modules/renault-api/default.nix
+++ b/pkgs/development/python-modules/renault-api/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "renault-api";
-  version = "0.2.0";
+  version = "0.2.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "hacf-fr";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-x6+rFstZM7Uplwa8NeRBTb8FYSD/NGjN/3q5earvN7c=";
+    hash = "sha256-HDaX94XHkyrIA0hWYwcpUItEIeRK2ACvS6jg1YA6Wv4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/zeroconf/default.nix b/pkgs/development/python-modules/zeroconf/default.nix
index 70524a71d72f..2c6968144304 100644
--- a/pkgs/development/python-modules/zeroconf/default.nix
+++ b/pkgs/development/python-modules/zeroconf/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "zeroconf";
-  version = "0.128.4";
+  version = "0.129.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "jstasiak";
     repo = "python-zeroconf";
     rev = "refs/tags/${version}";
-    hash = "sha256-yNPILYI3zAY4LCWvfKw7iu0H0UNbhfhC9Vyp9fdjwbI=";
+    hash = "sha256-TjBaKw5AI1xPShmX/Ny7V7pvhz/4xwbxTZrDbMeLF5o=";
   };
 
   postPatch = ''
diff --git a/pkgs/os-specific/linux/framework-laptop-kmod/default.nix b/pkgs/os-specific/linux/framework-laptop-kmod/default.nix
new file mode 100644
index 000000000000..088e30e91f8c
--- /dev/null
+++ b/pkgs/os-specific/linux/framework-laptop-kmod/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, linuxPackages
+, kernel
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "framework-laptop-kmod";
+  version = "unstable-2023-12-03";
+
+  src = fetchFromGitHub {
+    owner = "DHowett";
+    repo = "framework-laptop-kmod";
+    rev = "d5367eb9e5b5542407494d04ac1a0e77f10cc89d";
+    hash = "sha256-t8F4XHPkuCjWBrsEjW97ielYtf3V6hlLsrasvyab198=";
+  };
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  makeFlags = kernel.makeFlags ++ [
+    "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D framework_laptop.ko -t $out/lib/modules/${kernel.modDirVersion}/extra
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A kernel module that exposes the Framework Laptop (13, 16)'s battery charge limit and LEDs to userspace.";
+    homepage = "https://github.com/DHowett/framework-laptop-kmod";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ gaykitty ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix
index fe8f95ecdf36..21fd28f29923 100644
--- a/pkgs/servers/computing/slurm/default.nix
+++ b/pkgs/servers/computing/slurm/default.nix
@@ -14,7 +14,7 @@
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "23.02.6.1";
+  version = "23.02.7.1";
 
   # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
   # because the latter does not keep older releases.
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     repo = "slurm";
     # The release tags use - instead of .
     rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
-    sha256 = "sha256-azgGM4qfS0xtUaiGfXtu8MNYdgpZRUfx+zBgAAlmt6g=";
+    sha256 = "sha256-0u96KnEahx7noA8vQEkC1f+hv4d3NGPmnof9G7bA7Oc=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index b7b7d702cc79..31a389b98200 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,7 +2,7 @@
 # Do not edit!
 
 {
-  version = "2023.12.2";
+  version = "2023.12.3";
   components = {
     "3_day_blinds" = ps: with ps; [
     ];
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 55a368af3bb6..2323db5b085c 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -311,7 +311,7 @@ let
   extraBuildInputs = extraPackages python.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2023.12.2";
+  hassVersion = "2023.12.3";
 
 in python.pkgs.buildPythonApplication rec {
   pname = "homeassistant";
@@ -329,13 +329,13 @@ in python.pkgs.buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = "refs/tags/${version}";
-    hash = "sha256-uP4aX8Fo4GopvzpZGKFw99rXxudEgsKfhdeMHhXv47s=";
+    hash = "sha256-pTDYiy9Ux7Rgsf9rXXF3GbaiJkTX5FA/7K2hJtiNOkQ=";
   };
 
   # Secondary source is pypi sdist for translations
   sdist = fetchPypi {
     inherit pname version;
-    hash = "sha256-1KMTn/iuey/Cug1gq4+54J+ZJTqcU+sW5Zw5tS+DwcQ=";
+    hash = "sha256-cvsYkuQG4i3GG8VGJ+HGSjdvpSBLzh0BFYQQpoVq4FY=";
   };
 
   nativeBuildInputs = with python.pkgs; [
diff --git a/pkgs/servers/home-assistant/stubs.nix b/pkgs/servers/home-assistant/stubs.nix
index 4995dc43773c..e31c587258b7 100644
--- a/pkgs/servers/home-assistant/stubs.nix
+++ b/pkgs/servers/home-assistant/stubs.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "homeassistant-stubs";
-  version = "2023.12.2";
+  version = "2023.12.3";
   format = "pyproject";
 
   disabled = python.version != home-assistant.python.version;
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "KapJI";
     repo = "homeassistant-stubs";
     rev = "refs/tags/${version}";
-    hash = "sha256-O5qVC/ffI+bS+cS3i+qmJFYCazDaZwmrnFwUj/jKC20=";
+    hash = "sha256-PQZsesdGqeZgQUgO7DkKDcBrWRM/CY8giPx8cK3531s=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 035f7e5382c1..8acf7e4753f0 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9137,10 +9137,6 @@ with pkgs;
     llvmPackages = llvmPackages_16;
   };
 
-  hare = callPackage ../development/compilers/hare { };
-
-  harec = callPackage ../development/compilers/harec { };
-
   hareThirdParty = recurseIntoAttrs (callPackage ./hare-third-party.nix { });
 
   ham = pkgs.perlPackages.ham;
@@ -34232,7 +34228,7 @@ with pkgs;
 
   shod = callPackage ../applications/window-managers/shod { };
 
-  shotcut = libsForQt5.callPackage ../applications/video/shotcut { };
+  shotcut = qt6Packages.callPackage ../applications/video/shotcut { };
 
   shogun = callPackage ../applications/science/machine-learning/shogun {
     protobuf = protobuf_21;
@@ -40938,7 +40934,12 @@ with pkgs;
     gtk2 = gtk2-x11;
   };
 
-  qMasterPassword = libsForQt5.callPackage ../applications/misc/qMasterPassword { };
+  qMasterPassword = qt6Packages.callPackage ../applications/misc/qMasterPassword { };
+
+  qMasterPassword-wayland = qt6Packages.callPackage ../applications/misc/qMasterPassword {
+    x11Support = false;
+    waylandSupport = true;
+  };
 
   qmake2cmake = python3Packages.callPackage ../tools/misc/qmake2cmake { };
 
diff --git a/pkgs/top-level/hare-third-party.nix b/pkgs/top-level/hare-third-party.nix
index 084e749c676c..73ffbc0ea790 100644
--- a/pkgs/top-level/hare-third-party.nix
+++ b/pkgs/top-level/hare-third-party.nix
@@ -6,4 +6,6 @@ let
 in
 {
   hare-json = callPackage ../development/hare-packages/hare-json { };
+
+  hare-compress = callPackage ../development/hare-third-party/hare-compress {};
 })
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index 860291466017..27496b910444 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -344,6 +344,8 @@ in {
 
     fanout = callPackage ../os-specific/linux/fanout { };
 
+    framework-laptop-kmod = callPackage ../os-specific/linux/framework-laptop-kmod { };
+
     fwts-efi-runtime = callPackage ../os-specific/linux/fwts/module.nix { };
 
     gcadapter-oc-kmod = callPackage ../os-specific/linux/gcadapter-oc-kmod { };