Merge pull request #45045 from jtojnar/rygel

Rygel
This commit is contained in:
Jan Tojnar 2018-09-08 06:22:37 +01:00 committed by GitHub
commit 667e54bdb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 191 additions and 49 deletions

View File

@ -245,6 +245,7 @@
./services/desktops/gnome3/gnome-user-share.nix
./services/desktops/gnome3/gpaste.nix
./services/desktops/gnome3/gvfs.nix
./services/desktops/gnome3/rygel.nix
./services/desktops/gnome3/seahorse.nix
./services/desktops/gnome3/sushi.nix
./services/desktops/gnome3/tracker.nix

View File

@ -0,0 +1,30 @@
# rygel service.
{ config, lib, pkgs, ... }:
with lib;
{
###### interface
options = {
services.gnome3.rygel = {
enable = mkOption {
default = false;
description = ''
Whether to enable Rygel UPnP Mediaserver.
You will need to also allow UPnP connections in firewall, see the following <link xlink:href="https://github.com/NixOS/nixpkgs/pull/45045#issuecomment-416030795">comment</link>.
'';
type = types.bool;
};
};
};
###### implementation
config = mkIf config.services.gnome3.rygel.enable {
environment.systemPackages = [ pkgs.gnome3.rygel ];
services.dbus.packages = [ pkgs.gnome3.rygel ];
systemd.packages = [ pkgs.gnome3.rygel ];
};
}

View File

@ -110,6 +110,7 @@ in {
services.gnome3.gnome-terminal-server.enable = mkDefault true;
services.gnome3.gnome-user-share.enable = mkDefault true;
services.gnome3.gvfs.enable = true;
services.gnome3.rygel.enable = mkDefault true;
services.gnome3.seahorse.enable = mkDefault true;
services.gnome3.sushi.enable = mkDefault true;
services.gnome3.tracker.enable = mkDefault true;

View File

@ -0,0 +1,54 @@
{ stdenv, fetchurl, pkgconfig, vala, gettext, libxml2, gobjectIntrospection, gtk-doc, wrapGAppsHook, glib, gssdp, gupnp, gupnp-av, gupnp-dlna, gst_all_1, libgee, libsoup, gtk3, libmediaart, sqlite, systemd, tracker, shared-mime-info, gnome3 }:
let
pname = "rygel";
version = "0.36.2";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
# TODO: split out lib
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "0i12z6bzfzgcjidhxa2jsvpm4hqpab0s032z13jy2vbifrncfcnk";
};
nativeBuildInputs = [
pkgconfig vala gettext libxml2 gobjectIntrospection gtk-doc wrapGAppsHook
];
buildInputs = [
glib gssdp gupnp gupnp-av gupnp-dlna libgee libsoup gtk3 libmediaart sqlite systemd tracker shared-mime-info
] ++ (with gst_all_1; [
gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly
]);
configureFlags = [
"--with-systemduserunitdir=$(out)/lib/systemd/user"
"--enable-apidocs"
"--sysconfdir=/etc"
];
installFlags = [
"sysconfdir=$(out)/etc"
];
doCheck = true;
enableParallelBuilding = true;
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
attrPath = "gnome3.${pname}";
};
};
meta = with stdenv.lib; {
description = "A home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices";
homepage = https://wiki.gnome.org/Projects/Rygel;
license = licenses.lgpl21Plus;
maintainers = gnome3.maintainers;
platforms = platforms.linux;
};
}

View File

