Provide Rygel Media Server 0.26.1 23/4123/4
authorManuel Bachmann <mbc@iot.bzh>
Thu, 8 Oct 2015 11:49:18 +0000 (11:49 +0000)
committerManuel Bachmann <mbc@iot.bzh>
Tue, 13 Oct 2015 11:00:10 +0000 (11:00 +0000)
Rygel is a UPnP/DLNA audio-video media server, able to
share media files with devices through the network, and
also providing logic requird by DLNA players.

Rygel is best known as Tizen IVI's former Media Server, and
is also a base block for multimedia interfaces such as
GENIVI Media Manager.

We are here backporting recipes recently submitted to the
officiel "meta-openembedded" layer, most notably :

- libmediaart-2.0 : http://lists.openembedded.org/pipermail
/openembedded-devel/2015-October/103671.html
- gupnp-dlna : http://lists.openembedded.org/pipermail/
openembedded-devel/2015-October/103672.html
- libgee-0.8 : http://lists.openembedded.org/pipermail/
openembedded-devel/2015-March/100576.html
- rygel : http://lists.openembedded.org/pipermail/
openembedded-devel/2015-October/103673.html

(with some modifications - disabling gtk+3 e.g.)

and building Rygel by default via packagegroups, including
royalty-free codecs needed for basic functionality.

Change-Id: I017ca437a9be1c0b2cf6f3085da13efce90928c7
Signed-off-by: Manuel Bachmann <mbc@iot.bzh>
meta-agl/conf/bblayers.conf.sample
meta-agl/conf/distro/poky-agl.conf
meta-agl/recipes-connectivity/gupnp/gupnp-dlna_0.9.4.bb [new file with mode: 0644]
meta-agl/recipes-connectivity/rygel/rygel_%.bbappend [new file with mode: 0644]
meta-agl/recipes-connectivity/rygel/rygel_0.26.1.bb [new file with mode: 0644]
meta-agl/recipes-devtools/libgee/libgee-0.8_0.16.1.bb [new file with mode: 0644]
meta-agl/recipes-ivi/packagegroups/packagegroup-agl-ivi-connectivity.bb
meta-agl/recipes-ivi/packagegroups/packagegroup-agl-ivi-multimedia.bb
meta-agl/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb [new file with mode: 0644]
meta-agl/recipes-support/libmediaart/libmediaart.inc [new file with mode: 0644]

index ed6fe36..e5e5443 100644 (file)
@@ -13,6 +13,7 @@ BBLAYERS ?= " \
   ##OEROOT##/../meta-agl/meta-agl \
   ##OEROOT##/../meta-agl/meta-agl-bsp \
   ##OEROOT##/../meta-openembedded/meta-oe \
+  ##OEROOT##/../meta-openembedded/meta-multimedia \
   "
 BBLAYERS_NON_REMOVABLE ?= " \
   ##OEROOT##/meta \
index 8500784..0f5a191 100644 (file)
@@ -46,6 +46,9 @@ PREFERRED_VERSION_gstreamer1.0-plugins-ugly ?= "1.4.%"
 PREFERRED_VERSION_gstreamer1.0-libav        ?= "1.4.%"
 PREFERRED_VERSION_gstreamer1.0-omx          ?= "1.2.%"
 
+# Prefer the GStreamer-enabled version of GUPnP-DLNA
+PREFERRED_VERSION_gupnp-dlna                ?= "0.9.4%"
+
 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
 SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}"
 
