Patchwork [PATCHv2] gst-plugins: partially sync packaging with OE .dev

login
register
mail settings
Submitter Koen Kooi
Date July 28, 2011, 9:44 a.m.
Message ID <1311846297-30202-1-git-send-email-koen@dominion.thruhere.net>
Download mbox | patch
Permalink /patch/8775/
State New, archived
Headers show

Comments

Koen Kooi - July 28, 2011, 9:44 a.m.
Gst-plugins get 2 extra packages:

${PN}-apps: helper apps in ${bindir}
${PN}-meta: meta package that will drag in all plugins, libs and apps ${PN} generates

And all libs are split out and run through debian style renaming if enabled.

The packaging include was split out to be reused by external plugins (e.g. gst-plugin-gl, gst-fluendo-*).

The new package list looks like:

libgstapp-0.10-0_0.10.32-r1_armv7a.ipk
libgstfft-0.10-0_0.10.32-r1_armv7a.ipk
[..]
gst-plugins-base-videorate_0.10.32-r1_armv7a.ipk
gst-plugins-base-videoscale_0.10.32-r1_armv7a.ipk
[..]
gst-plugins-base-meta_0.10.32-r1_armv7a.ipk
[..]
gst-plugins-base-apps_0.10.32-r1_armv7a.ipk

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---

Changes since v1:
	* keep gst-plugin-{base,good,base,ugly}-foo naming, this will get addressed in a follow-up patch

 .../gstreamer/gst-plugins-bad_0.10.21.bb           |    2 +-
 .../gstreamer/gst-plugins-base_0.10.32.bb          |    2 +-
 .../gstreamer/gst-plugins-good_0.10.28.bb          |    2 +-
 .../gstreamer/gst-plugins-package.inc              |   34 ++++++++++++++++++++
 .../gstreamer/gst-plugins-ugly_0.10.17.bb          |    2 +-
 meta/recipes-multimedia/gstreamer/gst-plugins.inc  |   18 +---------
 6 files changed, 40 insertions(+), 20 deletions(-)
 create mode 100644 meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
Koen Kooi - July 28, 2011, 10:14 a.m.
Op 28 jul. 2011, om 11:49 heeft Phil Blundell het volgende geschreven:

> On Thu, 2011-07-28 at 11:44 +0200, Koen Kooi wrote:
>> +ALLOW_EMPTY = "1"
> 
> Is that necessary?  You seem to be setting ALLOW_EMPTY_${PN}-meta=1 in
> your python code anyway.

In OE classic that was to keep ${PN} alive after all libs and apps were removed, I'm not sure we need it in OE-core.

regards,

Koen
Saul Wold - Aug. 4, 2011, 2:37 p.m.
On 07/28/2011 03:14 AM, Koen Kooi wrote:
>
> Op 28 jul. 2011, om 11:49 heeft Phil Blundell het volgende geschreven:
>
>> On Thu, 2011-07-28 at 11:44 +0200, Koen Kooi wrote:
>>> +ALLOW_EMPTY = "1"
>>
>> Is that necessary?  You seem to be setting ALLOW_EMPTY_${PN}-meta=1 in
>> your python code anyway.
>
> In OE classic that was to keep ${PN} alive after all libs and apps were removed, I'm not sure we need it in OE-core.
>
Koen,

Are you re-submitting a v2 pf this patch or do you still want it to go 
as is?

Sau!

> regards,
>
> Koen
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
Koen Kooi - Aug. 4, 2011, 3:41 p.m.
Op 4 aug 2011, om 16:37 heeft Saul Wold het volgende geschreven:

> On 07/28/2011 03:14 AM, Koen Kooi wrote:
>>
>> Op 28 jul. 2011, om 11:49 heeft Phil Blundell het volgende  
>> geschreven:
>>
>>> On Thu, 2011-07-28 at 11:44 +0200, Koen Kooi wrote:
>>>> +ALLOW_EMPTY = "1"
>>>
>>> Is that necessary?  You seem to be setting ALLOW_EMPTY_${PN}- 
>>> meta=1 in
>>> your python code anyway.
>>
>> In OE classic that was to keep ${PN} alive after all libs and apps  
>> were removed, I'm not sure we need it in OE-core.
>>
> Koen,
>
> Are you re-submitting a v2 pf this patch or do you still want it to  
> go as is?

