diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/dleyna-renderer')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/dleyna-renderer/default.nix | 37 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/dleyna-renderer/gupnp-1.2.diff | 130 |
2 files changed, 20 insertions, 147 deletions
diff --git a/nixpkgs/pkgs/development/libraries/dleyna-renderer/default.nix b/nixpkgs/pkgs/development/libraries/dleyna-renderer/default.nix index 768af6a671a1..6daade555317 100644 --- a/nixpkgs/pkgs/development/libraries/dleyna-renderer/default.nix +++ b/nixpkgs/pkgs/development/libraries/dleyna-renderer/default.nix @@ -1,6 +1,8 @@ -{ lib, stdenv +{ stdenv +, lib , fetchFromGitHub -, autoreconfHook +, meson +, ninja , pkg-config , dleyna-connector-dbus , dleyna-core @@ -10,34 +12,35 @@ , gupnp-dlna , libsoup , makeWrapper +, docbook-xsl-nons +, libxslt }: stdenv.mkDerivation rec { pname = "dleyna-renderer"; - version = "0.6.0"; + version = "0.7.2"; src = fetchFromGitHub { - owner = "01org"; + owner = "phako"; repo = pname; - rev = version; - sha256 = "0jy54aq8hgrvzchrvfzqaj4pcn0cfhafl9bv8a9p6j82yjk4pvpp"; + rev = "v${version}"; + sha256 = "sha256-bGasT3XCa7QHV3D7z59TSHoqWksNSIgaO0z9zYfHHuw="; }; - patches = [ - # fix build with gupnp 1.2 - # comes from arch linux packaging https://git.archlinux.org/svntogit/packages.git/tree/trunk/gupnp-1.2.diff?h=packages/dleyna-renderer - ./gupnp-1.2.diff - ]; - nativeBuildInputs = [ - autoreconfHook + meson + ninja pkg-config makeWrapper + + # manpage + docbook-xsl-nons + libxslt # for xsltproc ]; buildInputs = [ dleyna-core - dleyna-connector-dbus + dleyna-connector-dbus # runtime dependency to be picked up to DLEYNA_CONNECTOR_PATH gssdp gupnp gupnp-av @@ -52,9 +55,9 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Library to discover and manipulate Digital Media Renderers"; - homepage = "https://01.org/dleyna"; - maintainers = [ maintainers.jtojnar ]; + homepage = "https://github.com/phako/dleyna-renderer"; + maintainers = with maintainers; [ jtojnar ]; platforms = platforms.linux; - license = licenses.lgpl21; + license = licenses.lgpl21Only; }; } diff --git a/nixpkgs/pkgs/development/libraries/dleyna-renderer/gupnp-1.2.diff b/nixpkgs/pkgs/development/libraries/dleyna-renderer/gupnp-1.2.diff deleted file mode 100644 index 3255695ab23e..000000000000 --- a/nixpkgs/pkgs/development/libraries/dleyna-renderer/gupnp-1.2.diff +++ /dev/null @@ -1,130 +0,0 @@ - configure.ac | 4 ++-- - libdleyna/renderer/device.c | 51 +++++++++++++++++++++++++++++++++++++++++++-- - libdleyna/renderer/upnp.c | 4 ++-- - 3 files changed, 53 insertions(+), 6 deletions(-) - -diff --git c/configure.ac i/configure.ac -index 271ee92..364659d 100644 ---- c/configure.ac -+++ i/configure.ac -@@ -38,8 +38,8 @@ LT_LANG([C]) - PKG_PROG_PKG_CONFIG(0.16) - PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.28]) - PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.28]) --PKG_CHECK_MODULES([GSSDP], [gssdp-1.0 >= 0.13.2]) --PKG_CHECK_MODULES([GUPNP], [gupnp-1.0 >= 0.20.5]) -+PKG_CHECK_MODULES([GSSDP], [gssdp-1.2 >= 1.2.0]) -+PKG_CHECK_MODULES([GUPNP], [gupnp-1.2 >= 1.2.0]) - PKG_CHECK_MODULES([GUPNPAV], [gupnp-av-1.0 >= 0.11.5]) - PKG_CHECK_MODULES([GUPNPDLNA], [gupnp-dlna-2.0 >= 0.9.4]) - PKG_CHECK_MODULES([SOUP], [libsoup-2.4 >= 2.28.2]) -diff --git c/libdleyna/renderer/device.c i/libdleyna/renderer/device.c -index 7acef89..f6d571e 100644 ---- c/libdleyna/renderer/device.c -+++ i/libdleyna/renderer/device.c -@@ -2121,33 +2121,80 @@ exit: - return; - } - -+typedef struct -+{ -+ GMainLoop *loop; -+ GUPnPServiceIntrospection *introspection; -+ GError **error; -+} GetIntrospectionAsyncData; -+ -+static void -+get_introspection_async_cb (GUPnPServiceInfo *info, -+ GUPnPServiceIntrospection *introspection, -+ const GError *error, -+ gpointer user_data) -+{ -+ GetIntrospectionAsyncData *data = user_data; -+ data->introspection = introspection; -+ if (data->error) -+ *data->error = g_error_copy (error); -+ g_main_loop_quit (data->loop); -+} -+ -+static GUPnPServiceIntrospection * -+_gupnp_service_info_get_introspection (GUPnPServiceInfo *info, -+ GError **error) -+{ -+ GetIntrospectionAsyncData data; -+ GMainContext *context; -+ -+ context = g_main_context_new (); -+ data.loop = g_main_loop_new (context, FALSE); -+ data.error = error; -+ -+ g_main_context_push_thread_default (context); -+ -+ gupnp_service_info_get_introspection_async (info, -+ get_introspection_async_cb, -+ &data); -+ -+ g_main_loop_run (data.loop); -+ -+ g_main_context_pop_thread_default (context); -+ -+ g_main_loop_unref (data.loop); -+ g_main_context_unref (context); -+ -+ return data.introspection; -+} -+ - static gboolean prv_get_av_service_states_values(GUPnPServiceProxy *av_proxy, - GVariant **mpris_tp_speeds, - GPtrArray **upnp_tp_speeds, - double *min_rate, - double *max_rate, - gboolean *can_get_byte_pos) - { - const GUPnPServiceStateVariableInfo *svi; - const GUPnPServiceActionInfo *sai; - GUPnPServiceIntrospection *introspection; - GError *error = NULL; - GVariant *speeds = NULL; - GList *allowed_values; - gpointer weak_ref = NULL; - gboolean device_alive = TRUE; - - /* TODO: this weak_ref hack is needed as - gupnp_service_info_get_introspection iterates the main loop. - This can result in our device getting deleted before this - function returns. Ultimately, this code needs to be re-written - to use gupnp_service_info_get_introspection_async but this cannot - really be done until GUPnP provides a way to cancel this function. */ - - weak_ref = av_proxy; - g_object_add_weak_pointer(G_OBJECT(av_proxy), &weak_ref); - -- introspection = gupnp_service_info_get_introspection( -+ introspection = _gupnp_service_info_get_introspection( - GUPNP_SERVICE_INFO(av_proxy), - &error); - -@@ -2215,7 +2262,7 @@ static gboolean prv_get_rc_service_states_values(GUPnPServiceProxy *rc_proxy, - weak_ref = rc_proxy; - g_object_add_weak_pointer(G_OBJECT(rc_proxy), &weak_ref); - -- introspection = gupnp_service_info_get_introspection( -+ introspection = _gupnp_service_info_get_introspection( - GUPNP_SERVICE_INFO(rc_proxy), - &error); - -diff --git c/libdleyna/renderer/upnp.c i/libdleyna/renderer/upnp.c -index 17cbda7..068912b 100644 ---- c/libdleyna/renderer/upnp.c -+++ i/libdleyna/renderer/upnp.c -@@ -243,8 +243,8 @@ static void prv_server_unavailable_cb(GUPnPControlPoint *cp, - - udn = gupnp_device_info_get_udn((GUPnPDeviceInfo *)proxy); - -- ip_address = gupnp_context_get_host_ip( -- gupnp_control_point_get_context(cp)); -+ ip_address = gssdp_client_get_host_ip( -+ GSSDP_CLIENT(gupnp_control_point_get_context(cp))); - - if (!udn || !ip_address) - goto on_error; |