Pending patches at O.S. Systems' tree
cover Pending patches at O.S. Systems' tree
I am sending the patches that are waiting in our tree. dhcp and udev patches ought to have been handled by Saul but in any case they are present here.
The following changes since commit 18d9fcfc4bc4b01f73e89f3b988c9d3d543c7705:
libzypp: add missing runtime dependences on gzip and gnupg (2012-02-03 17:23:28 +0000)
are available in the git repository at:
git://github.com/OSSystems/oe-core master
https://github.com/OSSystems/oe-core/tree/HEAD
Otavio Salvador (4):
dhcp: move dhcp leases files handling to postinst/postrm
udev: stop providing cache support by default cross.bbclass: add virtclass handler
useradd.bbclass: skip processing on virtclass-cross extended packages
meta/classes/cross.bbclass | 39 ++++++++++++++++++++++++++ meta/classes/useradd.bbclass | 3 ++ meta/recipes-connectivity/dhcp/dhcp.inc | 25 ++++++++++++++++- meta/recipes-connectivity/dhcp/dhcp_4.2.0.bb | 2 +- meta/recipes-core/udev/udev.inc | 2 +- meta/recipes-core/udev/udev_164.bb | 2 +- 6 files changed, 69 insertions(+), 4 deletions(-)
Signature · 1 line
1.7.2.5
PATCH 1/4 dhcp: move dhcp leases files handling to postinst/postrm
Both server and client needs access to leases files so its creation and removal are now handled by postinst/postrm scripts.
--- meta/recipes-connectivity/dhcp/dhcp.inc | 25 ++++++++++++++++++++++++- meta/recipes-connectivity/dhcp/dhcp_4.2.0.bb | 2 +- 2 files changed, 25 insertions(+), 2 deletions(-)
meta/recipes-connectivity/dhcp/dhcp.inc +24 -1
@@ -66,12 +66,35 @@ FILES_dhcp-server-config = "${sysconfdir}/default/dhcp-server ${sysconfdir}/dhcp FILES_dhcp-relay = "${sbindir}/dhcrelay ${sysconfdir}/init.d/dhcp-relay ${sysconfdir}/default/dhcp-relay" -FILES_dhcp-client = "${base_sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf ${localstatedir}/lib/dhcp/" +FILES_dhcp-client = "${base_sbindir}/dhclient ${base_sbindir}/dhclient-script ${sysconfdir}/dhcp/dhclient.conf" RDEPENDS_dhcp-client = "bash" FILES_dhcp-omshell = "${bindir}/omshell" pkg_postinst_dhcp-server() { + mkdir -p $D/${localstatedir}/lib/dhcp touch $D/${localstatedir}/lib/dhcp/dhcpd.leases touch $D/${localstatedir}/lib/dhcp/dhcpd6.leases } + +pkg_postinst_dhcp-client() { + mkdir -p $D/${localstatedir}/lib/dhcp +} + +pkg_postrm_dhcp-server() { + rm -f $D/${localstatedir}/lib/dhcp/dhcpd.leases + rm -f $D/${localstatedir}/lib/dhcp/dhcpd6.leases + + if ! rmdir $D/${localstatedir}/lib/dhcp 2>/dev/null; then + echo "Not removing ${localstatedir}/lib/dhcp as it is non-empty." + fi +} + +pkg_postrm_dhcp-client() { + rm -f $D/${localstatedir}/lib/dhcp/dhclient.leases + rm -f $D/${localstatedir}/lib/dhcp/dhclient6.leases + + if ! rmdir $D/${localstatedir}/lib/dhcp 2>/dev/null; then + echo "Not removing ${localstatedir}/lib/dhcp as it is non-empty." + fi +}
meta/recipes-connectivity/dhcp/dhcp_4.2.0.bb +1 -1
@@ -1,6 +1,6 @@ require dhcp.inc -PR = "r5" +PR = "r7" SRC_URI += "file://fixincludes.patch \ file://dhcp-3.0.3-dhclient-dbus.patch;striplevel=0 \
Signature · 1 line
1.7.2.5
PATCH 2/4 udev: stop providing cache support by default
In reply to Otavio SalvadorThe usefulness of cache nowadays has been reduced a lot and thus it's better to stop using it by default. Dropping the recommends allows for image to decide if they want or not to have cache enabled, instead of require a machine override.
--- meta/recipes-core/udev/udev.inc | 2 +- meta/recipes-core/udev/udev_164.bb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-core/udev/udev.inc +1 -1
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ DEPENDS = "acl glib-2.0 libusb usbutils pciutils gperf-native libxslt-native" RPROVIDES_${PN} = "hotplug" -RRECOMMENDS_${PN} += "udev-extraconf udev-cache usbutils-ids pciutils-ids" +RRECOMMENDS_${PN} += "udev-extraconf usbutils-ids pciutils-ids" RDEPENDS_libudev = "${PN} (= ${EXTENDPKGV})" SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
meta/recipes-core/udev/udev_164.bb +1 -1
@@ -1,6 +1,6 @@ include udev.inc -PR = "r10" +PR = "r11" SRC_URI += "file://udev-166-v4l1-1.patch"
Signature · 1 line
1.7.2.5
PATCH 3/4 cross.bbclass: add virtclass handler
In reply to Otavio SalvadorAllow use of BBCLASSEXTEND with 'cross' and use of virtclass-cross in recipes.
--- meta/classes/cross.bbclass | 39 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 39 insertions(+), 0 deletions(-)
meta/classes/cross.bbclass +39 -0
@@ -55,6 +55,45 @@ libexecdir = "${exec_prefix}/libexec/${CROSS_TARGET_SYS_DIR}" do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE}" +python cross_virtclass_handler () { + if not isinstance(e, bb.event.RecipePreFinalise): + return + + classextend = e.data.getVar('BBCLASSEXTEND', True) or "" + if "cross" not in classextend: + return + + pn = e.data.getVar("PN", True) + if not pn.endswith("-cross"): + return + + def map_dependencies(varname, d, suffix = ""): + if suffix: + varname = varname + "_" + suffix + deps = d.getVar(varname, True) + if not deps: + return + deps = bb.utils.explode_deps(deps) + newdeps = [] + for dep in deps: + if dep.endswith("-cross"): + newdeps.append(dep) + else: + newdeps.append(dep + "-cross") + bb.data.setVar(varname, " ".join(newdeps), d) + + for pkg in (e.data.getVar("PACKAGES", True).split() + [""]): + map_dependencies("RDEPENDS", e.data, pkg) + map_dependencies("RRECOMMENDS", e.data, pkg) + map_dependencies("RSUGGESTS", e.data, pkg) + map_dependencies("RPROVIDES", e.data, pkg) + map_dependencies("RREPLACES", e.data, pkg) + + bb.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + ":virtclass-cross", e.data) +} + +addhandler cross_virtclass_handler + do_install () { oe_runmake 'DESTDIR=${D}' install }
Signature · 1 line
1.7.2.5
Re: [PATCH 3/4] cross.bbclass: add virtclass handler
Quoted 39 lines · Otavio Salvador
Allow use of BBCLASSEXTEND with 'cross' and use of virtclass-cross in recipes.
Signed-off-by Otavio Salvador <[email protected]>--- meta/classes/cross.bbclass | 39 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 39 insertions(+), 0 deletions(-)meta/classes/cross.bbclass +23
-0@@ -55,6 +55,45 @@ libexecdir = "${exec_prefix}/libexec/${CROSS_TARGET_SYS_DIR}" do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE}" +python cross_virtclass_handler () { + if not isinstance(e, bb.event.RecipePreFinalise): + return + + classextend = e.data.getVar('BBCLASSEXTEND', True) or "" + if "cross" not in classextend: + return + + pn = e.data.getVar("PN", True) + if not pn.endswith("-cross"): + return + + def map_dependencies(varname, d, suffix = ""): + if suffix: + varname = varname + "_" + suffix + deps = d.getVar(varname, True) + if not deps: + return + deps = bb.utils.explode_deps(deps) + newdeps = [] + for dep in deps: + if dep.endswith("-cross"): + newdeps.append(dep)
meta/classes/cross.bbclass libexecdir = "${exec_prefix}/libexec/${CROSS_TARGET_SYS_DIR}" · line 90
Quoted 10 lines
meta/classes/cross.bbclass +10
-0+ else: + newdeps.append(dep + "-cross") + bb.data.setVar(varname, " ".join(newdeps), d) + + for pkg in (e.data.getVar("PACKAGES", True).split() + [""]): + map_dependencies("RDEPENDS", e.data, pkg) + map_dependencies("RRECOMMENDS", e.data, pkg) + map_dependencies("RSUGGESTS", e.data, pkg) + map_dependencies("RPROVIDES", e.data, pkg) + map_dependencies("RREPLACES", e.data, pkg)
I want to highlight what this code does and I don't understand when it would do something that makes sense. If for example we have a recipe which:
RDEPENDS = "libc zlib"
it will now:
RDEPENDS = "lib-cross zlib-cross"
or a native recipe which had:
RDEPENDS = "pkgconfig-native"
will now:
RDEPENDS = "pkgconfig-native-cross"
Can you point me at the recipe you're using this in? I suspect we should just remove the map_dependencies() pieces from this class entirely and handle dependency issues with the override manually. I think at this point all the BBCLASSEXTEND is going to give you is the removal of the need to add a separate .bb file with "inherit cross" in it and enable an override for your to use. I'm not sure we can write generic dependency mapping code that would work for -cross.
Cheers,
Richard
Re: [PATCH 3/4] cross.bbclass: add virtclass handler
Quoted 8 lines · Richard Purdie
Can you point me at the recipe you're using this in? I suspect we should just remove the
map_dependencies()pieces from this class entirely and handle dependency issues with the override manually. I think at this point all the BBCLASSEXTEND is going to give you is the removal of the need to add a separate .bb file with "inherit cross" in it and enable an override for your to use. I'm not sure we can write generic dependency mapping code that would work for -cross.
We use it a lot in the meta-chicken layer (
https://github.com/OSSystems/meta-chicken).
I agree about dropping map_dependencies from it. I will look at it and send it again.
Signature · 3 lines
Otavio Salvador O.S. Systems E-mail: [email protected] http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br
PATCH 4/4 useradd.bbclass: skip processing on virtclass-cross extended packages
In reply to Otavio Salvador--- meta/classes/useradd.bbclass | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
meta/classes/useradd.bbclass +3 -0
@@ -3,6 +3,7 @@ # and support files needed to add and modify user and group accounts DEPENDS_append = "${USERADDDEPENDS}" USERADDDEPENDS = " base-passwd shadow-native shadow-sysroot shadow" +USERADDDEPENDS_virtclass-cross = "" USERADDDEPENDS_virtclass-native = "" USERADDDEPENDS_virtclass-nativesdk = ""
@@ -104,10 +105,12 @@ useradd_sysroot_sstate () { do_install[prefuncs] += "${SYSROOTFUNC}" SYSROOTFUNC = "useradd_sysroot" +SYSROOTFUNC_virtclass-cross = "" SYSROOTFUNC_virtclass-native = "" SYSROOTFUNC_virtclass-nativesdk = "" SSTATEPREINSTFUNCS += "${SYSROOTPOSTFUNC}" SYSROOTPOSTFUNC = "useradd_sysroot_sstate" +SYSROOTPOSTFUNC_virtclass-cross = "" SYSROOTPOSTFUNC_virtclass-native = "" SYSROOTPOSTFUNC_virtclass-nativesdk = ""
Signature · 1 line
1.7.2.5