As is would be fine for me.
Saul Wold - Aug. 10, 2011, 11:27 p.m.
On 07/28/2011 02:44 AM, Koen Kooi wrote:
> Gst-plugins get 2 extra packages:
>
> ${PN}-apps: helper apps in ${bindir}
> ${PN}-meta: meta package that will drag in all plugins, libs and apps ${PN} generates
>
> And all libs are split out and run through debian style renaming if enabled.
>
> The packaging include was split out to be reused by external plugins (e.g. gst-plugin-gl, gst-fluendo-*).
>
> The new package list looks like:
>
> libgstapp-0.10-0_0.10.32-r1_armv7a.ipk
> libgstfft-0.10-0_0.10.32-r1_armv7a.ipk
> [..]
> gst-plugins-base-videorate_0.10.32-r1_armv7a.ipk
> gst-plugins-base-videoscale_0.10.32-r1_armv7a.ipk
> [..]
> gst-plugins-base-meta_0.10.32-r1_armv7a.ipk
> [..]
> gst-plugins-base-apps_0.10.32-r1_armv7a.ipk
>
> Signed-off-by: Koen Kooi<koen@dominion.thruhere.net>
> ---
>
> Changes since v1:
> 	* keep gst-plugin-{base,good,base,ugly}-foo naming, this will get addressed in a follow-up patch
>
>   .../gstreamer/gst-plugins-bad_0.10.21.bb           |    2 +-
>   .../gstreamer/gst-plugins-base_0.10.32.bb          |    2 +-
>   .../gstreamer/gst-plugins-good_0.10.28.bb          |    2 +-
>   .../gstreamer/gst-plugins-package.inc              |   34 ++++++++++++++++++++
>   .../gstreamer/gst-plugins-ugly_0.10.17.bb          |    2 +-
>   meta/recipes-multimedia/gstreamer/gst-plugins.inc  |   18 +---------
>   6 files changed, 40 insertions(+), 20 deletions(-)
>   create mode 100644 meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
>
> diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.21.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.21.bb
> index 2b8a89c..a7023e3 100644
> --- a/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.21.bb
> +++ b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.21.bb
> @@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
>
>   DEPENDS += "gst-plugins-base libmusicbrainz tremor librsvg"
>
> -PR = "r0"
> +PR = "r1"
>
>   inherit gettext
>
> diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.32.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.32.bb
> index a9e2b52..82d9afc 100644
> --- a/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.32.bb
> +++ b/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.32.bb
> @@ -13,7 +13,7 @@ SRC_URI += " file://gst-plugins-base-tremor.patch"
>   SRC_URI[md5sum] = "2920af2b3162f3d9fbaa7fabc8ed4d38"
>   SRC_URI[sha256sum] = "e9aabfac83f6480896da0686e9c911989f896fbad634821b7771ed84a446172b"
>
> -PR = "r0"
> +PR = "r1"
>
>   inherit gettext
>
> diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.28.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.28.bb
> index b9648e3..cca63e9 100644
> --- a/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.28.bb
> +++ b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.28.bb
> @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
>
>   DEPENDS += "gst-plugins-base gconf cairo jpeg libpng gtk+ zlib libid3tag flac \
>   	    speex libsoup-2.4"
> -PR = "r0"
> +PR = "r1"
>
>   inherit gettext
>
> diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
> new file mode 100644
> index 0000000..796df14
> --- /dev/null
> +++ b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
> @@ -0,0 +1,34 @@
> +LIBV = "0.10"
> +
> +python populate_packages_prepend () {
> +	gst_libdir = bb.data.expand('${libdir}/gstreamer-${LIBV}', d)
> +	postinst = bb.data.getVar('plugin_postinst', d, 1)
> +	glibdir = bb.data.expand('${libdir}', d)
> +
> +	do_split_packages(d, glibdir, '^lib(.*)\.so\.*', 'lib%s', 'gstreamer %s library', extra_depends='', allow_links=True)
> +	do_split_packages(d, gst_libdir, 'libgst(.*)\.so$', bb.data.expand('${PN}-%s', d), 'GStreamer plugin for %s', postinst=postinst, extra_depends=bb.data.expand('${PN}',d))
> +	do_split_packages(d, gst_libdir, 'libgst(.*)\.l?a$', bb.data.expand('${PN}-%s-dev', d), 'GStreamer plugin for %s (development files)', extra_depends=bb.data.expand('${PN}-dev',d))
> +	
> +	pn = bb.data.getVar('PN', d, 1)
> +	metapkg =  pn + '-meta'
> +	bb.data.setVar('ALLOW_EMPTY_' + metapkg, "1", d)
> +	bb.data.setVar('FILES_' + metapkg, "", d)
> +	blacklist = [ pn + '-locale', pn + '-dev', pn + '-dbg', pn + '-doc' ]
> +	metapkg_rdepends = []
> +	packages = bb.data.getVar('PACKAGES', d, 1).split()
> +	for pkg in packages[1:]:
> +		if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.count('locale') and not pkg.count('-static'):
> +			metapkg_rdepends.append(pkg)
> +	bb.data.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends), d)
> +	bb.data.setVar('DESCRIPTION_' + metapkg, pn + ' meta package', d)
> +}
> +
> +ALLOW_EMPTY = "1"
> +
> +PACKAGES += "${PN}-apps ${PN}-meta"
> +FILES_${PN}-apps = "${bindir}"
> +
> +FILES_${PN} = "${datadir}/gstreamer-${LIBV}"
> +FILES_${PN}-dbg += "${libdir}/gstreamer-${LIBV}/.debug"
> +
> +
> diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.17.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.17.bb
> index 76e00a5..2a79c2a 100644
> --- a/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.17.bb
> +++ b/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.17.bb
> @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
>                       file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9"
>
>   DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame"
> -PR = "r0"
> +PR = "r1"
>
>   inherit gettext
>
> diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins.inc b/meta/recipes-multimedia/gstreamer/gst-plugins.inc
> index ad6c3a4..b23d399 100644
> --- a/meta/recipes-multimedia/gstreamer/gst-plugins.inc
> +++ b/meta/recipes-multimedia/gstreamer/gst-plugins.inc
> @@ -14,13 +14,6 @@ EXTRA_OECONF = "--disable-valgrind --disable-debug --disable-examples "
>
>   acpaths = "-I ${S}/common/m4 -I ${S}/m4"
>
> -LIBV = "0.10"
> -#FILES_${PN} += "${libdir}/gstreamer-${LIBV}/*.so"
> -#FILES_${PN}-dev += "${libdir}/gstreamer-${LIBV}/*.la ${libdir}/gstreamer-${LIBV}/*.a"
> -FILES_${PN}-dbg += "${libdir}/gstreamer-${LIBV}/.debug"
> -
> -PACKAGES_DYNAMIC = "${PN}-*"
> -
>   # orc.m4 calls pkg-config ----variable=orcc orc-0.4 to get the path to orcc,
>   # resulting in /usr/bin/orcc. Force it to use the staged orcc.
>   do_configure_append() {
> @@ -29,14 +22,7 @@ do_configure_append() {
>    	done
>   }
>
> -python populate_packages_prepend () {
> -	gst_libdir = bb.data.expand('${libdir}/gstreamer-${LIBV}', d)
> -	postinst = bb.data.getVar('plugin_postinst', d, 1)
> +require gst-plugins-package.inc
>
> -#	Can't package separate debug packages yet
> -#	do_split_packages(d, gst_libdir, '\.debug/libgst(.*)\.so$', bb.data.expand('${PN}-%s-dbg', d), 'GStreamer plugin for %s (with debugging symbols)', recursive=True, extra_depends=bb.data.expand('${PN}-dbg', d), match_path=True)
> -	do_split_packages(d, gst_libdir, 'libgst(.*)\.so$', bb.data.expand('${PN}-%s', d), 'GStreamer plugin for %s', postinst=postinst, extra_depends=bb.data.expand('${PN}',d))
> -	do_split_packages(d, gst_libdir, 'libgst(.*)\.l?a$', bb.data.expand('${PN}-%s-dev', d), 'GStreamer plugin for %s (development files)', extra_depends=bb.data.expand('${PN}-dev',d))
> -}
> +PACKAGES_DYNAMIC = "${PN}-*"
>
> -ALLOW_EMPTY = "1"

Merged to OE-Core

Thanks
	Sau!

Patch

diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.21.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.21.bb
index 2b8a89c..a7023e3 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.21.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.21.bb
@@ -9,7 +9,7 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
 
 DEPENDS += "gst-plugins-base libmusicbrainz tremor librsvg"
 
-PR = "r0"
+PR = "r1"
 
 inherit gettext
 
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.32.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.32.bb
index a9e2b52..82d9afc 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.32.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.32.bb
@@ -13,7 +13,7 @@  SRC_URI += " file://gst-plugins-base-tremor.patch"
 SRC_URI[md5sum] = "2920af2b3162f3d9fbaa7fabc8ed4d38"
 SRC_URI[sha256sum] = "e9aabfac83f6480896da0686e9c911989f896fbad634821b7771ed84a446172b"
 
-PR = "r0"
+PR = "r1"
 
 inherit gettext
 
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.28.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.28.bb
index b9648e3..cca63e9 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.28.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.28.bb
@@ -7,7 +7,7 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
 
 DEPENDS += "gst-plugins-base gconf cairo jpeg libpng gtk+ zlib libid3tag flac \
 	    speex libsoup-2.4"
-PR = "r0"
+PR = "r1"
 
 inherit gettext
 
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
new file mode 100644
index 0000000..796df14
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
@@ -0,0 +1,34 @@ 
+LIBV = "0.10"
+
+python populate_packages_prepend () {
+	gst_libdir = bb.data.expand('${libdir}/gstreamer-${LIBV}', d)
+	postinst = bb.data.getVar('plugin_postinst', d, 1)
+	glibdir = bb.data.expand('${libdir}', d)
+
+	do_split_packages(d, glibdir, '^lib(.*)\.so\.*', 'lib%s', 'gstreamer %s library', extra_depends='', allow_links=True)
+	do_split_packages(d, gst_libdir, 'libgst(.*)\.so$', bb.data.expand('${PN}-%s', d), 'GStreamer plugin for %s', postinst=postinst, extra_depends=bb.data.expand('${PN}',d))
+	do_split_packages(d, gst_libdir, 'libgst(.*)\.l?a$', bb.data.expand('${PN}-%s-dev', d), 'GStreamer plugin for %s (development files)', extra_depends=bb.data.expand('${PN}-dev',d))
+	
+	pn = bb.data.getVar('PN', d, 1)
+	metapkg =  pn + '-meta'
+	bb.data.setVar('ALLOW_EMPTY_' + metapkg, "1", d)
+	bb.data.setVar('FILES_' + metapkg, "", d)
+	blacklist = [ pn + '-locale', pn + '-dev', pn + '-dbg', pn + '-doc' ]
+	metapkg_rdepends = []
+	packages = bb.data.getVar('PACKAGES', d, 1).split()
+	for pkg in packages[1:]:
+		if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.count('locale') and not pkg.count('-static'):
+			metapkg_rdepends.append(pkg)
+	bb.data.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends), d)
+	bb.data.setVar('DESCRIPTION_' + metapkg, pn + ' meta package', d)
+}
+
+ALLOW_EMPTY = "1"
+
+PACKAGES += "${PN}-apps ${PN}-meta"
+FILES_${PN}-apps = "${bindir}"
+
+FILES_${PN} = "${datadir}/gstreamer-${LIBV}"
+FILES_${PN}-dbg += "${libdir}/gstreamer-${LIBV}/.debug"
+
+
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.17.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.17.bb
index 76e00a5..2a79c2a 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.17.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.17.bb
@@ -7,7 +7,7 @@  LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
                     file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9"
 
 DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame"
