summary refs log tree commit diff
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2022-03-09 18:01:14 +0000
committerGitHub <noreply@github.com>2022-03-09 18:01:14 +0000
commitd30e2aa8f5bab062edf1a911b7215f3f11a85c60 (patch)
tree1597ef43e25b5d588d22954e29895a1484168cfe
parenta2bca36cdf57e7db425ddcbc610d1569f295b7ac (diff)
parent2db369d1dcde6f79f5ff8d8a91d222e2213bec4a (diff)
downloadnixpkgs-d30e2aa8f5bab062edf1a911b7215f3f11a85c60.tar
nixpkgs-d30e2aa8f5bab062edf1a911b7215f3f11a85c60.tar.gz
nixpkgs-d30e2aa8f5bab062edf1a911b7215f3f11a85c60.tar.bz2
nixpkgs-d30e2aa8f5bab062edf1a911b7215f3f11a85c60.tar.lz
nixpkgs-d30e2aa8f5bab062edf1a911b7215f3f11a85c60.tar.xz
nixpkgs-d30e2aa8f5bab062edf1a911b7215f3f11a85c60.tar.zst
nixpkgs-d30e2aa8f5bab062edf1a911b7215f3f11a85c60.zip
Merge master into staging-next
-rw-r--r--lib/attrsets.nix2
-rw-r--r--maintainers/maintainer-list.nix9
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/systemd.nix2
-rw-r--r--nixos/tests/installed-tests/appstream-qt.nix9
-rw-r--r--nixos/tests/installed-tests/appstream.nix9
-rw-r--r--nixos/tests/installed-tests/default.nix2
-rw-r--r--nixos/tests/prometheus-exporters.nix9
-rw-r--r--pkgs/applications/audio/gpodder/default.nix13
-rw-r--r--pkgs/applications/audio/gpodder/disable-autoupdate.patch37
-rw-r--r--pkgs/applications/blockchains/electrs/default.nix6
-rw-r--r--pkgs/applications/editors/pinegrow/default.nix4
-rw-r--r--pkgs/build-support/make-desktopitem/default.nix24
-rw-r--r--pkgs/development/compilers/gleam/default.nix6
-rw-r--r--pkgs/development/libraries/appstream/default.nix26
-rw-r--r--pkgs/development/libraries/appstream/fix-build-for-qt-olderthan-514.patch43
-rw-r--r--pkgs/development/libraries/appstream/fix-paths.patch17
-rw-r--r--pkgs/development/libraries/appstream/installed-tests-path.patch27
-rw-r--r--pkgs/development/libraries/appstream/qt.nix21
-rw-r--r--pkgs/development/libraries/libxmlb/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/fdkaac/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/base.nix21
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/default.nix36
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix22
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix23
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix23
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix23
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix23
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix23
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix22
-rw-r--r--pkgs/development/ocaml-modules/flac/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/ogg/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/opus/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/speex/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/ssl/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/theora/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/vorbis/default.nix25
-rw-r--r--pkgs/development/python-modules/emoji/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-texttospeech/default.nix4
-rw-r--r--pkgs/development/python-modules/plaid-python/default.nix4
-rw-r--r--pkgs/development/python-modules/pyprecice/default.nix2
-rw-r--r--pkgs/development/tools/misc/editorconfig-core-c/default.nix9
-rw-r--r--pkgs/games/ufoai/default.nix8
-rw-r--r--pkgs/misc/uboot/default.nix6
-rw-r--r--pkgs/servers/mapcache/default.nix4
-rw-r--r--pkgs/shells/zsh/grml-zsh-config/default.nix4
-rw-r--r--pkgs/tools/misc/nncp/default.nix4
-rw-r--r--pkgs/tools/misc/sanctity/default.nix23
-rw-r--r--pkgs/tools/networking/networkmanager/default.nix4
-rw-r--r--pkgs/tools/networking/networkmanager/fix-paths.patch24
-rw-r--r--pkgs/tools/networking/snet/default.nix22
-rw-r--r--pkgs/tools/text/colordiff/default.nix5
-rw-r--r--pkgs/top-level/all-packages.nix5
-rw-r--r--pkgs/top-level/ocaml-packages.nix39
53 files changed, 711 insertions, 107 deletions
diff --git a/lib/attrsets.nix b/lib/attrsets.nix
index a88947b4585..c0d3ede73d0 100644
--- a/lib/attrsets.nix
+++ b/lib/attrsets.nix
@@ -327,7 +327,7 @@ rec {
        isDerivation "foobar"
        => false
   */
-  isDerivation = x: isAttrs x && x ? type && x.type == "derivation";
+  isDerivation = x: x.type or null == "derivation";
 
   /* Converts a store path to a fake derivation. */
   toDerivation = path:
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 7dea8e39cc5..7c9050be78b 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -2218,7 +2218,7 @@
   ckie = {
     email = "nixpkgs-0efe364@ckie.dev";
     github = "ckiee";
-    githubId = 2526321;
+    githubId = 25263210;
     keys = [{
       longkeyid = "rsa4096/0x13E79449C0525215";
       fingerprint = "539F 0655 4D35 38A5 429A  E253 13E7 9449 C052 5215";
@@ -9391,6 +9391,13 @@
     githubId = 71795;
     name = "Mica Semrick";
   };
+  papojari = {
+    email = "papojari-git.ovoid@aleeas.com";
+    matrix = "@papojari:artemislena.eu";
+    github = "papojari";
+    githubId = 81317317;
+    name = "papojari";
+  };
   paraseba = {
     email = "paraseba@gmail.com";
     github = "paraseba";
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/systemd.nix b/nixos/modules/services/monitoring/prometheus/exporters/systemd.nix
index c0a50f07d71..2edd1de83e1 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/systemd.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/systemd.nix
@@ -11,7 +11,7 @@ in {
     serviceConfig = {
       ExecStart = ''
         ${pkgs.prometheus-systemd-exporter}/bin/systemd_exporter \
-          --web.listen-address ${cfg.listenAddress}:${toString cfg.port}
+          --web.listen-address ${cfg.listenAddress}:${toString cfg.port} ${concatStringsSep " " cfg.extraFlags}
       '';
       RestrictAddressFamilies = [
         # Need AF_UNIX to collect data
diff --git a/nixos/tests/installed-tests/appstream-qt.nix b/nixos/tests/installed-tests/appstream-qt.nix
new file mode 100644
index 00000000000..d08187bfe46
--- /dev/null
+++ b/nixos/tests/installed-tests/appstream-qt.nix
@@ -0,0 +1,9 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+  tested = pkgs.libsForQt5.appstream-qt;
+
+  testConfig = {
+    appstream.enable = true;
+  };
+}
diff --git a/nixos/tests/installed-tests/appstream.nix b/nixos/tests/installed-tests/appstream.nix
new file mode 100644
index 00000000000..f71a095d445
--- /dev/null
+++ b/nixos/tests/installed-tests/appstream.nix
@@ -0,0 +1,9 @@
+{ pkgs, makeInstalledTest, ... }:
+
+makeInstalledTest {
+  tested = pkgs.appstream;
+
+  testConfig = {
+    appstream.enable = true;
+  };
+}
diff --git a/nixos/tests/installed-tests/default.nix b/nixos/tests/installed-tests/default.nix
index 08785e5e666..079fd54e71e 100644
--- a/nixos/tests/installed-tests/default.nix
+++ b/nixos/tests/installed-tests/default.nix
@@ -84,6 +84,8 @@ let
 in
 
 {
+  appstream = callInstalledTest ./appstream.nix {};
+  appstream-qt = callInstalledTest ./appstream-qt.nix {};
   colord = callInstalledTest ./colord.nix {};
   flatpak = callInstalledTest ./flatpak.nix {};
   flatpak-builder = callInstalledTest ./flatpak-builder.nix {};
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix
index 323d79c5b86..18b64a958dd 100644
--- a/nixos/tests/prometheus-exporters.nix
+++ b/nixos/tests/prometheus-exporters.nix
@@ -1156,6 +1156,10 @@ let
     systemd = {
       exporterConfig = {
         enable = true;
+
+        extraFlags = [
+          "--collector.enable-restart-count"
+        ];
       };
       metricProvider = { };
       exporterTest = ''
@@ -1166,6 +1170,11 @@ let
                 'systemd_unit_state{name="basic.target",state="active",type="target"} 1'
             )
         )
+        succeed(
+            "curl -sSf localhost:9558/metrics | grep '{}'".format(
+                'systemd_service_restart_total{state="prometheus-systemd-exporter.service"} 0'
+            )
+        )
       '';
     };
 
diff --git a/pkgs/applications/audio/gpodder/default.nix b/pkgs/applications/audio/gpodder/default.nix
index cd5e476b884..6db530a2c23 100644
--- a/pkgs/applications/audio/gpodder/default.nix
+++ b/pkgs/applications/audio/gpodder/default.nix
@@ -5,14 +5,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "gpodder";
-  version = "3.10.17";
+  version = "3.10.21";
   format = "other";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0wrk8d4q6ricbcjzlhk10vrk1qg9hi323kgyyd0c8nmh7a82h8pd";
+    sha256 = "0n73jm5ypsj962gpr0dk10lqh83giqsczm63wchyhmrkyf1wgga1";
   };
 
   patches = [
@@ -42,7 +42,10 @@ python3Packages.buildPythonApplication rec {
   ];
 
   checkInputs = with python3Packages; [
-    coverage minimock
+    minimock
+    pytest
+    pytest-httpserver
+    pytest-cov
   ];
 
   doCheck = true;
@@ -51,6 +54,7 @@ python3Packages.buildPythonApplication rec {
     feedparser
     dbus-python
     mygpoclient
+    requests
     pygobject3
     eyeD3
     podcastparser
@@ -69,7 +73,8 @@ python3Packages.buildPythonApplication rec {
   '';
 
   installCheckPhase = ''
-    LC_ALL=C PYTHONPATH=./src:$PYTHONPATH python3 -m gpodder.unittests
+    LC_ALL=C PYTHONPATH=src/:$PYTHONPATH pytest --ignore=tests --ignore=src/gpodder/utilwin32ctypes.py --doctest-modules src/gpodder/util.py src/gpodder/jsonconfig.py
+    LC_ALL=C PYTHONPATH=src/:$PYTHONPATH pytest tests --ignore=src/gpodder/utilwin32ctypes.py --ignore=src/mygpoclient --cov=gpodder
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/audio/gpodder/disable-autoupdate.patch b/pkgs/applications/audio/gpodder/disable-autoupdate.patch
index 8f77518d03e..c7c81761328 100644
--- a/pkgs/applications/audio/gpodder/disable-autoupdate.patch
+++ b/pkgs/applications/audio/gpodder/disable-autoupdate.patch
@@ -11,41 +11,20 @@
      </section>
      <section>
        <item>
-@@ -201,4 +197,4 @@
-     </submenu>
-   </menu>
- </interface>
--<!-- :noTabs=true:tabSize=2:indentSize=2: -->
-\ No newline at end of file
-+<!-- :noTabs=true:tabSize=2:indentSize=2: -->
 --- a/src/gpodder/config.py
 +++ b/src/gpodder/config.py
-@@ -91,13 +91,6 @@
-         'retries': 3,  # number of retries when downloads time out
-     },
+@@ -94,7 +94,7 @@
  
--    # Software updates from gpodder.org
--    'software_update': {
+     # Software updates from gpodder.org
+     'software_update': {
 -        'check_on_startup': True,  # check for updates on start
--        'last_check': 0,  # unix timestamp of last update check
--        'interval': 5,  # interval (in days) to check for updates
--    },
--
-     'ui': {
-         # Settings for the Command-Line Interface
-         'cli': {
++       'check_on_startup': False,  # check for updates on start
+         'last_check': 0,  # unix timestamp of last update check
+         'interval': 5,  # interval (in days) to check for updates
+     },
 --- a/src/gpodder/gtkui/main.py
 +++ b/src/gpodder/gtkui/main.py
-@@ -224,7 +224,7 @@
-             util.idle_add(self.subscribe_to_url, self.options.subscribe)
-         elif not self.channels:
-             self.on_itemUpdate_activate()
--        elif self.config.software_update.check_on_startup:
-+        elif False and self.config.software_update.check_on_startup:
-             # Check for software updates from gpodder.org
-             diff = time.time() - self.config.software_update.last_check
-             if diff > (60 * 60 * 24) * self.config.software_update.interval:
-@@ -3288,6 +3288,7 @@
+@@ -3445,6 +3445,7 @@
          If silent=False, a message will be shown even if no updates are
          available (set silent=False when the check is manually triggered).
          """
diff --git a/pkgs/applications/blockchains/electrs/default.nix b/pkgs/applications/blockchains/electrs/default.nix
index 4928f363d70..f78c0fa3e35 100644
--- a/pkgs/applications/blockchains/electrs/default.nix
+++ b/pkgs/applications/blockchains/electrs/default.nix
@@ -12,16 +12,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "electrs";
-  version = "0.9.5";
+  version = "0.9.6";
 
   src = fetchFromGitHub {
     owner = "romanz";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-6TR9OeIAVVbwDrshb9zHTS39x6taNWYK0UyRLbkW+g0=";
+    hash = "sha256-BI7hxlpg2sggD1ag73n+tRre+Ja2ZFhDPzy1DV8aEHw=";
   };
 
-  cargoHash = "sha256-taOrbtx74DICvPLrwym70X3pv7EBA/H22VZmlxefANM=";
+  cargoHash = "sha256-Oy2mOulSB2a9LaT47G+BzjidcjPjHeaoesQ7g6M8M1Q=";
 
   # needed for librocksdb-sys
   nativeBuildInputs = [ llvmPackages.clang ];
diff --git a/pkgs/applications/editors/pinegrow/default.nix b/pkgs/applications/editors/pinegrow/default.nix
index 8ddd0d6a283..3b694e4b151 100644
--- a/pkgs/applications/editors/pinegrow/default.nix
+++ b/pkgs/applications/editors/pinegrow/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pinegrow";
-  version = "6.3";
+  version = "6.4";
 
   src = fetchurl {
     url = "https://download.pinegrow.com/PinegrowLinux64.${version}.zip";
-    sha256 = "0wldj633p67da077nfc67gr9xhq580rkfd0r3904sjq7x01r0kaz";
+    sha256 = "0i8sg4criimrqmz0g68b8xcwcrb362ssid5jazswpa6hhwj6s5n4";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/build-support/make-desktopitem/default.nix b/pkgs/build-support/make-desktopitem/default.nix
index 31964953247..d831fe24d33 100644
--- a/pkgs/build-support/make-desktopitem/default.nix
+++ b/pkgs/build-support/make-desktopitem/default.nix
@@ -36,7 +36,7 @@
 let
   # FIXME: workaround until https://github.com/NixOS/nixpkgs/pull/162246 lands
   cleanName = if lib.hasInfix " " name
-                then throw "Name must not contain spaces!"
+                then throw "makeDesktopItem: name must not contain spaces!"
                 else name;
 
   # There are multiple places in the FDO spec that make "boolean" values actually tristate,
@@ -45,13 +45,13 @@ let
   boolOrNullToString = value:
     if value == null then null
     else if builtins.isBool value then lib.boolToString value
-    else throw "Value must be a boolean or null!";
+    else throw "makeDesktopItem: value must be a boolean or null!";
 
   # Multiple values are represented as one string, joined by semicolons.
   # Technically, it's possible to escape semicolons in values with \;, but this is currently not implemented.
-  renderList = value:
-    if !builtins.isList value then throw "Value must be a list!"
-    else if builtins.any (item: lib.hasInfix ";" item) value then throw "Values in list must not contain semicolons!"
+  renderList = key: value:
+    if !builtins.isList value then throw "makeDesktopItem: value for ${key} must be a list!"
+    else if builtins.any (item: lib.hasInfix ";" item) value then throw "makeDesktopItem: values in ${key} list must not contain semicolons!"
     else if value == [] then null
     else builtins.concatStringsSep ";" value;
 
@@ -65,18 +65,18 @@ let
     "NoDisplay" = boolOrNullToString noDisplay;
     "Comment" = comment;
     "Icon" = icon;
-    "OnlyShowIn" = renderList onlyShowIn;
-    "NotShowIn" = renderList notShowIn;
+    "OnlyShowIn" = renderList "onlyShowIn" onlyShowIn;
+    "NotShowIn" = renderList "notShowIn" notShowIn;
     "DBusActivatable" = boolOrNullToString dbusActivatable;
     "TryExec" = tryExec;
     "Exec" = exec;
     "Path" = path;
     "Terminal" = boolOrNullToString terminal;
-    "Actions" = renderList (builtins.attrNames actions);
-    "MimeType" = renderList mimeTypes;
-    "Categories" = renderList categories;
-    "Implements" = renderList implements;
-    "Keywords" = renderList keywords;
+    "Actions" = renderList "actions" (builtins.attrNames actions);
+    "MimeType" = renderList "mimeTypes" mimeTypes;
+    "Categories" = renderList "categories" categories;
+    "Implements" = renderList "implements" implements;
+    "Keywords" = renderList "keywords" keywords;
     "StartupNotify" = boolOrNullToString startupNotify;
     "StartupWMClass" = startupWMClass;
     "URL" = url;
diff --git a/pkgs/development/compilers/gleam/default.nix b/pkgs/development/compilers/gleam/default.nix
index 891751a6ad6..3f704b52572 100644
--- a/pkgs/development/compilers/gleam/default.nix
+++ b/pkgs/development/compilers/gleam/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gleam";
-  version = "0.19.0";
+  version = "0.20.1";
 
   src = fetchFromGitHub {
     owner = "gleam-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-pJ4RSijuwdKAL24WzcDIQen1RGofN1tUlbAA18zUvBE=";
+    sha256 = "sha256-AK+eb0eJyI7ALn7sg0wz4GzHthxrJWd1PVT5bL9LKWA=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++
     lib.optionals stdenv.isDarwin [ Security libiconv ];
 
-  cargoSha256 = "sha256-f/6LdvKRykpBX2GlRuyUcSD719f6XzhbMHzhrGNU0Cg=";
+  cargoSha256 = "sha256-kFTAPbP42sbhsvP069ua0ys1Dw7W+Gdsv2YaGrzorIk=";
 
   meta = with lib; {
     description = "A statically typed language for the Erlang VM";
diff --git a/pkgs/development/libraries/appstream/default.nix b/pkgs/development/libraries/appstream/default.nix
index c39ea78a775..9b07697a6a9 100644
--- a/pkgs/development/libraries/appstream/default.nix
+++ b/pkgs/development/libraries/appstream/default.nix
@@ -14,27 +14,31 @@
 , glib
 , xapian
 , libxml2
+, libxmlb
 , libyaml
 , gobject-introspection
 , pcre
 , itstool
 , gperf
 , vala
-, lmdb
 , curl
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
   pname = "appstream";
-  version = "0.14.4";
+  version = "0.15.2";
+  # When bumping this package, please also check whether
+  # fix-build-for-qt-olderthan-514.patch still applies by
+  # building libsForQt512.appstream-qt.
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" "dev" "installedTests" ];
 
   src = fetchFromGitHub {
     owner = "ximion";
     repo = "appstream";
     rev = "v${version}";
-    sha256 = "sha256-DJXCw50f+8c58bJw6xx0ECfkc9/KcWaeA+ne2zmTyhg=";
+    sha256 = "sha256-/JZ49wjtcInbGUOVVjevVSrLCHcA60FMT165rhfb78Q=";
   };
 
   patches = [
@@ -43,6 +47,9 @@ stdenv.mkDerivation rec {
       src = ./fix-paths.patch;
       libstemmer_includedir = "${lib.getDev libstemmer}/include";
     })
+
+    # Allow installing installed tests to a separate output.
+    ./installed-tests-path.patch
   ];
 
   nativeBuildInputs = [
@@ -65,9 +72,9 @@ stdenv.mkDerivation rec {
     glib
     xapian
     libxml2
+    libxmlb
     libyaml
     gperf
-    lmdb
     curl
   ];
 
@@ -75,8 +82,15 @@ stdenv.mkDerivation rec {
     "-Dapidocs=false"
     "-Ddocs=false"
     "-Dvapi=true"
+    "-Dinstalled_test_prefix=${placeholder "installedTests"}"
   ];
 
+  passthru = {
+    tests = {
+      installed-tests = nixosTests.installed-tests.appstream;
+    };
+  };
+
   meta = with lib; {
     description = "Software metadata handling library";
     homepage = "https://www.freedesktop.org/wiki/Distributions/AppStream/";
@@ -88,5 +102,5 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
- };
+  };
 }
diff --git a/pkgs/development/libraries/appstream/fix-build-for-qt-olderthan-514.patch b/pkgs/development/libraries/appstream/fix-build-for-qt-olderthan-514.patch
new file mode 100644
index 00000000000..35db2bec914
--- /dev/null
+++ b/pkgs/development/libraries/appstream/fix-build-for-qt-olderthan-514.patch
@@ -0,0 +1,43 @@
+diff --git a/qt/component.h b/qt/component.h
+index 47abd1f3..74de943c 100644
+--- a/qt/component.h
++++ b/qt/component.h
+@@ -90,7 +90,7 @@ class APPSTREAMQT_EXPORT Component {
+             UrlKindContact,
+ 
+             // deprecated
+-            UrlTranslate   [[deprecated]] = UrlKindTranslate,
++            UrlTranslate    = UrlKindTranslate,
+         };
+         Q_ENUM(UrlKind)
+ 
+diff --git a/qt/pool.h b/qt/pool.h
+index b59829b7..5237f613 100644
+--- a/qt/pool.h
++++ b/qt/pool.h
+@@ -70,9 +70,9 @@ public:
+         FlagMonitor            = 1 << 7,
+ 
+         // deprecated
+-        FlagReadCollection   [[deprecated]] = FlagLoadOsCollection,
+-        FlagReadMetainfo     [[deprecated]] = FlagLoadOsMetainfo,
+-        FlagReadDesktopFiles [[deprecated]] = FlagLoadOsDesktopFiles,
++        FlagReadCollection    = FlagLoadOsCollection,
++        FlagReadMetainfo      = FlagLoadOsMetainfo,
++        FlagReadDesktopFiles  = FlagLoadOsDesktopFiles,
+     };
+ 
+     /**
+@@ -84,9 +84,9 @@ public:
+      * Flags on how caching should be used.
+      **/
+     enum CacheFlags {
+-        CacheFlagNone      [[deprecated]] = 0,
+-        CacheFlagUseUser   [[deprecated]] = 1 << 0,
+-        CacheFlagUseSystem [[deprecated]] = 1 << 1,
++        CacheFlagNone       = 0,
++        CacheFlagUseUser    = 1 << 0,
++        CacheFlagUseSystem  = 1 << 1,
+     };
+ 
+     /**
diff --git a/pkgs/development/libraries/appstream/fix-paths.patch b/pkgs/development/libraries/appstream/fix-paths.patch
index 0da72a78cbc..2f1249daef4 100644
--- a/pkgs/development/libraries/appstream/fix-paths.patch
+++ b/pkgs/development/libraries/appstream/fix-paths.patch
@@ -1,18 +1,21 @@
 diff --git a/data/meson.build b/data/meson.build
-index 1eb3dfb0..623b66ec 100644
+index 53f31cb4..90f40e77 100644
 --- a/data/meson.build
 +++ b/data/meson.build
-@@ -26,4 +26,4 @@ i18n.merge_file (
+@@ -68,7 +68,7 @@ test('as-validate_metainfo.cli',
  )
  
- install_data ('appstream.conf',
--              install_dir: get_option('sysconfdir'))
-+              install_dir: get_option('prefix') / 'etc')
+ install_data('appstream.conf',
+-             install_dir: get_option('sysconfdir'))
++             install_dir: get_option('prefix') / 'etc')
+ 
+ if get_option('compose')
+     ascompose_metainfo = 'org.freedesktop.appstream.compose.metainfo.xml'
 diff --git a/meson.build b/meson.build
-index dc1fb1a5..5ee03b73 100644
+index 2efe86b7..9dc79e28 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -108,12 +108,12 @@ if get_option ('gir')
+@@ -107,12 +107,12 @@ if get_option ('gir')
      dependency('gobject-introspection-1.0', version: '>=1.56')
  endif
  
diff --git a/pkgs/development/libraries/appstream/installed-tests-path.patch b/pkgs/development/libraries/appstream/installed-tests-path.patch
new file mode 100644
index 00000000000..188c1e52589
--- /dev/null
+++ b/pkgs/development/libraries/appstream/installed-tests-path.patch
@@ -0,0 +1,27 @@
+diff --git a/meson_options.txt b/meson_options.txt
+index 8dd8e0c7..e2a30b06 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -44,6 +44,11 @@ option('install-docs',
+        value : true,
+        description : 'Install documentation for API and specification'
+ )
++option('installed_test_prefix',
++       type : 'string',
++       value : '',
++       description : 'Prefix for installed tests'
++)
+ 
+ #
+ # For development
+diff --git a/tests/installed-tests/meson.build b/tests/installed-tests/meson.build
+index 405820ce..f592a753 100644
+--- a/tests/installed-tests/meson.build
++++ b/tests/installed-tests/meson.build
+@@ -10,5 +10,5 @@ configure_file(
+     output : 'metainfo-validate.test',
+     configuration : itconf,
+     install: true,
+-    install_dir: join_paths('share', 'installed-tests', 'appstream'),
++    install_dir: join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', 'appstream'),
+ )
diff --git a/pkgs/development/libraries/appstream/qt.nix b/pkgs/development/libraries/appstream/qt.nix
index 0bcb4741ff1..3704332119e 100644
--- a/pkgs/development/libraries/appstream/qt.nix
+++ b/pkgs/development/libraries/appstream/qt.nix
@@ -1,12 +1,12 @@
-{ mkDerivation, appstream, qtbase, qttools }:
+{ lib, mkDerivation, appstream, qtbase, qttools, nixosTests }:
 
 # TODO: look into using the libraries from the regular appstream derivation as we keep duplicates here
 
 mkDerivation {
   pname = "appstream-qt";
-  inherit (appstream) version src patches;
+  inherit (appstream) version src;
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" "dev" "installedTests" ];
 
   buildInputs = appstream.buildInputs ++ [ appstream qtbase ];
 
@@ -14,11 +14,26 @@ mkDerivation {
 
   mesonFlags = appstream.mesonFlags ++ [ "-Dqt=true" ];
 
+  patches = (appstream.patches or []) ++ lib.optionals (lib.versionOlder qtbase.version "5.14") [
+    # Fix darwin build for libsForQt5.appstream-qt
+    # Old Qt moc doesn't know about fancy C++14 features
+    # ../qt/component.h:93: Parse error at "UrlTranslate"
+    # Remove both this patch and related comment in default.nix
+    # once Qt 5.14 or later becomes default on darwin
+    ./fix-build-for-qt-olderthan-514.patch
+  ];
+
   postFixup = ''
     sed -i "$dev/lib/cmake/AppStreamQt/AppStreamQtConfig.cmake" \
       -e "/INTERFACE_INCLUDE_DIRECTORIES/ s@\''${PACKAGE_PREFIX_DIR}@$dev@"
   '';
 
+  passthru = appstream.passthru // {
+    tests = {
+      installed-tests = nixosTests.installed-tests.appstream-qt;
+    };
+  };
+
   meta = appstream.meta // {
     description = "Software metadata handling library - Qt";
  };
diff --git a/pkgs/development/libraries/libxmlb/default.nix b/pkgs/development/libraries/libxmlb/default.nix
index 85fda8ddc8e..80d6129f18a 100644
--- a/pkgs/development/libraries/libxmlb/default.nix
+++ b/pkgs/development/libraries/libxmlb/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , docbook_xml_dtd_43
 , docbook_xsl
 , glib
@@ -30,6 +31,13 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./installed-tests-path.patch
+    # Fix darwin build, can be removed on next release
+    # `--version-script` isn't supported by the macOS linker
+    # https://github.com/hughsie/libxmlb/pull/119
+    (fetchpatch {
+      url = "https://github.com/hughsie/libxmlb/commit/d83aac5bd78cfbbfa2ecd428ff54b811071dfe4d.patch";
+      sha256 = "sha256-UNRMbyNzdxfTZ8xV6J8a622hPnr3mowooP1q8Dg19yw=";
+    })
   ];
 
   nativeBuildInputs = [
@@ -72,6 +80,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/hughsie/libxmlb";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ jtojnar ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/ocaml-modules/fdkaac/default.nix b/pkgs/development/ocaml-modules/fdkaac/default.nix
index d3915b65935..d794e4acce7 100644
--- a/pkgs/development/ocaml-modules/fdkaac/default.nix
+++ b/pkgs/development/ocaml-modules/fdkaac/default.nix
@@ -21,7 +21,7 @@ buildDunePackage rec {
     description = "OCaml binding for the fdk-aac library";
     inherit (src.meta) homepage;
     license = lib.licenses.gpl2Only;
-    maintainers = [ lib.maintainers.vbgl ];
+    maintainers = [ lib.maintainers.vbgl lib.maintainers.dandellion ];
   };
 
 }
diff --git a/pkgs/development/ocaml-modules/ffmpeg/base.nix b/pkgs/development/ocaml-modules/ffmpeg/base.nix
new file mode 100644
index 00000000000..77a6ef01ac9
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ffmpeg/base.nix
@@ -0,0 +1,21 @@
+{ lib, fetchFromGitHub }:
+
+rec {
+  version = "1.1.0";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-ffmpeg";
+    rev = "v${version}";
+    sha256 = "13rc3d0n963a28my5ahv78r82rh450hvbsc74mb6ld0r9v210r0p";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-ffmpeg";
+    description = "Bindings for the ffmpeg libraries";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ffmpeg/default.nix b/pkgs/development/ocaml-modules/ffmpeg/default.nix
new file mode 100644
index 00000000000..7f0a5da34dd
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ffmpeg/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildDunePackage, fetchFromGitHub, callPackage
+, ffmpeg-base ? callPackage ./base.nix { }
+, ffmpeg-avutil
+, ffmpeg-avcodec
+, ffmpeg-avfilter
+, ffmpeg-swscale
+, ffmpeg-swresample
+, ffmpeg-av
+, ffmpeg-avdevice
+}:
+
+buildDunePackage {
+  pname = "ffmpeg";
+
+  minimalOCamlVersion = "4.08";
+
+  inherit (ffmpeg-base) version src useDune2;
+
+  propagatedBuildInputs = [
+    ffmpeg-avutil
+    ffmpeg-avcodec
+    ffmpeg-avfilter
+    ffmpeg-swscale
+    ffmpeg-swresample
+    ffmpeg-av
+    ffmpeg-avdevice
+  ];
+
+  # The tests fail
+  doCheck = false;
+
+  meta = ffmpeg-base.meta // {
+    description = "Bindings for the ffmpeg libraries";
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix
new file mode 100644
index 00000000000..e8d71aa321e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix
@@ -0,0 +1,22 @@
+{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+, ffmpeg-base ? callPackage ./base.nix { }
+, ffmpeg-avutil, ffmpeg-avcodec, ffmpeg }:
+
+buildDunePackage {
+  pname = "ffmpeg-av";
+
+  minimalOCamlVersion = "4.08";
+
+  inherit (ffmpeg-base) version src useDune2;
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ffmpeg-avutil ffmpeg-avcodec ffmpeg.dev ];
+
+  doCheck = true;
+
+  meta = ffmpeg-base.meta // {
+    description = "Bindings for the ffmpeg libraries -- top-level helpers";
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix
new file mode 100644
index 00000000000..8ee5428c473
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix
@@ -0,0 +1,23 @@
+{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+, ffmpeg-base ? callPackage ./base.nix { }
+, ffmpeg-avutil, ffmpeg
+}:
+
+buildDunePackage {
+  pname = "ffmpeg-avcodec";
+
+  minimalOCamlVersion = "4.08";
+
+  inherit (ffmpeg-base) version src useDune2;
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ffmpeg-avutil ffmpeg.dev ];
+
+  doCheck = true;
+
+  meta = ffmpeg-base.meta // {
+    description = "Bindings for the ffmpeg avcodec library";
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix
new file mode 100644
index 00000000000..e6641a6ca03
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix
@@ -0,0 +1,23 @@
+{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+, ffmpeg-base ? callPackage ./base.nix { }
+, ffmpeg-av, ffmpeg
+}:
+
+buildDunePackage {
+  pname = "ffmpeg-avdevice";
+
+  minimalOCamlVersion = "4.08";
+
+  inherit (ffmpeg-base) version src useDune2;
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ffmpeg-av ffmpeg.dev ];
+
+  doCheck = true;
+
+  meta = ffmpeg-base.meta // {
+    description = "Bindings for the ffmpeg avdevice library";
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix
new file mode 100644
index 00000000000..6479bbe55bf
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix
@@ -0,0 +1,23 @@
+{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+, ffmpeg-base ? callPackage ./base.nix { }
+, ffmpeg-avutil, ffmpeg
+}:
+
+buildDunePackage {
+  pname = "ffmpeg-avfilter";
+
+  minimalOCamlVersion = "4.08";
+
+  inherit (ffmpeg-base) version src useDune2;
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ffmpeg-avutil ffmpeg.dev ];
+
+  doCheck = true;
+
+  meta = ffmpeg-base.meta // {
+    description = "Bindings for the ffmpeg avfilter library";
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix
new file mode 100644
index 00000000000..121fb115146
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix
@@ -0,0 +1,23 @@
+{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+, ffmpeg-base ? callPackage ./base.nix { }
+, ffmpeg
+}:
+
+buildDunePackage {
+  pname = "ffmpeg-avutil";
+
+  minimalOCamlVersion = "4.08";
+
+  inherit (ffmpeg-base) version src useDune2;
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ffmpeg.dev ];
+
+  doCheck = true;
+
+  meta = ffmpeg-base.meta // {
+    description = "Bindings for the ffmpeg avutil libraries";
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix
new file mode 100644
index 00000000000..92011e48eab
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix
@@ -0,0 +1,23 @@
+{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+, ffmpeg-base ? callPackage ./base.nix { }
+, ffmpeg-avutil, ffmpeg-avcodec, ffmpeg
+}:
+
+buildDunePackage {
+  pname = "ffmpeg-swresample";
+
+  minimalOCamlVersion = "4.08";
+
+  inherit (ffmpeg-base) version src useDune2;
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ffmpeg-avutil ffmpeg-avcodec ffmpeg.dev ];
+
+  doCheck = true;
+
+  meta = ffmpeg-base.meta // {
+    description = "Bindings for the ffmpeg swresample library";
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix
new file mode 100644
index 00000000000..9d97b722551
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix
@@ -0,0 +1,22 @@
+{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+, ffmpeg-base ? callPackage ./base.nix { }
+, ffmpeg-avutil, ffmpeg
+}:
+
+buildDunePackage {
+  pname = "ffmpeg-swscale";
+
+  minimalOCamlVersion = "4.08";
+
+  inherit (ffmpeg-base) version src useDune2;
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ffmpeg-avutil ffmpeg.dev ];
+
+  doCheck = true;
+
+  meta = ffmpeg-base.meta // {
+    description = "Bindings for the ffmpeg swscale library";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/flac/default.nix b/pkgs/development/ocaml-modules/flac/default.nix
new file mode 100644
index 00000000000..e08841ac32f
--- /dev/null
+++ b/pkgs/development/ocaml-modules/flac/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, pkg-config, ogg, flac }:
+
+buildDunePackage rec {
+  pname = "flac";
+  version = "0.3.0";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-flac";
+    rev = "v${version}";
+    sha256 = "06gfbrp30sdxigzkix83y1b610ljzik6rrxmbl3ppmpx4dqlwnxa";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ogg flac.dev ];
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-flac";
+    description = "Bindings for flac";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ogg/default.nix b/pkgs/development/ocaml-modules/ogg/default.nix
new file mode 100644
index 00000000000..e1e1df6c2a0
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ogg/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, libogg }:
+
+buildDunePackage rec {
+  pname = "ogg";
+  version = "0.7.1";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-ogg";
+    rev = "v${version}";
+    sha256 = "0z3z0816rxq8wdjw51plzn8lmilic621ilk4x9wpnr0axmnl3wqb";
+  };
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ libogg ];
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-ogg";
+    description = "Bindings to libogg";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/opus/default.nix b/pkgs/development/ocaml-modules/opus/default.nix
new file mode 100644
index 00000000000..30e461b9f9a
--- /dev/null
+++ b/pkgs/development/ocaml-modules/opus/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, pkg-config, ogg, libopus }:
+
+buildDunePackage rec {
+  pname = "opus";
+  version = "0.2.1";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-opus";
+    rev = "v${version}";
+    sha256 = "09mgnprhhs1adqm25c0qjhknswbh6va3jknq06fnp1jszszcjf4s";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ogg libopus.dev ];
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-opus";
+    description = "Bindings to libopus";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/speex/default.nix b/pkgs/development/ocaml-modules/speex/default.nix
new file mode 100644
index 00000000000..1bf5f308ecf
--- /dev/null
+++ b/pkgs/development/ocaml-modules/speex/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, ogg, speex }:
+
+buildDunePackage rec {
+  pname = "speex";
+  version = "0.4.1";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-speex";
+    rev = "v${version}";
+    sha256 = "0p4ip37kihlz9qy604llak2kzd00g45ix1yiihnrri2nm01scfab";
+  };
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ogg speex.dev ];
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-speex";
+    description = "Bindings to libspeex";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ssl/default.nix b/pkgs/development/ocaml-modules/ssl/default.nix
index 1f4fd7b8580..04f181d7598 100644
--- a/pkgs/development/ocaml-modules/ssl/default.nix
+++ b/pkgs/development/ocaml-modules/ssl/default.nix
@@ -24,6 +24,7 @@ buildDunePackage rec {
     maintainers = [
       lib.maintainers.maggesi
       lib.maintainers.anmonteiro
+      lib.maintainers.dandellion
     ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/theora/default.nix b/pkgs/development/ocaml-modules/theora/default.nix
new file mode 100644
index 00000000000..0f7b4aca1c7
--- /dev/null
+++ b/pkgs/development/ocaml-modules/theora/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, ogg, libtheora }:
+
+buildDunePackage rec {
+  pname = "theora";
+  version = "0.4.0";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-theora";
+    rev = "v${version}";
+    sha256 = "1sggjmlrx4idkih1ddfk98cgpasq60haj4ykyqbfs22cmii5gpal";
+  };
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ogg libtheora ];
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-theora";
+    description = "Bindings to libtheora";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/vorbis/default.nix b/pkgs/development/ocaml-modules/vorbis/default.nix
new file mode 100644
index 00000000000..f33182e5fc1
--- /dev/null
+++ b/pkgs/development/ocaml-modules/vorbis/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, ogg, libvorbis }:
+
+buildDunePackage rec {
+  pname = "vorbis";
+  version = "0.8.0";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-vorbis";
+    rev = "v${version}";
+    sha256 = "1acy7yvf2y5dggzxw4vmrpdipakr98si3pw5kxw0mh7livn08al8";
+  };
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ ogg libvorbis ];
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-vorbis";
+    description = "Bindings to libvorbis";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/python-modules/emoji/default.nix b/pkgs/development/python-modules/emoji/default.nix
index 76579e4dd89..84a709ac539 100644
--- a/pkgs/development/python-modules/emoji/default.nix
+++ b/pkgs/development/python-modules/emoji/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "emoji";
-  version = "1.6.3";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "carpedm20";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0QOtsHGhqbjaEDpSbUXdE8+u6xzWbrTexx+BAeYwKa8=";
+    sha256 = "sha256-vKQ51RP7uy57vP3dOnHZRSp/Wz+YDzeLUR8JnIELE/I=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
index 4e52f5f3fd4..73c09e61c7c 100644
--- a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
+++ b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-texttospeech";
-  version = "2.10.1";
+  version = "2.10.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-5uFtHqZJgouUBgkGNqSBFQrWaU2Gm06icDjKx57HY94=";
+    sha256 = "sha256-EykIDxoO8ePp4hLtINTz/RahfS4KU7GhwS4gkMBA32w=";
   };
 
   propagatedBuildInputs = [ libcst google-api-core proto-plus ];
diff --git a/pkgs/development/python-modules/plaid-python/default.nix b/pkgs/development/python-modules/plaid-python/default.nix
index 16bcd15a1b1..83c697aa7c8 100644
--- a/pkgs/development/python-modules/plaid-python/default.nix
+++ b/pkgs/development/python-modules/plaid-python/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "plaid-python";
-  version = "9.0.0";
+  version = "9.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jZRfJVBSUOrfaPx8yGCwigfDghUgO0dK8aUKrOf9G1E=";
+    hash = "sha256-jvg/2dL+W4N7rbbBcIUZUrSt0BCV15k4QgYST2lEA5U=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyprecice/default.nix b/pkgs/development/python-modules/pyprecice/default.nix
index 9f2c457bc75..7c278d6e1be 100644
--- a/pkgs/development/python-modules/pyprecice/default.nix
+++ b/pkgs/development/python-modules/pyprecice/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ numpy mpi4py precice ];
 
   doCheck = false; # Disable Test because everything depends on open mpi which requires network.
-  pythonImportChecks = [ "precice" ];
+  # Do not use pythonImportsCheck because this will also initialize mpi which requires a network interface
 
   meta = with lib; {
     description = "Python language bindings for preCICE";
diff --git a/pkgs/development/tools/misc/editorconfig-core-c/default.nix b/pkgs/development/tools/misc/editorconfig-core-c/default.nix
index eb2e124a35e..893a1925dd7 100644
--- a/pkgs/development/tools/misc/editorconfig-core-c/default.nix
+++ b/pkgs/development/tools/misc/editorconfig-core-c/default.nix
@@ -1,13 +1,14 @@
-{ lib, stdenv, fetchgit, cmake, pcre, doxygen }:
+{ lib, stdenv, fetchFromGitHub, cmake, pcre, doxygen }:
 
 stdenv.mkDerivation rec {
   pname = "editorconfig-core-c";
   version = "0.12.1";
 
-  src = fetchgit {
-    url = "https://github.com/editorconfig/editorconfig-core-c.git";
+  src = fetchFromGitHub {
+    owner = "editorconfig";
+    repo = "editorconfig-core-c";
     rev = "v${version}";
-    sha256 = "0awpb63ci85kal3pnlj2b54bay8igj1rbc13d8gqkvidlb51nnx4";
+    sha256 = "sha256-pFsbyqIt7okfaiOwlYN8EXm1SFlCUnsHVbOgyIZZlys=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/games/ufoai/default.nix b/pkgs/games/ufoai/default.nix
index 89f8f5ec91b..1dc2abbf762 100644
--- a/pkgs/games/ufoai/default.nix
+++ b/pkgs/games/ufoai/default.nix
@@ -24,7 +24,13 @@ stdenv.mkDerivation rec {
     curl libjpeg libpng gettext cunit
   ];
 
-  NIX_CFLAGS_LINK = "-lgcc_s"; # to avoid occasional runtime error in finding libgcc_s.so.1
+  NIX_CFLAGS_LINK = [
+    # to avoid occasional runtime error in finding libgcc_s.so.1
+    "-lgcc_s"
+    # tests are underlinked against libm:
+    # ld: release-linux-x86_64/testall/client/sound/s_mix.c.o: undefined reference to symbol 'acos@@GLIBC_2.2.5'
+    "-lm"
+  ];
 
   meta = {
     homepage = "http://ufoai.org";
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index 5d7a344088e..19dd0dc1cb0 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -139,6 +139,12 @@ in {
     filesToInstall = ["u-boot-sunxi-with-spl.bin"];
   };
 
+  ubootA20OlinuxinoLime2EMMC = buildUBoot {
+    defconfig = "A20-OLinuXino-Lime2-eMMC_defconfig";
+    extraMeta.platforms = ["armv7l-linux"];
+    filesToInstall = ["u-boot-sunxi-with-spl.bin"];
+  };
+
   ubootAmx335xEVM = buildUBoot {
     defconfig = "am335x_evm_defconfig";
     extraMeta.platforms = ["armv7l-linux"];
diff --git a/pkgs/servers/mapcache/default.nix b/pkgs/servers/mapcache/default.nix
index ff502d20328..744a529496d 100644
--- a/pkgs/servers/mapcache/default.nix
+++ b/pkgs/servers/mapcache/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mapcache";
-  version = "1.10.0";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "MapServer";
     repo = pname;
     rev = "rel-${lib.replaceStrings [ "." ] [ "-" ] version}";
-    sha256 = "sha256-HrvcJAf0a6tu8AKKuW5TaCtqPMgzH21fGMBxIfUzdgY=";
+    sha256 = "sha256-13lOQC4PJtByhvceuF00uoipLFHrFiyJrsy2iWcEANc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/shells/zsh/grml-zsh-config/default.nix b/pkgs/shells/zsh/grml-zsh-config/default.nix
index 07d72a6b436..538fbc0a522 100644
--- a/pkgs/shells/zsh/grml-zsh-config/default.nix
+++ b/pkgs/shells/zsh/grml-zsh-config/default.nix
@@ -5,13 +5,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "grml-zsh-config";
-  version = "0.19.0";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "grml";
     repo = "grml-etc-core";
     rev = "v${version}";
-    sha256 = "sha256-Vn8NzpvJ1W/+UUuhr1plLqskVBUOFJHvy+hxKE3DmIs=";
+    sha256 = "sha256-GEuBYN6HVAjiAbusVuEA7zBG9fIVZHLV628Jt6Cv5cM=";
   };
 
   buildInputs = [ zsh coreutils txt2tags procps ]
diff --git a/pkgs/tools/misc/nncp/default.nix b/pkgs/tools/misc/nncp/default.nix
index b80c16ddaec..3fda2a6cdad 100644
--- a/pkgs/tools/misc/nncp/default.nix
+++ b/pkgs/tools/misc/nncp/default.nix
@@ -3,12 +3,12 @@
 
 stdenv.mkDerivation rec {
   pname = "nncp";
-  version = "8.7.0";
+  version = "8.7.1";
   outputs = [ "out" "doc" "info" ];
 
   src = fetchurl {
     url = "http://www.nncpgo.org/download/${pname}-${version}.tar.xz";
-    sha256 = "sha256-7UiP/X2IAovdZDhr7ErZEW99oIgfseYoST0vK7vR6Gg=";
+    hash = "sha256-zrTRl69ajZ6Tt0nVwPULU+Z0ajGK9Hs2S/XLMj1sTr0=";
   };
 
   nativeBuildInputs = [ go redo-apenwarr ];
diff --git a/pkgs/tools/misc/sanctity/default.nix b/pkgs/tools/misc/sanctity/default.nix
new file mode 100644
index 00000000000..c0e85340c85
--- /dev/null
+++ b/pkgs/tools/misc/sanctity/default.nix
@@ -0,0 +1,23 @@
+{ lib, rustPlatform, fetchFromGitea }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "sanctity";
+  version = "1.2.1";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "papojari";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-rK4em0maJQS50zPfnuFSxRoXUuFCaw9ZOfmgf70Sdac=";
+  };
+
+  cargoSha256 = "sha256-IQp/sSVgKY1j6N+UcifEi74dg/PkZJoeqLekeLc/vMU=";
+
+  meta = with lib; {
+    description = "Test the 16 terminal colors in all combinations";
+    homepage = "https://codeberg.org/papojari/sanctity";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ papojari ];
+  };
+}
diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix
index 67cd874d6fd..f3ea9f677c0 100644
--- a/pkgs/tools/networking/networkmanager/default.nix
+++ b/pkgs/tools/networking/networkmanager/default.nix
@@ -54,11 +54,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "networkmanager";
-  version = "1.34.0";
+  version = "1.36.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/${lib.versions.majorMinor version}/NetworkManager-${version}.tar.xz";
-    sha256 = "sha256-gZeV0ImQdiBPVnJCGljxsdnjk1Nu6Hu4RLkR5iQ78L0=";
+    sha256 = "1aqc8z8zv1sds439ilihwqczwg9iqzki0f007fd2x0s17fz5r1db";
   };
 
   outputs = [ "out" "dev" "devdoc" "man" "doc" ];
diff --git a/pkgs/tools/networking/networkmanager/fix-paths.patch b/pkgs/tools/networking/networkmanager/fix-paths.patch
index 8c7c4b2fa4d..75d2b7c7541 100644
--- a/pkgs/tools/networking/networkmanager/fix-paths.patch
+++ b/pkgs/tools/networking/networkmanager/fix-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/data/84-nm-drivers.rules b/data/84-nm-drivers.rules
-index e398cb9f2f..a43d61864f 100644
+index 148acade5c..6395fbfbe5 100644
 --- a/data/84-nm-drivers.rules
 +++ b/data/84-nm-drivers.rules
-@@ -7,6 +7,6 @@ ACTION!="add|change", GOTO="nm_drivers_end"
+@@ -7,6 +7,6 @@ ACTION!="add|change|move", GOTO="nm_drivers_end"
  # Determine ID_NET_DRIVER if there's no ID_NET_DRIVER or DRIVERS (old udev?)
  ENV{ID_NET_DRIVER}=="?*", GOTO="nm_drivers_end"
  DRIVERS=="?*", GOTO="nm_drivers_end"
@@ -24,19 +24,19 @@ index e23b3a5282..c7246a3b61 100644
  ExecStart=@sbindir@/NetworkManager --no-daemon
  Restart=on-failure
 diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c
-index 21863b9533..c9b709659d 100644
+index a11486d54b..de8e9022c6 100644
 --- a/src/core/devices/nm-device.c
 +++ b/src/core/devices/nm-device.c
-@@ -13994,14 +13994,14 @@ nm_device_start_ip_check(NMDevice *self)
-             gw = nm_ip4_config_best_default_route_get(priv->ip_config_4);
+@@ -13571,14 +13571,14 @@ nm_device_start_ip_check(NMDevice *self)
+             gw = nm_l3_config_data_get_best_default_route(l3cd, AF_INET);
              if (gw) {
                  _nm_utils_inet4_ntop(NMP_OBJECT_CAST_IP4_ROUTE(gw)->gateway, buf);
 -                ping_binary = nm_utils_find_helper("ping", "/usr/bin/ping", NULL);
 +                ping_binary = "@iputils@/bin/ping";
                  log_domain  = LOGD_IP4;
              }
-         } else if (priv->ip_config_6 && priv->ip_state_6 == NM_DEVICE_IP_STATE_DONE) {
-             gw = nm_ip6_config_best_default_route_get(priv->ip_config_6);
+         } else if (priv->ip_data_6.state == NM_DEVICE_IP_STATE_READY) {
+             gw = nm_l3_config_data_get_best_default_route(l3cd, AF_INET6);
              if (gw) {
                  _nm_utils_inet6_ntop(&NMP_OBJECT_CAST_IP6_ROUTE(gw)->gateway, buf);
 -                ping_binary = nm_utils_find_helper("ping6", "/usr/bin/ping6", NULL);
@@ -65,10 +65,10 @@ index 21a01e0b04..091c98428f 100644
        '--lib-path', meson.current_build_dir(),
        '--gir', '@INPUT@',
 diff --git a/src/libnm-platform/nm-platform-utils.c b/src/libnm-platform/nm-platform-utils.c
-index 6435dcc482..214d01194e 100644
+index 9ad030df76..8d800fb1c0 100644
 --- a/src/libnm-platform/nm-platform-utils.c
 +++ b/src/libnm-platform/nm-platform-utils.c
-@@ -2097,7 +2097,7 @@ nmp_utils_modprobe(GError **error, gboolean suppress_error_logging, const char *
+@@ -2207,7 +2207,7 @@ nmp_utils_modprobe(GError **error, gboolean suppress_error_logging, const char *
  
      /* construct the argument list */
      argv = g_ptr_array_sized_new(4);
@@ -78,13 +78,13 @@ index 6435dcc482..214d01194e 100644
      g_ptr_array_add(argv, (char *) arg1);
  
 diff --git a/src/libnmc-base/nm-vpn-helpers.c b/src/libnmc-base/nm-vpn-helpers.c
-index 72691e34c2..95495b6585 100644
+index e2c0c394bd..1a507aa0d4 100644
 --- a/src/libnmc-base/nm-vpn-helpers.c
 +++ b/src/libnmc-base/nm-vpn-helpers.c
 @@ -198,25 +198,8 @@ nm_vpn_openconnect_authenticate_helper(const char *host,
      gs_free const char **output_v = NULL;
-     const char *const *  iter;
-     const char *         path;
+     const char *const   *iter;
+     const char          *path;
 -    const char *const    DEFAULT_PATHS[] = {
 -        "/sbin/",
 -        "/usr/sbin/",
diff --git a/pkgs/tools/networking/snet/default.nix b/pkgs/tools/networking/snet/default.nix
new file mode 100644
index 00000000000..f458521468c
--- /dev/null
+++ b/pkgs/tools/networking/snet/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "snet";
+  version = "unstable-2021-11-26";
+
+  src = fetchFromGitHub {
+    owner = "monsterxx03";
+    repo = "snet";
+    rev = "89089b55277ce3e21e2ed79a9d307f2ecc62c6db";
+    sha256 = "sha256-lTbygQRABv+Dp4i7nDgXYqi4pwU2rtLNfpgtBgsq+7Y=";
+  };
+
+  vendorSha256 = "sha256-dubmCLeD8Fwe1msfLN+5WzdbFkfTRnZDU3F49gjWTS4=";
+
+  meta = with lib; {
+    description = "Transparent proxy works on linux desktop, MacOS, router";
+    homepage = "https://github.com/monsterxx03/snet";
+    license = licenses.mit;
+    maintainers = with maintainers; [ azuwis ];
+  };
+}
diff --git a/pkgs/tools/text/colordiff/default.nix b/pkgs/tools/text/colordiff/default.nix
index 9d56e2e4c19..a7e8293851b 100644
--- a/pkgs/tools/text/colordiff/default.nix
+++ b/pkgs/tools/text/colordiff/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, docbook_xml_dtd_412, docbook_xsl, perl, w3m, xmlto }:
+{ lib, stdenv, fetchFromGitHub, docbook_xml_dtd_412, docbook_xsl, perl, w3m, xmlto, diffutils }:
 
 stdenv.mkDerivation rec {
   pname = "colordiff";
@@ -18,6 +18,9 @@ stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace Makefile \
       --replace 'TMPDIR=colordiff-''${VERSION}' ""
+
+    substituteInPlace colordiff.pl \
+      --replace '= "diff";' '= "${diffutils}/bin/diff";'
   '';
 
   installFlags = [
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 49e981c20e6..540c1fadc70 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9660,6 +9660,8 @@ with pkgs;
 
   samplicator = callPackage ../tools/networking/samplicator { };
 
+  sanctity = callPackage ../tools/misc/sanctity { };
+
   sandboxfs = callPackage ../tools/filesystems/sandboxfs { };
 
   sasquatch = callPackage ../tools/filesystems/sasquatch { };
@@ -9927,6 +9929,8 @@ with pkgs;
 
   snapdragon-profiler = callPackage ../tools/graphics/snapdragon-profiler { };
 
+  snet = callPackage ../tools/networking/snet { };
+
   sng = callPackage ../tools/graphics/sng {
     libpng = libpng12;
   };
@@ -23296,6 +23300,7 @@ with pkgs;
     buildUBoot
     ubootTools
     ubootA20OlinuxinoLime
+    ubootA20OlinuxinoLime2EMMC
     ubootBananaPi
     ubootBananaPim3
     ubootBananaPim64
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index bf8a055e1a3..b75cb56feac 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -390,6 +390,29 @@ let
     ff-pbt = callPackage ../development/ocaml-modules/ff/pbt.nix { };
     ff-sig = callPackage ../development/ocaml-modules/ff/sig.nix { };
 
+    ffmpeg = callPackage ../development/ocaml-modules/ffmpeg { };
+    ffmpeg-avutil = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix {
+      inherit (pkgs) ffmpeg;
+    };
+    ffmpeg-avcodec = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix {
+      inherit (pkgs) ffmpeg;
+    };
+    ffmpeg-avfilter = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix {
+      inherit (pkgs) ffmpeg;
+    };
+    ffmpeg-swscale = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix {
+      inherit (pkgs) ffmpeg;
+    };
+    ffmpeg-swresample = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix {
+      inherit (pkgs) ffmpeg;
+    };
+    ffmpeg-av = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-av.nix {
+      inherit (pkgs) ffmpeg;
+    };
+    ffmpeg-avdevice = callPackage ../development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix {
+      inherit (pkgs) ffmpeg;
+    };
+
     fiat-p256 = callPackage ../development/ocaml-modules/fiat-p256 { };
 
     fileutils = callPackage ../development/ocaml-modules/fileutils { };
@@ -398,6 +421,10 @@ let
 
     fix = callPackage ../development/ocaml-modules/fix { };
 
+    flac = callPackage ../development/ocaml-modules/flac {
+      inherit (pkgs) flac;
+    };
+
     fmt = callPackage ../development/ocaml-modules/fmt { };
 
     fontconfig = callPackage ../development/ocaml-modules/fontconfig {
@@ -1001,6 +1028,8 @@ let
 
     optint = callPackage ../development/ocaml-modules/optint { };
 
+    opus = callPackage ../development/ocaml-modules/opus { };
+
     otfm = callPackage ../development/ocaml-modules/otfm { };
 
     otoml = callPackage ../development/ocaml-modules/otoml { };
@@ -1085,6 +1114,10 @@ let
 
     spacetime_lib = callPackage ../development/ocaml-modules/spacetime_lib { };
 
+    speex = callPackage ../development/ocaml-modules/speex {
+      inherit (pkgs) speex;
+    };
+
     tar-unix = callPackage ../development/ocaml-modules/tar/unix.nix { };
 
     tar = callPackage ../development/ocaml-modules/tar { };
@@ -1133,6 +1166,8 @@ let
 
     ocurl = callPackage ../development/ocaml-modules/ocurl { };
 
+    ogg = callPackage ../development/ocaml-modules/ogg { };
+
     parany = callPackage ../development/ocaml-modules/parany { };
 
     pipebang = callPackage ../development/ocaml-modules/pipebang { };
@@ -1349,6 +1384,8 @@ let
     tezos-version = callPackage ../development/ocaml-modules/tezos/version.nix { };
     tezos-workers = callPackage ../development/ocaml-modules/tezos/workers.nix { };
 
+    theora = callPackage ../development/ocaml-modules/theora { };
+
     toml = callPackage ../development/ocaml-modules/toml { };
 
     topkg = callPackage ../development/ocaml-modules/topkg { };
@@ -1394,6 +1431,8 @@ let
 
     vlq = callPackage ../development/ocaml-modules/vlq { };
 
+    vorbis = callPackage ../development/ocaml-modules/vorbis { };
+
     visitors = callPackage ../development/ocaml-modules/visitors { };
 
     wasm = callPackage ../development/ocaml-modules/wasm { };