[OE-core] [PATCH V3] openssl.inc: Install c_rehash utility with openssl
From: mykhani yasir_k...@mentor.com c_rehash utility is not being installed with openssl.It conveniently generates hash and symbolic links based on it for CA certificates stored locally for SSL based server authentication Signed-off-by: Yasir-Khan yasir_k...@mentor.com --- meta/recipes-connectivity/openssl/openssl.inc |7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/meta/recipes-connectivity/openssl/openssl.inc b/meta/recipes-connectivity/openssl/openssl.inc index 3bfe569..cdb1809 100644 --- a/meta/recipes-connectivity/openssl/openssl.inc +++ b/meta/recipes-connectivity/openssl/openssl.inc @@ -13,6 +13,9 @@ LIC_FILES_CHKSUM = file://LICENSE;md5=f9a8f968107345e0b75aa8c2ecaa7ec8 DEPENDS = perl-native-runtime +# Adding RDEPENDS for perl scripts +RDEPENDS_${PN}-misc +=perl + SRC_URI = http://www.openssl.org/source/openssl-${PV}.tar.gz \ S = ${WORKDIR}/openssl-${PV} @@ -37,7 +40,7 @@ PACKAGES =+ libcrypto libssl ${PN}-misc openssl-conf FILES_libcrypto = ${base_libdir}/libcrypto${SOLIBS} FILES_libssl = ${libdir}/libssl.so.* FILES_${PN} =+ ${libdir}/ssl/* -FILES_${PN}-misc = ${libdir}/ssl/misc +FILES_${PN}-misc = ${libdir}/ssl/misc ${bindir}/c_rehash FILES_${PN}-dev += ${base_libdir}/libcrypto${SOLIBSDEV} # Add the openssl.cnf file to the openssl-conf package. Make the libcrypto @@ -157,6 +160,8 @@ do_install () { sed -i -e '1s,.*,#!${bindir}/env perl,' ${D}${libdir}/ssl/misc/CA.pl oe_multilib_header openssl/opensslconf.h + # The c_rehash utility isn't installed by the normal installation process. + install -m 0755 ${S}/tools/c_rehash ${D}${bindir} } BBCLASSEXTEND = native nativesdk -- 1.7.10.4 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/1] rootfs_rpm.bbclass: make complementary packages not attempt-only
From: Chen Qi qi.c...@windriver.com The following changes since commit 9daa1de753e58b7f678e68cf307f6028c0c79a6a: qemu/local.conf.sample: Add sdl PACKAGECONFIG (2013-12-16 12:13:59 +) are available in the git repository at: git://git.pokylinux.org/poky-contrib ChenQi/complementary-attemptonly http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/complementary-attemptonly Chen Qi (1): rootfs_rpm.bbclass: make complementary packages not attempt-only meta/classes/rootfs_rpm.bbclass |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 1.7.9.5 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/1] rootfs_rpm.bbclass: make complementary packages not attempt-only
From: Chen Qi qi.c...@windriver.com Installing complementary packages should not be attempt-only, otherwise, errors would be hidden. For example, if we enable ptest distro feature, and we add 'ptest-pkgs' to IMAGE_FEATRUES, then building a minimal image would succeed without reporting any error. However, the systemd-ptest is not installed because of lack of the perl package. Signed-off-by: Chen Qi qi.c...@windriver.com --- meta/classes/rootfs_rpm.bbclass |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass index 1a0c225..9a88330 100644 --- a/meta/classes/rootfs_rpm.bbclass +++ b/meta/classes/rootfs_rpm.bbclass @@ -170,8 +170,8 @@ rpm_setup_smart_target_config() { rootfs_install_packages() { # Note - we expect the variables not set here to already have been set - export INSTALL_PACKAGES_RPM= - export INSTALL_PACKAGES_ATTEMPTONLY_RPM=`cat $1` + export INSTALL_PACKAGES_RPM=`cat $1` + export INSTALL_PACKAGES_ATTEMPTONLY_RPM= export INSTALL_PROVIDENAME_RPM= export INSTALL_TASK_RPM=rootfs_install_packages export INSTALL_COMPLEMENTARY_RPM=1 -- 1.7.9.5 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/1] image.bbclass: add ability to set systemd default target
From: Chen Qi qi.c...@windriver.com Add ability to set the default target for systemd images. The default value for the target is derived from checking whether IMAGE_FEATRUES contains 'x11-base' or not. Each image could override this value in its own recipe. For now, we don't need to do any change, because all images that support graphical environment has 'x11-base' in its IMAGE_FEATRUES. [YOCTO #3816] Signed-off-by: Chen Qi qi.c...@windriver.com --- meta/classes/image.bbclass |8 1 file changed, 8 insertions(+) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index c595721..c8366d6 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -186,6 +186,9 @@ IMAGE_MANIFEST = ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest ROOTFS_POSTPROCESS_COMMAND =+ write_image_manifest ; # Set default postinst log file POSTINST_LOGFILE ?= ${localstatedir}/log/postinstall.log +# Set default target for systemd images +SYSTEMD_DEFAULT_TARGET ?= '${@base_contains(IMAGE_FEATURES, x11-base, graphical.target, multi-user.target, d)}' +ROOTFS_POSTPROCESS_COMMAND += '${@base_contains(DISTRO_FEATURES, systemd, set_systemd_default_target; , , d)}' # some default locales IMAGE_LINGUAS ?= de-de fr-fr en-gb @@ -596,6 +599,11 @@ postinst_enable_logging () { echo LOGFILE=${POSTINST_LOGFILE} ${IMAGE_ROOTFS}${sysconfdir}/default/postinst } +# Modify systemd default target +set_systemd_default_target () { + ln -sf ${systemd_unitdir}/system/${SYSTEMD_DEFAULT_TARGET} ${IMAGE_ROOTFS}${sysconfdir}/systemd/system/default.target +} + # Turn any symbolic /sbin/init link into a file remove_init_link () { if [ -h ${IMAGE_ROOTFS}/sbin/init ]; then -- 1.7.9.5 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/1] image.bbclass: add ability to set systemd default target
From: Chen Qi qi.c...@windriver.com The following changes since commit 9daa1de753e58b7f678e68cf307f6028c0c79a6a: qemu/local.conf.sample: Add sdl PACKAGECONFIG (2013-12-16 12:13:59 +) are available in the git repository at: git://git.pokylinux.org/poky-contrib ChenQi/systemd-default-target http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/systemd-default-target Chen Qi (1): image.bbclass: add ability to set systemd default target meta/classes/image.bbclass |8 1 file changed, 8 insertions(+) -- 1.7.9.5 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] oe-selftest: New tests for sstate related operations
Signed-off-by: Corneliu Stoicescu corneliux.stoice...@intel.com --- meta/lib/oeqa/selftest/sstate.py | 226 ++ 1 file changed, 226 insertions(+) create mode 100644 meta/lib/oeqa/selftest/sstate.py diff --git a/meta/lib/oeqa/selftest/sstate.py b/meta/lib/oeqa/selftest/sstate.py new file mode 100644 index 000..d1fe20a --- /dev/null +++ b/meta/lib/oeqa/selftest/sstate.py @@ -0,0 +1,226 @@ +import datetime +import unittest +import os +import re +import shutil + +import oeqa.utils.ftools as ftools +from oeqa.selftest.base import oeSelfTest +from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_test_layer + +class SStateTests(oeSelfTest): + +def setUpLocal(self): +self.temp_sstate_location = None +self.sstate_path = get_bb_var('SSTATE_DIR') +self.distro = get_bb_var('NATIVELSBSTRING') +self.distro_specific_sstate = os.path.join(self.sstate_path, self.distro) + +# Creates a special sstate configuration with the option to add sstate mirrors +def config_sstate(self, temp_sstate_location=False, add_local_mirrors=[]): +self.temp_sstate_location = temp_sstate_location + +if self.temp_sstate_location: +temp_sstate_path = os.path.join(self.builddir, temp_sstate_%s % datetime.datetime.now().strftime('%Y%m%d%H%M%S')) +config_temp_sstate = SSTATE_DIR = \%s\ % temp_sstate_path +self.append_config(config_temp_sstate) +self.track_for_cleanup(temp_sstate_path) +self.sstate_path = get_bb_var('SSTATE_DIR') +self.distro = get_bb_var('NATIVELSBSTRING') +self.distro_specific_sstate = os.path.join(self.sstate_path, self.distro) + +if add_local_mirrors: +config_set_sstate_if_not_set = 'SSTATE_MIRRORS ?= ' +self.append_config(config_set_sstate_if_not_set) +for local_mirror in add_local_mirrors: +self.assertFalse(os.path.join(local_mirror) == os.path.join(self.sstate_path), msg='Cannot add the current sstate path as a sstate mirror') +config_sstate_mirror = SSTATE_MIRRORS += \file://.* file:///%s/PATH\ % local_mirror +self.append_config(config_sstate_mirror) + +# Returns a list containing sstate files +def search_sstate(self, filename_regex, distro_specific=True, distro_nonspecific=True): +result = [] +for root, dirs, files in os.walk(self.sstate_path): +if distro_specific and re.search(%s/[a-z0-9]{2}$ % self.distro, root): +for f in files: +if re.search(filename_regex, f): +result.append(f) +if distro_nonspecific and re.search(%s/[a-z0-9]{2}$ % self.sstate_path, root): +for f in files: +if re.search(filename_regex, f): +result.append(f) +return result + + +# Test sstate files creation and their location +def run_test_sstate_creation(self, targets, distro_specific=True, distro_nonspecific=True, temp_sstate_location=True, should_pass=True): +self.config_sstate(temp_sstate_location) + +if self.temp_sstate_location: +bitbake(['-cclean'] + targets) +else: +bitbake(['-ccleansstate'] + targets) + +bitbake(targets) +file_tracker = self.search_sstate('|'.join(map(str, targets)), distro_specific, distro_nonspecific) +if should_pass: +self.assertTrue(file_tracker , msg=Could not find sstate files for: %s % ', '.join(map(str, targets))) +else: +self.assertTrue(not file_tracker , msg=Found sstate files in the wrong place for: %s % ', '.join(map(str, targets))) + +def test_sstate_creation_distro_specific_pass(self): +self.run_test_sstate_creation(['binutils-cross', 'binutils-native'], distro_specific=True, distro_nonspecific=False, temp_sstate_location=True) + +def test_sstate_creation_distro_specific_fail(self): +self.run_test_sstate_creation(['binutils-cross', 'binutils-native'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True, should_pass=False) + +def test_sstate_creation_distro_nonspecific_pass(self): +self.run_test_sstate_creation(['eglibc-initial'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True) + +def test_sstate_creation_distro_nonspecific_fail(self): +self.run_test_sstate_creation(['eglibc-initial'], distro_specific=True, distro_nonspecific=False, temp_sstate_location=True, should_pass=False) + + +# Test the sstate files deletion part of the do_cleansstate task +def run_test_cleansstate_task(self, targets, distro_specific=True, distro_nonspecific=True, temp_sstate_location=True): +self.config_sstate(temp_sstate_location) + +bitbake(['-ccleansstate'] + targets) + +bitbake(targets) +file_tracker_1 =
[OE-core] FOSDEM 2014
Hi all, As below, our FOSDEM stand proposal has been accepted. We can talk specific logistics a bit closer to the event, but now is a good time to book your tickets if you'd like to attend - we usually have a pretty good turnout of OpenEmbedded community members and it would be great if we could continue that this year. We have two tables to fill with interesting demos and people to talk to attendees, so if you'd like to help out on the stand that would be awesome as well! Cheers, Paul -- Forwarded Message -- Subject: Your stand proposal for OpenEmbedded has been accepted Date: Monday 16 December 2013, 22:28:19 From: FOSDEM Stands Team sta...@fosdem.org To: Paul Eggleton paul.eggle...@linux.intel.com Hi Paul, The FOSDEM stands team is glad to be able to inform you that your request for a stand for OpenEmbedded has been accepted. There will be two tables reserved for you. You will receive further information about what's expected of you closer to the event date. Looking forward to seeing you at FOSDEM 2014! Kind regards, Wynke Stulemeijer FOSDEM stands team - -- Paul Eggleton Intel Open Source Technology Centre ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/3] oe-selftest: New BuildhistoryBase object for buildhistory testing.
--- meta/lib/oeqa/selftest/buildhistory.py | 45 1 file changed, 45 insertions(+) create mode 100644 meta/lib/oeqa/selftest/buildhistory.py diff --git a/meta/lib/oeqa/selftest/buildhistory.py b/meta/lib/oeqa/selftest/buildhistory.py new file mode 100644 index 000..d8cae46 --- /dev/null +++ b/meta/lib/oeqa/selftest/buildhistory.py @@ -0,0 +1,45 @@ +import unittest +import os +import re +import shutil +import datetime + +import oeqa.utils.ftools as ftools +from oeqa.selftest.base import oeSelfTest +from oeqa.utils.commands import Command, runCmd, bitbake, get_bb_var, get_test_layer + + +class BuildhistoryBase(oeSelfTest): + +def config_buildhistory(self, tmp_bh_location=False): +if (not 'buildhistory' in get_bb_var('USER_CLASSES')) and (not 'buildhistory' in get_bb_var('INHERIT')): +add_buildhistory_config = 'INHERIT += buildhistory\nBUILDHISTORY_COMMIT = 1' +self.append_config(add_buildhistory_config) + +if tmp_bh_location: +# Using a temporary buildhistory location for testing +tmp_bh_dir = os.path.join(self.builddir, tmp_buildhistory_%s % datetime.datetime.now().strftime('%Y%m%d%H%M%S')) +buildhistory_dir_config = BUILDHISTORY_DIR = \%s\ % tmp_bh_dir +self.append_config(buildhistory_dir_config) +self.track_for_cleanup(tmp_bh_dir) + +def run_buildhistory_operation(self, target, global_config='', target_config='', change_bh_location=False, expect_error=False, error_regex=''): +if change_bh_location: +tmp_bh_location = True +else: +tmp_bh_location = False +self.config_buildhistory(tmp_bh_location) + +self.append_config(global_config) +self.append_recipeinc(target, target_config) +bitbake(-cclean %s % target) +result = bitbake(target, ignore_status=True) +self.remove_config(global_config) +self.remove_recipeinc(target, target_config) + +if expect_error: +self.assertEqual(result.status, 1, msg=Error expected for global config '%s' and target config '%s' % (global_config, target_config)) +search_for_error = re.search(error_regex, result.output) +self.assertTrue(search_for_error, msg=Could not find desired error in output: %s % error_regex) +else: +self.assertEqual(result.status, 0, msg=Command 'bitbake %s' has failed unexpectedly: %s % (target, result.output)) -- 1.7.9.5 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 3/3] oe-selftest: added buildhistory buildtime tests in module buildoptions.py
--- meta/lib/oeqa/selftest/buildoptions.py | 20 1 file changed, 20 insertions(+) diff --git a/meta/lib/oeqa/selftest/buildoptions.py b/meta/lib/oeqa/selftest/buildoptions.py index 5fb69d8..ef6579b 100644 --- a/meta/lib/oeqa/selftest/buildoptions.py +++ b/meta/lib/oeqa/selftest/buildoptions.py @@ -4,6 +4,7 @@ import logging import re from oeqa.selftest.base import oeSelfTest +from oeqa.selftest.buildhistory import BuildhistoryBase from oeqa.utils.commands import runCmd, bitbake, get_bb_var import oeqa.utils.ftools as ftools @@ -85,3 +86,22 @@ class SanityOptionsTest(oeSelfTest): res = bitbake(gzip nfs-utils) self.assertTrue(WARNING: QA Issue: gzip in res.output) self.assertTrue(WARNING: QA Issue: nfs-utils in res.output) + +class BuildhistoryTests(BuildhistoryBase): + +def test_buildhistory_basic(self): +self.run_buildhistory_operation('xcursor-transparent-theme') +self.assertTrue(os.path.isdir(get_bb_var('BUILDHISTORY_DIR'))) + +def test_buildhistory_buildtime_pr_backwards(self): +self.add_command_to_tearDown('cleanup-workdir') +target = 'xcursor-transparent-theme' +error = ERROR: QA Issue: Package version for package %s went backwards which would break package feeds from (.*-r1 to .*-r0) % target +self.run_buildhistory_operation(target, target_config=PR = \r1\, change_bh_location=True) +self.run_buildhistory_operation(target, target_config=PR = \r0\, change_bh_location=False, expect_error=True, error_regex=error) + + + + + + -- 1.7.9.5 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/3] oe-selftest: New test module for OE scripts.
Added a new module meta/lib/oeqa/selftest/oescripts.py containing tests for scripts from ${COREBASE}/scripts --- meta/lib/oeqa/selftest/oescripts.py | 60 +++ 1 file changed, 60 insertions(+) create mode 100644 meta/lib/oeqa/selftest/oescripts.py diff --git a/meta/lib/oeqa/selftest/oescripts.py b/meta/lib/oeqa/selftest/oescripts.py new file mode 100644 index 000..4aab2ed --- /dev/null +++ b/meta/lib/oeqa/selftest/oescripts.py @@ -0,0 +1,60 @@ +import datetime +import unittest +import os +import re +import shutil + +import oeqa.utils.ftools as ftools +from oeqa.selftest.base import oeSelfTest +from oeqa.selftest.buildhistory import BuildhistoryBase +from oeqa.utils.commands import Command, runCmd, bitbake, get_bb_var, get_test_layer + +class TestScripts(oeSelfTest): + +def test_cleanup_workdir(self): +path = os.path.dirname(get_bb_var('WORKDIR', 'gzip')) +old_version_recipe = os.path.join(get_bb_var('COREBASE'), 'meta/recipes-extended/gzip/gzip_1.3.12.bb') +old_version = '1.3.12' +bitbake(-ccleansstate gzip) +bitbake(-ccleansstate -b %s % old_version_recipe) +if os.path.exists(get_bb_var('WORKDIR', -b %s % old_version_recipe)): +shutil.rmtree(get_bb_var('WORKDIR', -b %s % old_version_recipe)) +if os.path.exists(get_bb_var('WORKDIR', 'gzip')): +shutil.rmtree(get_bb_var('WORKDIR', 'gzip')) + +if os.path.exists(path): +initial_contents = os.listdir(path) +else: +initial_contents = [] + +bitbake('gzip') +intermediary_contents = os.listdir(path) +bitbake(-b %s % old_version_recipe) +runCmd('cleanup-workdir') +remaining_contents = os.listdir(path) + +expected_contents = [x for x in intermediary_contents if x not in initial_contents] +remaining_not_expected = [x for x in remaining_contents if x not in expected_contents] +self.assertFalse(remaining_not_expected, msg=Not all necessary content has been deleted from %s: %s % (path, ', '.join(map(str, remaining_not_expected +expected_not_remaining = [x for x in expected_contents if x not in remaining_contents] +self.assertFalse(expected_not_remaining, msg=The script removed extra contents from %s: %s % (path, ', '.join(map(str, expected_not_remaining + +class BuildhistoryDiffTests(BuildhistoryBase): + +def test_buildhistory_diff(self): +self.add_command_to_tearDown('cleanup-workdir') +target = 'xcursor-transparent-theme' +self.run_buildhistory_operation(target, target_config=PR = \r1\, change_bh_location=True) +self.run_buildhistory_operation(target, target_config=PR = \r0\, change_bh_location=False, expect_error=True) +result = runCmd(buildhistory-diff -p %s % get_bb_var('BUILDHISTORY_DIR')) +expected_output = 'PR changed from r1 to r0' +self.assertTrue(expected_output in result.output, msg=Did not find expected output: %s % result.output) + + + + + + + + + -- 1.7.9.5 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH V2 2/3] oe-selftest: New test module for OE scripts.
Added a new module meta/lib/oeqa/selftest/oescripts.py containing tests for scripts from ${COREBASE}/scripts Signed-off-by: Corneliu Stoicescu corneliux.stoice...@intel.com --- meta/lib/oeqa/selftest/oescripts.py | 60 +++ 1 file changed, 60 insertions(+) create mode 100644 meta/lib/oeqa/selftest/oescripts.py diff --git a/meta/lib/oeqa/selftest/oescripts.py b/meta/lib/oeqa/selftest/oescripts.py new file mode 100644 index 000..4aab2ed --- /dev/null +++ b/meta/lib/oeqa/selftest/oescripts.py @@ -0,0 +1,60 @@ +import datetime +import unittest +import os +import re +import shutil + +import oeqa.utils.ftools as ftools +from oeqa.selftest.base import oeSelfTest +from oeqa.selftest.buildhistory import BuildhistoryBase +from oeqa.utils.commands import Command, runCmd, bitbake, get_bb_var, get_test_layer + +class TestScripts(oeSelfTest): + +def test_cleanup_workdir(self): +path = os.path.dirname(get_bb_var('WORKDIR', 'gzip')) +old_version_recipe = os.path.join(get_bb_var('COREBASE'), 'meta/recipes-extended/gzip/gzip_1.3.12.bb') +old_version = '1.3.12' +bitbake(-ccleansstate gzip) +bitbake(-ccleansstate -b %s % old_version_recipe) +if os.path.exists(get_bb_var('WORKDIR', -b %s % old_version_recipe)): +shutil.rmtree(get_bb_var('WORKDIR', -b %s % old_version_recipe)) +if os.path.exists(get_bb_var('WORKDIR', 'gzip')): +shutil.rmtree(get_bb_var('WORKDIR', 'gzip')) + +if os.path.exists(path): +initial_contents = os.listdir(path) +else: +initial_contents = [] + +bitbake('gzip') +intermediary_contents = os.listdir(path) +bitbake(-b %s % old_version_recipe) +runCmd('cleanup-workdir') +remaining_contents = os.listdir(path) + +expected_contents = [x for x in intermediary_contents if x not in initial_contents] +remaining_not_expected = [x for x in remaining_contents if x not in expected_contents] +self.assertFalse(remaining_not_expected, msg=Not all necessary content has been deleted from %s: %s % (path, ', '.join(map(str, remaining_not_expected +expected_not_remaining = [x for x in expected_contents if x not in remaining_contents] +self.assertFalse(expected_not_remaining, msg=The script removed extra contents from %s: %s % (path, ', '.join(map(str, expected_not_remaining + +class BuildhistoryDiffTests(BuildhistoryBase): + +def test_buildhistory_diff(self): +self.add_command_to_tearDown('cleanup-workdir') +target = 'xcursor-transparent-theme' +self.run_buildhistory_operation(target, target_config=PR = \r1\, change_bh_location=True) +self.run_buildhistory_operation(target, target_config=PR = \r0\, change_bh_location=False, expect_error=True) +result = runCmd(buildhistory-diff -p %s % get_bb_var('BUILDHISTORY_DIR')) +expected_output = 'PR changed from r1 to r0' +self.assertTrue(expected_output in result.output, msg=Did not find expected output: %s % result.output) + + + + + + + + + -- 1.7.9.5 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH V2 3/3] oe-selftest: added buildhistory buildtime tests in module buildoptions.py
Signed-off-by: Corneliu Stoicescu corneliux.stoice...@intel.com --- meta/lib/oeqa/selftest/buildoptions.py | 20 1 file changed, 20 insertions(+) diff --git a/meta/lib/oeqa/selftest/buildoptions.py b/meta/lib/oeqa/selftest/buildoptions.py index 5fb69d8..ef6579b 100644 --- a/meta/lib/oeqa/selftest/buildoptions.py +++ b/meta/lib/oeqa/selftest/buildoptions.py @@ -4,6 +4,7 @@ import logging import re from oeqa.selftest.base import oeSelfTest +from oeqa.selftest.buildhistory import BuildhistoryBase from oeqa.utils.commands import runCmd, bitbake, get_bb_var import oeqa.utils.ftools as ftools @@ -85,3 +86,22 @@ class SanityOptionsTest(oeSelfTest): res = bitbake(gzip nfs-utils) self.assertTrue(WARNING: QA Issue: gzip in res.output) self.assertTrue(WARNING: QA Issue: nfs-utils in res.output) + +class BuildhistoryTests(BuildhistoryBase): + +def test_buildhistory_basic(self): +self.run_buildhistory_operation('xcursor-transparent-theme') +self.assertTrue(os.path.isdir(get_bb_var('BUILDHISTORY_DIR'))) + +def test_buildhistory_buildtime_pr_backwards(self): +self.add_command_to_tearDown('cleanup-workdir') +target = 'xcursor-transparent-theme' +error = ERROR: QA Issue: Package version for package %s went backwards which would break package feeds from (.*-r1 to .*-r0) % target +self.run_buildhistory_operation(target, target_config=PR = \r1\, change_bh_location=True) +self.run_buildhistory_operation(target, target_config=PR = \r0\, change_bh_location=False, expect_error=True, error_regex=error) + + + + + + -- 1.7.9.5 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH V2 1/3] oe-selftest: New BuildhistoryBase object for buildhistory testing.
Signed-off-by: Corneliu Stoicescu corneliux.stoice...@intel.com --- meta/lib/oeqa/selftest/buildhistory.py | 45 1 file changed, 45 insertions(+) create mode 100644 meta/lib/oeqa/selftest/buildhistory.py diff --git a/meta/lib/oeqa/selftest/buildhistory.py b/meta/lib/oeqa/selftest/buildhistory.py new file mode 100644 index 000..d8cae46 --- /dev/null +++ b/meta/lib/oeqa/selftest/buildhistory.py @@ -0,0 +1,45 @@ +import unittest +import os +import re +import shutil +import datetime + +import oeqa.utils.ftools as ftools +from oeqa.selftest.base import oeSelfTest +from oeqa.utils.commands import Command, runCmd, bitbake, get_bb_var, get_test_layer + + +class BuildhistoryBase(oeSelfTest): + +def config_buildhistory(self, tmp_bh_location=False): +if (not 'buildhistory' in get_bb_var('USER_CLASSES')) and (not 'buildhistory' in get_bb_var('INHERIT')): +add_buildhistory_config = 'INHERIT += buildhistory\nBUILDHISTORY_COMMIT = 1' +self.append_config(add_buildhistory_config) + +if tmp_bh_location: +# Using a temporary buildhistory location for testing +tmp_bh_dir = os.path.join(self.builddir, tmp_buildhistory_%s % datetime.datetime.now().strftime('%Y%m%d%H%M%S')) +buildhistory_dir_config = BUILDHISTORY_DIR = \%s\ % tmp_bh_dir +self.append_config(buildhistory_dir_config) +self.track_for_cleanup(tmp_bh_dir) + +def run_buildhistory_operation(self, target, global_config='', target_config='', change_bh_location=False, expect_error=False, error_regex=''): +if change_bh_location: +tmp_bh_location = True +else: +tmp_bh_location = False +self.config_buildhistory(tmp_bh_location) + +self.append_config(global_config) +self.append_recipeinc(target, target_config) +bitbake(-cclean %s % target) +result = bitbake(target, ignore_status=True) +self.remove_config(global_config) +self.remove_recipeinc(target, target_config) + +if expect_error: +self.assertEqual(result.status, 1, msg=Error expected for global config '%s' and target config '%s' % (global_config, target_config)) +search_for_error = re.search(error_regex, result.output) +self.assertTrue(search_for_error, msg=Could not find desired error in output: %s % error_regex) +else: +self.assertEqual(result.status, 0, msg=Command 'bitbake %s' has failed unexpectedly: %s % (target, result.output)) -- 1.7.9.5 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] libsoup-2.4: add intltool-native to DEPENDS
The configure script looks for this; most of the time dependency chains ensure this is present but we need to be explicit or failures can occur. Reported by Nicolas Dechesne nicolas.deche...@linaro.org Signed-off-by: Paul Eggleton paul.eggle...@linux.intel.com --- meta/recipes-support/libsoup/libsoup-2.4_2.44.2.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-support/libsoup/libsoup-2.4_2.44.2.bb b/meta/recipes-support/libsoup/libsoup-2.4_2.44.2.bb index 5edbb09..3325939 100644 --- a/meta/recipes-support/libsoup/libsoup-2.4_2.44.2.bb +++ b/meta/recipes-support/libsoup/libsoup-2.4_2.44.2.bb @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 SECTION = x11/gnome/libs -DEPENDS = glib-2.0 gnutls libxml2 libproxy sqlite3 +DEPENDS = glib-2.0 gnutls libxml2 libproxy sqlite3 intltool-native # libsoup-gnome is entirely deprecated and just stubs in 2.42 onwards. Enable # by default but let it be easily disabled. -- 1.8.1.2 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/1] rootfs_rpm.bbclass: make complementary packages not attempt-only
On 12/17/13, 2:54 AM, qi.c...@windriver.com wrote: From: Chen Qi qi.c...@windriver.com Installing complementary packages should not be attempt-only, otherwise, errors would be hidden. For example, if we enable ptest distro feature, and we add 'ptest-pkgs' to IMAGE_FEATRUES, then building a minimal image would succeed without reporting any error. However, the systemd-ptest is not installed because of lack of the perl package. Actually that was intentional under the original system design. Any of the complementary packages were just that, complementary and not required for the system to function properly. If dependencies, installation issues, etc caused problems, we could happily skip them and continue on. There are places (fairly few these days) where the complementary packages are known to introduce a failure, if not ignored. This happens primarily when the complementary set introduces a package that has a conflict (RCONFLICT or a file level conflict) with something installed in the required set. --Mark Signed-off-by: Chen Qi qi.c...@windriver.com --- meta/classes/rootfs_rpm.bbclass |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass index 1a0c225..9a88330 100644 --- a/meta/classes/rootfs_rpm.bbclass +++ b/meta/classes/rootfs_rpm.bbclass @@ -170,8 +170,8 @@ rpm_setup_smart_target_config() { rootfs_install_packages() { # Note - we expect the variables not set here to already have been set - export INSTALL_PACKAGES_RPM= - export INSTALL_PACKAGES_ATTEMPTONLY_RPM=`cat $1` + export INSTALL_PACKAGES_RPM=`cat $1` + export INSTALL_PACKAGES_ATTEMPTONLY_RPM= export INSTALL_PROVIDENAME_RPM= export INSTALL_TASK_RPM=rootfs_install_packages export INSTALL_COMPLEMENTARY_RPM=1 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/1] scripts/contrib: Add graph-tool
A simple script I put together for getting the paths from one node to another in a dot graph. This is useful for example in working out why a particular recipe is getting built in conjunction with dot graph files produced by bitbake -g. For example: $ bitbake -g core-image-minimal ... $ graph-tool find-paths pn-depends.dot core-image-minimal sqlite3-native core-image-minimal - packagegroup-core-boot - udev - libxslt-native - libxml2-native - python-native - sqlite3-native Partially addresses [YOCTO #3362]. Signed-off-by: Paul Eggleton paul.eggle...@linux.intel.com --- scripts/contrib/graph-tool | 92 ++ 1 file changed, 92 insertions(+) create mode 100755 scripts/contrib/graph-tool diff --git a/scripts/contrib/graph-tool b/scripts/contrib/graph-tool new file mode 100755 index 000..6dc7d33 --- /dev/null +++ b/scripts/contrib/graph-tool @@ -0,0 +1,92 @@ +#!/usr/bin/env python + +# Simple graph query utility +# useful for getting answers from .dot files produced by bitbake -g +# +# Written by: Paul Eggleton paul.eggle...@linux.intel.com +# +# Copyright 2013 Intel Corporation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# + +import sys + +def get_path_networkx(dotfile, fromnode, tonode): +try: +import networkx +except ImportError: +print('ERROR: Please install the networkx python module') +sys.exit(1) + +graph = networkx.DiGraph(networkx.read_dot(dotfile)) + +def node_missing(node): +import difflib +close_matches = difflib.get_close_matches(node, graph.nodes(), cutoff=0.7) +if close_matches: +print('ERROR: no node %s in graph. Close matches:\n %s' % (node, '\n '.join(close_matches))) +sys.exit(1) + +if not fromnode in graph: +node_missing(fromnode) +if not tonode in graph: +node_missing(tonode) +return networkx.all_simple_paths(graph, source=fromnode, target=tonode) + + +def find_paths(args, usage): +if len(args) 3: +usage() +sys.exit(1) + +fromnode = args[1] +tonode = args[2] +paths = list(get_path_networkx(args[0], fromnode, tonode)) +if paths: +for path in paths: +print ' - '.join(path) +else: +print(ERROR: no path from %s to %s in graph % (fromnode, tonode)) +sys.exit(1) + +def main(): +import optparse +parser = optparse.OptionParser( +usage = '''%prog [options] command arguments + +Available commands: +find-paths dotfile from to +Find all of the paths between two nodes in a dot graph''') + +#parser.add_option(-d, --debug, +#help = Report all SRCREV values, not just ones where AUTOREV has been used, +#action=store_true, dest=debug, default=False) + +options, args = parser.parse_args(sys.argv) +args = args[1:] + +if len(args) 1: +parser.print_help() +sys.exit(1) + +if args[0] == find-paths: +find_paths(args[1:], parser.print_help) +else: +parser.print_help() +sys.exit(1) + + +if __name__ == __main__: +main() -- 1.8.1.2 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/1] libsdl: Add support for libsdl-native
On Tuesday 17 December 2013 18:33:51 Andrei Gherzan wrote: From: Alexandru Niculita alexnic...@gmail.com Change-Id: I4fb1e623c7bbb1f35ae3001c839cd7e16ce1bd65 Signed-off-by: Alexandru Niculita alexnic...@gmail.com --- meta/recipes-graphics/libsdl/libsdl_1.2.15.bb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb b/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb index 4b4ff63..84d3ad6 100644 --- a/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb +++ b/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb @@ -17,6 +17,7 @@ DEPENDS = ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \ ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxext libxrandr libxrender', '', d)} \ tslib DEPENDS_class-nativesdk = ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/nativesdk-libx11 nativesdk-libxrandr nativesdk-libxrender nativesdk-libxext', '', d)} +DEPENDS_class-native = ${@base_contains('DISTRO_FEATURES', 'x11', 'libx11-native libxrandr-native libxrender-native libxext-native', '', d)} PR = r2 @@ -63,4 +64,4 @@ do_configure_prepend() { export SYSROOT=$PKG_CONFIG_SYSROOT_DIR } -BBCLASSEXTEND = nativesdk +BBCLASSEXTEND = nativesdk native Why do you want to do this? Usually, it's better to rely on the host distro providing SDL for native because building libsdl-native can lead to problems linking against a specific host OpenGL implementation. Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/1] libsdl: Add support for libsdl-native
On Tue, Dec 17, 2013 at 6:47 PM, Paul Eggleton paul.eggle...@linux.intel.com wrote: On Tuesday 17 December 2013 18:33:51 Andrei Gherzan wrote: From: Alexandru Niculita alexnic...@gmail.com Change-Id: I4fb1e623c7bbb1f35ae3001c839cd7e16ce1bd65 Signed-off-by: Alexandru Niculita alexnic...@gmail.com --- meta/recipes-graphics/libsdl/libsdl_1.2.15.bb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb b/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb index 4b4ff63..84d3ad6 100644 --- a/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb +++ b/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb @@ -17,6 +17,7 @@ DEPENDS = ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \ ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxext libxrandr libxrender', '', d)} \ tslib DEPENDS_class-nativesdk = ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/nativesdk-libx11 nativesdk-libxrandr nativesdk-libxrender nativesdk-libxext', '', d)} +DEPENDS_class-native = ${@base_contains('DISTRO_FEATURES', 'x11', 'libx11-native libxrandr-native libxrender-native libxext-native', '', d)} PR = r2 @@ -63,4 +64,4 @@ do_configure_prepend() { export SYSROOT=$PKG_CONFIG_SYSROOT_DIR } -BBCLASSEXTEND = nativesdk +BBCLASSEXTEND = nativesdk native Why do you want to do this? Usually, it's better to rely on the host distro providing SDL for native because building libsdl-native can lead to problems linking against a specific host OpenGL implementation. xbmc needs sdl-native - this is why I made this change. I didn't encounter any issues with the native libsdl so i thought this would be a better / cleaner way to do it. If you guys don't agree, we can drop. -- *ag* ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/1] libsdl: Add support for libsdl-native
On Tuesday 17 December 2013 18:51:08 Andrei Gherzan wrote: On Tue, Dec 17, 2013 at 6:47 PM, Paul Eggleton paul.eggle...@linux.intel.com wrote: On Tuesday 17 December 2013 18:33:51 Andrei Gherzan wrote: From: Alexandru Niculita alexnic...@gmail.com Change-Id: I4fb1e623c7bbb1f35ae3001c839cd7e16ce1bd65 Signed-off-by: Alexandru Niculita alexnic...@gmail.com --- meta/recipes-graphics/libsdl/libsdl_1.2.15.bb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb b/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb index 4b4ff63..84d3ad6 100644 --- a/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb +++ b/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb @@ -17,6 +17,7 @@ DEPENDS = ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \ ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxext libxrandr libxrender', '', d)} \ tslib DEPENDS_class-nativesdk = ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/nativesdk-libx11 nativesdk-libxrandr nativesdk-libxrender nativesdk-libxext', '', d)} +DEPENDS_class-native = ${@base_contains('DISTRO_FEATURES', 'x11', 'libx11-native libxrandr-native libxrender-native libxext-native', '', d)} PR = r2 @@ -63,4 +64,4 @@ do_configure_prepend() { export SYSROOT=$PKG_CONFIG_SYSROOT_DIR } -BBCLASSEXTEND = nativesdk +BBCLASSEXTEND = nativesdk native Why do you want to do this? Usually, it's better to rely on the host distro providing SDL for native because building libsdl-native can lead to problems linking against a specific host OpenGL implementation. xbmc needs sdl-native - this is why I made this change. Why does it need it though? Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/1] libsdl: Add support for libsdl-native
On Tue, Dec 17, 2013 at 6:53 PM, Paul Eggleton paul.eggle...@linux.intel.com wrote: On Tuesday 17 December 2013 18:51:08 Andrei Gherzan wrote: On Tue, Dec 17, 2013 at 6:47 PM, Paul Eggleton paul.eggle...@linux.intel.com wrote: On Tuesday 17 December 2013 18:33:51 Andrei Gherzan wrote: From: Alexandru Niculita alexnic...@gmail.com Change-Id: I4fb1e623c7bbb1f35ae3001c839cd7e16ce1bd65 Signed-off-by: Alexandru Niculita alexnic...@gmail.com --- meta/recipes-graphics/libsdl/libsdl_1.2.15.bb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb b/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb index 4b4ff63..84d3ad6 100644 --- a/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb +++ b/meta/recipes-graphics/libsdl/libsdl_1.2.15.bb @@ -17,6 +17,7 @@ DEPENDS = ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \ ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxext libxrandr libxrender', '', d)} \ tslib DEPENDS_class-nativesdk = ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/nativesdk-libx11 nativesdk-libxrandr nativesdk-libxrender nativesdk-libxext', '', d)} +DEPENDS_class-native = ${@base_contains('DISTRO_FEATURES', 'x11', 'libx11-native libxrandr-native libxrender-native libxext-native', '', d)} PR = r2 @@ -63,4 +64,4 @@ do_configure_prepend() { export SYSROOT=$PKG_CONFIG_SYSROOT_DIR } -BBCLASSEXTEND = nativesdk +BBCLASSEXTEND = nativesdk native Why do you want to do this? Usually, it's better to rely on the host distro providing SDL for native because building libsdl-native can lead to problems linking against a specific host OpenGL implementation. xbmc needs sdl-native - this is why I made this change. Why does it need it though? Actually xbmc has a tool called texturepacker which uses libsdl-image - which needs libsdl. That's the chain. -- ag ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [CONSOLIDATED PULL 00/11]
The following changes since commit b226ab4cf7779f4dfaa78210cb6249766ed564c1: insane: handle recursive configures when checking for unknown configure options (2013-12-16 12:12:40 +) are available in the git repository at: git://git.openembedded.org/openembedded-core-contrib sgw/stage http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=sgw/stage Cristian Iorga (1): libpcap: upgrade to 1.5.2 Kai Kang (5): lsb: update directory of install_initd and remove_initd LSB_Test.sh: update rpm platform file when enable multilib LSB_Test.sh: check ldconfig before update cache LSB_Test.sh: update locales lsbtest: add ppc64 support Paul Eggleton (1): scripts/contrib: Add graph-tool Ross Burton (1): systemd-compat-units: drop machineid.service Saul Wold (1): man-pages: upgrade to 3.55 Zhong Hongbo (2): bluez4: Install the test script bluez4: use legacy pygobject instead of gobject-introspection .../bluez/bluez4-4.101/install-test-script.patch | 26 ++ ...pygobject-instead-ofgobject-introspection.patch | 27 +++ meta/recipes-connectivity/bluez/bluez4_4.101.bb| 7 +- .../libpcap/libpcap/aclocal.patch | 8 +- .../libpcap/{libpcap_1.4.0.bb = libpcap_1.5.2.bb} | 4 +- meta/recipes-core/systemd/systemd-compat-units.bb | 4 - .../systemd/systemd-compat-units/machineid.service | 16 meta/recipes-extended/lsb/lsb_4.1.bb | 8 +- meta/recipes-extended/lsb/lsbtest/LSB_Test.sh | 20 - meta/recipes-extended/lsb/lsbtest_1.0.bb | 12 +++ .../{man-pages_3.54.bb = man-pages_3.55.bb} | 4 +- scripts/contrib/graph-tool | 92 ++ 12 files changed, 194 insertions(+), 34 deletions(-) create mode 100644 meta/recipes-connectivity/bluez/bluez4-4.101/install-test-script.patch create mode 100644 meta/recipes-connectivity/bluez/bluez4-4.101/use-legacy-pygobject-instead-ofgobject-introspection.patch rename meta/recipes-connectivity/libpcap/{libpcap_1.4.0.bb = libpcap_1.5.2.bb} (80%) delete mode 100644 meta/recipes-core/systemd/systemd-compat-units/machineid.service rename meta/recipes-extended/man-pages/{man-pages_3.54.bb = man-pages_3.55.bb} (82%) create mode 100755 scripts/contrib/graph-tool -- 1.8.3.1 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/1] scripts/contrib: Add graph-tool
On Tue, Dec 17, 2013 at 02:56:21PM +, Paul Eggleton wrote: A simple script I put together for getting the paths from one node to another in a dot graph. This is useful for example in working out why a particular recipe is getting built in conjunction with dot graph files produced by bitbake -g. For example: $ bitbake -g core-image-minimal ... $ graph-tool find-paths pn-depends.dot core-image-minimal sqlite3-native core-image-minimal - packagegroup-core-boot - udev - libxslt-native - libxml2-native - python-native - sqlite3-native Nice addition, thanks. Can it show multiple paths? Maybe it would be better example to show it on multiple-path case. As future improvement it would be nice to be able to filter some paths, e.g. sometimes I'm interested in runtime-dependencies, sometimes finding path through runtime isn't enough (e.g. when my recipe has runtime dependency of foo but actually needs foo at build time). Partially addresses [YOCTO #3362]. Signed-off-by: Paul Eggleton paul.eggle...@linux.intel.com --- scripts/contrib/graph-tool | 92 ++ 1 file changed, 92 insertions(+) create mode 100755 scripts/contrib/graph-tool diff --git a/scripts/contrib/graph-tool b/scripts/contrib/graph-tool new file mode 100755 index 000..6dc7d33 --- /dev/null +++ b/scripts/contrib/graph-tool @@ -0,0 +1,92 @@ +#!/usr/bin/env python + +# Simple graph query utility +# useful for getting answers from .dot files produced by bitbake -g +# +# Written by: Paul Eggleton paul.eggle...@linux.intel.com +# +# Copyright 2013 Intel Corporation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# + +import sys + +def get_path_networkx(dotfile, fromnode, tonode): +try: +import networkx +except ImportError: +print('ERROR: Please install the networkx python module') +sys.exit(1) + +graph = networkx.DiGraph(networkx.read_dot(dotfile)) + +def node_missing(node): +import difflib +close_matches = difflib.get_close_matches(node, graph.nodes(), cutoff=0.7) +if close_matches: +print('ERROR: no node %s in graph. Close matches:\n %s' % (node, '\n '.join(close_matches))) +sys.exit(1) + +if not fromnode in graph: +node_missing(fromnode) +if not tonode in graph: +node_missing(tonode) +return networkx.all_simple_paths(graph, source=fromnode, target=tonode) + + +def find_paths(args, usage): +if len(args) 3: +usage() +sys.exit(1) + +fromnode = args[1] +tonode = args[2] +paths = list(get_path_networkx(args[0], fromnode, tonode)) +if paths: +for path in paths: +print ' - '.join(path) +else: +print(ERROR: no path from %s to %s in graph % (fromnode, tonode)) +sys.exit(1) + +def main(): +import optparse +parser = optparse.OptionParser( +usage = '''%prog [options] command arguments + +Available commands: +find-paths dotfile from to +Find all of the paths between two nodes in a dot graph''') + +#parser.add_option(-d, --debug, +#help = Report all SRCREV values, not just ones where AUTOREV has been used, +#action=store_true, dest=debug, default=False) + +options, args = parser.parse_args(sys.argv) +args = args[1:] + +if len(args) 1: +parser.print_help() +sys.exit(1) + +if args[0] == find-paths: +find_paths(args[1:], parser.print_help) +else: +parser.print_help() +sys.exit(1) + + +if __name__ == __main__: +main() -- 1.8.1.2 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core -- Martin 'JaMa' Jansa jabber: martin.ja...@gmail.com signature.asc Description: Digital signature ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/1] scripts/contrib: Add graph-tool
On Tuesday 17 December 2013 18:16:35 Martin Jansa wrote: On Tue, Dec 17, 2013 at 02:56:21PM +, Paul Eggleton wrote: A simple script I put together for getting the paths from one node to another in a dot graph. This is useful for example in working out why a particular recipe is getting built in conjunction with dot graph files produced by bitbake -g. For example: $ bitbake -g core-image-minimal ... $ graph-tool find-paths pn-depends.dot core-image-minimal sqlite3-native core-image-minimal - packagegroup-core-boot - udev - libxslt-native - libxml2-native - python-native - sqlite3-native Nice addition, thanks. Can it show multiple paths? Maybe it would be better example to show it on multiple-path case. It can, yes: $ graph-tool find-paths pn-depends.dot core-image-minimal util-linux core-image-minimal - packagegroup-core-boot - udev - glib-2.0 - python-dbus - dbus-glib - dbus - libsm - e2fsprogs - util-linux core-image-minimal - packagegroup-core-boot - udev - glib-2.0 - python-dbus - dbus - libsm - e2fsprogs - util-linux core-image-minimal - packagegroup-core-boot - udev - util-linux I've updated the branch to use this example. As future improvement it would be nice to be able to filter some paths, e.g. sometimes I'm interested in runtime-dependencies, sometimes finding path through runtime isn't enough (e.g. when my recipe has runtime dependency of foo but actually needs foo at build time). Well, this script isn't very intelligent - it only operates on single graphs, and isn't a complete tool, hence why I added it to contrib. There's certainly scope for more work in this area, but I suspect it would be in a different tool which is closer to the build system itself (such as Toaster). Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [CONSOLIDATED PULL 00/11]
On 12/17/2013 09:10 AM, Saul Wold wrote: The following changes since commit b226ab4cf7779f4dfaa78210cb6249766ed564c1: insane: handle recursive configures when checking for unknown configure options (2013-12-16 12:12:40 +) are available in the git repository at: git://git.openembedded.org/openembedded-core-contrib sgw/stage http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=sgw/stage Cristian Iorga (1): libpcap: upgrade to 1.5.2 Kai Kang (5): lsb: update directory of install_initd and remove_initd LSB_Test.sh: update rpm platform file when enable multilib LSB_Test.sh: check ldconfig before update cache LSB_Test.sh: update locales lsbtest: add ppc64 support Paul Eggleton (1): scripts/contrib: Add graph-tool I updated my branch with the updates from Paul, so they should be in sync. Sau! Ross Burton (1): systemd-compat-units: drop machineid.service Saul Wold (1): man-pages: upgrade to 3.55 Zhong Hongbo (2): bluez4: Install the test script bluez4: use legacy pygobject instead of gobject-introspection .../bluez/bluez4-4.101/install-test-script.patch | 26 ++ ...pygobject-instead-ofgobject-introspection.patch | 27 +++ meta/recipes-connectivity/bluez/bluez4_4.101.bb| 7 +- .../libpcap/libpcap/aclocal.patch | 8 +- .../libpcap/{libpcap_1.4.0.bb = libpcap_1.5.2.bb} | 4 +- meta/recipes-core/systemd/systemd-compat-units.bb | 4 - .../systemd/systemd-compat-units/machineid.service | 16 meta/recipes-extended/lsb/lsb_4.1.bb | 8 +- meta/recipes-extended/lsb/lsbtest/LSB_Test.sh | 20 - meta/recipes-extended/lsb/lsbtest_1.0.bb | 12 +++ .../{man-pages_3.54.bb = man-pages_3.55.bb} | 4 +- scripts/contrib/graph-tool | 92 ++ 12 files changed, 194 insertions(+), 34 deletions(-) create mode 100644 meta/recipes-connectivity/bluez/bluez4-4.101/install-test-script.patch create mode 100644 meta/recipes-connectivity/bluez/bluez4-4.101/use-legacy-pygobject-instead-ofgobject-introspection.patch rename meta/recipes-connectivity/libpcap/{libpcap_1.4.0.bb = libpcap_1.5.2.bb} (80%) delete mode 100644 meta/recipes-core/systemd/systemd-compat-units/machineid.service rename meta/recipes-extended/man-pages/{man-pages_3.54.bb = man-pages_3.55.bb} (82%) create mode 100755 scripts/contrib/graph-tool ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/1] rootfs_rpm.bbclass: make complementary packages not attempt-only
On 12/17/2013 10:22 PM, Mark Hatle wrote: On 12/17/13, 2:54 AM, qi.c...@windriver.com wrote: From: Chen Qi qi.c...@windriver.com Installing complementary packages should not be attempt-only, otherwise, errors would be hidden. For example, if we enable ptest distro feature, and we add 'ptest-pkgs' to IMAGE_FEATRUES, then building a minimal image would succeed without reporting any error. However, the systemd-ptest is not installed because of lack of the perl package. Actually that was intentional under the original system design. Any of the complementary packages were just that, complementary and not required for the system to function properly. If dependencies, installation issues, etc caused problems, we could happily skip them and continue on. There are places (fairly few these days) where the complementary packages are known to introduce a failure, if not ignored. This happens primarily when the complementary set introduces a package that has a conflict (RCONFLICT or a file level conflict) with something installed in the required set. --Mark Thanks for your explanation :) Best Regards, Chen Qi Signed-off-by: Chen Qi qi.c...@windriver.com --- meta/classes/rootfs_rpm.bbclass |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass index 1a0c225..9a88330 100644 --- a/meta/classes/rootfs_rpm.bbclass +++ b/meta/classes/rootfs_rpm.bbclass @@ -170,8 +170,8 @@ rpm_setup_smart_target_config() { rootfs_install_packages() { # Note - we expect the variables not set here to already have been set -export INSTALL_PACKAGES_RPM= -export INSTALL_PACKAGES_ATTEMPTONLY_RPM=`cat $1` +export INSTALL_PACKAGES_RPM=`cat $1` +export INSTALL_PACKAGES_ATTEMPTONLY_RPM= export INSTALL_PROVIDENAME_RPM= export INSTALL_TASK_RPM=rootfs_install_packages export INSTALL_COMPLEMENTARY_RPM=1 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 1/1] image.bbclass: add ability to set systemd default target
Please drop this one. It has some problem with live images. I'll send out a V2. //Chen Qi On 12/17/2013 05:05 PM, qi.c...@windriver.com wrote: From: Chen Qi qi.c...@windriver.com Add ability to set the default target for systemd images. The default value for the target is derived from checking whether IMAGE_FEATRUES contains 'x11-base' or not. Each image could override this value in its own recipe. For now, we don't need to do any change, because all images that support graphical environment has 'x11-base' in its IMAGE_FEATRUES. [YOCTO #3816] Signed-off-by: Chen Qi qi.c...@windriver.com --- meta/classes/image.bbclass |8 1 file changed, 8 insertions(+) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index c595721..c8366d6 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -186,6 +186,9 @@ IMAGE_MANIFEST = ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest ROOTFS_POSTPROCESS_COMMAND =+ write_image_manifest ; # Set default postinst log file POSTINST_LOGFILE ?= ${localstatedir}/log/postinstall.log +# Set default target for systemd images +SYSTEMD_DEFAULT_TARGET ?= '${@base_contains(IMAGE_FEATURES, x11-base, graphical.target, multi-user.target, d)}' +ROOTFS_POSTPROCESS_COMMAND += '${@base_contains(DISTRO_FEATURES, systemd, set_systemd_default_target; , , d)}' # some default locales IMAGE_LINGUAS ?= de-de fr-fr en-gb @@ -596,6 +599,11 @@ postinst_enable_logging () { echo LOGFILE=${POSTINST_LOGFILE} ${IMAGE_ROOTFS}${sysconfdir}/default/postinst } +# Modify systemd default target +set_systemd_default_target () { + ln -sf ${systemd_unitdir}/system/${SYSTEMD_DEFAULT_TARGET} ${IMAGE_ROOTFS}${sysconfdir}/systemd/system/default.target +} + # Turn any symbolic /sbin/init link into a file remove_init_link () { if [ -h ${IMAGE_ROOTFS}/sbin/init ]; then ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH V2 0/1] image.bbclass: add ability to set systemd default target
From: Chen Qi qi.c...@windriver.com Changes since V1: 1. Fix a problem when building live images The following changes since commit 9daa1de753e58b7f678e68cf307f6028c0c79a6a: qemu/local.conf.sample: Add sdl PACKAGECONFIG (2013-12-16 12:13:59 +) are available in the git repository at: git://git.pokylinux.org/poky-contrib ChenQi/systemd-default-target http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/systemd-default-target Chen Qi (1): image.bbclass: add ability to set systemd default target meta/classes/image.bbclass | 10 ++ 1 file changed, 10 insertions(+) -- 1.7.9.5 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH V2 1/1] image.bbclass: add ability to set systemd default target
From: Chen Qi qi.c...@windriver.com Add ability to set the default target for systemd images. The default value for the target is derived from checking whether IMAGE_FEATRUES contains 'x11-base' or not. Each image could override this value in its own recipe. For now, we don't need to do any change, because all images that support graphical environment has 'x11-base' in its IMAGE_FEATRUES. [YOCTO #3816] Signed-off-by: Chen Qi qi.c...@windriver.com --- meta/classes/image.bbclass | 10 ++ 1 file changed, 10 insertions(+) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index c595721..4c63bc2 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -186,6 +186,9 @@ IMAGE_MANIFEST = ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest ROOTFS_POSTPROCESS_COMMAND =+ write_image_manifest ; # Set default postinst log file POSTINST_LOGFILE ?= ${localstatedir}/log/postinstall.log +# Set default target for systemd images +SYSTEMD_DEFAULT_TARGET ?= '${@base_contains(IMAGE_FEATURES, x11-base, graphical.target, multi-user.target, d)}' +ROOTFS_POSTPROCESS_COMMAND += '${@base_contains(DISTRO_FEATURES, systemd, set_systemd_default_target; , , d)}' # some default locales IMAGE_LINGUAS ?= de-de fr-fr en-gb @@ -596,6 +599,13 @@ postinst_enable_logging () { echo LOGFILE=${POSTINST_LOGFILE} ${IMAGE_ROOTFS}${sysconfdir}/default/postinst } +# Modify systemd default target +set_systemd_default_target () { + if [ -d ${IMAGE_ROOTFS}${sysconfdir}/systemd/system -a -e ${IMAGE_ROOTFS}${systemd_unitdir}/system/${SYSTEMD_DEFAULT_TARGET} ]; then + ln -sf ${systemd_unitdir}/system/${SYSTEMD_DEFAULT_TARGET} ${IMAGE_ROOTFS}${sysconfdir}/systemd/system/default.target + fi +} + # Turn any symbolic /sbin/init link into a file remove_init_link () { if [ -h ${IMAGE_ROOTFS}/sbin/init ]; then -- 1.7.9.5 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH V2 1/1] image.bbclass: add ability to set systemd default target
Op 18 dec. 2013, om 08:49 heeft qi.c...@windriver.com het volgende geschreven: From: Chen Qi qi.c...@windriver.com Add ability to set the default target for systemd images. The default value for the target is derived from checking whether IMAGE_FEATRUES typo contains 'x11-base' or not. Each image could override this value in its own recipe. For now, we don't need to do any change, because all images that support graphical environment has 'x11-base' in its IMAGE_FEATRUES. typo And you're missing the actual SYSTEMD_DEFAULT_TARGET in the description. If it only works on images, please to something like IMAGE_SYSTEMD_DEFAULT_TARGET [YOCTO #3816] Signed-off-by: Chen Qi qi.c...@windriver.com --- meta/classes/image.bbclass | 10 ++ 1 file changed, 10 insertions(+) diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index c595721..4c63bc2 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -186,6 +186,9 @@ IMAGE_MANIFEST = ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.manifest ROOTFS_POSTPROCESS_COMMAND =+ write_image_manifest ; # Set default postinst log file POSTINST_LOGFILE ?= ${localstatedir}/log/postinstall.log +# Set default target for systemd images +SYSTEMD_DEFAULT_TARGET ?= '${@base_contains(IMAGE_FEATURES, x11-base, graphical.target, multi-user.target, d)}' +ROOTFS_POSTPROCESS_COMMAND += '${@base_contains(DISTRO_FEATURES, systemd, set_systemd_default_target; , , d)}' # some default locales IMAGE_LINGUAS ?= de-de fr-fr en-gb @@ -596,6 +599,13 @@ postinst_enable_logging () { echo LOGFILE=${POSTINST_LOGFILE} ${IMAGE_ROOTFS}${sysconfdir}/default/postinst } +# Modify systemd default target +set_systemd_default_target () { + if [ -d ${IMAGE_ROOTFS}${sysconfdir}/systemd/system -a -e ${IMAGE_ROOTFS}${systemd_unitdir}/system/${SYSTEMD_DEFAULT_TARGET} ]; then + ln -sf ${systemd_unitdir}/system/${SYSTEMD_DEFAULT_TARGET} ${IMAGE_ROOTFS}${sysconfdir}/systemd/system/default.target + fi +} + # Turn any symbolic /sbin/init link into a file remove_init_link () { if [ -h ${IMAGE_ROOTFS}/sbin/init ]; then -- 1.7.9.5 ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core