-PR = "r0"
+PR = "r1"
 
 inherit gettext
 
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins.inc b/meta/recipes-multimedia/gstreamer/gst-plugins.inc
index ad6c3a4..b23d399 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins.inc
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins.inc
@@ -14,13 +14,6 @@  EXTRA_OECONF = "--disable-valgrind --disable-debug --disable-examples "
 
 acpaths = "-I ${S}/common/m4 -I ${S}/m4"
 
-LIBV = "0.10"
-#FILES_${PN} += "${libdir}/gstreamer-${LIBV}/*.so"
-#FILES_${PN}-dev += "${libdir}/gstreamer-${LIBV}/*.la ${libdir}/gstreamer-${LIBV}/*.a"
-FILES_${PN}-dbg += "${libdir}/gstreamer-${LIBV}/.debug"
-
-PACKAGES_DYNAMIC = "${PN}-*"
-
 # orc.m4 calls pkg-config ----variable=orcc orc-0.4 to get the path to orcc,
 # resulting in /usr/bin/orcc. Force it to use the staged orcc.
 do_configure_append() {
@@ -29,14 +22,7 @@  do_configure_append() {
  	done
 }
 
-python populate_packages_prepend () {
-	gst_libdir = bb.data.expand('${libdir}/gstreamer-${LIBV}', d)
-	postinst = bb.data.getVar('plugin_postinst', d, 1)
+require gst-plugins-package.inc
 
-#	Can't package separate debug packages yet
-#	do_split_packages(d, gst_libdir, '\.debug/libgst(.*)\.so$', bb.data.expand('${PN}-%s-dbg', d), 'GStreamer plugin for %s (with debugging symbols)', recursive=True, extra_depends=bb.data.expand('${PN}-dbg', d), match_path=True)
-	do_split_packages(d, gst_libdir, 'libgst(.*)\.so$', bb.data.expand('${PN}-%s', d), 'GStreamer plugin for %s', postinst=postinst, extra_depends=bb.data.expand('${PN}',d))
-	do_split_packages(d, gst_libdir, 'libgst(.*)\.l?a$', bb.data.expand('${PN}-%s-dev', d), 'GStreamer plugin for %s (development files)', extra_depends=bb.data.expand('${PN}-dev',d))
-}
+PACKAGES_DYNAMIC = "${PN}-*"
 
-ALLOW_EMPTY = "1"