Repository: NixOS/nixpkgs
Pull request #395063: gupnp-igd: 1.2.0 → 1.6.0; gupnp-igd: refactor; libnice: refactor and switch to gupnp-igd_1_6
Author: login: nyabinary
Labels: name: 10.rebuild-linux: 501+
description: This PR causes many rebuilds on Linux and should normally target the staging branches.
name: 10.rebuild-darwin: 1-10
description: This PR causes between 1 and 10 packages to rebuild on Darwin.
name: 10.rebuild-linux: 2501-5000
description: This PR causes many rebuilds on Linux and should target the staging branches.
Created: 2025-04-01T03:21:11Z | Merged: 2025-04-15T07:59:36Z

<!--
^ Please summarise the changes you have done and explain why they are necessary here ^

For package updates please link to a changelog or describe changes, this helps your fellow maintainers discover breaking updates.
For new packages please briefly describe the package or provide a link to its homepage.
-->
gupnp-igd: refactor and update to 1.6.0
libnice: refactor and add patch for gupnp-igd 1.6.0
Needed for #383092 and #265771

## Things done

<!-- Please check what applies. Note that these are not hard requirements but merely serve as information for reviewers. -->

- Built on platform(s)
  - [x] x86_64-linux
  - [ ] aarch64-linux
  - [ ] x86_64-darwin
  - [ ] aarch64-darwin
- For non-Linux: Is sandboxing enabled in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/command-ref/conf-file.html))
  - [ ] `sandbox = relaxed`
  - [ ] `sandbox = true`