@ -216,6 +216,8 @@ lib.makeScope pkgs.newScope (self: with self; {
rest = callPackage ./core/rest { };
rygel = callPackage ./core/rygel { };
simple-scan = callPackage ./core/simple-scan { };
sushi = callPackage ./core/sushi { };

View File

@ -1,22 +1,30 @@
{ stdenv, fetchurl, pkgconfig, libsoup, glib }:
{ stdenv, fetchurl, pkgconfig, gobjectIntrospection, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_412, libsoup, gtk3, glib }:
stdenv.mkDerivation rec {
name = "gssdp-${version}";
version = "1.0.2";
outputs = [ "out" "bin" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gssdp/1.0/${name}.tar.xz";
url = "mirror://gnome/sources/gssdp/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "1p1m2m3ndzr2whipqw4vfb6s6ia0g7rnzzc4pnq8b8g1qw4prqd1";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ libsoup ];
nativeBuildInputs = [ pkgconfig gobjectIntrospection vala gtk-doc docbook_xsl docbook_xml_dtd_412 ];
buildInputs = [ libsoup gtk3 ];
propagatedBuildInputs = [ glib ];
configureFlags = [
"--enable-gtk-doc"
];
doCheck = true;
meta = with stdenv.lib; {
description = "GObject-based API for handling resource discovery and announcement over SSDP";
homepage = http://www.gupnp.org/;
license = licenses.lgpl2;
license = licenses.lgpl2Plus;
platforms = platforms.all;
};
}

View File

@ -1,22 +1,29 @@
{ stdenv, fetchurl, pkgconfig, gupnp, glib, libxml2 }:
{ stdenv, fetchurl, pkgconfig, gobjectIntrospection, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_412, gupnp, glib, libxml2 }:
stdenv.mkDerivation rec {
name = "gupnp-av-${version}";
majorVersion = "0.12";
version = "${majorVersion}.10";
version = "0.12.10";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gupnp-av/${majorVersion}/${name}.tar.xz";
url = "mirror://gnome/sources/gupnp-av/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "0nmq6wlbfsssanv3jgv2z0nhfkv8vzfr3gq5qa8svryvvn2fyf40";
};
nativeBuildInputs = [ pkgconfig ];
nativeBuildInputs = [ pkgconfig gobjectIntrospection vala gtk-doc docbook_xsl docbook_xml_dtd_412 ];
buildInputs = [ gupnp glib libxml2 ];
meta = {
configureFlags = [
"--enable-gtk-doc"
];
doCheck = true;
meta = with stdenv.lib; {
homepage = http://gupnp.org/;
description = "A collection of helpers for building AV (audio/video) applications using GUPnP";
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.linux;
license = licenses.lgpl2Plus;
platforms = platforms.linux;
};
}

View File

@ -1,22 +1,34 @@
{ stdenv, fetchurl, pkgconfig, gobjectIntrospection, gupnp, gst-plugins-base }:
{ stdenv, fetchurl, pkgconfig, gobjectIntrospection, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_412, gupnp, gst_all_1 }:
stdenv.mkDerivation rec {
name = "gupnp-dlna-${version}";
majorVersion = "0.10";
version = "${majorVersion}.5";
version = "0.10.5";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gupnp-dlna/${majorVersion}/${name}.tar.xz";
url = "mirror://gnome/sources/gupnp-dlna/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj";
};
nativeBuildInputs = [ pkgconfig gobjectIntrospection ];
buildInputs = [ gupnp gst-plugins-base ];
nativeBuildInputs = [ pkgconfig gobjectIntrospection vala gtk-doc docbook_xsl docbook_xml_dtd_412 ];
buildInputs = [ gupnp gst_all_1.gst-plugins-base ];
meta = {
configureFlags = [
"--enable-gtk-doc"
];
doCheck = true;
postPatch = ''
chmod +x tests/test-discoverer.sh.in
patchShebangs tests/test-discoverer.sh.in
'';
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Projects/GUPnP/;
description = "Library to ease DLNA-related bits for applications using GUPnP";
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.linux;
license = licenses.lgpl2Plus;
platforms = platforms.linux;
};
}

View File

@ -1,22 +1,29 @@
{ stdenv, fetchurl, pkgconfig, glib, gupnp }:
{ stdenv, fetchurl, pkgconfig, gettext, gobjectIntrospection, gtk-doc, docbook_xsl, docbook_xml_dtd_412, glib, gupnp }:
stdenv.mkDerivation rec {
name = "gupnp-igd-${version}";
majorVersion = "0.2";
version = "${majorVersion}.4";
version = "0.2.5";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gupnp-igd/${majorVersion}/${name}.tar.xz";
sha256 = "38c4a6d7718d17eac17df95a3a8c337677eda77e58978129ad3182d769c38e44";
url = "mirror://gnome/sources/gupnp-igd/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
sha256 = "081v1vhkbz3wayv49xfiskvrmvnpx93k25am2wnarg5cifiiljlb";
};
nativeBuildInputs = [ pkgconfig ];
nativeBuildInputs = [ pkgconfig gettext gobjectIntrospection gtk-doc docbook_xsl docbook_xml_dtd_412 ];
propagatedBuildInputs = [ glib gupnp ];
meta = {
configureFlags = [
"--enable-gtk-doc"
];
doCheck = true;
meta = with stdenv.lib; {
description = "Library to handle UPnP IGD port mapping";
homepage = http://www.gupnp.org/;
license = stdenv.lib.licenses.lgpl21;
platforms = stdenv.lib.platforms.linux;
license = licenses.lgpl21;
platforms = platforms.linux;
};
}

View File

@ -1,28 +1,39 @@
{ stdenv, fetchurl, pkgconfig, glib, gssdp, libsoup, libxml2, libuuid }:
{ stdenv, fetchurl, pkgconfig, gobjectIntrospection, vala, gtk-doc, docbook_xsl, docbook_xml_dtd_412, docbook_xml_dtd_44, glib, gssdp, libsoup, libxml2, libuuid }:
stdenv.mkDerivation rec {
name = "gupnp-${version}";
majorVersion = "1.0";
version = "${majorVersion}.2";
version = "1.0.3";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gupnp/${majorVersion}/gupnp-${version}.tar.xz";
sha256 = "043nqxlj030a3wvd6x4c9z8fjarjjjsl2pjarl0nn70ig6kzswsi";
url = "mirror://gnome/sources/gupnp/${stdenv.lib.versions.majorMinor version}/gupnp-${version}.tar.xz";
sha256 = "1fyb6yn75vf2y1b8nbc1df572swzr74yiwy3v3g5xn36wlp1cjvr";
};
nativeBuildInputs = [ pkgconfig ];
patches = [
# Nixs pkg-config ignores Requires.private
# https://github.com/NixOS/nixpkgs/commit/1e6622f4d5d500d6e701bd81dd4a22977d10637d
# We are essentialy reverting the following patch for now
# https://bugzilla.gnome.org/show_bug.cgi?id=685477
# at least until Requires.internal or something is implemented
# https://gitlab.freedesktop.org/pkg-config/pkg-config/issues/7
./fix-requires.patch
];
nativeBuildInputs = [ pkgconfig gobjectIntrospection vala gtk-doc docbook_xsl docbook_xml_dtd_412 docbook_xml_dtd_44 ];
propagatedBuildInputs = [ glib gssdp libsoup libxml2 libuuid ];
postInstall = ''
ln -sv ${libsoup.dev}/include/libsoup-2*/libsoup $out/include
ln -sv ${libxml2.dev}/include/*/libxml $out/include
ln -sv ${gssdp}/include/*/libgssdp $out/include
'';
configureFlags = [
"--enable-gtk-doc"
];
meta = {
doCheck = true;
meta = with stdenv.lib; {
homepage = http://www.gupnp.org/;
description = "An implementation of the UPnP specification";
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.linux;
license = licenses.lgpl2Plus;
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,9 @@
--- a/gupnp-1.0.pc.in
+++ b/gupnp-1.0.pc.in
@@ -8,4 +8,5 @@
Version: @VERSION@
Libs: -L${libdir} -lgupnp-1.0
Cflags: -I${includedir}/gupnp-1.0
-Requires.private: gssdp-1.0 libxml-2.0 libsoup-2.4 @UUID_LIBS@
+Requires: glib-2.0 gobject-2.0 gssdp-1.0 libxml-2.0 libsoup-2.4
+Requires.private: @UUID_LIBS@