diff --git a/meta-agl/recipes-connectivity/gupnp/gupnp-dlna_0.9.4.bb b/meta-agl/recipes-connectivity/gupnp/gupnp-dlna_0.9.4.bb
new file mode 100644 (file)
index 0000000..d55e108
--- /dev/null
@@ -0,0 +1,19 @@
+SUMMARY = "Helpers for AV applications using DLNA"
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+                    file://libgupnp-dlna/gupnp-dlna-profile.h;beginline=1;endline=22;md5=1b85459f65cb1e73a885ca137aab6274"
+
+DEPENDS = "libxml2 glib-2.0"
+
+SRC_URI = "http://download.gnome.org/sources/${BPN}/0.9/${BPN}-${PV}.tar.xz"
+SRC_URI[md5sum] = "f93665e535a512e4d515a86311435cb6"
+SRC_URI[sha256sum] = "69969713f36c0e815fbbbcfdfb3ad9bd447cfd10d0fd86227d82dfd8edb6c807"
+
+inherit autotools pkgconfig
+
+require recipes-connectivity/gupnp/no-vala.inc
+
+PACKAGECONFIG ?= "gstreamer"
+PACKAGECONFIG[gstreamer] = "--enable-gstreamer-metadata-backend,--disable-gstreamer-metadata-backend,gstreamer1.0 gstreamer1.0-plugins-base"
+
+FILES_${PN} += "${datadir}/gupnp-dlna-2.0/dlna-profiles"
diff --git a/meta-agl/recipes-connectivity/rygel/rygel_%.bbappend b/meta-agl/recipes-connectivity/rygel/rygel_%.bbappend
new file mode 100644 (file)
index 0000000..56ccbd9
--- /dev/null
@@ -0,0 +1,2 @@
+# Disable everything but the media-export plugin
+PACKAGECONFIG = "media-export"
diff --git a/meta-agl/recipes-connectivity/rygel/rygel_0.26.1.bb b/meta-agl/recipes-connectivity/rygel/rygel_0.26.1.bb
new file mode 100644 (file)
index 0000000..205e900
--- /dev/null
@@ -0,0 +1,58 @@
+SUMMARY = "A UPnP AV media server and renderer"
+DESCRIPTION = "Rygel is a home media solution (UPnP AV MediaServer) that \
+allow 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."
+HOMEPAGE = "http://live.gnome.org/Rygel"
+
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
+                    file://src/rygel/rygel-main.vala;endline=25;md5=a4cce4d389da1c1638fe68d07ae9d811"
+
+DEPENDS = "libxml2 glib-2.0 gssdp gupnp gupnp-av gupnp-dlna gstreamer1.0 gstreamer1.0-plugins-base ossp-uuid libgee-0.8 libsoup-2.4 libmediaart-2.0"
+RDEPENDS_${PN} = "gstreamer1.0-plugins-base-playback shared-mime-info"
+
+GNOME_COMPRESS_TYPE = "xz"
+SRC_URI[archive.md5sum] = "f182d54913a528bb5b4fb2f291aca0fc"
+SRC_URI[archive.sha256sum] = "390740609e34399b886ddb9a8f7eca25055ad72048dfdd869edf02999b1e1d8f"
+
+inherit gnomebase vala
+
+EXTRA_OECONF = "--disable-introspection --disable-tracker-plugin --with-media-engine=gstreamer"
+
+PACKAGECONFIG ?= "external mpris mediathek ruih media-export gst-launch gtk+3"
+PACKAGECONFIG[external] = "--enable-external-plugin,--disable-external-plugin"
+PACKAGECONFIG[mpris] = "--enable-mpris-plugin,--disable-mpris-plugin"
+PACKAGECONFIG[mediathek] = "--enable-mediathek-plugin,--disable-mediathek-plugin"
+PACKAGECONFIG[ruih] = "--enable-ruih-plugin,--disable-ruih-plugin"
+PACKAGECONFIG[media-export] = "--enable-media-export-plugin,--disable-media-export-plugin,sqlite3"
+PACKAGECONFIG[gst-launch] = "--enable-gst-launch-plugin,--disable-gst-launch-plugin"
+PACKAGECONFIG[gtk+3] = ",--without-ui,gtk+3"
+
+LIBV = "2.6"
+
+do_install_append() {
+       # Remove .la files for loadable modules
+       rm -f ${D}/${libdir}/rygel-${LIBV}/engines/*.la
+       rm -f ${D}/${libdir}/rygel-${LIBV}/plugins/*.la
+}
+
+FILES_${PN} += "${libdir}/rygel-${LIBV}/engines ${datadir}/dbus-1 ${datadir}/icons"
+FILES_${PN}-dbg += "${libdir}/rygel-${LIBV}/engines/.debug ${libdir}/rygel-${LIBV}/plugins/.debug"
+
+PACKAGES += "${PN}-meta"
+ALLOW_EMPTY_${PN}-meta = "1"
+
+PACKAGES_DYNAMIC = "${PN}-plugin-*"
+
+python populate_packages_prepend () {
+    rygel_libdir = d.expand('${libdir}/rygel-${LIBV}')
+    postinst = d.getVar('plugin_postinst', True)
+    pkgs = []
+
+    pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), 'librygel-(.*)\.so$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}'))
+    pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), '(.*)\.plugin$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}'))
+
+    metapkg = d.getVar('PN', True) + '-meta'
+    d.setVar('RDEPENDS_' + metapkg, ' '.join(pkgs))
+}
diff --git a/meta-agl/recipes-devtools/libgee/libgee-0.8_0.16.1.bb b/meta-agl/recipes-devtools/libgee/libgee-0.8_0.16.1.bb
new file mode 100644 (file)
index 0000000..3cf16e3
--- /dev/null
@@ -0,0 +1,26 @@
+DESCRIPTION = "libgee is a collection library providing GObject-based interfaces \
+and classes for commonly used data structures."
+HOMEPAGE = "http://live.gnome.org/Libgee"
+SECTION = "libs"
+DEPENDS = "glib-2.0 gobject-introspection-stub"
+
+BBCLASSEXTEND = "native"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+PE = "1"
+
+inherit autotools vala pkgconfig
+do_configure_prepend() {
+    MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
+    for i in ${MACROS}; do
+        rm -f m4/$i
+    done
+}
+
+SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}"
+SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgee/${SHRT_VER}/libgee-${PV}.tar.xz"
+SRC_URI[md5sum] = "d30cf203784431b0fdc3216b1acd999c"
+SRC_URI[sha256sum] = "d95f8ea8e78f843c71b1958fa2fb445e4a325e4821ec23d0d5108d8170e564a5"
+
+S = "${WORKDIR}/libgee-${PV}"
index 78508ee..b91b21a 100644 (file)
@@ -11,4 +11,6 @@ PACKAGES = "\
 ALLOW_EMPTY_${PN} = "1"
 
 RDEPENDS_${PN} += "\
+    gstreamer1.0-plugins-base-meta \
+    gstreamer1.0-plugins-good-meta \
     "
diff --git a/meta-agl/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb b/meta-agl/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb
new file mode 100644 (file)
index 0000000..44f135a
--- /dev/null
@@ -0,0 +1,7 @@
+require libmediaart.inc
+
+SRC_URI = "${GNOME_MIRROR}/libmediaart/1.9/libmediaart-${PV}.tar.xz"
+SRC_URI[md5sum] = "0b65d64398d2f3dff89534c9dfffab4f"
+SRC_URI[sha256sum] = "94668adb29d4dc3115b0fd105942ebd5ca6f5f9dbb2afa8a191a73a747dd506f"
+
+S = "${WORKDIR}/libmediaart-${PV}"
diff --git a/meta-agl/recipes-support/libmediaart/libmediaart.inc b/meta-agl/recipes-support/libmediaart/libmediaart.inc
new file mode 100644 (file)
index 0000000..a117e9b
--- /dev/null
@@ -0,0 +1,14 @@
+SUMMARY = "Library tasked with managing, extracting and handling media art caches"
+
+LICENSE = "LGPLv2+ & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \
+                    file://libmediaart/extract.c;endline=18;md5=dff2b6328ab067b5baadc135f9876c36 \
+                    file://tests/mediaarttest.c;endline=18;md5=067106eaa1f7a9d918759a096667f18e"
+
+DEPENDS = "glib-2.0 gdk-pixbuf"
+
+GNOME_COMPRESS_TYPE = "xz"
+
+inherit gnomebase gtk-doc
+
+EXTRA_OECONF = "--disable-introspection --disable-qt --enable-gdkpixbuf"