- [ ] Tested, as applicable:
  - [NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
  - and/or [package tests](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-tests)
  - or, for functions and "core" functionality, tests in [lib/tests](https://github.com/NixOS/nixpkgs/blob/master/lib/tests) or [pkgs/test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/test)
  - made sure NixOS tests are [linked](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#linking-nixos-module-tests-to-a-package) to the relevant packages
- [ ] Tested compilation of all packages that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"`. Note: all changes have to be committed, also see [nixpkgs-review usage](https://github.com/Mic92/nixpkgs-review#usage)
- [ ] Tested basic functionality of all binary files (usually in `./result/bin/`)
- [25.05 Release Notes](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2505.section.md) (or backporting [24.11](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2411.section.md) and [25.05](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2505.section.md) Release notes)
  - [ ] (Package updates) Added a release notes entry if the change is major or breaking
  - [ ] (Module updates) Added a release notes entry if the change is significant
  - [ ] (Module addition) Added a release notes entry if adding a new NixOS module
- [x] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).

<!--
To help with the large amounts of pull requests, we would appreciate your
reviews of other pull requests, especially simple package updates. Just leave a
comment describing what you have tested in the relevant package/service.
Reviewing helps to reduce the average time-to-merge for everyone.
Thanks a lot if you do!

List of open PRs: https://github.com/NixOS/nixpkgs/pulls
Reviewing guidelines: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#reviewing-contributions
-->

---

Add a :+1: [reaction] to [pull requests you find important].

[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[pull requests you find important]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+sort%3Areactions-%2B1-desc



Diff:
diff --git a/pkgs/by-name/gu/gupnp-igd/package.nix b/pkgs/by-name/gu/gupnp-igd/package.nix
index 7d26c68a68bc9..245f9bbcb4d92 100644
--- a/pkgs/by-name/gu/gupnp-igd/package.nix
+++ b/pkgs/by-name/gu/gupnp-igd/package.nix
@@ -11,13 +11,13 @@
   docbook_xsl,
   docbook_xml_dtd_412,
   glib,
-  gupnp,
+  gupnp_1_6,
   gnome,
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gupnp-igd";
-  version = "1.2.0";
+  version = "1.6.0";
 
   outputs = [
     "out"
@@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-S1EgCYqhPt0ngYup7k1/6WG/VAv1DQVv9wPGFUXgK+E=";
+    url = "mirror://gnome/sources/gupnp-igd/${lib.versions.majorMinor finalAttrs.version}/gupnp-igd-${finalAttrs.version}.tar.xz";
+    hash = "sha256-QJmXgzmrIhJtSWjyozK20JT8RMeHl4YHgfH8LxF3G3Q=";
   };
 
   depsBuildBuild = [
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [
     glib
-    gupnp
+    gupnp_1_6
   ];
 
   mesonFlags = [
@@ -56,20 +56,19 @@ stdenv.mkDerivation rec {
 
   # Seems to get stuck sometimes.
   # https://github.com/NixOS/nixpkgs/issues/119288
-  #doCheck = true;
+  # doCheck = true;
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "gupnp-igd";
       versionPolicy = "odd-unstable";
-      freeze = true;
     };
   };
 
-  meta = with lib; {
+  meta = {
     description = "Library to handle UPnP IGD port mapping";
     homepage = "http://www.gupnp.org/";
-    license = licenses.lgpl21Plus;
-    platforms = platforms.unix;
+    license = lib.licenses.lgpl21Plus;
+    platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/pkgs/by-name/li/libnice/gupnp-igd-bump.patch b/pkgs/by-name/li/libnice/gupnp-igd-bump.patch
new file mode 100644
index 0000000000000..90a8f618968bd
--- /dev/null
+++ b/pkgs/by-name/li/libnice/gupnp-igd-bump.patch
@@ -0,0 +1,33 @@
+From 7255d6376fad2c88eaadf1278ee8947181230866 Mon Sep 17 00:00:00 2001
+From: Your Name <you@example.com>
+Date: Sun, 16 Apr 2023 19:52:38 +0000
+Subject: [PATCH] Update for gupnp-igd-1.6
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+New gupnp-igd has been released.
+No significant changed in API so pkgconfig dependency can be simple
+bumped.
+
+Signed-off-by: Tomasz Kłoczko <kloczek@github.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 6a733b73..c42fa138 100644
+--- a/meson.build
++++ b/meson.build
+@@ -285,7 +285,7 @@ gst_dep = dependency('gstreamer-base-1.0', version: gst_req,
+ cdata.set('HAVE_GSTREAMER', gst_dep.found(), description: 'Build GStreamer plugin')
+ 
+ # GUPnP IGD
+-gupnp_igd_dep = dependency('gupnp-igd-1.0', version: gupnp_igd_req, required: get_option('gupnp'))
++gupnp_igd_dep = dependency('gupnp-igd-1.6', version: gupnp_igd_req, required: get_option('gupnp'))
+ cdata.set('HAVE_GUPNP', gupnp_igd_dep.found(), description: 'Use the GUPnP IGD library')
+ 
+ libm = cc.find_library('m', required: false)
+-- 
+GitLab
+
diff --git a/pkgs/by-name/li/libnice/package.nix b/pkgs/by-name/li/libnice/package.nix
index 7cc8166bf6d79..cdb839c464b03 100644
--- a/pkgs/by-name/li/libnice/package.nix
+++ b/pkgs/by-name/li/libnice/package.nix
@@ -2,7 +2,6 @@
   lib,
   stdenv,
   fetchurl,
-  fetchpatch,
   meson,
   ninja,
   pkg-config,
@@ -18,7 +17,7 @@
   graphviz,
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libnice";
   version = "0.1.22";
 
@@ -29,18 +28,14 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
 
   src = fetchurl {
-    url = "https://libnice.freedesktop.org/releases/${pname}-${version}.tar.gz";
+    url = "https://libnice.freedesktop.org/releases/libnice-${finalAttrs.version}.tar.gz";
     hash = "sha256-pfckzwnq5QxBp1FxQdidpKYeyerKMtpKAHP67VQXrX4=";
   };
 
   patches = [
-    # Fix generating data
-    # Note: upstream is not willing to merge our fix
-    # https://gitlab.freedesktop.org/libnice/libnice/merge_requests/35#note_98871
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libnice/libnice/commit/d470c4bf4f2449f7842df26ca1ce1efb63452bc6.patch";
-      sha256 = "0z74vizf92flfw1m83p7yz824vfykmnm0xbnk748bnnyq186i6mg";
-    })
+    # Bumps the gupnp_igd_dep version requested to 1.6
+    # https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/255
+    ./gupnp-igd-bump.patch
   ];
 
   nativeBuildInputs = [
@@ -78,7 +73,7 @@ stdenv.mkDerivation rec {
   # see https://github.com/NixOS/nixpkgs/pull/53293#issuecomment-453739295
   doCheck = false;
 
-  meta = with lib; {
+  meta = {
     description = "GLib ICE implementation";
     longDescription = ''
       Libnice is an implementation of the IETF's Interactice Connectivity
@@ -88,10 +83,10 @@ stdenv.mkDerivation rec {
       It provides a GLib-based library, libnice and a Glib-free library,
       libstun as well as GStreamer elements.'';
     homepage = "https://libnice.freedesktop.org/";
-    platforms = platforms.unix;
-    license = with licenses; [
+    platforms = lib.platforms.unix;
+    license = with lib.licenses; [
       lgpl21
       mpl11
     ];
   };
-}
+})


Reviews:
user: login: jtojnar
body: Care needs to be taken. `gupnp` pulls in `libsoup_2_4`, while `gupnp_1_6` pulls in `libsoup_3` so this PR “changes allegiance” of `libnice`. If a package transitively depending on `libnice` still somehow pulls in `libsoup_2`, it will likely crash at runtime as symbols from `libsoup_2` will clash with the ones from `libsoup_3`.

- At least `farstream` depends on both `libnice` and `gupnp-igd`.
- Telepathy stuff will almost certainly be broken as well, and there are some dependents in KDE, IIRC. Though Telepathy is basically unmaintained nowadays and can probably be removed.
state: CHANGES_REQUESTED
author_association: MEMBER
submitted_at: 2025-04-01T17:23:12Z
user: login: jtojnar
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-01T17:26:01Z
user: login: nyabinary
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T18:24:58Z
user: login: nyabinary
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T18:25:23Z
user: login: jtojnar
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-01T18:34:11Z
user: login: nyabinary
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T18:36:20Z
user: login: jtojnar
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-01T18:39:20Z
user: login: nyabinary
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T18:49:47Z
user: login: jtojnar
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-01T18:55:26Z
user: login: nyabinary
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T19:04:31Z
user: login: jtojnar
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-13T19:19:42Z
user: login: nyabinary
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-13T19:31:50Z
user: login: LordGrimmauld
body: Approved automatically following the successful run of `nixpkgs-review`.
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-15T07:40:21Z

Review comments:
diff_hunk: @@ -39,7 +39,13 @@ stdenv.mkDerivation rec {
     # https://gitlab.freedesktop.org/libnice/libnice/merge_requests/35#note_98871
     (fetchpatch {
       url = "https://gitlab.freedesktop.org/libnice/libnice/commit/d470c4bf4f2449f7842df26ca1ce1efb63452bc6.patch";
-      sha256 = "0z74vizf92flfw1m83p7yz824vfykmnm0xbnk748bnnyq186i6mg";
+      hash = "sha256-r5poUMDe2oXImXZ1UG2d3m0i0PfnDlQDd9SJ5H7c5Hw=";
+    })
+    # Bumps the gupnp_igd_dep version requested to 1.6
+    # https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/255
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/libnice/libnice/commit/7255d6376fad2c88eaadf1278ee8947181230866.patch";
path: pkgs/by-name/li/libnice/package.nix
user: login: jtojnar
body: Not sure if unmerged patches are guaranteed to persist on GitLab (e.g. if the author decides to force push), it might be safer to pull the patch in-tree.
created_at: 2025-04-01T17:26:01Z
author_association: MEMBER
diff_hunk: @@ -39,7 +39,13 @@ stdenv.mkDerivation rec {
     # https://gitlab.freedesktop.org/libnice/libnice/merge_requests/35#note_98871
     (fetchpatch {
       url = "https://gitlab.freedesktop.org/libnice/libnice/commit/d470c4bf4f2449f7842df26ca1ce1efb63452bc6.patch";
-      sha256 = "0z74vizf92flfw1m83p7yz824vfykmnm0xbnk748bnnyq186i6mg";
+      hash = "sha256-r5poUMDe2oXImXZ1UG2d3m0i0PfnDlQDd9SJ5H7c5Hw=";
+    })
+    # Bumps the gupnp_igd_dep version requested to 1.6
+    # https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/255
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/libnice/libnice/commit/7255d6376fad2c88eaadf1278ee8947181230866.patch";
path: pkgs/by-name/li/libnice/package.nix
user: login: nyabinary
body: Done but now failing with this:
```nix
error:
       … while calling the 'abort' builtin
         at /nix/store/9qd2bi98nh9yd4axm9zr16zln01w62q3-source/lib/customisation.nix:312:7:
          311|     else
          312|       abort "lib.customisation.callPackageWith: ${error}";
             |       ^
          313|

       error: evaluation aborted with the following error message: 'lib.customisation.callPackageWith: Function called without required argument "gupnp-igd_1_6" at /home/binary/.github/nixpkgs/pkgs/by-name/li/libnice/package.nix:14'
```

created_at: 2025-04-01T18:24:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -39,7 +39,13 @@ stdenv.mkDerivation rec {
     # https://gitlab.freedesktop.org/libnice/libnice/merge_requests/35#note_98871
     (fetchpatch {
       url = "https://gitlab.freedesktop.org/libnice/libnice/commit/d470c4bf4f2449f7842df26ca1ce1efb63452bc6.patch";
-      sha256 = "0z74vizf92flfw1m83p7yz824vfykmnm0xbnk748bnnyq186i6mg";
+      hash = "sha256-r5poUMDe2oXImXZ1UG2d3m0i0PfnDlQDd9SJ5H7c5Hw=";
+    })
+    # Bumps the gupnp_igd_dep version requested to 1.6
+    # https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/255
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/libnice/libnice/commit/7255d6376fad2c88eaadf1278ee8947181230866.patch";
path: pkgs/by-name/li/libnice/package.nix
user: login: nyabinary
body: Seems to be a staging issue? Fails with fetchpatch too :P 
created_at: 2025-04-01T18:25:23Z
author_association: CONTRIBUTOR
diff_hunk: @@ -29,18 +28,18 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
 
   src = fetchurl {
-    url = "https://libnice.freedesktop.org/releases/${pname}-${version}.tar.gz";
+    url = "https://libnice.freedesktop.org/releases/libnice-${finalAttrs.version}.tar.gz";
     hash = "sha256-pfckzwnq5QxBp1FxQdidpKYeyerKMtpKAHP67VQXrX4=";
   };
 
   patches = [
     # Fix generating data
     # Note: upstream is not willing to merge our fix
     # https://gitlab.freedesktop.org/libnice/libnice/merge_requests/35#note_98871
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libnice/libnice/commit/d470c4bf4f2449f7842df26ca1ce1efb63452bc6.patch";
-      sha256 = "0z74vizf92flfw1m83p7yz824vfykmnm0xbnk748bnnyq186i6mg";
-    })
+    ./meson-fixes-for-nix.patch
path: pkgs/by-name/li/libnice/package.nix
user: login: jtojnar
body: Oops, looks like I was fetching unmerged patch as well. Thankfully, it is not needed nowadays thanks to improvements in Meson.
created_at: 2025-04-01T18:34:11Z
author_association: MEMBER
diff_hunk: @@ -29,18 +28,18 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
 
   src = fetchurl {
-    url = "https://libnice.freedesktop.org/releases/${pname}-${version}.tar.gz";
+    url = "https://libnice.freedesktop.org/releases/libnice-${finalAttrs.version}.tar.gz";
     hash = "sha256-pfckzwnq5QxBp1FxQdidpKYeyerKMtpKAHP67VQXrX4=";
   };
 
   patches = [
     # Fix generating data
     # Note: upstream is not willing to merge our fix
     # https://gitlab.freedesktop.org/libnice/libnice/merge_requests/35#note_98871
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libnice/libnice/commit/d470c4bf4f2449f7842df26ca1ce1efb63452bc6.patch";
-      sha256 = "0z74vizf92flfw1m83p7yz824vfykmnm0xbnk748bnnyq186i6mg";
-    })
+    ./meson-fixes-for-nix.patch
path: pkgs/by-name/li/libnice/package.nix
user: login: nyabinary
body: Oh, so the meson fixes patch is not necessary anymore?
created_at: 2025-04-01T18:36:20Z
author_association: CONTRIBUTOR
diff_hunk: @@ -29,18 +28,18 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
 
   src = fetchurl {
-    url = "https://libnice.freedesktop.org/releases/${pname}-${version}.tar.gz";
+    url = "https://libnice.freedesktop.org/releases/libnice-${finalAttrs.version}.tar.gz";
     hash = "sha256-pfckzwnq5QxBp1FxQdidpKYeyerKMtpKAHP67VQXrX4=";
   };
 
   patches = [
     # Fix generating data
     # Note: upstream is not willing to merge our fix
     # https://gitlab.freedesktop.org/libnice/libnice/merge_requests/35#note_98871
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libnice/libnice/commit/d470c4bf4f2449f7842df26ca1ce1efb63452bc6.patch";
-      sha256 = "0z74vizf92flfw1m83p7yz824vfykmnm0xbnk748bnnyq186i6mg";
-    })
+    ./meson-fixes-for-nix.patch
path: pkgs/by-name/li/libnice/package.nix
user: login: jtojnar
body: Yeah. It can be removed.
created_at: 2025-04-01T18:39:20Z
author_association: MEMBER
diff_hunk: @@ -29,18 +28,18 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
 
   src = fetchurl {
-    url = "https://libnice.freedesktop.org/releases/${pname}-${version}.tar.gz";
+    url = "https://libnice.freedesktop.org/releases/libnice-${finalAttrs.version}.tar.gz";
     hash = "sha256-pfckzwnq5QxBp1FxQdidpKYeyerKMtpKAHP67VQXrX4=";
   };
 
   patches = [
     # Fix generating data
     # Note: upstream is not willing to merge our fix
     # https://gitlab.freedesktop.org/libnice/libnice/merge_requests/35#note_98871
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libnice/libnice/commit/d470c4bf4f2449f7842df26ca1ce1efb63452bc6.patch";
-      sha256 = "0z74vizf92flfw1m83p7yz824vfykmnm0xbnk748bnnyq186i6mg";
-    })
+    ./meson-fixes-for-nix.patch
path: pkgs/by-name/li/libnice/package.nix
user: login: nyabinary
body: Done
created_at: 2025-04-01T18:49:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -29,18 +28,18 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
 
   src = fetchurl {
-    url = "https://libnice.freedesktop.org/releases/${pname}-${version}.tar.gz";
+    url = "https://libnice.freedesktop.org/releases/libnice-${finalAttrs.version}.tar.gz";
     hash = "sha256-pfckzwnq5QxBp1FxQdidpKYeyerKMtpKAHP67VQXrX4=";
   };
 
   patches = [
     # Fix generating data
     # Note: upstream is not willing to merge our fix
     # https://gitlab.freedesktop.org/libnice/libnice/merge_requests/35#note_98871
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libnice/libnice/commit/d470c4bf4f2449f7842df26ca1ce1efb63452bc6.patch";
-      sha256 = "0z74vizf92flfw1m83p7yz824vfykmnm0xbnk748bnnyq186i6mg";
-    })
+    ./meson-fixes-for-nix.patch
path: pkgs/by-name/li/libnice/package.nix
user: login: jtojnar
body: Thanks. Could you please also mention that the patch is not needed with recent Meson as the reason for removal in the commit message?
created_at: 2025-04-01T18:55:26Z
author_association: MEMBER
diff_hunk: @@ -29,18 +28,18 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
 
   src = fetchurl {
-    url = "https://libnice.freedesktop.org/releases/${pname}-${version}.tar.gz";
+    url = "https://libnice.freedesktop.org/releases/libnice-${finalAttrs.version}.tar.gz";
     hash = "sha256-pfckzwnq5QxBp1FxQdidpKYeyerKMtpKAHP67VQXrX4=";
   };
 
   patches = [
     # Fix generating data
     # Note: upstream is not willing to merge our fix
     # https://gitlab.freedesktop.org/libnice/libnice/merge_requests/35#note_98871
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libnice/libnice/commit/d470c4bf4f2449f7842df26ca1ce1efb63452bc6.patch";
-      sha256 = "0z74vizf92flfw1m83p7yz824vfykmnm0xbnk748bnnyq186i6mg";
-    })
+    ./meson-fixes-for-nix.patch
path: pkgs/by-name/li/libnice/package.nix
user: login: nyabinary
body: Sure :) (also what with the errors btw)
created_at: 2025-04-01T19:04:30Z
author_association: CONTRIBUTOR
diff_hunk: @@ -37,6 +38,7 @@ stdenv.mkDerivation rec {
     pkg-config
     meson
     ninja
+    cmake
path: pkgs/by-name/gu/gupnp-igd/package.nix
user: login: jtojnar
body: Are you sure `cmake` is needed? Meson supports it for finding dependencies but typically, `pkg-config` will be sufficient. See <https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/meson-cmake.md> for more info.
created_at: 2025-04-13T19:19:42Z
author_association: MEMBER
diff_hunk: @@ -37,6 +38,7 @@ stdenv.mkDerivation rec {
     pkg-config
     meson
     ninja
+    cmake
path: pkgs/by-name/gu/gupnp-igd/package.nix
user: login: nyabinary
body: You're right :3, removed.
created_at: 2025-04-13T19:31:50Z
author_association: CONTRIBUTOR

PR comments:
user: login: nyabinary
created_at: 2025-04-01T03:26:44Z
body: Assuming this works according to the `README.md` any `gupnp-igd` version above or equal to `0.1.2` works. I couldn't find a way to `nix build` the gupnp-igd_1_6 version in the new CLI (so had to do this it in a hacky way `nix build --impure --expr 'with import <nixpkgs> { }; callPackage ./package.nix {}'`, also couldn't figure out how to build `gupnp-igd_1_6` and `libnice` with `gupnp-igd_1_6` at the same time so if anyone can teach me that would be appreciated. :3
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-01T12:47:24Z
body: @ofborg build gst_all_1.gst-plugins-bad
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-01T13:57:09Z
body: you'll also have to target this PR against staging. See https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#rebasing-between-branches-ie-from-master-to-staging
author_association: CONTRIBUTOR
user: login: nyabinary
created_at: 2025-04-01T16:45:43Z
body: > you'll also have to target this PR against staging. See https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#rebasing-between-branches-ie-from-master-to-staging

done
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-01T20:31:18Z
body: things pulling both libsoups after this PR: https://termbin.com/h8my
things pulling both libsoups before this PR: https://termbin.com/82av
generated with https://git.grimmauld.de/Grimmauld/nix-closure-thingy/src/branch/main/shared-deps.py
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-01T20:32:50Z
body: interestingly enough, *significantly* more things pull both libsoups before this PR!
author_association: CONTRIBUTOR
user: login: nyabinary
created_at: 2025-04-01T20:34:35Z
body: > things pulling both libsoups after this PR: https://termbin.com/h8my things pulling both libsoups before this PR: https://termbin.com/82av generated with https://git.grimmauld.de/Grimmauld/nix-closure-thingy/src/branch/main/shared-deps.py

So it's a net positive then :P, this pr
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-01T20:40:22Z
body: ![image](https://github.com/user-attachments/assets/d2ee1a6a-25ed-4649-a9e5-a0b695ede2a0)
After this PR, libsoup2 doesn't have any dependency that is a mass rebuild. This means fixing any potential breakage can happen in master and doesn't have the 2 week delay of staging cycles. I vote to go for it. Replacing libsoup2 has been a long project and this is the right direction.
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-02T11:09:55Z
body: https://termbin.com/dv8c
after #395311 was merged, only 360 packages with potentially overlapping `libsoup_2_4` / `libnice` remain. Most of those go through `webkitgtk` -> `wxGTK`.
author_association: CONTRIBUTOR
user: login: nyabinary
created_at: 2025-04-07T16:23:54Z
body: @jtojnar Any next steps we can take?
author_association: CONTRIBUTOR
user: login: SuperSandro2000
created_at: 2025-04-11T19:33:12Z
body: > it will likely crash at runtime as symbols from `libsoup_2` will clash with the ones from `libsoup_3`.

like dino:

```
(process:24820): libsoup-ERROR **: 21:32:11.757: libsoup2 symbols detected. Using libsoup2 and libsoup3 in the same process is not supported.
```

Is there a workaround until this PR is merged? gupnp propagated libsoup_2_4 which is not ideal.
author_association: MEMBER
user: login: LordGrimmauld
created_at: 2025-04-11T19:55:54Z
body: > > it will likely crash at runtime as symbols from `libsoup_2` will clash with the ones from `libsoup_3`.
> 
> like dino:
> 
> ```
> (process:24820): libsoup-ERROR **: 21:32:11.757: libsoup2 symbols detected. Using libsoup2 and libsoup3 in the same process is not supported.
> ```
> 
> Is there a workaround until this PR is merged? gupnp propagated libsoup_2_4 which is not ideal.

that is what i have been saying. There were countless collisions between libsoup_2_4 and libsoup_3 *before* this PR, this PR does break some other stuff the same way but also fixes some. And moves in the right direction. @jtojnar was blocking this as breaking because it introduces new libsoup collisions on wxwidgets based packages. With a breakage caused from gupnp that argument goes away: it stands to reason this PR would fix some things, even if it breaks others.
author_association: CONTRIBUTOR
user: login: nyabinary
created_at: 2025-04-11T20:00:09Z
body: > > it will likely crash at runtime as symbols from `libsoup_2` will clash with the ones from `libsoup_3`.
> 
> like dino:
> 
> ```
> (process:24820): libsoup-ERROR **: 21:32:11.757: libsoup2 symbols detected. Using libsoup2 and libsoup3 in the same process is not supported.
> ```
> 
> Is there a workaround until this PR is merged? gupnp propagated libsoup_2_4 which is not ideal.

*Cough* we could just merge it not, like we've saying :P
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-11T20:24:40Z
body: it might be possible to replace the webkitgtk used by wxwidgets, on top of this PR. Not sure how viable that is though.
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-11T20:34:49Z
body: Actually, we could also maybe limit the blast radius by setting webkit support to default false in wxwidgets:
https://github.com/NixOS/nixpkgs/blob/f675531bc7e6657c10a18b565cfebd8aa9e24c14/pkgs/by-name/wx/wxGTK32/package.nix#L30
But i am not sure how many wxwidget consumers use the webview feature
author_association: CONTRIBUTOR
user: login: SuperSandro2000
created_at: 2025-04-11T20:56:27Z
body: I really do no know how to move this forward 😓 

but I used this overlay for dino:

```nix
# https://github.com/NixOS/nixpkgs/pull/395063
libnice' = (libnice.override {
  gupnp-igd = (gupnp-igd.override {
    gupnp = gupnp_1_6;
  }).overrideAttrs ({ src, ... }: rec {
    version = "1.6.0";
    src = fetchurl {
      url = "mirror://gnome/sources/gupnp-igd/${lib.versions.majorMinor version}/gupnp-igd-${version}.tar.xz";
      hash = "sha256-QJmXgzmrIhJtSWjyozK20JT8RMeHl4YHgfH8LxF3G3Q=";
    };
  });
}).overrideAttrs ({ postPatch ? "", ... }: {
  postPatch = postPatch + ''
    substituteInPlace meson.build \
      --replace-fail "gupnp-igd-1.0" "gupnp-igd-1.6"
  '';
});
```
author_association: MEMBER
user: login: LordGrimmauld
created_at: 2025-04-13T08:25:22Z
body: Pinged alyssa for a review - they suggested this PR be merged in https://github.com/NixOS/nixpkgs/pull/398018#discussion_r2040591587, having them review seems about reasonable to move this forward.
author_association: CONTRIBUTOR
user: login: alyssais
created_at: 2025-04-13T09:38:56Z
body: What's the current status here? I remember seeing you talk about solutions for wxwidgets on Matrix, I think?
author_association: MEMBER
user: login: LordGrimmauld
created_at: 2025-04-13T09:53:34Z
body: > What's the current status here? I remember seeing you talk about solutions for wxwidgets on Matrix, I think?

the status is basically: libnice has this pr, wxwidgets/wxpython is trivial to upgrade, libmateweather has an upstream PR adding libsoup_3 support (which we can cherry-pick), and most consumers of webkitgtk_4_0 can be updated trivially, leaving less than 50 packages on old libsoup_2_4 transitively.

I checked the list of colliding libsoups before and after this PR; this PR reduces the total number of collisions, but will "shift" those collisions to some other packages that need subsequent fixes. I already started work on those fixes, and very few things actually gave me trouble. I believe i can do all the fixes needed within a ~week.
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-13T09:54:52Z
body: dino (which you maintain with sandro) is one of those that'd get a "collision shift", but sandros PR basically fixes that already (would just need to drop the override stack over there).
author_association: CONTRIBUTOR
user: login: alyssais
created_at: 2025-04-13T10:39:20Z
body: > I believe i can do all the fixes needed within a ~week.

Great! Do we need to collect those all in a single PR to avoid intermediate broken states with both libnices, or can any of them be fixed separately? Either way, it sounds like the thing for me to do here is wait a bit until all those fixes are ready?
author_association: MEMBER
user: login: LordGrimmauld
created_at: 2025-04-13T13:27:17Z
body: > > I believe i can do all the fixes needed within a ~week.
> 
> Great! Do we need to collect those all in a single PR to avoid intermediate broken states with both libnices, or can any of them be fixed separately? Either way, it sounds like the thing for me to do here is wait a bit until all those fixes are ready?

I'd have preferred something like a merge queue to group all these fixes together. Alas, we don't have that.
There is three ways to go about this, two of those reasonable. The first (unreasonable) approach is to branch out from staging and group all the libsoup related updates on a branch, then merge that to staging in a week. More reasonable is to make one giant PR doing all the updates, but that is likely hard to review. Likely the easiest is to just target staging branch with all PRs related to this, and merge them all at once.
author_association: CONTRIBUTOR
user: login: alyssais
created_at: 2025-04-13T15:49:55Z
body: > The first (unreasonable) approach is to branch out from staging and group all the libsoup related updates on a branch

This sounds nicest to me? It lets things be reviewed separately and avoids the need to merge loads of PRs all at the same time.
author_association: MEMBER
user: login: LordGrimmauld
created_at: 2025-04-13T16:02:51Z
body: > > The first (unreasonable) approach is to branch out from staging and group all the libsoup related updates on a branch
> 
> This sounds nicest to me? It lets things be reviewed separately and avoids the need to merge loads of PRs all at the same time.

Sure, i'd agree - but i am not sure who would be able to make that happen. I am happy to contribute towards the goal of dropping `libsoup_2_4` and from chatting with @nyabinary on matrix they are likely on board too. But i do not have the power to make branches, i am not even a committer.
author_association: CONTRIBUTOR
user: login: alyssais
created_at: 2025-04-13T16:07:55Z
body: I've created a branch called libsoup-updates.
author_association: MEMBER
user: login: LordGrimmauld
created_at: 2025-04-13T16:08:30Z
body: Thanks!
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-13T16:12:46Z
body: Now this PR should be safe to merge into the libsoup-updates branch, where it won't break anything until all the rest is in there too
author_association: CONTRIBUTOR
user: login: alyssais
created_at: 2025-04-13T16:20:57Z
body: Okay, so about this PR: why do we need to keep the old one around?
author_association: MEMBER
user: login: LordGrimmauld
created_at: 2025-04-13T16:23:08Z
body: I believe we shouldn't have to. AIUI the motivation was to keep the things not using libnice unaffected for now, but if we are globally getting rid of libsoup_2_4 wherever possible, that argument disappears
author_association: CONTRIBUTOR
user: login: nyabinary
created_at: 2025-04-13T16:23:46Z
body: > Okay, so about this PR: why do we need to keep the old one around?

We don't :P 
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-13T18:22:36Z
body: @ofborg build farstream
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-13T18:36:49Z
body: > Okay, so about this PR: why do we need to keep the old one around?

So turns out, farstream that depends on gupnp-igd too is pretty dead: https://gitlab.freedesktop.org/farstream/farstream/-/commits/master

This PR likely breaks farstream (checking via ofborg rn). There is three solutions: keep the old gupnp-igd for farstream, try to patch farstream, or drop farstream and dependents.
author_association: CONTRIBUTOR
user: login: alyssais
created_at: 2025-04-13T19:35:46Z
body: > or drop farstream and dependents

I wonder how many of its dependents require it vs. having an optional dependency on it.  Either way doesn't seem too widely used.
author_association: MEMBER
user: login: LordGrimmauld
created_at: 2025-04-13T19:54:55Z
body: > > or drop farstream and dependents
> 
> I wonder how many of its dependents require it vs. having an optional dependency on it. Either way doesn't seem too widely used.

there is 
- `telepathy` (unmaintained, should be dropped)
- `pidgin`, does use it on 2.14.14 version (stable from 2 months ago), there is a beta preview of 3.x (2.91.0, few days ago) that will likely break pidgin addons
- `gajim`, has an upstream PR dropping the libnice/farstream dependencies (but the PR isn't exactly small, i don't feel confident cherrypicking that to nix)

There are no further dependents on farstream.
author_association: CONTRIBUTOR
user: login: alyssais
created_at: 2025-04-13T20:02:14Z
body: Both gajim and pidgim only use farstream conditionally, so can't we just drop that functionality?

author_association: MEMBER
user: login: LordGrimmauld
created_at: 2025-04-13T20:02:46Z
body: Huh, if we can then sure!
author_association: CONTRIBUTOR
user: login: nyabinary
created_at: 2025-04-13T20:17:03Z
body: Can we get the ball rolling with this merged?
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-15T06:17:51Z
body: I took the liberty of rebasing this to the `libsoup-updates` merge base for easier review - this way i get caches when building, and this is a better representative of what would happen on merge.
author_association: CONTRIBUTOR
user: login: grimmauld-bot
created_at: 2025-04-15T06:45:27Z
body: ## `nixpkgs-review` result

Generated using [`nixpkgs-review`](https://github.com/Mic92/nixpkgs-review).

Command: `nixpkgs-review pr 395063 --package libnice --package farstream --package gst_all_1 --package gupnp-igd`

---
### `aarch64-linux`
<details>
  <summary>:white_check_mark: 37 packages built:</summary>
  <ul>
    <li>farstream</li>
    <li>farstream.dev (farstream.dev.dev)</li>
    <li>gst_all_1.gst-devtools</li>
    <li>gst_all_1.gst-devtools.dev (gst_all_1.gst-devtools.dev.dev)</li>
    <li>gst_all_1.gst-editing-services</li>
    <li>gst_all_1.gst-editing-services.dev (gst_all_1.gst-editing-services.dev.dev)</li>
    <li>gst_all_1.gst-libav</li>
    <li>gst_all_1.gst-libav.dev (gst_all_1.gst-libav.dev.dev)</li>
    <li>gst_all_1.gst-plugins-bad</li>
    <li>gst_all_1.gst-plugins-bad.dev (gst_all_1.gst-plugins-bad.dev.dev)</li>
    <li>gst_all_1.gst-plugins-base</li>
    <li>gst_all_1.gst-plugins-base.debug (gst_all_1.gst-plugins-base.debug.debug, gst_all_1.gst-plugins-base.debug.dev)</li>
    <li>gst_all_1.gst-plugins-base.dev (gst_all_1.gst-plugins-base.dev.debug, gst_all_1.gst-plugins-base.dev.dev)</li>
    <li>gst_all_1.gst-plugins-good</li>
    <li>gst_all_1.gst-plugins-good.dev (gst_all_1.gst-plugins-good.dev.dev)</li>
    <li>gst_all_1.gst-plugins-rs</li>
    <li>gst_all_1.gst-plugins-rs.dev (gst_all_1.gst-plugins-rs.dev.dev)</li>
    <li>gst_all_1.gst-plugins-ugly</li>
    <li>gst_all_1.gst-plugins-ugly.dev (gst_all_1.gst-plugins-ugly.dev.dev)</li>
    <li>gst_all_1.gst-rtsp-server</li>
    <li>gst_all_1.gst-rtsp-server.dev (gst_all_1.gst-rtsp-server.dev.dev)</li>
    <li>gst_all_1.gst-vaapi</li>
    <li>gst_all_1.gst-vaapi.dev (gst_all_1.gst-vaapi.dev.dev)</li>
    <li>gst_all_1.gstreamer</li>
    <li>gst_all_1.gstreamer.bin (gst_all_1.gstreamer.bin.bin, gst_all_1.gstreamer.bin.debug, gst_all_1.gstreamer.bin.dev)</li>
    <li>gst_all_1.gstreamer.debug (gst_all_1.gstreamer.debug.bin, gst_all_1.gstreamer.debug.debug, gst_all_1.gstreamer.debug.dev)</li>
    <li>gst_all_1.gstreamer.dev (gst_all_1.gstreamer.dev.bin, gst_all_1.gstreamer.dev.debug, gst_all_1.gstreamer.dev.dev)</li>
    <li>gst_all_1.gstreamermm</li>
    <li>gst_all_1.gstreamermm.dev (gst_all_1.gstreamermm.dev.dev)</li>
    <li>gst_all_1.stdenv</li>
    <li>gupnp-igd</li>
    <li>gupnp-igd.dev (gupnp-igd.dev.dev, gupnp-igd.dev.devdoc)</li>
    <li>gupnp-igd.devdoc (gupnp-igd.devdoc.dev, gupnp-igd.devdoc.devdoc)</li>
    <li>libnice</li>
    <li>libnice.bin (libnice.bin.bin, libnice.bin.dev, libnice.bin.devdoc)</li>
    <li>libnice.dev (libnice.dev.bin, libnice.dev.dev, libnice.dev.devdoc)</li>
    <li>libnice.devdoc (libnice.devdoc.bin, libnice.devdoc.dev, libnice.devdoc.devdoc)</li>
  </ul>
</details>

author_association: NONE
user: login: LordGrimmauld
created_at: 2025-04-15T06:55:35Z
body: Surprisingly enough, `farstream` does build against this version of `gupnp-igd`. While dropping `farstream` is still something we should do, this is less urgent than initially assumed.
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-15T07:40:20Z
body: ## `nixpkgs-review` result

Generated using [`nixpkgs-review`](https://github.com/Mic92/nixpkgs-review).

Command: `nixpkgs-review pr 395063 --package farstream --package gupnp-igd --package libnice --package gst_all_1`

---
### `x86_64-linux`
<details>
  <summary>:white_check_mark: 40 packages built:</summary>
  <ul>
    <li>farstream</li>
    <li>farstream.dev (farstream.dev.dev)</li>
    <li>gst_all_1.gst-devtools</li>
    <li>gst_all_1.gst-devtools.dev (gst_all_1.gst-devtools.dev.dev)</li>
    <li>gst_all_1.gst-editing-services</li>
    <li>gst_all_1.gst-editing-services.dev (gst_all_1.gst-editing-services.dev.dev)</li>
    <li>gst_all_1.gst-libav</li>
    <li>gst_all_1.gst-libav.dev (gst_all_1.gst-libav.dev.dev)</li>
    <li>gst_all_1.gst-plugins-bad</li>
    <li>gst_all_1.gst-plugins-bad.dev (gst_all_1.gst-plugins-bad.dev.dev)</li>
    <li>gst_all_1.gst-plugins-base</li>
    <li>gst_all_1.gst-plugins-base.debug (gst_all_1.gst-plugins-base.debug.debug, gst_all_1.gst-plugins-base.debug.dev)</li>
    <li>gst_all_1.gst-plugins-base.dev (gst_all_1.gst-plugins-base.dev.debug, gst_all_1.gst-plugins-base.dev.dev)</li>
    <li>gst_all_1.gst-plugins-good</li>
    <li>gst_all_1.gst-plugins-good.dev (gst_all_1.gst-plugins-good.dev.dev)</li>
    <li>gst_all_1.gst-plugins-rs</li>
    <li>gst_all_1.gst-plugins-rs.dev (gst_all_1.gst-plugins-rs.dev.dev)</li>
    <li>gst_all_1.gst-plugins-ugly</li>
    <li>gst_all_1.gst-plugins-ugly.dev (gst_all_1.gst-plugins-ugly.dev.dev)</li>
    <li>gst_all_1.gst-rtsp-server</li>
    <li>gst_all_1.gst-rtsp-server.dev (gst_all_1.gst-rtsp-server.dev.dev)</li>
    <li>gst_all_1.gst-vaapi</li>
    <li>gst_all_1.gst-vaapi.dev (gst_all_1.gst-vaapi.dev.dev)</li>
    <li>gst_all_1.gstreamer</li>
    <li>gst_all_1.gstreamer.bin (gst_all_1.gstreamer.bin.bin, gst_all_1.gstreamer.bin.debug, gst_all_1.gstreamer.bin.dev)</li>
    <li>gst_all_1.gstreamer.debug (gst_all_1.gstreamer.debug.bin, gst_all_1.gstreamer.debug.debug, gst_all_1.gstreamer.debug.dev)</li>
    <li>gst_all_1.gstreamer.dev (gst_all_1.gstreamer.dev.bin, gst_all_1.gstreamer.dev.debug, gst_all_1.gstreamer.dev.dev)</li>
    <li>gst_all_1.gstreamermm</li>
    <li>gst_all_1.gstreamermm.dev (gst_all_1.gstreamermm.dev.dev)</li>
    <li>gst_all_1.icamerasrc-ipu6</li>
    <li>gst_all_1.icamerasrc-ipu6ep</li>
    <li>gst_all_1.icamerasrc-ipu6epmtl</li>
    <li>gst_all_1.stdenv</li>
    <li>gupnp-igd</li>
    <li>gupnp-igd.dev (gupnp-igd.dev.dev, gupnp-igd.dev.devdoc)</li>
    <li>gupnp-igd.devdoc (gupnp-igd.devdoc.dev, gupnp-igd.devdoc.devdoc)</li>
    <li>libnice</li>
    <li>libnice.bin (libnice.bin.bin, libnice.bin.dev, libnice.bin.devdoc)</li>
    <li>libnice.dev (libnice.dev.bin, libnice.dev.dev, libnice.dev.devdoc)</li>
    <li>libnice.devdoc (libnice.devdoc.bin, libnice.devdoc.dev, libnice.devdoc.devdoc)</li>
  </ul>
</details>

author_association: CONTRIBUTOR
user: login: jtojnar
created_at: 2025-04-15T07:47:10Z
body: The API has not really changed in gupnp-igd 1.6, it is just the switch to libsoup 3. So farstream itself will build when we switch both libnice and gupnp-igd to libsoup_3 at the same time. Only packages that use `farstream` and `libsoup_2_4` (e.g. telepathy) will fail at runtime.

Could you please make a report of what depends on `libsoup_2_4` and `libsoup_3` in this `libsoup-updates` after this?
author_association: MEMBER
user: login: LordGrimmauld
created_at: 2025-04-15T07:54:55Z
body: > The API has not really changed in gupnp-igd 1.6, it is just the switch to libsoup 3. So farstream itself will build when we switch both libnice and gupnp-igd to libsoup_3 at the same time. Only packages that use `farstream` and `libsoup_2_4` (e.g. telepathy) will fail at runtime.
> 
> Could you please make a report of what depends on `libsoup_2_4` and `libsoup_3` in this `libsoup-updates` after this?

Can do - now or after this is merged into `libsoup-updates` ?
author_association: CONTRIBUTOR
user: login: LordGrimmauld
created_at: 2025-04-15T07:56:03Z
body: Also: `gajim` detects conflicting libsoup at runtime and prints a warning in the log, disabling some features by itself. And it already does so on current master branch!
author_association: CONTRIBUTOR