aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManuel Bachmann <mbc@iot.bzh>2015-10-08 11:49:18 +0000
committerManuel Bachmann <mbc@iot.bzh>2015-10-13 11:00:10 +0000
commit7d7c7b0edc3d8d806250a015f7fbf58418f04395 (patch)
treea5396b9b44ef63d676c03a4f1909f9f32a215f7d
parent97765246af0a6ddb65aaedaf585fc7cc1fcc0ccc (diff)
Provide Rygel Media Server 0.26.1
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>
-rw-r--r--meta-agl/conf/bblayers.conf.sample1
-rw-r--r--meta-agl/conf/distro/poky-agl.conf3
-rw-r--r--meta-agl/recipes-connectivity/gupnp/gupnp-dlna_0.9.4.bb19
-rw-r--r--meta-agl/recipes-connectivity/rygel/rygel_%.bbappend2
-rw-r--r--meta-agl/recipes-connectivity/rygel/rygel_0.26.1.bb58
-rw-r--r--meta-agl/recipes-devtools/libgee/libgee-0.8_0.16.1.bb26
-rw-r--r--meta-agl/recipes-ivi/packagegroups/packagegroup-agl-ivi-connectivity.bb2
-rw-r--r--meta-agl/recipes-ivi/packagegroups/packagegroup-agl-ivi-multimedia.bb2
-rw-r--r--meta-agl/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb7
-rw-r--r--meta-agl/recipes-support/libmediaart/libmediaart.inc14
10 files changed, 134 insertions, 0 deletions
diff --git a/meta-agl/conf/bblayers.conf.sample b/meta-agl/conf/bblayers.conf.sample
index ed6fe367c..e5e54431c 100644
--- a/meta-agl/conf/bblayers.conf.sample
+++ b/meta-agl/conf/bblayers.conf.sample
@@ -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 \
diff --git a/meta-agl/conf/distro/poky-agl.conf b/meta-agl/conf/distro/poky-agl.conf
index 8500784c8..0f5a1919a 100644
--- a/meta-agl/conf/distro/poky-agl.conf
+++ b/meta-agl/conf/distro/poky-agl.conf
@@ -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
index 000000000..d55e10825
--- /dev/null
+++ b/meta-agl/recipes-connectivity/gupnp/gupnp-dlna_0.9.4.bb
@@ -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
index 000000000..56ccbd936
--- /dev/null
+++ b/meta-agl/recipes-connectivity/rygel/rygel_%.bbappend
@@ -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
index 000000000..205e900e2
--- /dev/null
+++ b/meta-agl/recipes-connectivity/rygel/rygel_0.26.1.bb
@@ -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
index 000000000..3cf16e309
--- /dev/null
+++ b/meta-agl/recipes-devtools/libgee/libgee-0.8_0.16.1.bb
@@ -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}"
diff --git a/meta-agl/recipes-ivi/packagegroups/packagegroup-agl-ivi-connectivity.bb b/meta-agl/recipes-ivi/packagegroups/packagegroup-agl-ivi-connectivity.bb
index 0b925c096..c2c1d72a9 100644
--- a/meta-agl/recipes-ivi/packagegroups/packagegroup-agl-ivi-connectivity.bb
+++ b/meta-agl/recipes-ivi/packagegroups/packagegroup-agl-ivi-connectivity.bb
@@ -11,4 +11,6 @@ PACKAGES = "\
ALLOW_EMPTY_${PN} = "1"
RDEPENDS_${PN} += "\
+ rygel \
+ rygel-plugin-media-export \
"
diff --git a/meta-agl/recipes-ivi/packagegroups/packagegroup-agl-ivi-multimedia.bb b/meta-agl/recipes-ivi/packagegroups/packagegroup-agl-ivi-multimedia.bb
index 78508eed8..b91b21a4e 100644
--- a/meta-agl/recipes-ivi/packagegroups/packagegroup-agl-ivi-multimedia.bb
+++ b/meta-agl/recipes-ivi/packagegroups/packagegroup-agl-ivi-multimedia.bb
@@ -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
index 000000000..44f135a21
--- /dev/null
+++ b/meta-agl/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb
@@ -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
index 000000000..a117e9ba5
--- /dev/null
+++ b/meta-agl/recipes-support/libmediaart/libmediaart.inc
@@ -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"