| Submitter | Joshua Lock |
|---|---|
| Date | Nov. 9, 2011, 12:53 a.m. |
| Message ID | <dd949a69e2e7c9379caf5bb6162259c4f2584ea5.1320799787.git.josh@linux.intel.com> |
| Download | mbox | patch |
| Permalink | /patch/14585/ |
| State | New |
| Headers | show |
Comments
Op 9 nov. 2011, om 01:53 heeft Joshua Lock het volgende geschreven: > This patch pulls in the gnome related classes from oe-core which > adds extra packaging rules and functionality whilst modularising things > so that one can get a subset of gnome functionality without adding a lot > of extra dependencies. > > These aren't an exact copy of the classes from meta-openembedded, notable > differences are: > * gnome.bbclass - I dropped the BBCLASSEXTEND It looks that will break a number of things in meta-oe, why was it dropped? > * mime.bbclass: > - updated coding style > - use which to find update-mime-database program rather than hard coded > - fix typo in populate_packges_append such that it's actually called Will it drag in the shared-mime-info-data package you created automatically now? Also, do you have matching patches to update meta-oe now that these things are heading into oe-core? regards, Koen
On Wed, 2011-11-09 at 10:27 +0100, Koen Kooi wrote: > Op 9 nov. 2011, om 01:53 heeft Joshua Lock het volgende geschreven: > > > This patch pulls in the gnome related classes from oe-core which > > adds extra packaging rules and functionality whilst modularising things > > so that one can get a subset of gnome functionality without adding a lot > > of extra dependencies. > > > > These aren't an exact copy of the classes from meta-openembedded, notable > > differences are: > > * gnome.bbclass - I dropped the BBCLASSEXTEND > > It looks that will break a number of things in meta-oe, why was it dropped? Unconditionally BBCLASSEXTENDing everything gnome is a great way to hack around build issues and create a convoluted dependency mess that isn't really required. I'd much rather we try and minimise the amount of -native dependencies to those actually needed. Comparing our builds against other systems its becoming clear our convoluted dependency trees are one of the areas we don't do as well and it hurts performance :(. Cheers, Richard
Op 9 nov. 2011, om 10:37 heeft Richard Purdie het volgende geschreven: > On Wed, 2011-11-09 at 10:27 +0100, Koen Kooi wrote: >> Op 9 nov. 2011, om 01:53 heeft Joshua Lock het volgende geschreven: >> >>> This patch pulls in the gnome related classes from oe-core which >>> adds extra packaging rules and functionality whilst modularising things >>> so that one can get a subset of gnome functionality without adding a lot >>> of extra dependencies. >>> >>> These aren't an exact copy of the classes from meta-openembedded, notable >>> differences are: >>> * gnome.bbclass - I dropped the BBCLASSEXTEND >> >> It looks that will break a number of things in meta-oe, why was it dropped? > > Unconditionally BBCLASSEXTENDing everything gnome is a great way to hack > around build issues and create a convoluted dependency mess that isn't > really required. I'd much rather we try and minimise the amount of > -native dependencies to those actually needed. > > Comparing our builds against other systems its becoming clear our > convoluted dependency trees are one of the areas we don't do as well and > it hurts performance :(. The list of -native needed in meta-gnome: bison-native cairo-native docbook-utils-native flex-native gconf-native gdk-pixbuf-native glib-2.0-native gnome-doc-utils-native gobject-introspection-native gtk-doc-native icon-naming-utils-native intltool-native libffi-native libidl-native libxml-parser-perl-native orbit2-native pango-native perl-native popt-native python-native regards, Koen
On Wed, 2011-11-09 at 11:27 +0100, Koen Kooi wrote: > Op 9 nov. 2011, om 10:37 heeft Richard Purdie het volgende geschreven: > > > On Wed, 2011-11-09 at 10:27 +0100, Koen Kooi wrote: > >> Op 9 nov. 2011, om 01:53 heeft Joshua Lock het volgende geschreven: > >> > >>> This patch pulls in the gnome related classes from oe-core which > >>> adds extra packaging rules and functionality whilst modularising things > >>> so that one can get a subset of gnome functionality without adding a lot > >>> of extra dependencies. > >>> > >>> These aren't an exact copy of the classes from meta-openembedded, notable > >>> differences are: > >>> * gnome.bbclass - I dropped the BBCLASSEXTEND > >> > >> It looks that will break a number of things in meta-oe, why was it dropped? > > > > Unconditionally BBCLASSEXTENDing everything gnome is a great way to hack > > around build issues and create a convoluted dependency mess that isn't > > really required. I'd much rather we try and minimise the amount of > > -native dependencies to those actually needed. > > > > Comparing our builds against other systems its becoming clear our > > convoluted dependency trees are one of the areas we don't do as well and > > it hurts performance :(. > > The list of -native needed in meta-gnome: > > bison-native > cairo-native > docbook-utils-native > flex-native > gconf-native > gdk-pixbuf-native > glib-2.0-native > gnome-doc-utils-native > gobject-introspection-native > gtk-doc-native > icon-naming-utils-native > intltool-native > libffi-native > libidl-native > libxml-parser-perl-native > orbit2-native > pango-native > perl-native > popt-native > python-native Many of which are not gnome bbclass derived recipes. I therefore think it makes sense to put the BBCLASSEXTEND in the recipes where its needed and not the core class... Cheers, Richard
Op 9 nov. 2011, om 11:35 heeft Richard Purdie het volgende geschreven: > On Wed, 2011-11-09 at 11:27 +0100, Koen Kooi wrote: >> Op 9 nov. 2011, om 10:37 heeft Richard Purdie het volgende geschreven: >> >>> On Wed, 2011-11-09 at 10:27 +0100, Koen Kooi wrote: >>>> Op 9 nov. 2011, om 01:53 heeft Joshua Lock het volgende geschreven: >>>> >>>>> This patch pulls in the gnome related classes from oe-core which >>>>> adds extra packaging rules and functionality whilst modularising things >>>>> so that one can get a subset of gnome functionality without adding a lot >>>>> of extra dependencies. >>>>> >>>>> These aren't an exact copy of the classes from meta-openembedded, notable >>>>> differences are: >>>>> * gnome.bbclass - I dropped the BBCLASSEXTEND >>>> >>>> It looks that will break a number of things in meta-oe, why was it dropped? >>> >>> Unconditionally BBCLASSEXTENDing everything gnome is a great way to hack >>> around build issues and create a convoluted dependency mess that isn't >>> really required. I'd much rather we try and minimise the amount of >>> -native dependencies to those actually needed. >>> >>> Comparing our builds against other systems its becoming clear our >>> convoluted dependency trees are one of the areas we don't do as well and >>> it hurts performance :(. >> >> The list of -native needed in meta-gnome: >> >> bison-native >> cairo-native >> docbook-utils-native >> flex-native >> gconf-native >> gdk-pixbuf-native >> glib-2.0-native >> gnome-doc-utils-native >> gobject-introspection-native >> gtk-doc-native >> icon-naming-utils-native >> intltool-native >> libffi-native >> libidl-native >> libxml-parser-perl-native >> orbit2-native >> pango-native >> perl-native >> popt-native >> python-native > > Many of which are not gnome bbclass derived recipes. I therefore think > it makes sense to put the BBCLASSEXTEND in the recipes where its needed > and not the core class... Exactly! I did a lot of dependency cleanup when importing them, so the situation isn't as bad as it was in OE classic. Josh, what kind of test builds did you do for the meta-gnome recipes after moving the classes? regards, Koen
On 09/11/11 01:27, Koen Kooi wrote: > > Op 9 nov. 2011, om 01:53 heeft Joshua Lock het volgende geschreven: > >> This patch pulls in the gnome related classes from oe-core which >> adds extra packaging rules and functionality whilst modularising things >> so that one can get a subset of gnome functionality without adding a lot >> of extra dependencies. >> >> These aren't an exact copy of the classes from meta-openembedded, notable >> differences are: >> * gnome.bbclass - I dropped the BBCLASSEXTEND > > It looks that will break a number of things in meta-oe, why was it dropped? Richard didn't want us to add native variants of everything that uses the gnome class. At least in the short term it should be easy enough to keep meta-oe's gnome.bbclass where the BBCLASSEXTEND is still set. Whether you'd want to keep that or instead set BBCLASSEXTEND in the required places feels like a policy decision for meta-oe. >> * mime.bbclass: >> - updated coding style >> - use which to find update-mime-database program rather than hard coded >> - fix typo in populate_packges_append such that it's actually called > > Will it drag in the shared-mime-info-data package you created automatically now? > > Also, do you have matching patches to update meta-oe now that these things are heading into oe-core? I have not, I wanted to see what the feedback on this series was. Particularly the BBCLASSEXTEND bit as above. Joshua
On 09/11/11 03:18, Koen Kooi wrote: > > Op 9 nov. 2011, om 11:35 heeft Richard Purdie het volgende geschreven: > >> On Wed, 2011-11-09 at 11:27 +0100, Koen Kooi wrote: >>> Op 9 nov. 2011, om 10:37 heeft Richard Purdie het volgende geschreven: >>> >>>> On Wed, 2011-11-09 at 10:27 +0100, Koen Kooi wrote: >>>>> Op 9 nov. 2011, om 01:53 heeft Joshua Lock het volgende geschreven: >>>>> >>>>>> This patch pulls in the gnome related classes from oe-core which >>>>>> adds extra packaging rules and functionality whilst modularising things >>>>>> so that one can get a subset of gnome functionality without adding a lot >>>>>> of extra dependencies. >>>>>> >>>>>> These aren't an exact copy of the classes from meta-openembedded, notable >>>>>> differences are: >>>>>> * gnome.bbclass - I dropped the BBCLASSEXTEND >>>>> >>>>> It looks that will break a number of things in meta-oe, why was it dropped? >>>> >>>> Unconditionally BBCLASSEXTENDing everything gnome is a great way to hack >>>> around build issues and create a convoluted dependency mess that isn't >>>> really required. I'd much rather we try and minimise the amount of >>>> -native dependencies to those actually needed. >>>> >>>> Comparing our builds against other systems its becoming clear our >>>> convoluted dependency trees are one of the areas we don't do as well and >>>> it hurts performance :(. >>> >>> The list of -native needed in meta-gnome: >>> >>> bison-native >>> cairo-native >>> docbook-utils-native >>> flex-native >>> gconf-native >>> gdk-pixbuf-native >>> glib-2.0-native >>> gnome-doc-utils-native >>> gobject-introspection-native >>> gtk-doc-native >>> icon-naming-utils-native >>> intltool-native >>> libffi-native >>> libidl-native >>> libxml-parser-perl-native >>> orbit2-native >>> pango-native >>> perl-native >>> popt-native >>> python-native >> >> Many of which are not gnome bbclass derived recipes. I therefore think >> it makes sense to put the BBCLASSEXTEND in the recipes where its needed >> and not the core class... > > Exactly! I did a lot of dependency cleanup when importing them, so the situation isn't as bad as it was in OE classic. > > Josh, what kind of test builds did you do for the meta-gnome recipes after moving the classes? > I'm sorry to say almost zero. Joshua
Patch
differences are: * gnome.bbclass - I dropped the BBCLASSEXTEND * mime.bbclass: - updated coding style - use which to find update-mime-database program rather than hard coded - fix typo in populate_packges_append such that it's actually called CC: Koen Kooi <koen@dominion.thruhere.net> CC: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Joshua Lock <josh@linux.intel.com> --- meta/classes/gnome.bbclass | 18 +----------- meta/classes/gnomebase.bbclass | 30 ++++++++++++++++++++ meta/classes/mime.bbclass | 58 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+), 16 deletions(-) create mode 100644 meta/classes/gnomebase.bbclass create mode 100644 meta/classes/mime.bbclass diff --git a/meta/classes/gnome.bbclass b/meta/classes/gnome.bbclass index 3d68b12..a19dd17 100644 --- a/meta/classes/gnome.bbclass +++ b/meta/classes/gnome.bbclass @@ -1,17 +1,3 @@ -def gnome_verdir(v): - import re - m = re.match("^([0-9]+)\.([0-9]+)", v) - return "%s.%s" % (m.group(1), m.group(2)) +inherit gnomebase gtk-icon-cache gconf mime -SECTION ?= "x11/gnome" -SRC_URI = "${GNOME_MIRROR}/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.bz2;name=archive" - -DEPENDS += "gnome-common" - -FILES_${PN} += "${datadir}/application-registry \ - ${datadir}/mime-info \ - ${datadir}/gnome-2.0" - -inherit autotools pkgconfig gconf - -EXTRA_OEMAKE += "GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1" +EXTRA_OECONF += "--enable-introspection=no" diff --git a/meta/classes/gnomebase.bbclass b/meta/classes/gnomebase.bbclass new file mode 100644 index 0000000..a4209a0 --- /dev/null +++ b/meta/classes/gnomebase.bbclass @@ -0,0 +1,30 @@ +def gnome_verdir(v): + import re + m = re.match("^([0-9]+)\.([0-9]+)", v) + return "%s.%s" % (m.group(1), m.group(2)) + +SECTION ?= "x11/gnome" +SRC_URI = "${GNOME_MIRROR}/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.bz2;name=archive" + +DEPENDS += "gnome-common" + +FILES_${PN} += "${datadir}/application-registry \ + ${datadir}/mime-info \ + ${datadir}/mime/packages \ + ${datadir}/mime/application \ + ${datadir}/gnome-2.0 \ + ${datadir}/polkit* \ + ${datadir}/GConf \ + ${datadir}/glib-2.0/schemas \ +" + +FILES_${PN}-doc += "${datadir}/devhelp" + +inherit autotools pkgconfig + +do_install_append() { + rm -rf ${D}${localstatedir}/lib/scrollkeeper/* + rm -rf ${D}${localstatedir}/scrollkeeper/* + rm -f ${D}${datadir}/applications/*.cache +} + diff --git a/meta/classes/mime.bbclass b/meta/classes/mime.bbclass new file mode 100644 index 0000000..2d17d9c --- /dev/null +++ b/meta/classes/mime.bbclass @@ -0,0 +1,58 @@ +DEPENDS += "shared-mime-info-native shared-mime-info" + +mime_postinst() { +if [ "$1" = configure ]; then + UPDATEMIMEDB=`which update-mime-database` + if [ -x "$UPDATEMIMEDB" ] ; then + echo "Updating MIME database... this may take a while." + $UPDATEMIMEDB $D${datadir}/mime + else + echo "Missing update-mime-database, update of mime database failed!" + exit 1 + fi +fi +} + +mime_postrm() { +if [ "$1" = remove ] || [ "$1" = upgrade ]; then + UPDATEMIMEDB=`which update-mime-database` + if [ -x "$UPDATEMIMEDB" ] ; then + echo "Updating MIME database... this may take a while." + $UPDATEMIMEDB $D${datadir}/mime + else + echo "Missing update-mime-database, update of mime database failed!" + exit 1 + fi +fi +} + +python populate_packages_append () { + import os.path, re + packages = d.getVar('PACKAGES', True).split() + pkgdest = d.getVar('PKGDEST', True) + + for pkg in packages: + mime_dir = '%s/%s/usr/share/mime/packages' % (pkgdest, pkg) + mimes = [] + mime_re = re.compile(".*\.xml$") + if os.path.exists(mime_dir): + for f in os.listdir(mime_dir): + if mime_re.match(f): + mimes.append(f) + if mimes: + bb.note("adding mime postinst and postrm scripts to %s" % pkg) + postinst = d.getVar('pkg_postinst_%s' % pkg, True) or d.getVar('pkg_postinst', True) + if not postinst: + postinst = '#!/bin/sh\n' + postinst += d.getVar('mime_postinst', True) + d.setVar('pkg_postinst_%s' % pkg, postinst) + postrm = d.getVar('pkg_postrm_%s' % pkg, True) or d.getVar('pkg_postrm', True) + if not postrm: + postrm = '#!/bin/sh\n' + postrm += d.getVar('mime_postrm', True) + d.setVar('pkg_postrm_%s' % pkg, postrm) + bb.note("adding shared-mime-info-data dependency to %s" % pkg) + rdepends = explode_deps(dgetVar('RDEPENDS_' + pkg, False) or d.getVar('RDEPENDS', False)) or "" + rdepends.append("shared-mime-info-data") + d.setVar('RDEPENDS_' + pkg, " " + " ".join(rdepends)) +}