Message ID | 1490387931-113759-2-git-send-email-fontaine.fabrice@gmail.com |
---|---|
State | Superseded |
Headers | show |
Hi Fabrice, Le 24/03/2017 à 21:38, Fabrice Fontaine a écrit : > Rygel is a home media solution (UPnP AV MediaServer) that allows you to > easily share audio, video and pictures to other devices. > > Additionally, media player software may use Rygel to become a > MediaRenderer that may be controlled remotely by a UPnP or DLNA > Controller. > > Rygel achieves interoperability with other devices in the market by > trying to conform to the very strict requirements of DLNA and by > converting media on-the-fly to formats that client devices can handle. > > Most Rygel functionality is implemented through a plug-in mechanism. > > https://wiki.gnome.org/Projects/Rygel > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> With br-arm-full-static config used by test-pkg script rygel doesn't build statically due to conflict between libgupnp-1.0.a and libgupnp-av-1.0.a. sysroot/usr/lib/libgupnp-1.0.a(xml-util.o): In function `xml_util_get_element': build/gupnp-1.0.1/libgupnp/xml-util.c:31: multiple definition of `xml_util_get_element' host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgupnp-av-1.0.a(xml-util.o):build/gupnp-av-0.12.10/libgupnp-av/xml-util.c:86: first defined here Theses two libraries seems to define the same function (xml_util_get_element). It's probably not a rygel issue directly, any package using these two library when building statically should fail to build... Otherwise looks good. Best regards, Romain > --- > Changes v1 -> v2 (after review of Rahul Bedarkar): > - Use tab to indent help in Config.in > - Add a link to rygel website > - Update version from 0.33 to 0.34 > - Update license from LGPLv2+ to "LGPLv2.1+, CC-BY-SA 3.0 (logo)" > - Add a comment on missing COPYING.logo in archive > > package/Config.in | 1 + > package/rygel/Config.in | 51 +++++++++++++++++++++++++++++++ > package/rygel/S99rygel | 37 +++++++++++++++++++++++ > package/rygel/rygel.hash | 2 ++ > package/rygel/rygel.mk | 73 +++++++++++++++++++++++++++++++++++++++++++++ > package/rygel/rygel.service | 10 +++++++ > 6 files changed, 174 insertions(+) > create mode 100644 package/rygel/Config.in > create mode 100644 package/rygel/S99rygel > create mode 100644 package/rygel/rygel.hash > create mode 100644 package/rygel/rygel.mk > create mode 100644 package/rygel/rygel.service > > diff --git a/package/Config.in b/package/Config.in > index 612270f..05e35c6 100644 > --- a/package/Config.in > +++ b/package/Config.in > @@ -1639,6 +1639,7 @@ endif > source "package/rsync/Config.in" > source "package/rtorrent/Config.in" > source "package/rtptools/Config.in" > + source "package/rygel/Config.in" > source "package/samba4/Config.in" > source "package/sconeserver/Config.in" > source "package/ser2net/Config.in" > diff --git a/package/rygel/Config.in b/package/rygel/Config.in > new file mode 100644 > index 0000000..b3a37ea > --- /dev/null > +++ b/package/rygel/Config.in > @@ -0,0 +1,51 @@ > +config BR2_PACKAGE_RYGEL > + bool "rygel" > + depends on BR2_USE_WCHAR # gupnp-av > + depends on BR2_TOOLCHAIN_HAS_THREADS # gupnp-av > + depends on BR2_USE_MMU # gupnp-av > + select BR2_PACKAGE_GUPNP_AV > + select BR2_PACKAGE_LIBGEE > + select BR2_PACKAGE_LIBMEDIAART > + select BR2_PACKAGE_SQLITE > + help > + Rygel is a home media solution (UPnP AV MediaServer) that > + allows you to easily share audio, video and pictures to other > + devices. > + > + Additionally, media player software may use Rygel to become a > + MediaRenderer that may be controlled remotely by a UPnP or > + DLNA Controller. > + > + Rygel achieves interoperability with other devices in the > + market by trying to conform to the very strict requirements of > + DLNA and by converting media on-the-fly to formats that client > + devices can handle. > + > + Most Rygel functionality is implemented through a plug-in > + mechanism. > + > + https://wiki.gnome.org/Projects/Rygel > + > +comment "rygel needs a toolchain w/ wchar, threads" > + depends on BR2_USE_MMU > + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS > + > +if BR2_PACKAGE_RYGEL > + > +choice > + prompt "media engine" > + default BR2_PACKAGE_RYGEL_MEDIA_ENGINE_SIMPLE > + > +config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_SIMPLE > + bool "simple" > + > +config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1 > + bool "gstreamer1" > + select BR2_PACKAGE_GDK_PIXBUF > + select BR2_PACKAGE_GUPNP_DLNA > + select BR2_PACKAGE_GSTREAMER1 > + select BR2_PACKAGE_GST1_PLUGINS_BASE > + > +endchoice > + > +endif # BR2_PACKAGE_RYGEL > diff --git a/package/rygel/S99rygel b/package/rygel/S99rygel > new file mode 100644 > index 0000000..ee832e9 > --- /dev/null > +++ b/package/rygel/S99rygel > @@ -0,0 +1,37 @@ > +#!/bin/sh > + > +NAME=rygel > +PIDFILE=/var/run/$NAME.pid > +DAEMON=/usr/bin/$NAME > + > +start() { > + printf "Starting $NAME: " > + start-stop-daemon -S -q -m -b -p $PIDFILE --exec $DAEMON > + [ $? = 0 ] && echo "OK" || echo "FAIL" > +} > +stop() { > + printf "Stopping $NAME: " > + start-stop-daemon -K -q -p $PIDFILE > + [ $? = 0 ] && echo "OK" || echo "FAIL" > +} > +restart() { > + stop > + start > +} > + > +case "$1" in > + start) > + start > + ;; > + stop) > + stop > + ;; > + restart|reload) > + restart > + ;; > + *) > + echo "Usage: $0 {start|stop|restart|reload}" > + exit 1 > +esac > + > +exit $? > diff --git a/package/rygel/rygel.hash b/package/rygel/rygel.hash > new file mode 100644 > index 0000000..40a17d4 > --- /dev/null > +++ b/package/rygel/rygel.hash > @@ -0,0 +1,2 @@ > +# Hash from: http://ftp.gnome.org/pub/gnome/sources/rygel/0.34/rygel-0.34.0.sha256sum: > +sha256 fbb2d46cbe4e750df6610b4c66b2278f06d1f71a257c7903e676ccb394dad418 rygel-0.34.0.tar.xz > diff --git a/package/rygel/rygel.mk b/package/rygel/rygel.mk > new file mode 100644 > index 0000000..4b58488 > --- /dev/null > +++ b/package/rygel/rygel.mk > @@ -0,0 +1,73 @@ > +################################################################################ > +# > +# rygel > +# > +################################################################################ > + > +RYGEL_VERSION_MAJOR = 0.34 > +RYGEL_VERSION = $(RYGEL_VERSION_MAJOR).0 > +RYGEL_SOURCE = rygel-$(RYGEL_VERSION).tar.xz > +RYGEL_SITE = http://ftp.gnome.org/pub/gnome/sources/rygel/$(RYGEL_VERSION_MAJOR) > +# COPYING.logo is in the git repository but not in the archive > +RYGEL_LICENSE = LGPLv2.1+, CC-BY-SA 3.0 (logo) > +RYGEL_LICENSE_FILES = COPYING > +RYGEL_DEPENDENCIES = \ > + gupnp-av \ > + libgee \ > + libmediaart \ > + sqlite > +RYGEL_INSTALL_STAGING = YES > + > +RYGEL_CONF_OPTS += \ > + --disable-apidocs \ > + --disable-coverage \ > + --disable-example-plugins \ > + --enable-external-plugin \ > + --enable-lms-plugin \ > + --enable-mpris-plugin \ > + --enable-ruih-plugin \ > + --disable-tracker-plugin > + > +ifeq ($(BR2_PACKAGE_GDK_PIXBUF),y) > +RYGEL_DEPENDENCIES += gdk-pixbuf > +endif > + > +ifeq ($(BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1),y) > +RYGEL_CONF_OPTS += \ > + --with-media-engine=gstreamer \ > + --enable-playbin-plugin \ > + --enable-media_export-plugin \ > + --enable-gst-launch-plugin > +RYGEL_DEPENDENCIES += \ > + gupnp-dlna \ > + gst1-plugins-base \ > + gstreamer1 > +else ifeq ($(BR2_PACKAGE_RYGEL_MEDIA_ENGINE_SIMPLE),y) > +RYGEL_CONF_OPTS += \ > + --with-media-engine=simple \ > + --disable-playbin-plugin \ > + --disable-media_export-plugin \ > + --disable-gst-launch-plugin > +endif > + > +ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) > +RYGEL_CONF_OPTS += --with-ui > +RYGEL_DEPENDENCIES += libgtk3 > +else > +RYGEL_CONF_OPTS += --without-ui > +endif > + > +define RYGEL_INSTALL_INIT_SYSV > + $(INSTALL) -D -m 0755 package/rygel/S99rygel \ > + $(TARGET_DIR)/etc/init.d/S99rygel > +endef > + > +define RYGEL_INSTALL_INIT_SYSTEMD > + $(INSTALL) -D -m 644 package/rygel/rygel.service \ > + $(TARGET_DIR)/usr/lib/systemd/system/rygel.service > + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants > + ln -sf ../../../../usr/lib/systemd/system/rygel.service \ > + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/rygel.service > +endef > + > +$(eval $(autotools-package)) > diff --git a/package/rygel/rygel.service b/package/rygel/rygel.service > new file mode 100644 > index 0000000..6ae8ee7 > --- /dev/null > +++ b/package/rygel/rygel.service > @@ -0,0 +1,10 @@ > +[Unit] > +Description=Rygel DLNA server > +After=network.target > + > +[Service] > +ExecStart=/usr/bin/rygel > +Restart=always > + > +[Install] > +WantedBy=multi-user.target >
Hello, On Fri, 24 Mar 2017 21:38:51 +0100, Fabrice Fontaine wrote: > Rygel is a home media solution (UPnP AV MediaServer) that allows you to > easily share audio, video and pictures to other devices. > > Additionally, media player software may use Rygel to become a > MediaRenderer that may be controlled remotely by a UPnP or DLNA > Controller. > > Rygel achieves interoperability with other devices in the market by > trying to conform to the very strict requirements of DLNA and by > converting media on-the-fly to formats that client devices can handle. > > Most Rygel functionality is implemented through a plug-in mechanism. > > https://wiki.gnome.org/Projects/Rygel > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> The patch generally looks good, however Romain Naour reported a build failure in static linking configurations when the patch is applied, so we need this to get resolved before applying the patch. Could you investigate this static linking failure? While you're at it, you should add yourself in the DEVELOPERS file for this package. Thanks! Thomas
diff --git a/package/Config.in b/package/Config.in index 612270f..05e35c6 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1639,6 +1639,7 @@ endif source "package/rsync/Config.in" source "package/rtorrent/Config.in" source "package/rtptools/Config.in" + source "package/rygel/Config.in" source "package/samba4/Config.in" source "package/sconeserver/Config.in" source "package/ser2net/Config.in" diff --git a/package/rygel/Config.in b/package/rygel/Config.in new file mode 100644 index 0000000..b3a37ea --- /dev/null +++ b/package/rygel/Config.in @@ -0,0 +1,51 @@ +config BR2_PACKAGE_RYGEL + bool "rygel" + depends on BR2_USE_WCHAR # gupnp-av + depends on BR2_TOOLCHAIN_HAS_THREADS # gupnp-av + depends on BR2_USE_MMU # gupnp-av + select BR2_PACKAGE_GUPNP_AV + select BR2_PACKAGE_LIBGEE + select BR2_PACKAGE_LIBMEDIAART + select BR2_PACKAGE_SQLITE + help + Rygel is a home media solution (UPnP AV MediaServer) that + allows you to easily share audio, video and pictures to other + devices. + + Additionally, media player software may use Rygel to become a + MediaRenderer that may be controlled remotely by a UPnP or + DLNA Controller. + + Rygel achieves interoperability with other devices in the + market by trying to conform to the very strict requirements of + DLNA and by converting media on-the-fly to formats that client + devices can handle. + + Most Rygel functionality is implemented through a plug-in + mechanism. + + https://wiki.gnome.org/Projects/Rygel + +comment "rygel needs a toolchain w/ wchar, threads" + depends on BR2_USE_MMU + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS + +if BR2_PACKAGE_RYGEL + +choice + prompt "media engine" + default BR2_PACKAGE_RYGEL_MEDIA_ENGINE_SIMPLE + +config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_SIMPLE + bool "simple" + +config BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1 + bool "gstreamer1" + select BR2_PACKAGE_GDK_PIXBUF + select BR2_PACKAGE_GUPNP_DLNA + select BR2_PACKAGE_GSTREAMER1 + select BR2_PACKAGE_GST1_PLUGINS_BASE + +endchoice + +endif # BR2_PACKAGE_RYGEL diff --git a/package/rygel/S99rygel b/package/rygel/S99rygel new file mode 100644 index 0000000..ee832e9 --- /dev/null +++ b/package/rygel/S99rygel @@ -0,0 +1,37 @@ +#!/bin/sh + +NAME=rygel +PIDFILE=/var/run/$NAME.pid +DAEMON=/usr/bin/$NAME + +start() { + printf "Starting $NAME: " + start-stop-daemon -S -q -m -b -p $PIDFILE --exec $DAEMON + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +stop() { + printf "Stopping $NAME: " + start-stop-daemon -K -q -p $PIDFILE + [ $? = 0 ] && echo "OK" || echo "FAIL" +} +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo "Usage: $0 {start|stop|restart|reload}" + exit 1 +esac + +exit $? diff --git a/package/rygel/rygel.hash b/package/rygel/rygel.hash new file mode 100644 index 0000000..40a17d4 --- /dev/null +++ b/package/rygel/rygel.hash @@ -0,0 +1,2 @@ +# Hash from: http://ftp.gnome.org/pub/gnome/sources/rygel/0.34/rygel-0.34.0.sha256sum: +sha256 fbb2d46cbe4e750df6610b4c66b2278f06d1f71a257c7903e676ccb394dad418 rygel-0.34.0.tar.xz diff --git a/package/rygel/rygel.mk b/package/rygel/rygel.mk new file mode 100644 index 0000000..4b58488 --- /dev/null +++ b/package/rygel/rygel.mk @@ -0,0 +1,73 @@ +################################################################################ +# +# rygel +# +################################################################################ + +RYGEL_VERSION_MAJOR = 0.34 +RYGEL_VERSION = $(RYGEL_VERSION_MAJOR).0 +RYGEL_SOURCE = rygel-$(RYGEL_VERSION).tar.xz +RYGEL_SITE = http://ftp.gnome.org/pub/gnome/sources/rygel/$(RYGEL_VERSION_MAJOR) +# COPYING.logo is in the git repository but not in the archive +RYGEL_LICENSE = LGPLv2.1+, CC-BY-SA 3.0 (logo) +RYGEL_LICENSE_FILES = COPYING +RYGEL_DEPENDENCIES = \ + gupnp-av \ + libgee \ + libmediaart \ + sqlite +RYGEL_INSTALL_STAGING = YES + +RYGEL_CONF_OPTS += \ + --disable-apidocs \ + --disable-coverage \ + --disable-example-plugins \ + --enable-external-plugin \ + --enable-lms-plugin \ + --enable-mpris-plugin \ + --enable-ruih-plugin \ + --disable-tracker-plugin + +ifeq ($(BR2_PACKAGE_GDK_PIXBUF),y) +RYGEL_DEPENDENCIES += gdk-pixbuf +endif + +ifeq ($(BR2_PACKAGE_RYGEL_MEDIA_ENGINE_GSTREAMER1),y) +RYGEL_CONF_OPTS += \ + --with-media-engine=gstreamer \ + --enable-playbin-plugin \ + --enable-media_export-plugin \ + --enable-gst-launch-plugin +RYGEL_DEPENDENCIES += \ + gupnp-dlna \ + gst1-plugins-base \ + gstreamer1 +else ifeq ($(BR2_PACKAGE_RYGEL_MEDIA_ENGINE_SIMPLE),y) +RYGEL_CONF_OPTS += \ + --with-media-engine=simple \ + --disable-playbin-plugin \ + --disable-media_export-plugin \ + --disable-gst-launch-plugin +endif + +ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) +RYGEL_CONF_OPTS += --with-ui +RYGEL_DEPENDENCIES += libgtk3 +else +RYGEL_CONF_OPTS += --without-ui +endif + +define RYGEL_INSTALL_INIT_SYSV + $(INSTALL) -D -m 0755 package/rygel/S99rygel \ + $(TARGET_DIR)/etc/init.d/S99rygel +endef + +define RYGEL_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 package/rygel/rygel.service \ + $(TARGET_DIR)/usr/lib/systemd/system/rygel.service + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + ln -sf ../../../../usr/lib/systemd/system/rygel.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/rygel.service +endef + +$(eval $(autotools-package)) diff --git a/package/rygel/rygel.service b/package/rygel/rygel.service new file mode 100644 index 0000000..6ae8ee7 --- /dev/null +++ b/package/rygel/rygel.service @@ -0,0 +1,10 @@ +[Unit] +Description=Rygel DLNA server +After=network.target + +[Service] +ExecStart=/usr/bin/rygel +Restart=always + +[Install] +WantedBy=multi-user.target
Rygel is a home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices. Additionally, media player software may use Rygel to become a MediaRenderer that may be controlled remotely by a UPnP or DLNA Controller. Rygel achieves interoperability with other devices in the market by trying to conform to the very strict requirements of DLNA and by converting media on-the-fly to formats that client devices can handle. Most Rygel functionality is implemented through a plug-in mechanism. https://wiki.gnome.org/Projects/Rygel Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> --- Changes v1 -> v2 (after review of Rahul Bedarkar): - Use tab to indent help in Config.in - Add a link to rygel website - Update version from 0.33 to 0.34 - Update license from LGPLv2+ to "LGPLv2.1+, CC-BY-SA 3.0 (logo)" - Add a comment on missing COPYING.logo in archive package/Config.in | 1 + package/rygel/Config.in | 51 +++++++++++++++++++++++++++++++ package/rygel/S99rygel | 37 +++++++++++++++++++++++ package/rygel/rygel.hash | 2 ++ package/rygel/rygel.mk | 73 +++++++++++++++++++++++++++++++++++++++++++++ package/rygel/rygel.service | 10 +++++++ 6 files changed, 174 insertions(+) create mode 100644 package/rygel/Config.in create mode 100644 package/rygel/S99rygel create mode 100644 package/rygel/rygel.hash create mode 100644 package/rygel/rygel.mk create mode 100644 package/rygel/rygel.service