From 767f2007ffd8babe23c5514aefcfbceca6594e38 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 20 Oct 2021 19:46:57 +0200 Subject: gssdp-tools: re-add as separate derivation --- pkgs/development/libraries/gssdp/default.nix | 6 +++ .../libraries/gssdp/standalone-tools.patch | 42 ++++++++++++++++++ pkgs/development/libraries/gssdp/tools.nix | 50 ++++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 pkgs/development/libraries/gssdp/standalone-tools.patch create mode 100644 pkgs/development/libraries/gssdp/tools.nix (limited to 'pkgs/development/libraries/gssdp') diff --git a/pkgs/development/libraries/gssdp/default.nix b/pkgs/development/libraries/gssdp/default.nix index 523899fb3bd69..9947214bf7fc0 100644 --- a/pkgs/development/libraries/gssdp/default.nix +++ b/pkgs/development/libraries/gssdp/default.nix @@ -11,6 +11,7 @@ , libsoup , glib , gnome +, gssdp-tools }: stdenv.mkDerivation rec { @@ -50,6 +51,7 @@ stdenv.mkDerivation rec { doCheck = true; postFixup = '' + # Move developer documentation to devdoc output. # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. find -L "$out/share/doc" -type f -regex '.*\.devhelp2?' -print0 \ | while IFS= read -r -d ''' file; do @@ -61,6 +63,10 @@ stdenv.mkDerivation rec { updateScript = gnome.updateScript { packageName = pname; }; + + tests = { + inherit gssdp-tools; + }; }; meta = with lib; { diff --git a/pkgs/development/libraries/gssdp/standalone-tools.patch b/pkgs/development/libraries/gssdp/standalone-tools.patch new file mode 100644 index 0000000000000..f2273a978d675 --- /dev/null +++ b/pkgs/development/libraries/gssdp/standalone-tools.patch @@ -0,0 +1,42 @@ +diff --git a/libgssdp/gssdp-client-private.h b/libgssdp/gssdp-client-private.h +index ac31247..241c054 100644 +--- a/libgssdp/gssdp-client-private.h ++++ b/libgssdp/gssdp-client-private.h +@@ -10,7 +10,11 @@ + #ifndef GSSDP_CLIENT_PRIVATE_H + #define GSSDP_CLIENT_PRIVATE_H + ++#ifdef GSSDP_TOOLS ++#include ++#else + #include "gssdp-client.h" ++#endif + + G_BEGIN_DECLS + +diff --git a/tools/meson.build b/tools/meson.build +index 40eb8e3..5db545b 100644 +--- a/tools/meson.build ++++ b/tools/meson.build +@@ -1,3 +1,10 @@ ++project('gssdp-tools', 'c', version: '@version@') ++gnome = import('gnome') ++ ++gssdp = dependency('gssdp-1.2') ++gtk = dependency('gtk4', version : '>= 4') ++libsoup = dependency('libsoup-2.4', version : '>= 2.26.1') ++ + resource = gnome.compile_resources( + 'org.gupnp.GSSDP.DeviceSniffer', + 'gssdp-device-sniffer.gresource.xml', +@@ -12,7 +19,9 @@ sniffer = executable( + 'main-window.h', + resource + ], +- dependencies : [gssdp, gtk], ++ dependencies : [gssdp, gtk, libsoup], ++ c_args: ['-DGSSDP_TOOLS'], ++ include_directories : [include_directories('..')], + install: true, + export_dynamic : true, + gui_app : true diff --git a/pkgs/development/libraries/gssdp/tools.nix b/pkgs/development/libraries/gssdp/tools.nix new file mode 100644 index 0000000000000..36bc564290080 --- /dev/null +++ b/pkgs/development/libraries/gssdp/tools.nix @@ -0,0 +1,50 @@ +{ stdenv +, lib +, substituteAll +, meson +, ninja +, pkg-config +, wrapGAppsHook4 +, gssdp +, gtk4 +, libsoup +}: + +stdenv.mkDerivation rec { + pname = "gssdp-tools"; + inherit (gssdp) version src; + + patches = [ + # Allow building tools separately from the library. + # This is needed to break the depenency cycle. + (substituteAll { + src = ./standalone-tools.patch; + inherit version; + }) + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + wrapGAppsHook4 + ]; + + buildInputs = [ + gssdp + gtk4 + libsoup + ]; + + preConfigure = '' + cd tools + ''; + + meta = with lib; { + description = "Device Sniffer tool based on GSSDP framework"; + homepage = "http://www.gupnp.org/"; + license = licenses.lgpl2Plus; + maintainers = gssdp.meta.maintainers; + platforms = platforms.all; + }; +} -- cgit 1.4.1