Re: [OE-core] [PATCH v3 1/2] licenses.conf: Modified parameters for new spdx.bbclass
On 8 June 2015 at 11:25, Lei Maohui leimao...@cn.fujitsu.com wrote: 1) Define new command line to get spdx file. 2) Define some mandatory fields for spdx 0.2 Signed-off-by: Lei Maohui leimao...@cn.fujitsu.com --- meta/conf/licenses.conf | 77 + 1 file changed, 20 insertions(+), 57 deletions(-) diff --git a/meta/conf/licenses.conf b/meta/conf/licenses.conf index 629916b..1d37616 100644 --- a/meta/conf/licenses.conf +++ b/meta/conf/licenses.conf @@ -122,68 +122,31 @@ SPDXLICENSEMAP[SGIv1] = SGI-1 #COPY_LIC_DIRS = 1 ## SPDX temporary directory -SPDX_TEMP_DIR = ${WORKDIR}/spdx_temp -SPDX_MANIFEST_DIR = /home/yocto/fossology_scans +SPDX_TEMP_DIR ?= ${WORKDIR}/spdx_temp +SPDX_MANIFEST_DIR ?= /home/yocto/fossology_scans We should probably find a relative path here for where to put the manifest that isn't /home/yocto/. I'd suggest ${TMPDIR}/fossology_scans or something like that. ## SPDX Format info -SPDX_VERSION = SPDX-1.1 +SPDX_VERSION = SPDX-1.2 DATA_LICENSE = CC0-1.0 +## If your fossylogy server is from 2.4.0 to 2.6.1,the LICENSELISTVERSION is 1.19 +## Reference to http://www.fossology.org/projects/fossology/wiki/Release_Notes +LICENSELISTVERSION = 1.19 +CREATOR_TOOL = yocto+fossology-spdx + +# FOSSologySPDX instance server. +FOSS_SERVER ?= http://127.0.0.1/repo/ --noproxy 127.0.0.1 + +# The following commnd is suit for the FOSSologySPDX instance server in localhost. +# options: +# 1) noCopyright: true/false. Only when this option is set to true, copyright information is scanned. +# 2) jsonOutput: true/false. Only when this option is set to true, scanning result is output in JSON format. +#Skipping this option equals setting to false. +# 3) fullSPDXFlag: true/false. Only when this option is set to true, low definition of full SPDX contents are output. +#This option should be set as true when user want to generate SPDX file from command line. -## Fossology scan information -# You can set option to control if the copyright information will be skipped -# during the identification process. -# -# It is defined as [FOSS_COPYRIGHT] in ./meta/conf/licenses.conf. -# FOSS_COPYRIGHT = true -# NO copyright will be processed. That means only license information will be -# identified and output to SPDX file -# FOSS_COPYRIGHT = false -# Copyright will be identified and output to SPDX file along with license -# information. The process will take more time than not processing copyright -# information. -# - -FOSS_NO_COPYRIGHT = true - -# A option defined as[FOSS_RECURSIVE_UNPACK] in ./meta/conf/licenses.conf. is -# used to control if FOSSology server need recursively unpack tar.gz file which -# is sent from do_spdx task. -# -# FOSS_RECURSIVE_UNPACK = false: -#FOSSology server does NOT recursively unpack. In the current release, this -#is the default choice because recursively unpack will not necessarily break -#down original compressed files. -# FOSS_RECURSIVE_UNPACK = true: -#FOSSology server recursively unpack components. -# - -FOSS_RECURSIVE_UNPACK = false - -# An option defined as [FOSS_FULL_SPDX] in ./meta/conf/licenses.conf is used to -# control what kind of SPDX output to get from the FOSSology server. -# -# FOSS_FULL_SPDX = true: -# Tell FOSSology server to return full SPDX output, like if the program was -# run from the command line. This is needed in order to get license refs for -# the full package rather than individual files only. -# -# FOSS_FULL_SPDX = false: -# Tell FOSSology to only process license information for files. All package -# license tags in the report will be NOASSERTION -# - -FOSS_FULL_SPDX = true - -# FOSSologySPDX instance server. http://localhost/repo is the default -# installation location for FOSSology. -# # For more information on FOSSologySPDX commandline: -# https://github.com/spdx-tools/fossology-spdx/wiki/Fossology-SPDX-Web-API -# - -FOSS_BASE_URL = http://localhost/repo/?mod=spdx_license_once; -FOSS_SERVER = ${FOSS_BASE_URL}fullSPDXFlag=${FOSS_FULL_SPDX}noCopyright=${FOSS_NO_COPYRIGHT}recursiveUnpack=${FOSS_RECURSIVE_UNPACK} +# # https://github.com/spdx-tools/fossology-spdx/wiki/Fossology-SPDX-Web-API -FOSS_WGET_FLAGS = -qO - --no-check-certificate --timeout=0 +FOSS_CURL_FLAGS ?= -F mod=spdx_license_once -F noCopyright=false -F jsonOutput=false -F fullSPDXFlag=true -- 1.8.4.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core -- Elizabeth Flanagan Yocto Project Build and Release -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH][Daisy] mesa: Avoid leaving empty sysconfdir in mesa package
Hi, Looks good for me i tested with rpm and deb package_classes. Cheers, alimon On 08/06/15 06:10, Pau Espin Pedrol wrote: Signed-off-by: Pau Espin Pedrol pau.es...@aweurope.be Acked-by: Aníbal Limón anibal.li...@linux.intel.com --- meta/recipes-graphics/mesa/mesa.inc | 5 + 1 file changed, 5 insertions(+) diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 96313b5..f88b2a4 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -99,6 +99,11 @@ do_install_append () { # it was packaged in libdricore9.1.3-1 and preventing upgrades when debian.bbclass was used rm -f ${D}${sysconfdir}/drirc + +# /etc is sometimes left as an empty directory and it ends up into 'mesa' package, which is then a non-empty package +if [ -d ${D}${sysconfdir} ]; then +rmdir --ignore-fail-on-non-empty ${D}${sysconfdir} +fi } # For the packages that make up the OpenGL interfaces, inject variables so that -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH v3 2/2] spdx.bbclass: Create the spdx file which is compliant with SPDX 1.2 Specification
On 8 June 2015 at 11:25, Lei Maohui leimao...@cn.fujitsu.com wrote: The main changes are: 1. use curl command instead of wget when get spdx file from FOSSologySPDX instance server. Before apply these patches, the command is : wget -qO - --no-check-certificate --timeout=0 --post-file=xxx/yyy/zzz.tar.gz http://localhost//?mod=spdx_license_oncenoCopyright=${FOSS_COPYRIGHT}recursiveUnpack=${FOSS_RECURSIVE_UNPACK} After apply these patches, the command is : curl http://127.0.0.1/repo/ --noproxy 127.0.0.1 -k -F mod=spdx_license_once -F noCopyright=false -F jsonOutput=false -F fullSPDXFlag=true -F file=@ xxx/yyy/zzz.tar.gz -o xxx/yyy/zzz.spdx Because if use wget command,the Mandatory fields of the SPDX Specification such as the following can't be obtained. 1) PackageLicenseInfoFromFiles(Package Information) 2) PackageLicenseDeclared(Package Information) 3) LicenseID(License Information) 4) ExtractedText(License Information) 5) LicenseName(License Information) 2. In order to avoid the SPDX_S be polluted in the rebuild, create ${WORKDIR}/${SPDX_TEMP_DIR} to save the source. 3. Add mandatory field to be compliant with the SPDX 1.2 Specification. Signed-off-by: Lei Maohui leimao...@cn.fujitsu.com --- meta/classes/spdx.bbclass | 425 +- 1 file changed, 155 insertions(+), 270 deletions(-) diff --git a/meta/classes/spdx.bbclass b/meta/classes/spdx.bbclass index 454c53e..09584af 100644 --- a/meta/classes/spdx.bbclass +++ b/meta/classes/spdx.bbclass @@ -15,178 +15,191 @@ # SPDX file will be output to the path which is defined as[SPDX_MANIFEST_DIR] # in ./meta/conf/licenses.conf. +SPDXOUTPUTDIR = ${WORKDIR}/spdx_output_dir SPDXSSTATEDIR = ${WORKDIR}/spdx_sstate_dir # If ${S} isn't actually the top-level source directory, set SPDX_S to point at # the real top-level directory. + SPDX_S ?= ${S} python do_spdx () { import os, sys -import json, shutil +import json + +#The source of gcc is too large to get it's spdx.So,give up. +bpn = d.getVar('BPN', True) +if ((bpn == gcc) or (bpn == libgcc)): +return None info = {} info['workdir'] = d.getVar('WORKDIR', True) -info['sourcedir'] = d.getVar('SPDX_S', True) info['pn'] = d.getVar('PN', True) info['pv'] = d.getVar('PV', True) +info['package_download_location'] = d.getVar('SRC_URI', True) +if info['package_download_location'] != : +info['package_download_location'] = info['package_download_location'].split()[0] info['spdx_version'] = d.getVar('SPDX_VERSION', True) info['data_license'] = d.getVar('DATA_LICENSE', True) +info['creator'] = {} +info['creator']['Tool'] = d.getVar('CREATOR_TOOL', True) +info['license_list_version'] = d.getVar('LICENSELISTVERSION', True) +info['package_homepage'] = d.getVar('HOMEPAGE', True) +info['package_summary'] = d.getVar('SUMMARY', True) -sstatedir = d.getVar('SPDXSSTATEDIR', True) -sstatefile = os.path.join(sstatedir, info['pn'] + info['pv'] + .spdx) - +spdx_sstate_dir = d.getVar('SPDXSSTATEDIR', True) manifest_dir = d.getVar('SPDX_MANIFEST_DIR', True) -info['outfile'] = os.path.join(manifest_dir, info['pn'] + .spdx ) - -info['spdx_temp_dir'] = d.getVar('SPDX_TEMP_DIR', True) -info['tar_file'] = os.path.join(info['workdir'], info['pn'] + .tar.gz ) - +info['outfile'] = os.path.join(manifest_dir, info['pn'] + - + info['pv'] + .spdx) +sstatefile = os.path.join(spdx_sstate_dir, +info['pn'] + - + info['pv'] + .spdx ) +info['tar_file'] = os.path.join(info['workdir'], info['pn'] + .tar.gz) + # Make sure important dirs exist try: bb.utils.mkdirhier(manifest_dir) -bb.utils.mkdirhier(sstatedir) -bb.utils.mkdirhier(info['spdx_temp_dir']) +bb.utils.mkdirhier(spdx_sstate_dir) except OSError as e: bb.error(SPDX: Could not set up required directories: + str(e)) return ## get everything from cache. use it to decide if -## something needs to be rerun -cur_ver_code = get_ver_code(info['sourcedir']) +## something needs to be rerun +d.setVar('WORKDIR', d.getVar('SPDX_TEMP_DIR', True)) +info['sourcedir'] = d.getVar('SPDX_S', True) +cur_ver_code = get_ver_code(info['sourcedir']).split()[0] cache_cur = False if os.path.exists(sstatefile): ## cache for this package exists. read it in cached_spdx = get_cached_spdx(sstatefile) - -if cached_spdx['PackageVerificationCode'] == cur_ver_code: -bb.warn(SPDX: Verification code for + info['pn'] - + is same as cache's. do nothing) +if cached_spdx: +cached_spdx = cached_spdx.split()[0] +if (cached_spdx == cur_ver_code): +bb.warn(info['pn'] + 's ver code same as cache's. do
Re: [OE-core] [PATCH v3 1/2] licenses.conf: Modified parameters for new spdx.bbclass
On 8 June 2015 at 11:25, Lei Maohui leimao...@cn.fujitsu.com wrote: 1) Define new command line to get spdx file. 2) Define some mandatory fields for spdx 0.2 Signed-off-by: Lei Maohui leimao...@cn.fujitsu.com --- meta/conf/licenses.conf | 77 + 1 file changed, 20 insertions(+), 57 deletions(-) diff --git a/meta/conf/licenses.conf b/meta/conf/licenses.conf index 629916b..1d37616 100644 --- a/meta/conf/licenses.conf +++ b/meta/conf/licenses.conf @@ -122,68 +122,31 @@ SPDXLICENSEMAP[SGIv1] = SGI-1 #COPY_LIC_DIRS = 1 ## SPDX temporary directory -SPDX_TEMP_DIR = ${WORKDIR}/spdx_temp -SPDX_MANIFEST_DIR = /home/yocto/fossology_scans +SPDX_TEMP_DIR ?= ${WORKDIR}/spdx_temp +SPDX_MANIFEST_DIR ?= /home/yocto/fossology_scans ## SPDX Format info -SPDX_VERSION = SPDX-1.1 +SPDX_VERSION = SPDX-1.2 DATA_LICENSE = CC0-1.0 +## If your fossylogy server is from 2.4.0 to 2.6.1,the LICENSELISTVERSION is 1.19 +## Reference to http://www.fossology.org/projects/fossology/wiki/Release_Notes +LICENSELISTVERSION = 1.19 +CREATOR_TOOL = yocto+fossology-spdx Can we also get a prefix to these? LICENSELISTVERSION is hard to debug if I happen to run across it. If you notice above and below we're using SPDX_ or FOSS_. Can we decide on one of these for DATA_LICENSE CREATOR_TOOL and LICENSELISTVERSION (which should be shortened perhaps)? + +# FOSSologySPDX instance server. +FOSS_SERVER ?= http://127.0.0.1/repo/ --noproxy 127.0.0.1 + +# The following commnd is suit for the FOSSologySPDX instance server in localhost. +# options: +# 1) noCopyright: true/false. Only when this option is set to true, copyright information is scanned. +# 2) jsonOutput: true/false. Only when this option is set to true, scanning result is output in JSON format. +#Skipping this option equals setting to false. +# 3) fullSPDXFlag: true/false. Only when this option is set to true, low definition of full SPDX contents are output. +#This option should be set as true when user want to generate SPDX file from command line. There's some trailing whitespace above. -## Fossology scan information -# You can set option to control if the copyright information will be skipped -# during the identification process. -# -# It is defined as [FOSS_COPYRIGHT] in ./meta/conf/licenses.conf. -# FOSS_COPYRIGHT = true -# NO copyright will be processed. That means only license information will be -# identified and output to SPDX file -# FOSS_COPYRIGHT = false -# Copyright will be identified and output to SPDX file along with license -# information. The process will take more time than not processing copyright -# information. -# - -FOSS_NO_COPYRIGHT = true - -# A option defined as[FOSS_RECURSIVE_UNPACK] in ./meta/conf/licenses.conf. is -# used to control if FOSSology server need recursively unpack tar.gz file which -# is sent from do_spdx task. -# -# FOSS_RECURSIVE_UNPACK = false: -#FOSSology server does NOT recursively unpack. In the current release, this -#is the default choice because recursively unpack will not necessarily break -#down original compressed files. -# FOSS_RECURSIVE_UNPACK = true: -#FOSSology server recursively unpack components. -# - -FOSS_RECURSIVE_UNPACK = false - -# An option defined as [FOSS_FULL_SPDX] in ./meta/conf/licenses.conf is used to -# control what kind of SPDX output to get from the FOSSology server. -# -# FOSS_FULL_SPDX = true: -# Tell FOSSology server to return full SPDX output, like if the program was -# run from the command line. This is needed in order to get license refs for -# the full package rather than individual files only. -# -# FOSS_FULL_SPDX = false: -# Tell FOSSology to only process license information for files. All package -# license tags in the report will be NOASSERTION -# - -FOSS_FULL_SPDX = true - -# FOSSologySPDX instance server. http://localhost/repo is the default -# installation location for FOSSology. -# # For more information on FOSSologySPDX commandline: -# https://github.com/spdx-tools/fossology-spdx/wiki/Fossology-SPDX-Web-API -# - -FOSS_BASE_URL = http://localhost/repo/?mod=spdx_license_once; -FOSS_SERVER = ${FOSS_BASE_URL}fullSPDXFlag=${FOSS_FULL_SPDX}noCopyright=${FOSS_NO_COPYRIGHT}recursiveUnpack=${FOSS_RECURSIVE_UNPACK} +# # https://github.com/spdx-tools/fossology-spdx/wiki/Fossology-SPDX-Web-API -FOSS_WGET_FLAGS = -qO - --no-check-certificate --timeout=0 +FOSS_CURL_FLAGS ?= -F mod=spdx_license_once -F noCopyright=false -F jsonOutput=false -F fullSPDXFlag=true -- 1.8.4.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core -- Elizabeth Flanagan Yocto Project Build and Release -- ___ Openembedded-core
Re: [OE-core] [PATCH RFC] sstate: Add eventhandler which cleans up stale recipe data
On Mon, 2015-06-08 at 14:43 +0200, Martin Jansa wrote: On Sun, Jun 07, 2015 at 08:20:12AM +0100, Richard Purdie wrote: Incremental builds do not work well when renaming recipes or changing architecture is a long standing issue which causes people considerable pain. We've struggled for a long time to come up with a way to generically address the problem. There are additional issues where removal of a layer caused data to continue to exist and additionally, changing DISTRO_FEATURES also caused problems in an existing TMPDIR. This patch attempts to address this by adding a mapping between stamp files and manifests. After parsing we can easily tell which stamp files are still reachable, if any manifest has a stamp that can no longer be reached, we can remove it. Since this code ties this to the sstate architecture list, it will not remove data from other than the current MACHINE (and its active architectures). It does not clean the sstate cache so if another build activates something which was cleaned, it should reinstall from sstate. We can also go one step further, depending on the setting of SSTATE_PRUNE_OBSOLETEWORKDIR, workdirs which are no longer active can also be removed. This avoids the buildup of many old copies of data in WORKDIR for example when versions are upgraded. The one thing which may surprise people with this change is if you remove a layer, data added by that layer will be uninstalled before the next build continues. I believe this is a feature and a good thing to do though. This code is safe with existing builds. If something isn't in the new index it simply isn't removed. Since changes to the sstate code trigger a rebuild, after this merges, we can assume the code will start to detect changes from that point onwards. [Right now this is an RFC, it appeared to do the right things in some brief local tests and I am pretty excited that this could solve a long standing usability issue in a clean and effective way. There is a bug related to DISTRO_FEATURES changes right now since even skipped recipes will still show active stamps meaning systemd isn't removed from a sysvinit build and vice versa. I should be able to fix that next week before merging. This patch depends on the patch on the bitbake list for the event it needs. Before merging I will bump version number requirements to ensure people have it. I also want to improve the log output so it tells users what its doing rather than the obtuse bb.error().] [YOCTO #4102] Thanks RP, good work, I'm cherry-picking both changes for my next world build. There were some small but annoying bugs in the first version I posted. I've shaken them out and posted a version which appears to work much better. The sysvinit issue turned out to be the metadata markup, not the skipped metadata problem I was expecting it to be. I'm quietly excited with this change as I think it should improve people's experiences in a number of ways. Cheers, Richard -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/2][dizzy] python-nose and python-contextlib backports to dizzy
I would like to backport both python-nose and python-contextlib to dizzy, they were added to master in the following commits respectively: http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=7282635343e0ccf7a82ffdb35905bdc2db6093d3 http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=7f58a85337a0712802bdb604a58985a8800b6477 I would like to include python-scipy, and these are build dependencies for it, more specifically for iot builds which currently use the dizzy branch The following changes since commit 9c4ff467f66428488b1cd9798066a8cb5d6b4c3b: split_and_strip_files: regroup hardlinks to make build deterministic (2015-05-15 18:13:40 +0100) are available in the git repository at: git://git.yoctoproject.org/poky-contrib hsalejandro/iot_backports http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=hsalejandro/iot_backports Alejandro Hernandez (2): python-contextlib: backport to dizzy python-nose: backport it to dizzy meta/recipes-devtools/python/python-2.7-manifest.inc | 10 +++--- meta/recipes-devtools/python/python-nose_1.3.6.bb| 16 scripts/contrib/python/generate-manifest-2.7.py | 3 +++ 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-devtools/python/python-nose_1.3.6.bb -- 1.8.4.5 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/2][dizzy] python-contextlib: backport to dizzy
Signed-off-by: Alejandro Hernandez alejandro.hernan...@linux.intel.com --- meta/recipes-devtools/python/python-2.7-manifest.inc | 10 +++--- scripts/contrib/python/generate-manifest-2.7.py | 3 +++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/meta/recipes-devtools/python/python-2.7-manifest.inc b/meta/recipes-devtools/python/python-2.7-manifest.inc index 5c2629e..3d2e48d 100644 --- a/meta/recipes-devtools/python/python-2.7-manifest.inc +++ b/meta/recipes-devtools/python/python-2.7-manifest.inc @@ -5,9 +5,9 @@ -PROVIDES+=${PN}-2to3 ${PN}-audio ${PN}-bsddb ${PN}-codecs ${PN}-compile ${PN}-compiler ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-dev ${PN}-difflib ${PN}-distutils ${PN}-distutils-staticdev ${PN}-doctest ${PN}-elementtree ${PN}-email ${PN}-fcntl ${PN}-gdbm ${PN}-hotshot ${PN}-html ${PN}-idle ${PN}-image ${PN}-importlib ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-resource ${PN}-robotparser ${PN}-shell ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc ${PN}-zlib +PROVIDES+=${PN}-2to3 ${PN}-audio ${PN}-bsddb ${PN}-codecs ${PN}-compile ${PN}-compiler ${PN}-compression ${PN}-contextlib ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-dev ${PN}-difflib ${PN}-distutils ${PN}-distutils-staticdev ${PN}-doctest ${PN}-elementtree ${PN}-email ${PN}-fcntl ${PN}-gdbm ${PN}-hotshot ${PN}-html ${PN}-idle ${PN}-image ${PN}-importlib ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-resource ${PN}-robotparser ${PN}-shell ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc ${PN}-zlib -PACKAGES=${PN}-dbg ${PN}-2to3 ${PN}-audio ${PN}-bsddb ${PN}-codecs ${PN}-compile ${PN}-compiler ${PN}-compression ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-dev ${PN}-difflib ${PN}-distutils-staticdev ${PN}-distutils ${PN}-doctest ${PN}-elementtree ${PN}-email ${PN}-fcntl ${PN}-gdbm ${PN}-hotshot ${PN}-html ${PN}-idle ${PN}-image ${PN}-importlib ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-resource ${PN}-robotparser ${PN}-shell ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc ${PN}-zlib ${PN}-modules +PACKAGES=${PN}-dbg ${PN}-2to3 ${PN}-audio ${PN}-bsddb ${PN}-codecs ${PN}-compile ${PN}-compiler ${PN}-compression ${PN}-contextlib ${PN}-core ${PN}-crypt ${PN}-ctypes ${PN}-curses ${PN}-datetime ${PN}-db ${PN}-debugger ${PN}-dev ${PN}-difflib ${PN}-distutils-staticdev ${PN}-distutils ${PN}-doctest ${PN}-elementtree ${PN}-email ${PN}-fcntl ${PN}-gdbm ${PN}-hotshot ${PN}-html ${PN}-idle ${PN}-image ${PN}-importlib ${PN}-io ${PN}-json ${PN}-lang ${PN}-logging ${PN}-mailbox ${PN}-math ${PN}-mime ${PN}-mmap ${PN}-multiprocessing ${PN}-netclient ${PN}-netserver ${PN}-numbers ${PN}-pickle ${PN}-pkgutil ${PN}-pprint ${PN}-profile ${PN}-pydoc ${PN}-re ${PN}-readline ${PN}-resource ${PN}-robotparser ${PN}-shell ${PN}-smtpd ${PN}-sqlite3 ${PN}-sqlite3-tests ${PN}-stringold ${PN}-subprocess ${PN}-syslog ${PN}-terminal ${PN}-tests ${PN}-textutils ${PN}-threading ${PN}-tkinter ${PN}-unittest ${PN}-unixadmin ${PN}-xml ${PN}-xmlrpc ${PN}-zlib ${PN}-modules SUMMARY_${PN}-2to3=Python automated Python 2 to 3 code translator RDEPENDS_${PN}-2to3=${PN}-core @@ -37,6 +37,10 @@ SUMMARY_${PN}-compression=Python high-level compression support RDEPENDS_${PN}-compression=${PN}-core ${PN}-zlib FILES_${PN}-compression=${libdir}/python2.7/gzip.* ${libdir}/python2.7/zipfile.* ${libdir}/python2.7/tarfile.* ${libdir}/python2.7/lib-dynload/bz2.so +SUMMARY_${PN}-contextlib=Python utilities for with-statementcontexts. +RDEPENDS_${PN}-contextlib=${PN}-core +FILES_${PN}-contextlib=${libdir}/python${PYTHON_MAJMIN}/contextlib.* + SUMMARY_${PN}-core=Python interpreter and core modules
[OE-core] [PATCH 2/2][dizzy] python-nose: backport it to dizzy
Signed-off-by: Alejandro Hernandez alejandro.hernan...@linux.intel.com --- meta/recipes-devtools/python/python-nose_1.3.6.bb | 16 1 file changed, 16 insertions(+) create mode 100644 meta/recipes-devtools/python/python-nose_1.3.6.bb diff --git a/meta/recipes-devtools/python/python-nose_1.3.6.bb b/meta/recipes-devtools/python/python-nose_1.3.6.bb new file mode 100644 index 000..d6e8fc1 --- /dev/null +++ b/meta/recipes-devtools/python/python-nose_1.3.6.bb @@ -0,0 +1,16 @@ +DESCRIPTION = nose extends the test loading and running features of unittest, \ +making it easier to write, find and run tests. +SECTION = devel/python +LICENSE = LGPLv2.1 +LIC_FILES_CHKSUM = file://lgpl.txt;md5=a6f89e2100d9b6cdffcea4f398e37343 + +SRC_URI = http://pypi.python.org/packages/source/n/nose/nose-${PV}.tar.gz; + +SRC_URI[md5sum] = 0ca546d81ca8309080fc80cb389e7a16 +SRC_URI[sha256sum] = f61e0909a743eed37b1207e38a8e7b4a2fe0a82185e36f2be252ef1b3f901758 + +S = ${WORKDIR}/nose-${PV} + +inherit setuptools + +BBCLASSEXTEND = native nativesdk -- 1.8.4.5 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] sysvinit: Only enable recipe in builds where its applicable
Similarly to systemd, only enable the recipe in builds where sysvinit is configured in DISTRO_FEATURES. This allows the new cleanup mechanism to handle it correctly in existing builds. Signed-off-by: Richard Purdie richard.pur...@linuxfoundation.org diff --git a/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb b/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb index 2c7e3ce..6709a9b 100644 --- a/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb +++ b/meta/recipes-core/sysvinit/sysvinit_2.88dsf.bb @@ -100,3 +100,8 @@ do_install () { chown root.shutdown ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown chmod o-x,u+s ${D}${base_sbindir}/halt ${D}${base_sbindir}/shutdown } + +python () { +if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d): +raise bb.parse.SkipPackage('sysvinit' not in DISTRO_FEATURES) +} -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] sstate: Add eventhandler which cleans up stale recipe data
Incremental builds do not work well when renaming recipes or changing architecture is a long standing issue which causes people considerable pain. We've struggled for a long time to come up with a way to generically address the problem. There are additional issues where removal of a layer caused data to continue to exist and additionally, changing DISTRO_FEATURES also caused problems in an existing TMPDIR. This patch attempts to address this by adding a mapping between stamp files and manifests. After parsing we can easily tell which stamp files are still reachable, if any manifest has a stamp that can no longer be reached, we can remove it. Since this code ties this to the sstate architecture list, it will not remove data from other than the current MACHINE (and its active architectures). It does not clean the sstate cache so if another build activates something which was cleaned, it should reinstall from sstate. We can also go one step further, depending on the setting of SSTATE_PRUNE_OBSOLETEWORKDIR, workdirs which are no longer active can also be removed. This avoids the buildup of many old copies of data in WORKDIR for example when versions are upgraded. The one thing which may surprise people with this change is if you remove a layer, data added by that layer will be uninstalled before the next build continues. I believe this is a feature and a good thing to do though. This code is safe with existing builds. If something isn't in the new index it simply isn't removed. Since changes to the sstate code trigger a rebuild, after this merges, we can assume the code will start to detect changes from that point onwards. [YOCTO #4102] Signed-off-by: Richard Purdie richard.pur...@linuxfoundation.org diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 949ba4a..89df28a 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -33,6 +33,16 @@ SSTATE_SCAN_CMD ?= 'find ${SSTATE_BUILDDIR} \( -name ${@\ -o -name \.join(d BB_HASHFILENAME = ${SSTATE_EXTRAPATH} ${SSTATE_PKGSPEC} ${SSTATE_SWSPEC} +SSTATE_ARCHS = \ +${BUILD_ARCH} \ +${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS} \ +${BUILD_ARCH}_${TARGET_ARCH} \ +${SDK_ARCH}_${SDK_OS} \ +${SDK_ARCH}_${PACKAGE_ARCH} \ +allarch \ +${PACKAGE_ARCH} \ +${MACHINE} + SSTATE_MANMACH ?= ${SSTATE_PKGARCH} SSTATECREATEFUNCS = sstate_hardcode_path @@ -233,6 +243,20 @@ def sstate_install(ss, d): f.write(di + \n) f.close() +# Append to the list of manifests for this PACKAGE_ARCH + +i = d2.expand(${SSTATE_MANIFESTS}/index-${SSTATE_MANMACH}) +l = bb.utils.lockfile(i + .lock) +filedata = d.getVar(STAMP, True) + + d2.getVar(SSTATE_MANFILEPREFIX, True) + + d.getVar(WORKDIR, True) + \n +manifests = [] +if os.path.exists(i): +with open(i, r) as f: +manifests = f.readlines() +if filedata not in manifests: +with open(i, a+) as f: +f.write(filedata) +bb.utils.unlockfile(l) + # Run the actual file install for state in ss['dirs']: if os.path.exists(state[1]): @@ -858,3 +882,44 @@ python sstate_eventhandler() { bb.siggen.dump_this_task(sstatepkg + '_' + taskname + .tgz .siginfo, d) } +SSTATE_PRUNE_OBSOLETEWORKDIR = 1 + +# Event handler which removes manifests and stamps file for +# recipes which are no longer reachable in a build where they +# once were. +# Also optionally removes the workdir of those tasks/recipes +# +addhandler sstate_eventhandler2 +sstate_eventhandler2[eventmask] = bb.event.ReachableStamps +python sstate_eventhandler2() { +import glob +d = e.data +stamps = e.stamps.values() +removeworkdir = (d.getVar(SSTATE_PRUNE_OBSOLETEWORKDIR) == 1) +seen = [] +for a in d.getVar(SSTATE_ARCHS, True).split(): +toremove = [] +i = d.expand(${SSTATE_MANIFESTS}/index- + a) +if not os.path.exists(i): +continue +with open(i, r) as f: +lines = f.readlines() +for l in lines: +(stamp, manifest, workdir) = l.split() +if stamp not in stamps: +toremove.append(l) +if stamp not in seen: +bb.note(Stamp %s is not reachable, removing related manifests % stamp) +seen.append(stamp) +for r in toremove: +(stamp, manifest, workdir) = r.split() +for m in glob.glob(manifest + .*): +sstate_clean_manifest(m, d) +bb.utils.remove(stamp + *) +if removeworkdir: +bb.utils.remove(workdir, recurse = True) +lines.remove(r) +with open(i, w) as f: +for l in lines: +f.write(l) +} -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] cracklib:Fix an error in the patch
To fix an error in the patch.Otherwise,the dictionary would be wrong. Signed-off-by: Lei Maohui leimao...@cn.fujitsu.com --- ...c-support-dictionary-byte-order-dependent.patch | 67 -- 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch b/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch index 8e0f406..adbe7df 100644 --- a/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch +++ b/meta/recipes-extended/cracklib/cracklib/0001-packlib.c-support-dictionary-byte-order-dependent.patch @@ -1,7 +1,7 @@ -From dae29a98c066bc67bb5ba12219d5fd68a8675514 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia hongxu@windriver.com -Date: Fri, 26 Apr 2013 20:44:10 +0800 -Subject: [PATCH] packlib.c: support dictionary byte-order dependent +From 8a6e43726ad0ae41bd1cc2c248d91deb31459357 Mon Sep 17 00:00:00 2001 +From: Lei Maohui leimao...@cn.fujitsu.com +Date: Tue, 9 Jun 2015 11:11:48 +0900 +Subject: [PATCH] packlib.c: support dictionary byte order dependent The previous dict files are NOT byte-order independent, in fact they are probably ARCHITECTURE SPECIFIC. @@ -12,7 +12,7 @@ Signed-off-by: Hongxu Jia hongxu@windriver.com Upstream-Status: Pending We can't use the endian.h, htobe* and be*toh functions because they are -not available on older versions of glibc, such as that found in RHEL +not available on older versions of glibc, such as that found in RHEL 5.9. Change to checking endian and directly calling bswap_* as defined in @@ -20,14 +20,15 @@ byteswap.h. Signed-off-by: Mark Hatle mark.ha...@windriver.com +Signed-off-by: Lei Maohui leimao...@cn.fujitsu.com --- - lib/packlib.c | 208 +++-- - 1 file changed, 204 insertions(+), 4 deletions(-) + lib/packlib.c | 214 -- + 1 file changed, 210 insertions(+), 4 deletions(-) -Index: cracklib-2.8.22/lib/packlib.c -=== cracklib-2.8.22.orig/lib/packlib.c -+++ cracklib-2.8.22/lib/packlib.c +diff --git a/lib/packlib.c b/lib/packlib.c +index f851424..3aac805 100644 +--- a/lib/packlib.c b/lib/packlib.c @@ -16,6 +16,12 @@ #ifdef HAVE_STDINT_H #include stdint.h @@ -41,7 +42,7 @@ Index: cracklib-2.8.22/lib/packlib.c #include packer.h static const char vers_id[] = packlib.c : v2.3p2 Alec Muffett 18 May 1993; -@@ -45,6 +51,182 @@ typedef struct +@@ -45,6 +51,185 @@ typedef struct char data_get[NUMWORDS][MAXWORDLEN]; } PWDICT64; @@ -145,7 +146,8 @@ Index: cracklib-2.8.22/lib/packlib.c + +for (i = 0; i nLen / sizeof(uint64_t); i++) +{ -+*pHwms64++ = bswap_64(*pHwms64); ++*pHwms64 = bswap_64(*pHwms64); ++*pHwms64++; +} + +} @@ -155,7 +157,8 @@ Index: cracklib-2.8.22/lib/packlib.c + +for (i = 0; i nLen / sizeof(uint32_t); i++) +{ -+*pHwms32++ = bswap_32(*pHwms32); ++*pHwms32 = bswap_32(*pHwms32); ++*pHwms32++; +} + +} @@ -199,7 +202,8 @@ Index: cracklib-2.8.22/lib/packlib.c + +for (i = 0; i nLen / sizeof(uint32_t); i++) +{ -+*pHwms32++ = bswap_32(*pHwms32); ++*pHwms32 = bswap_32(*pHwms32); ++*pHwms32++; +} + +} @@ -224,7 +228,7 @@ Index: cracklib-2.8.22/lib/packlib.c static int _PWIsBroken64(FILE *ifp) -@@ -57,6 +239,7 @@ _PWIsBroken64(FILE *ifp) +@@ -57,6 +242,7 @@ _PWIsBroken64(FILE *ifp) return 0; } @@ -232,7 +236,7 @@ Index: cracklib-2.8.22/lib/packlib.c return (pdesc64.header.pih_magic == PIH_MAGIC); } -@@ -149,7 +332,11 @@ PWOpen(prefix, mode) +@@ -149,7 +335,11 @@ PWOpen(prefix, mode) pdesc.header.pih_blocklen = NUMWORDS; pdesc.header.pih_numwords = 0; @@ -245,23 +249,23 @@ Index: cracklib-2.8.22/lib/packlib.c } else { pdesc.flags = ~PFOR_WRITE; -@@ -173,6 +360,7 @@ PWOpen(prefix, mode) - return ((PWDICT *) 0); +@@ -173,6 +363,7 @@ PWOpen(prefix, mode) + return NULL; } +IheaderBigEndianToHost((char *) pdesc.header, en_is32); if ((pdesc.header.pih_magic == 0) || (pdesc.header.pih_numwords == 0)) { /* uh-oh. either a broken 64-bit file or a garbage file. */ -@@ -195,6 +383,7 @@ PWOpen(prefix, mode) +@@ -195,6 +386,7 @@ PWOpen(prefix, mode) } - return ((PWDICT *) 0); + return NULL; } +IheaderBigEndianToHost((char *) pdesc64.header, en_is64); if (pdesc64.header.pih_magic != PIH_MAGIC) { /* nope, not 64-bit after all */ -@@ -290,6 +479,7 @@ PWOpen(prefix, mode) +@@
Re: [OE-core] [PATCH 0/2][dizzy] python-nose and python-contextlib backports to dizzy
Alejandro, great. I pull these in. thanks, - armin On 06/08/2015 06:56 AM, Alejandro Hernandez wrote: I would like to backport both python-nose and python-contextlib to dizzy, they were added to master in the following commits respectively: http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=7282635343e0ccf7a82ffdb35905bdc2db6093d3 http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=7f58a85337a0712802bdb604a58985a8800b6477 I would like to include python-scipy, and these are build dependencies for it, more specifically for iot builds which currently use the dizzy branch The following changes since commit 9c4ff467f66428488b1cd9798066a8cb5d6b4c3b: split_and_strip_files: regroup hardlinks to make build deterministic (2015-05-15 18:13:40 +0100) are available in the git repository at: git://git.yoctoproject.org/poky-contrib hsalejandro/iot_backports http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=hsalejandro/iot_backports Alejandro Hernandez (2): python-contextlib: backport to dizzy python-nose: backport it to dizzy meta/recipes-devtools/python/python-2.7-manifest.inc | 10 +++--- meta/recipes-devtools/python/python-nose_1.3.6.bb| 16 scripts/contrib/python/generate-manifest-2.7.py | 3 +++ 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-devtools/python/python-nose_1.3.6.bb -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH] sstate: Add eventhandler which cleans up stale recipe data
On Mon, Jun 8, 2015 at 5:28 PM, Richard Purdie richard.pur...@linuxfoundation.org wrote: +for a in d.getVar(SSTATE_ARCHS, True).split(): +toremove = [] +i = d.expand(${SSTATE_MANIFESTS}/index- + a) +if not os.path.exists(i): +continue +with open(i, r) as f: +lines = f.readlines() +for l in lines: +(stamp, manifest, workdir) = l.split() +if stamp not in stamps: +toremove.append(l) +if stamp not in seen: +bb.note(Stamp %s is not reachable, removing related manifests % stamp) +seen.append(stamp) +for r in toremove: +(stamp, manifest, workdir) = r.split() +for m in glob.glob(manifest + .*): +sstate_clean_manifest(m, d) +bb.utils.remove(stamp + *) +if removeworkdir: +bb.utils.remove(workdir, recurse = True) This looks like it’ll solve a lot of headaches for folks. Should the removal of workdir bit be outside the ‘for r in toremove’ block? -- Christopher Larson clarson at kergoth dot com Founder - BitBake, OpenEmbedded, OpenZaurus Maintainer - Tslib Senior Software Engineer, Mentor Graphics -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [bitbake-devel] build yocto error
Hi issta, This email should go into oe-core, not bitbake-devel, can you add the file /chunyun/share/yocto/ZC702/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/init-ifupdown/1.0-r7/temp/log.do_package_write_rpm.8848, please ? // Robert On 06/09/2015 11:27 AM, issta Hu wrote: chunyun@ubuntu:~/share/yocto/ZC702$ bitbake core-image-minimal Loading cache: 100% |#| ETA: 00:00:00 Loaded 1303 entries from dependency cache. Parsing recipes: 100% |###| Time: 00:00:00 Parsing of 896 .bb files complete (894 cached, 2 parsed). 1303 targets, 58 skipped, 0 masked, 0 errors. NOTE: Resolving any missing task queue dependencies Build Configuration: BB_VERSION= 1.27.0 BUILD_SYS = x86_64-linux NATIVELSBSTRING = Ubuntu-14.04 TARGET_SYS= arm-poky-linux-gnueabi MACHINE = zc702-zynq7 DISTRO= poky DISTRO_VERSION= 1.8+snapshot-20150609 TUNE_FEATURES = arm armv7a vfp neon cortexa9 TARGET_FPU= vfp-neon meta = fido:b5ba70b47fff227e4381fcac93defccb79e3d8f1 meta-xilinx = fido:5aa58bbbf8ddcc59f8746805d62fd156d7cff461 meta-yocto meta-yocto-bsp= fido:b5ba70b47fff227e4381fcac93defccb79e3d8f1 NOTE: Preparing RunQueue NOTE: Executing SetScene Tasks NOTE: Executing RunQueue Tasks ERROR: Function failed: write_specfile ERROR: Logfile of failure stored in: /home/chunyun/share/yocto/ZC702/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/init-ifupdown/1.0-r7/temp/log.do_package_write_rpm.8848 Log data follows: | DEBUG: Executing python function sstate_task_prefunc | DEBUG: Python function sstate_task_prefunc finished | DEBUG: Executing python function do_package_write_rpm | DEBUG: Executing python function read_subpackage_metadata | DEBUG: Python function read_subpackage_metadata finished | DEBUG: Executing python function do_package_rpm | DEBUG: Executing python function write_specfile | DEBUG: Python function write_specfile finished | DEBUG: Python function do_package_rpm finished | DEBUG: Python function do_package_write_rpm finished | ERROR: Function failed: write_specfile ERROR: Task 833 (/home/chunyun/share/yocto/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb http://init-ifupdown_1.0.bb, do_package_write_rpm) failed with exit code '1' NOTE: Tasks Summary: Attempted 1396 tasks of which 1395 didn't need to be rerun and 1 failed. No currently running tasks (1395 of 1889) Summary: 1 task failed: /home/chunyun/share/yocto/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb http://init-ifupdown_1.0.bb, do_package_write_rpm Summary: There was 1 ERROR message shown, returning a non-zero exit code. -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH][fido] runqemu: add support to boot arm64 qemu target from NFS
The other changes include, runqemu - fix MACHINE type being detected as qemuarm when qemuarm64 kernel image name is given. runqemu-internal - Added console=ttyAMA0,115200 as one of the boot parameters for qemuarm, in order to print bootlog messages on the console. - Use -nographic option only if serial option is not specified. Otherwise we get below error when 'runqemu kernel_image rootfs_image serial' is executed, (snip) QEMU 2.2.0 monitor - type 'help' for more information (qemu) qemu-system-aarch64: -serial stdio: cannot use stdio by multiple character devices -- CUT -- qemuarm64 NFS booting has been tested successfully on Ubuntu 14.04 host. Signed-off-by: Jagadeesh Krishnanjanappa jkrishnanjana...@mvista.com --- scripts/runqemu | 4 ++-- scripts/runqemu-internal | 20 +++- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index 84ece4d..09c507d 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -232,13 +232,13 @@ fi if [ -z $MACHINE ]; then if [ x$FSTYPE = xvmdk ]; then -MACHINE=`basename $VM | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'` +MACHINE=`basename $VM | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm64\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'` if [ -z $MACHINE ]; then error Unable to set MACHINE from vmdk filename [$VM] fi echo Set MACHINE to [$MACHINE] based on vmdk [$VM] else -MACHINE=`basename $KERNEL | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'` +MACHINE=`basename $KERNEL | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm64\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'` if [ -z $MACHINE ]; then error Unable to set MACHINE from kernel filename [$KERNEL] fi diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal index 2db5566..e346c64 100755 --- a/scripts/runqemu-internal +++ b/scripts/runqemu-internal @@ -275,9 +275,6 @@ else KERNCMDLINE=mem=$QEMU_MEMORY QEMU_UI_OPTIONS=-show-cursor -usb -usbdevice wacom-tablet -if [ $MACHINE = 'qemuarm64' ]; then -QEMU_UI_OPTIONS=-nographic -fi NFS_INSTANCE=`echo $TAP | sed 's/tap//'` export NFS_INSTANCE @@ -368,7 +365,7 @@ if [ $MACHINE = qemuarm -o $MACHINE = qemuarmv6 -o $MACHINE = qemuarm cleanup return 1 fi -KERNCMDLINE=root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY +KERNCMDLINE=root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw console=ttyAMA0,115200 $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY QEMUOPTIONS=$QEMU_NETWORK_CMD -M ${MACHINE_SUBTYPE} --no-reboot $QEMU_UI_OPTIONS fi if [ $MACHINE = qemuarmv6 ]; then @@ -383,12 +380,25 @@ if [ $MACHINE = qemuarm64 ]; then QEMU=qemu-system-aarch64 export QEMU_AUDIO_DRV=none -QEMU_UI_OPTIONS=$QEMU_UI_OPTIONS +if [ x$SERIALSTDIO = x ] ; then +QEMU_UI_OPTIONS=-nographic +else +QEMU_UI_OPTIONS= +fi if [ ${FSTYPE:0:3} = ext -o $FSTYPE = btrfs ]; then KERNCMDLINE=root=/dev/vda rw console=ttyAMA0,38400 mem=$QEMU_MEMORY highres=off $KERNEL_NETWORK_CMD # qemu-system-aarch64 only support '-machine virt -cpu cortex-a57' for now QEMUOPTIONS=$QEMU_NETWORK_CMD -machine virt -cpu cortex-a57 $ROOTFS_OPTIONS $QEMU_UI_OPTIONS fi +if [ $FSTYPE = nfs ]; then +if [ $NFS_SERVER = 192.168.7.1 -a ! -d $NFS_DIR ]; then +echo Error: NFS mount point $ROOTFS doesn't exist +cleanup +return 1 +fi +KERNCMDLINE=root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw console=ttyAMA0,38400 mem=$QEMU_MEMORY highres=off $KERNEL_NETWORK_CMD +QEMUOPTIONS=$QEMU_NETWORK_CMD -machine virt -cpu cortex-a57 $QEMU_UI_OPTIONS +fi fi -- 1.8.2.3 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [OE-Core][PATCH] {python,python3}-native: fix TypeError
g-ir-core in meta-gir is building with python-native. When the g-ir-core(v1.42.0) is building, following error is occurred. Error in g-ir-core: EXEC_PREFIX = os.path.normpath(sys.exec_prefix).replace( os.getenv(BUILD_SYS), os.getenv(HOST_SYS) ) | TypeError: expected a character buffer object Signed-off-by: Changhyeok Bae changhyeok@lge.com --- ...2-distutils-prefix-is-inside-staging-area.patch |4 ++-- .../recipes-devtools/python/python-native_2.7.9.bb |2 +- .../python/python3-native_3.4.3.bb |2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch b/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch index f89aaff..b9cc4d9 100644 --- a/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch +++ b/meta/recipes-devtools/python/python-native/12-distutils-prefix-is-inside-staging-area.patch @@ -12,8 +12,8 @@ Upstream-Status: Inappropriate [embedded specific] # These are needed in a couple of spots, so just compute them once. -PREFIX = os.path.normpath(sys.prefix) -EXEC_PREFIX = os.path.normpath(sys.exec_prefix) -+PREFIX = os.path.normpath(sys.prefix).replace( os.getenv(BUILD_SYS), os.getenv(HOST_SYS) ) -+EXEC_PREFIX = os.path.normpath(sys.exec_prefix).replace( os.getenv(BUILD_SYS), os.getenv(HOST_SYS) ) ++PREFIX = os.path.normpath(sys.prefix).replace( str(os.getenv(BUILD_SYS)), str(os.getenv(HOST_SYS)) ) ++EXEC_PREFIX = os.path.normpath(sys.exec_prefix).replace( str(os.getenv(BUILD_SYS)), str(os.getenv(HOST_SYS)) ) # Path to the base directory of the project. On Windows the binary may # live in project/PCBuild9. If we're dealing with an x64 Windows build, diff --git a/meta/recipes-devtools/python/python-native_2.7.9.bb b/meta/recipes-devtools/python/python-native_2.7.9.bb index 34f5c29..5be7bb9 100644 --- a/meta/recipes-devtools/python/python-native_2.7.9.bb +++ b/meta/recipes-devtools/python/python-native_2.7.9.bb @@ -2,7 +2,7 @@ require python.inc EXTRANATIVEPATH += bzip2-native DEPENDS = openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native -PR = ${INC_PR}.1 +PR = ${INC_PR}.2 SRC_URI += \ file://05-enable-ctypes-cross-build.patch \ diff --git a/meta/recipes-devtools/python/python3-native_3.4.3.bb b/meta/recipes-devtools/python/python3-native_3.4.3.bb index 464ff05..105c0c9 100644 --- a/meta/recipes-devtools/python/python3-native_3.4.3.bb +++ b/meta/recipes-devtools/python/python3-native_3.4.3.bb @@ -1,6 +1,6 @@ require recipes-devtools/python/python.inc -PR = ${INC_PR}.0 +PR = ${INC_PR}.1 PYTHON_MAJMIN = 3.4 DISTRO_SRC_URI ?= file://sitecustomize.py DISTRO_SRC_URI_linuxstdbase = -- 1.7.9.5 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] RFC: BitBake's tinfoil API
Hi there, As some of you may know, BitBake has a module under lib/bb called tinfoil which you can use to create simple Python utilities that can call into BitBake code - for example, you can get variable values and parse recipes. Several utilities shipped with BitBake/OE make use of this (e.g. bitbake-layers, oe- pkgdata-util, devtool, etc.). The OE layer index and Recipe Reporting Service update scripts also use it. One of tinfoil's limitations up to now is that it bypasses BitBake's client- server model - it only starts up the server, and it initialises the server only partially. This is fine for what it needs to do, but it does mean that scripts that use it cannot be run when BitBake is running in memory resident mode - there can be only one server instance per TMPDIR. Recently I've been trying to address that by moving tinfoil to the client side; my WIP branch is here: http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=paule/tinfoil2 There are some other benefits to moving to this model: * We can now connect an actual UI, thus you get things like the recipe parsing progress bar and parse error handling for free * We can now handle events generated by the server - in the OE layer index for example, I'm pretty certain the lack of this is the source of a bug where we leak memory. (Note - this is still todo on my branch). * We can potentially extend this to do more stuff, e.g. actually running build operations - that simply wasn't possible with tinfoil before. I haven't actually provided any specific access to this yet but it shouldn't be too hard. The downside is that tinfoil no longer has direct access to cooker, the global datastore, and the cache. I have extended data_smart to provide remote access capability for the datastore, and created fake cooker and cooker.recipecache / cooker.collection adapter objects in order to avoid breaking too many tinfoil-using scripts that might be out there (we've never officially documented tinfoil or bitbake's internal code, but we can still make accommodations where practical). I've at least gone far enough to support bitbake-layers with some changes, but I know there are scripts such as Chris's bb out there that do make other calls into BitBake code that I'm not providing access to through the adapters (yet?). However, it struck me that we have an opportunity to create a proper API this time rather than simply exposing the internals of BitBake (which do occasionally change, and that has resulted in breakage of tinfoil-using scripts in the past). The datastore is probably fine to expose, but parts of cooker and the cache would probably be better represented as methods on tinfoil, object structures underneath it, or simply as client/server calls that can be accessed through runCommand() (with the current architecture, we need to add the latter anyway). Once we've set up the new API, we can then document it. Does anyone have any thoughts on this? I'm particularly interested in hearing from people using tinfoil in their own scripts or who would be interested in writing such scripts in the future - what kind of API would you like to have? Thanks, Paul -- Paul Eggleton - Intel Corporation (UK) Limited Registered No. 1134945 (England) Registered Office: Pipers Way, Swindon SN3 1RJ VAT No: 860 2173 47 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v3 1/2] licenses.conf: Modified parameters for new spdx.bbclass
1) Define new command line to get spdx file. 2) Define some mandatory fields for spdx 0.2 Signed-off-by: Lei Maohui leimao...@cn.fujitsu.com --- meta/conf/licenses.conf | 77 + 1 file changed, 20 insertions(+), 57 deletions(-) diff --git a/meta/conf/licenses.conf b/meta/conf/licenses.conf index 629916b..1d37616 100644 --- a/meta/conf/licenses.conf +++ b/meta/conf/licenses.conf @@ -122,68 +122,31 @@ SPDXLICENSEMAP[SGIv1] = SGI-1 #COPY_LIC_DIRS = 1 ## SPDX temporary directory -SPDX_TEMP_DIR = ${WORKDIR}/spdx_temp -SPDX_MANIFEST_DIR = /home/yocto/fossology_scans +SPDX_TEMP_DIR ?= ${WORKDIR}/spdx_temp +SPDX_MANIFEST_DIR ?= /home/yocto/fossology_scans ## SPDX Format info -SPDX_VERSION = SPDX-1.1 +SPDX_VERSION = SPDX-1.2 DATA_LICENSE = CC0-1.0 +## If your fossylogy server is from 2.4.0 to 2.6.1,the LICENSELISTVERSION is 1.19 +## Reference to http://www.fossology.org/projects/fossology/wiki/Release_Notes +LICENSELISTVERSION = 1.19 +CREATOR_TOOL = yocto+fossology-spdx + +# FOSSologySPDX instance server. +FOSS_SERVER ?= http://127.0.0.1/repo/ --noproxy 127.0.0.1 + +# The following commnd is suit for the FOSSologySPDX instance server in localhost. +# options: +# 1) noCopyright: true/false. Only when this option is set to true, copyright information is scanned. +# 2) jsonOutput: true/false. Only when this option is set to true, scanning result is output in JSON format. +#Skipping this option equals setting to false. +# 3) fullSPDXFlag: true/false. Only when this option is set to true, low definition of full SPDX contents are output. +#This option should be set as true when user want to generate SPDX file from command line. -## Fossology scan information -# You can set option to control if the copyright information will be skipped -# during the identification process. -# -# It is defined as [FOSS_COPYRIGHT] in ./meta/conf/licenses.conf. -# FOSS_COPYRIGHT = true -# NO copyright will be processed. That means only license information will be -# identified and output to SPDX file -# FOSS_COPYRIGHT = false -# Copyright will be identified and output to SPDX file along with license -# information. The process will take more time than not processing copyright -# information. -# - -FOSS_NO_COPYRIGHT = true - -# A option defined as[FOSS_RECURSIVE_UNPACK] in ./meta/conf/licenses.conf. is -# used to control if FOSSology server need recursively unpack tar.gz file which -# is sent from do_spdx task. -# -# FOSS_RECURSIVE_UNPACK = false: -#FOSSology server does NOT recursively unpack. In the current release, this -#is the default choice because recursively unpack will not necessarily break -#down original compressed files. -# FOSS_RECURSIVE_UNPACK = true: -#FOSSology server recursively unpack components. -# - -FOSS_RECURSIVE_UNPACK = false - -# An option defined as [FOSS_FULL_SPDX] in ./meta/conf/licenses.conf is used to -# control what kind of SPDX output to get from the FOSSology server. -# -# FOSS_FULL_SPDX = true: -# Tell FOSSology server to return full SPDX output, like if the program was -# run from the command line. This is needed in order to get license refs for -# the full package rather than individual files only. -# -# FOSS_FULL_SPDX = false: -# Tell FOSSology to only process license information for files. All package -# license tags in the report will be NOASSERTION -# - -FOSS_FULL_SPDX = true - -# FOSSologySPDX instance server. http://localhost/repo is the default -# installation location for FOSSology. -# # For more information on FOSSologySPDX commandline: -# https://github.com/spdx-tools/fossology-spdx/wiki/Fossology-SPDX-Web-API -# - -FOSS_BASE_URL = http://localhost/repo/?mod=spdx_license_once; -FOSS_SERVER = ${FOSS_BASE_URL}fullSPDXFlag=${FOSS_FULL_SPDX}noCopyright=${FOSS_NO_COPYRIGHT}recursiveUnpack=${FOSS_RECURSIVE_UNPACK} +# # https://github.com/spdx-tools/fossology-spdx/wiki/Fossology-SPDX-Web-API -FOSS_WGET_FLAGS = -qO - --no-check-certificate --timeout=0 +FOSS_CURL_FLAGS ?= -F mod=spdx_license_once -F noCopyright=false -F jsonOutput=false -F fullSPDXFlag=true -- 1.8.4.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 2/2] python-smartpm: change already installed warnings into info messages
It's possible to trigger already installed messages during normal usage if you explicitly install something in the image through IMAGE_INSTALL that has a dependency on some -dev packages and also have dev-pkgs in IMAGE_FEATURES. Since we now check the do_rootfs log for warnings, these are reported as warnings at the build system level. This situation should not trigger warnings, nor is it really cause for concern under any other circumstance if the user asks smart to install something that's already installed, so make it an info message rather than a warning. Fixes [YOCTO #7840]. Signed-off-by: Paul Eggleton paul.eggle...@linux.intel.com --- .../smart-already-installed-message.patch | 54 ++ .../python/python-smartpm_1.4.1.bb | 1 + 2 files changed, 55 insertions(+) create mode 100644 meta/recipes-devtools/python/python-smartpm/smart-already-installed-message.patch diff --git a/meta/recipes-devtools/python/python-smartpm/smart-already-installed-message.patch b/meta/recipes-devtools/python/python-smartpm/smart-already-installed-message.patch new file mode 100644 index 000..905 --- /dev/null +++ b/meta/recipes-devtools/python/python-smartpm/smart-already-installed-message.patch @@ -0,0 +1,54 @@ +From a74a9a9eb9d75964a0e978950e8b191d7a18d763 Mon Sep 17 00:00:00 2001 +From: Paul Eggleton paul.eggle...@linux.intel.com +Date: Fri, 5 Jun 2015 17:07:16 +0100 +Subject: [PATCH] smart: change is already installed message from warning to + info + +This doesn't need to be a warning. + +Upstream-Status: Pending + +Signed-off-by: Paul Eggleton paul.eggle...@linux.intel.com +--- + smart/commands/install.py| 4 ++-- + smart/interfaces/text/interactive.py | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/smart/commands/install.py b/smart/commands/install.py +index 6ef9682..80d456b 100644 +--- a/smart/commands/install.py b/smart/commands/install.py +@@ -152,7 +152,7 @@ def main(ctrl, opts): + for obj in results: + for pkg in obj.packages: + if pkg.installed: +-iface.warning(_(%s (for %s) is already installed) ++iface.info(_(%s (for %s) is already installed) + % (pkg, arg)) + installed = True + break +@@ -184,7 +184,7 @@ def main(ctrl, opts): + for name in names: + pkg = names[name][0] + if pkg.installed: +-iface.warning(_(%s is already installed) % pkg) ++iface.info(_(%s is already installed) % pkg) + else: + trans.enqueue(pkg, INSTALL) + +diff --git a/smart/interfaces/text/interactive.py b/smart/interfaces/text/interactive.py +index 9865584..190867b 100644 +--- a/smart/interfaces/text/interactive.py b/smart/interfaces/text/interactive.py +@@ -278,7 +278,7 @@ class Interpreter(Cmd): + for name in names: + pkg = names[name][0] + if pkg.installed: +-iface.warning(_(%s is already installed) % pkg) ++iface.info(_(%s is already installed) % pkg) + else: + found = True + transaction.enqueue(pkg, INSTALL) +-- +2.1.0 + diff --git a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb index c75f10f..69b94a2 100644 --- a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb +++ b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb @@ -34,6 +34,7 @@ SRC_URI = \ file://smart-filename-NAME_MAX.patch \ file://smart-rpm4-fixes.patch \ file://smart-add-for-rpm-ignoresize-check.patch \ + file://smart-already-installed-message.patch \ SRC_URI[md5sum] = 573ef32ba177a6b3c4bf7ef04873fcb6 -- 2.1.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/2] lib/oe/rootfs: tidy up log warning reporting
* bb.warn() should only be called once per warning - UIs such as Toaster assume that this is the case, so adjust the output accordingly. (It's tricky here because we have to include log_check on every line or we'll end up looping forever as the log checking code's own messages retrigger the log check, sigh...) * Iterating over a file already splits by line, there's no need to do it manually. Signed-off-by: Paul Eggleton paul.eggle...@linux.intel.com --- meta/lib/oe/rootfs.py | 13 ++--- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py index 5f1f7b3e..48e5754 100644 --- a/meta/lib/oe/rootfs.py +++ b/meta/lib/oe/rootfs.py @@ -44,15 +44,14 @@ class Rootfs(object): r = re.compile('^(warn|Warn|NOTE: warn|NOTE: Warn|WARNING:)') log_path = self.d.expand(${T}/log.do_rootfs) with open(log_path, 'r') as log: -for line in log.read().split('\n'): +for line in log: if 'log_check' in line or 'NOTE:' in line: continue m = r.search(line) if m: -bb.warn('log_check: There is a warn message in the logfile') -bb.warn('log_check: Matched keyword: [%s]' % m.group()) -bb.warn('log_check: %s\n' % line) +bb.warn('[log_check] %s: found a warning message in the logfile (keyword \'%s\'):\n[log_check] %s' + % (self.d.getVar('PN', True), m.group(), line)) def _log_check_error(self): r = re.compile(self.log_check_regex) @@ -60,15 +59,15 @@ class Rootfs(object): with open(log_path, 'r') as log: found_error = 0 message = \n -for line in log.read().split('\n'): +for line in log: if 'log_check' in line: continue m = r.search(line) if m: found_error = 1 -bb.warn('log_check: There were error messages in the logfile') -bb.warn('log_check: Matched keyword: [%s]\n\n' % m.group()) +bb.warn('[log_check] %s: found an error message in the logfile (keyword \'%s\'):\n[log_check] %s' + % (self.d.getVar('PN', True), m.group(), line)) if found_error = 1 and found_error = 5: message += line + '\n' -- 2.1.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/2] A couple of fixes for do_rootfs log checking
The following changes since commit 3b1d89a51445cf526ca84eb5b53de434f9585d6e: scripts/combo-layer: Fix exit codes and tty handling (2015-06-05 16:42:07 +0100) are available in the git repository at: git://git.openembedded.org/openembedded-core-contrib paule/rootfs-warning http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/rootfs-warning Paul Eggleton (2): lib/oe/rootfs: tidy up log warning reporting python-smartpm: change already installed warnings into info messages meta/lib/oe/rootfs.py | 13 +++--- .../smart-already-installed-message.patch | 54 ++ .../python/python-smartpm_1.4.1.bb | 1 + 3 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 meta/recipes-devtools/python/python-smartpm/smart-already-installed-message.patch -- 2.1.0 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 0/1] Fix for YOCTO #7662
The following changes since commit 20a3a36547831349d5d8b429cb35f1415a856bda: scripts/combo-layer: Fix exit codes and tty handling (2015-06-05 16:42:17 +0100) are available in the git repository at: git://git.yoctoproject.org/poky-contrib Ciorga/YB7662 http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=Ciorga/YB7662 Cristian Iorga (1): insane: errors out on binaries installed by allarch-inherit recipes meta/classes/insane.bbclass | 5 + 1 file changed, 5 insertions(+) -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH 1/1] insane: errors out on binaries installed by allarch-inherit recipes
If a prebuilt binary is installed via a recipe that inherits allarch, an odd-looking traceback is thrown out. Fixed by implementing a proper check and outputting an error message that clarifies the issue. Fixes [YOCTO #7662]. Signed-off-by: Cristian Iorga cristian.io...@intel.com --- meta/classes/insane.bbclass | 5 + 1 file changed, 5 insertions(+) diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index 14d4a3c..e12f2ec 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass @@ -457,6 +457,11 @@ def package_qa_check_arch(path,name,d, elf, messages): provides = d.getVar('PROVIDES', True) bpn = d.getVar('BPN', True) +if target_arch == allarch: +pn = d.getVar('PN', True) +messages[arch] = pn + : Recipe inherits the allarch class, but has packaged architecture-specific binaries +return + # FIXME: Cross package confuse this check, so just skip them for s in ['cross', 'nativesdk', 'cross-canadian']: if bb.data.inherits_class(s, d): -- 2.1.4 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v3 0/2] These patches aim to make the spdx file be compliant with the SPDX 1.2 Specification.
Those patches aim to make the spdx file be compliant with the SPDX 1.2 Specification. If you want to use this feature,you need to do: 1. Make sure your fossology+spdx server works well.You can get spdx file with the following command. curl http://127.0.0.1/repo/ --noproxy 127.0.0.1 -k -F mod=spdx_license_once -F noCopyright=false -F jsonOutput=false -F fullSPDXFlag=true -F file=@xxx.tar.gz -o xxx.spdx 2. Add the following INHERIT statement and set the SPDX_MANIFEST_DIR at the end of your conf/local.conf file found in the Build Directory. SPDX_MANIFEST_DIR = /xxx/xxx/xxx INHERIT += spdx Lei Maohui (2): licenses.conf: Modified parameters for new spdx.bbclass spdx.bbclass: Create the spdx file which is compliant with SPDX 1.2 Specification meta/classes/spdx.bbclass | 425 +- meta/conf/licenses.conf | 77 +++-- 2 files changed, 175 insertions(+), 327 deletions(-) -- 1.8.4.2 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH v3 2/2] spdx.bbclass: Create the spdx file which is compliant with SPDX 1.2 Specification
The main changes are: 1. use curl command instead of wget when get spdx file from FOSSologySPDX instance server. Before apply these patches, the command is : wget -qO - --no-check-certificate --timeout=0 --post-file=xxx/yyy/zzz.tar.gz http://localhost//?mod=spdx_license_oncenoCopyright=${FOSS_COPYRIGHT}recursiveUnpack=${FOSS_RECURSIVE_UNPACK} After apply these patches, the command is : curl http://127.0.0.1/repo/ --noproxy 127.0.0.1 -k -F mod=spdx_license_once -F noCopyright=false -F jsonOutput=false -F fullSPDXFlag=true -F file=@ xxx/yyy/zzz.tar.gz -o xxx/yyy/zzz.spdx Because if use wget command,the Mandatory fields of the SPDX Specification such as the following can't be obtained. 1) PackageLicenseInfoFromFiles(Package Information) 2) PackageLicenseDeclared(Package Information) 3) LicenseID(License Information) 4) ExtractedText(License Information) 5) LicenseName(License Information) 2. In order to avoid the SPDX_S be polluted in the rebuild, create ${WORKDIR}/${SPDX_TEMP_DIR} to save the source. 3. Add mandatory field to be compliant with the SPDX 1.2 Specification. Signed-off-by: Lei Maohui leimao...@cn.fujitsu.com --- meta/classes/spdx.bbclass | 425 +- 1 file changed, 155 insertions(+), 270 deletions(-) diff --git a/meta/classes/spdx.bbclass b/meta/classes/spdx.bbclass index 454c53e..09584af 100644 --- a/meta/classes/spdx.bbclass +++ b/meta/classes/spdx.bbclass @@ -15,178 +15,191 @@ # SPDX file will be output to the path which is defined as[SPDX_MANIFEST_DIR] # in ./meta/conf/licenses.conf. +SPDXOUTPUTDIR = ${WORKDIR}/spdx_output_dir SPDXSSTATEDIR = ${WORKDIR}/spdx_sstate_dir # If ${S} isn't actually the top-level source directory, set SPDX_S to point at # the real top-level directory. + SPDX_S ?= ${S} python do_spdx () { import os, sys -import json, shutil +import json + +#The source of gcc is too large to get it's spdx.So,give up. +bpn = d.getVar('BPN', True) +if ((bpn == gcc) or (bpn == libgcc)): +return None info = {} info['workdir'] = d.getVar('WORKDIR', True) -info['sourcedir'] = d.getVar('SPDX_S', True) info['pn'] = d.getVar('PN', True) info['pv'] = d.getVar('PV', True) +info['package_download_location'] = d.getVar('SRC_URI', True) +if info['package_download_location'] != : +info['package_download_location'] = info['package_download_location'].split()[0] info['spdx_version'] = d.getVar('SPDX_VERSION', True) info['data_license'] = d.getVar('DATA_LICENSE', True) +info['creator'] = {} +info['creator']['Tool'] = d.getVar('CREATOR_TOOL', True) +info['license_list_version'] = d.getVar('LICENSELISTVERSION', True) +info['package_homepage'] = d.getVar('HOMEPAGE', True) +info['package_summary'] = d.getVar('SUMMARY', True) -sstatedir = d.getVar('SPDXSSTATEDIR', True) -sstatefile = os.path.join(sstatedir, info['pn'] + info['pv'] + .spdx) - +spdx_sstate_dir = d.getVar('SPDXSSTATEDIR', True) manifest_dir = d.getVar('SPDX_MANIFEST_DIR', True) -info['outfile'] = os.path.join(manifest_dir, info['pn'] + .spdx ) - -info['spdx_temp_dir'] = d.getVar('SPDX_TEMP_DIR', True) -info['tar_file'] = os.path.join(info['workdir'], info['pn'] + .tar.gz ) - +info['outfile'] = os.path.join(manifest_dir, info['pn'] + - + info['pv'] + .spdx) +sstatefile = os.path.join(spdx_sstate_dir, +info['pn'] + - + info['pv'] + .spdx ) +info['tar_file'] = os.path.join(info['workdir'], info['pn'] + .tar.gz) + # Make sure important dirs exist try: bb.utils.mkdirhier(manifest_dir) -bb.utils.mkdirhier(sstatedir) -bb.utils.mkdirhier(info['spdx_temp_dir']) +bb.utils.mkdirhier(spdx_sstate_dir) except OSError as e: bb.error(SPDX: Could not set up required directories: + str(e)) return ## get everything from cache. use it to decide if -## something needs to be rerun -cur_ver_code = get_ver_code(info['sourcedir']) +## something needs to be rerun +d.setVar('WORKDIR', d.getVar('SPDX_TEMP_DIR', True)) +info['sourcedir'] = d.getVar('SPDX_S', True) +cur_ver_code = get_ver_code(info['sourcedir']).split()[0] cache_cur = False if os.path.exists(sstatefile): ## cache for this package exists. read it in cached_spdx = get_cached_spdx(sstatefile) - -if cached_spdx['PackageVerificationCode'] == cur_ver_code: -bb.warn(SPDX: Verification code for + info['pn'] - + is same as cache's. do nothing) +if cached_spdx: +cached_spdx = cached_spdx.split()[0] +if (cached_spdx == cur_ver_code): +bb.warn(info['pn'] + 's ver code same as cache's. do nothing) cache_cur = True -else: -local_file_info = setup_foss_scan(info, True, cached_spdx['Files']) -else: -
[OE-core] [PATCH][Daisy] mesa: Avoid leaving empty sysconfdir in mesa package
Signed-off-by: Pau Espin Pedrol pau.es...@aweurope.be --- meta/recipes-graphics/mesa/mesa.inc | 5 + 1 file changed, 5 insertions(+) diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 96313b5..f88b2a4 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -99,6 +99,11 @@ do_install_append () { # it was packaged in libdricore9.1.3-1 and preventing upgrades when debian.bbclass was used rm -f ${D}${sysconfdir}/drirc + +# /etc is sometimes left as an empty directory and it ends up into 'mesa' package, which is then a non-empty package +if [ -d ${D}${sysconfdir} ]; then +rmdir --ignore-fail-on-non-empty ${D}${sysconfdir} +fi } # For the packages that make up the OpenGL interfaces, inject variables so that -- 1.9.1 -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 2/2] cmake: Upgrade 2.8.12.2 - 3.2.2
On 03.06.2015 16:55, Martin Jansa wrote: On Wed, Jun 03, 2015 at 03:57:33PM +0200, Moritz Blume wrote: Patches qt4-fail-silent.patch and support-oe-qt4-tools-names.patch were adapted in order to fit to CMake 3.2.2 (refer to the commit message in the respective patch for details). Patch cmake-2.8.11.2-FindFreetype.patch was dropped since it was rejected upstream and its functionality otherwise implemented in the meantime. The Ugly hack in cmake.inc is removed since these things belong to QT related recipes, not CMake. No, it's issue in CMake build trying to find Qt files, so it has to be fixed in CMake build. This hack used to be part of meta-qt5 (which provides these files which are causing CMake build to fail, but it was moved to oe-core so that people don't need to adjust the cmake bbappends when they are using different branches of oe-core and meta-qt5. Can you please tell me how to reproduce the error? I tried some of the meta-qt5 recipes and they all build. Cheers, Moritz. Note that CMake 3 needs to have the full compiler path in the toolchain file (see cmake.bbclass). Does it work correctly when sstate is reused on host with different paths? Signed-off-by: Moritz Blume moritz.bl...@bmw-carit.de --- meta/classes/cmake.bbclass | 8 ++- .../cmake/cmake-native_2.8.12.2.bb | 19 -- meta/recipes-devtools/cmake/cmake-native_3.2.2.bb | 19 ++ meta/recipes-devtools/cmake/cmake.inc | 25 +--- .../cmake/cmake/cmake-2.8.11.2-FindFreetype.patch | 47 --- .../cmake/cmake/qt4-fail-silent.patch | 30 -- .../cmake/cmake/support-oe-qt4-tools-names.patch | 70 ++ meta/recipes-devtools/cmake/cmake_2.8.12.2.bb | 52 meta/recipes-devtools/cmake/cmake_3.2.2.bb | 56 + 9 files changed, 140 insertions(+), 186 deletions(-) delete mode 100644 meta/recipes-devtools/cmake/cmake-native_2.8.12.2.bb create mode 100644 meta/recipes-devtools/cmake/cmake-native_3.2.2.bb delete mode 100644 meta/recipes-devtools/cmake/cmake/cmake-2.8.11.2-FindFreetype.patch delete mode 100644 meta/recipes-devtools/cmake/cmake_2.8.12.2.bb create mode 100644 meta/recipes-devtools/cmake/cmake_3.2.2.bb diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass index 1ebb936..c97fd02 100644 --- a/meta/classes/cmake.bbclass +++ b/meta/classes/cmake.bbclass @@ -10,9 +10,11 @@ CCACHE = # We want the staging and installing functions from autotools inherit autotools -# C/C++ Compiler (without cpu arch/tune arguments) -OECMAKE_C_COMPILER ?= `echo ${CC} | sed 's/^\([^ ]*\).*/\1/'` -OECMAKE_CXX_COMPILER ?= `echo ${CXX} | sed 's/^\([^ ]*\).*/\1/'` +# Full path to C/C++ Compiler (without cpu arch/tune arguments) +C_COMPILER = $(echo ${CC} | sed 's/^\([^ ]*\).*/\1/') +CXX_COMPILER = $(echo ${CXX} | sed 's/^\([^ ]*\).*/\1/') +OECMAKE_C_COMPILER ?= $(which ${C_COMPILER}) +OECMAKE_CXX_COMPILER ?= $(which ${CXX_COMPILER}) OECMAKE_AR ?= ${AR} # Compiler flags diff --git a/meta/recipes-devtools/cmake/cmake-native_2.8.12.2.bb b/meta/recipes-devtools/cmake/cmake-native_2.8.12.2.bb deleted file mode 100644 index e40dfdd..000 --- a/meta/recipes-devtools/cmake/cmake-native_2.8.12.2.bb +++ /dev/null @@ -1,19 +0,0 @@ -require cmake.inc -inherit native - -# Using cmake's internal libarchive, so some dependencies are needed -DEPENDS += bzip2-native zlib-native - -SRC_URI += \ -file://cmlibarchive-disable-ext2fs.patch \ - - -SRC_URI[md5sum] = 17c6513483d23590cbce6957ec6d1e66 -SRC_URI[sha256sum] = 8c6574e9afabcb9fc66f463bb1f2f051958d86c85c37fccf067eb1a44a120e5e - -# Disable ccmake since we don't depend on ncurses -CMAKE_EXTRACONF = \ --DBUILD_CursesDialog=0 \ --DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \ --DHAVE_SYS_ACL_H=0 \ - diff --git a/meta/recipes-devtools/cmake/cmake-native_3.2.2.bb b/meta/recipes-devtools/cmake/cmake-native_3.2.2.bb new file mode 100644 index 000..17e9e2c --- /dev/null +++ b/meta/recipes-devtools/cmake/cmake-native_3.2.2.bb @@ -0,0 +1,19 @@ +require cmake.inc +inherit native + +# Using cmake's internal libarchive, so some dependencies are needed +DEPENDS += bzip2-native zlib-native + +SRC_URI += \ +file://cmlibarchive-disable-ext2fs.patch \ + + +SRC_URI[md5sum] = 2da57308071ea98b10253a87d2419281 +SRC_URI[sha256sum] = ade94e6e36038774565f2aed8866415443444fb7a362eb0ea5096e40d5407c78 + +# Disable ccmake since we don't depend on ncurses +CMAKE_EXTRACONF = \ +-DBUILD_CursesDialog=0 \ +-DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \ +-DHAVE_SYS_ACL_H=0 \ + diff --git a/meta/recipes-devtools/cmake/cmake.inc b/meta/recipes-devtools/cmake/cmake.inc index 28b7f2d..226b12f 100644 --- a/meta/recipes-devtools/cmake/cmake.inc +++ b/meta/recipes-devtools/cmake/cmake.inc @@ -6,7 +6,7 @@ HOMEPAGE = http://www.cmake.org/; BUGTRACKER = http://public.kitware.com/Bug/my_view_page.php; SECTION = console/utils
Re: [OE-core] [wic][PATCH 3/4] wic: replaced __run_parted with exec_native_cmd
On Fri, Jun 05, 2015 at 05:33:12PM +0100, Ross Burton wrote: On 05/06/2015 07:13, Ed Bartosh wrote: There is no need for yet another wrapper around exec_native_cmd. This doesn't appear to apply to master, can you rebase? (or does it depend on your other series?) It depends on this patchset: http://lists.openembedded.org/pipermail/openembedded-core/2015-June/105561.html -- Regards, Ed -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
[OE-core] [PATCH] squashfs-tools: upgrade to newer revision from git
* 4.3 release has nasty hard to reproduce bug in LZO compression which in few cases results in one of these 2 errors: 1) Lseek failure when creating the FS: | writer: Lseek on destination failed because Bad file descriptor, offset=0x1f72306 | FATAL ERROR:Probably out of space on output filesystem | Parallel mksquashfs: Using 32 processors | Creating 4.0 filesystem on rootfs.squashfs, block size 262144. .. 2) failing to read the filesystem in runtime, kernel 3.16.0 showing errors like this: [ 46.720568] SQUASHFS error: lzo decompression failed, data probably corrupt [ 46.730003] SQUASHFS error: squashfs_read_data failed to read block 0x1f72305 [ 46.740076] SQUASHFS error: Unable to read fragment cache entry [1f72305] it's fixed in upstream git repo: https://github.com/plougher/squashfs-tools/commit/de03266983ceb62e5365aac84fcd3b2fd4d16e6f https://github.com/plougher/squashfs-tools/commit/9c1db6d13a51a2e009f0027ef336ce03624eac0d the official repo is: https://git.kernel.org/cgit/fs/squashfs/squashfs-tools.git but author's github is kept in sync so we can use just that Signed-off-by: Martin Jansa martin.ja...@gmail.com --- .../squashfs-tools/squashfs-tools_4.3.bb | 40 -- .../squashfs-tools/squashfs-tools_git.bb | 37 2 files changed, 37 insertions(+), 40 deletions(-) delete mode 100644 meta/recipes-devtools/squashfs-tools/squashfs-tools_4.3.bb create mode 100644 meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb diff --git a/meta/recipes-devtools/squashfs-tools/squashfs-tools_4.3.bb b/meta/recipes-devtools/squashfs-tools/squashfs-tools_4.3.bb deleted file mode 100644 index 19d555e1..000 --- a/meta/recipes-devtools/squashfs-tools/squashfs-tools_4.3.bb +++ /dev/null @@ -1,40 +0,0 @@ -# Note, we can probably remove the lzma option as it has be replaced with xz, -# and I don't think the kernel supports it any more. -SUMMARY = Tools for manipulating SquashFS filesystems -SECTION = base -LICENSE = GPL-2 PD -LIC_FILES_CHKSUM = file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://../../7zC.txt;beginline=12;endline=16;md5=2056cd6d919ebc3807602143c7449a7c \ - -DEPENDS = attr zlib xz lzo lz4 - -SRC_URI = ${SOURCEFORGE_MIRROR}/squashfs/squashfs${PV}.tar.gz;name=squashfs \ - http://downloads.sourceforge.net/sevenzip/lzma465.tar.bz2;name=lzma \ - - -SRC_URI[squashfs.md5sum] = d92ab59aabf5173f2a59089531e30dbf -SRC_URI[squashfs.sha256sum] = 0d605512437b1eb800b4736791559295ee5f60177e102e4d4ccd0ee241a5f3f6 - -SRC_URI[lzma.md5sum] = 29d5ffd03a5a3e51aef6a74e9eafb759 -SRC_URI[lzma.sha256sum] = c935fd04dd8e0e8c688a3078f3675d699679a90be81c12686837e0880aa0fa1e - -S = ${WORKDIR}/squashfs${PV}/squashfs-tools -SPDX_S = ${WORKDIR}/squashfs${PV} - -# EXTRA_OEMAKE is typically: -e MAKEFLAGS= -# the -e causes problems as CFLAGS is modified in the Makefile, so -# we redefine EXTRA_OEMAKE here -EXTRA_OEMAKE = MAKEFLAGS= LZMA_SUPPORT=1 LZMA_DIR=../.. XZ_SUPPORT=1 LZO_SUPPORT=1 LZ4_SUPPORT=1 - -do_compile() { - oe_runmake mksquashfs unsquashfs -} -do_install () { -install -d ${D}${sbindir} -install -m 0755 mksquashfs ${D}${sbindir}/ - install -m 0755 unsquashfs ${D}${sbindir}/ -} - -ARM_INSTRUCTION_SET = arm - -BBCLASSEXTEND = native nativesdk diff --git a/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb b/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb new file mode 100644 index 000..95042dd --- /dev/null +++ b/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb @@ -0,0 +1,37 @@ +# Note, we can probably remove the lzma option as it has be replaced with xz, +# and I don't think the kernel supports it any more. +SUMMARY = Tools for manipulating SquashFS filesystems +SECTION = base +LICENSE = GPL-2 PD +LIC_FILES_CHKSUM = file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://../../7zC.txt;beginline=12;endline=16;md5=2056cd6d919ebc3807602143c7449a7c \ + +DEPENDS = attr zlib xz lzo lz4 + +PV = 4.3+gitr${SRCPV} +SRCREV = 9c1db6d13a51a2e009f0027ef336ce03624eac0d +SRC_URI = git://github.com/plougher/squashfs-tools.git;protocol=https \ + http://downloads.sourceforge.net/sevenzip/lzma465.tar.bz2;name=lzma \ + +SRC_URI[lzma.md5sum] = 29d5ffd03a5a3e51aef6a74e9eafb759 +SRC_URI[lzma.sha256sum] = c935fd04dd8e0e8c688a3078f3675d699679a90be81c12686837e0880aa0fa1e + +S = ${WORKDIR}/git/squashfs-tools + +# EXTRA_OEMAKE is typically: -e MAKEFLAGS= +# the -e causes problems as CFLAGS is modified in the Makefile, so +# we redefine EXTRA_OEMAKE here +EXTRA_OEMAKE = MAKEFLAGS= LZMA_SUPPORT=1 LZMA_DIR=../.. XZ_SUPPORT=1 LZO_SUPPORT=1 LZ4_SUPPORT=1 + +do_compile() { +oe_runmake mksquashfs unsquashfs +} +do_install () { +install -d ${D}${sbindir} +install -m 0755 mksquashfs ${D}${sbindir}/ +install -m 0755 unsquashfs
Re: [OE-core] [PATCH RFC] sstate: Add eventhandler which cleans up stale recipe data
On Sun, Jun 07, 2015 at 08:20:12AM +0100, Richard Purdie wrote: Incremental builds do not work well when renaming recipes or changing architecture is a long standing issue which causes people considerable pain. We've struggled for a long time to come up with a way to generically address the problem. There are additional issues where removal of a layer caused data to continue to exist and additionally, changing DISTRO_FEATURES also caused problems in an existing TMPDIR. This patch attempts to address this by adding a mapping between stamp files and manifests. After parsing we can easily tell which stamp files are still reachable, if any manifest has a stamp that can no longer be reached, we can remove it. Since this code ties this to the sstate architecture list, it will not remove data from other than the current MACHINE (and its active architectures). It does not clean the sstate cache so if another build activates something which was cleaned, it should reinstall from sstate. We can also go one step further, depending on the setting of SSTATE_PRUNE_OBSOLETEWORKDIR, workdirs which are no longer active can also be removed. This avoids the buildup of many old copies of data in WORKDIR for example when versions are upgraded. The one thing which may surprise people with this change is if you remove a layer, data added by that layer will be uninstalled before the next build continues. I believe this is a feature and a good thing to do though. This code is safe with existing builds. If something isn't in the new index it simply isn't removed. Since changes to the sstate code trigger a rebuild, after this merges, we can assume the code will start to detect changes from that point onwards. [Right now this is an RFC, it appeared to do the right things in some brief local tests and I am pretty excited that this could solve a long standing usability issue in a clean and effective way. There is a bug related to DISTRO_FEATURES changes right now since even skipped recipes will still show active stamps meaning systemd isn't removed from a sysvinit build and vice versa. I should be able to fix that next week before merging. This patch depends on the patch on the bitbake list for the event it needs. Before merging I will bump version number requirements to ensure people have it. I also want to improve the log output so it tells users what its doing rather than the obtuse bb.error().] [YOCTO #4102] Thanks RP, good work, I'm cherry-picking both changes for my next world build. Signed-off-by: Richard Purdie richard.pur...@linuxfoundation.org diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 949ba4a..c5a974a 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -33,6 +33,15 @@ SSTATE_SCAN_CMD ?= 'find ${SSTATE_BUILDDIR} \( -name ${@\ -o -name \.join(d BB_HASHFILENAME = ${SSTATE_EXTRAPATH} ${SSTATE_PKGSPEC} ${SSTATE_SWSPEC} +SSTATE_ARCHS = \ +${BUILD_ARCH} \ +${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS} \ +${BUILD_ARCH}_${TARGET_ARCH} \ +${SDK_ARCH}_${SDK_OS} \ +${SDK_ARCH}_${PACKAGE_ARCH} \ +allarch \ +${PACKAGE_ARCH} + SSTATE_MANMACH ?= ${SSTATE_PKGARCH} SSTATECREATEFUNCS = sstate_hardcode_path @@ -233,6 +242,20 @@ def sstate_install(ss, d): f.write(di + \n) f.close() +# Append to the list of manifests for this PACKAGE_ARCH + +i = d.expand(${SSTATE_MANIFESTS}/index-${SSTATE_MANMACH}) +l = bb.utils.lockfile(i + .lock) +filedata = d.getVar(STAMP, True) + + d.getVar(SSTATE_MANFILEPREFIX, True) + + d.getVar(WORKDIR, True) + \n +manifests = [] +if os.path.exists(i): +with open(i, r) as f: +manifests = f.readlines() +if filedata not in manifests: +with open(i, a+) as f: +f.write(filedata) +bb.utils.unlockfile(l) + # Run the actual file install for state in ss['dirs']: if os.path.exists(state[1]): @@ -858,3 +881,41 @@ python sstate_eventhandler() { bb.siggen.dump_this_task(sstatepkg + '_' + taskname + .tgz .siginfo, d) } +SSTATE_PRUNE_OBSOLETEWORKDIR = 1 + +# Event handler which removes manifests and stamps file for +# recipes which are no longer reachable in a build where they +# once were. +# Also optionally removes the workdir of those tasks/recipes +# +addhandler sstate_eventhandler2 +sstate_eventhandler2[eventmask] = bb.event.ReachableStamps +python sstate_eventhandler2() { +import glob +d = e.data +stamps = e.stamps.values() +toremove = [] +removeworkdir = (d.getVar(SSTATE_PRUNE_OBSOLETEWORKDIR) == 1) +for a in d.getVar(SSTATE_ARCHS, True).split(): +i = d.expand(${SSTATE_MANIFESTS}/index- + a) +if not os.path.exists(i): +continue +with open(i, r) as f: +lines = f.readlines() +for l in lines: +
Re: [OE-core] [PATCH 7/7] core-image-minimal-vms: new recipe to build images for VM
On Mon, Jun 8, 2015 at 11:15 AM, Burton, Ross ross.bur...@intel.com wrote: On 3 June 2015 at 19:07, Juro Bystricky juro.bystri...@intel.com wrote: Simple recipe that builds core-image-minimal in both supported VM formats: VDI (VirtualBox) and VMDK (VM player) I'm not convinced we need this in oe-core as it's just a IMAGE_FSTYPES assignment in local.conf for the end user. FWIW: I was thinking the same thing. Bruce Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core -- Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 7/7] core-image-minimal-vms: new recipe to build images for VM
Agreed. Not needed per se, just an example recipe. I used it for testing of the new bbclass. From: Burton, Ross [mailto:ross.bur...@intel.com] Sent: Monday, June 8, 2015 8:15 AM To: Bystricky, Juro Cc: OE-core; Juro Bystricky; Saul Wold Subject: Re: [PATCH 7/7] core-image-minimal-vms: new recipe to build images for VM On 3 June 2015 at 19:07, Juro Bystricky juro.bystri...@intel.commailto:juro.bystri...@intel.com wrote: Simple recipe that builds core-image-minimal in both supported VM formats: VDI (VirtualBox) and VMDK (VM player) I'm not convinced we need this in oe-core as it's just a IMAGE_FSTYPES assignment in local.conf for the end user. Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 7/7] core-image-minimal-vms: new recipe to build images for VM
On 3 June 2015 at 19:07, Juro Bystricky juro.bystri...@intel.com wrote: Simple recipe that builds core-image-minimal in both supported VM formats: VDI (VirtualBox) and VMDK (VM player) I'm not convinced we need this in oe-core as it's just a IMAGE_FSTYPES assignment in local.conf for the end user. Ross -- ___ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core
Re: [OE-core] [PATCH 2/2] cmake: Upgrade 2.8.12.2 - 3.2.2
On Mon, Jun 08, 2015 at 04:27:55PM +0200, Moritz Blume wrote: On 03.06.2015 16:55, Martin Jansa wrote: On Wed, Jun 03, 2015 at 03:57:33PM +0200, Moritz Blume wrote: Patches qt4-fail-silent.patch and support-oe-qt4-tools-names.patch were adapted in order to fit to CMake 3.2.2 (refer to the commit message in the respective patch for details). Patch cmake-2.8.11.2-FindFreetype.patch was dropped since it was rejected upstream and its functionality otherwise implemented in the meantime. The Ugly hack in cmake.inc is removed since these things belong to QT related recipes, not CMake. No, it's issue in CMake build trying to find Qt files, so it has to be fixed in CMake build. This hack used to be part of meta-qt5 (which provides these files which are causing CMake build to fail, but it was moved to oe-core so that people don't need to adjust the cmake bbappends when they are using different branches of oe-core and meta-qt5. Can you please tell me how to reproduce the error? I tried some of the meta-qt5 recipes and they all build. cmake-native doesn't depend on qtbase-native, but it's detecting files from qtbase-native, when it finds them in do_configure it will fail with the message shown in recipe or sometimes there is different error message when qtbase-native is removed from sysroot while cmake-native build is trying to use these files from sysroot. Cheers, Moritz. Note that CMake 3 needs to have the full compiler path in the toolchain file (see cmake.bbclass). Does it work correctly when sstate is reused on host with different paths? Signed-off-by: Moritz Blume moritz.bl...@bmw-carit.de --- meta/classes/cmake.bbclass | 8 ++- .../cmake/cmake-native_2.8.12.2.bb | 19 -- meta/recipes-devtools/cmake/cmake-native_3.2.2.bb | 19 ++ meta/recipes-devtools/cmake/cmake.inc | 25 +--- .../cmake/cmake/cmake-2.8.11.2-FindFreetype.patch | 47 --- .../cmake/cmake/qt4-fail-silent.patch | 30 -- .../cmake/cmake/support-oe-qt4-tools-names.patch | 70 ++ meta/recipes-devtools/cmake/cmake_2.8.12.2.bb | 52 meta/recipes-devtools/cmake/cmake_3.2.2.bb | 56 + 9 files changed, 140 insertions(+), 186 deletions(-) delete mode 100644 meta/recipes-devtools/cmake/cmake-native_2.8.12.2.bb create mode 100644 meta/recipes-devtools/cmake/cmake-native_3.2.2.bb delete mode 100644 meta/recipes-devtools/cmake/cmake/cmake-2.8.11.2-FindFreetype.patch delete mode 100644 meta/recipes-devtools/cmake/cmake_2.8.12.2.bb create mode 100644 meta/recipes-devtools/cmake/cmake_3.2.2.bb diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass index 1ebb936..c97fd02 100644 --- a/meta/classes/cmake.bbclass +++ b/meta/classes/cmake.bbclass @@ -10,9 +10,11 @@ CCACHE = # We want the staging and installing functions from autotools inherit autotools -# C/C++ Compiler (without cpu arch/tune arguments) -OECMAKE_C_COMPILER ?= `echo ${CC} | sed 's/^\([^ ]*\).*/\1/'` -OECMAKE_CXX_COMPILER ?= `echo ${CXX} | sed 's/^\([^ ]*\).*/\1/'` +# Full path to C/C++ Compiler (without cpu arch/tune arguments) +C_COMPILER = $(echo ${CC} | sed 's/^\([^ ]*\).*/\1/') +CXX_COMPILER = $(echo ${CXX} | sed 's/^\([^ ]*\).*/\1/') +OECMAKE_C_COMPILER ?= $(which ${C_COMPILER}) +OECMAKE_CXX_COMPILER ?= $(which ${CXX_COMPILER}) OECMAKE_AR ?= ${AR} # Compiler flags diff --git a/meta/recipes-devtools/cmake/cmake-native_2.8.12.2.bb b/meta/recipes-devtools/cmake/cmake-native_2.8.12.2.bb deleted file mode 100644 index e40dfdd..000 --- a/meta/recipes-devtools/cmake/cmake-native_2.8.12.2.bb +++ /dev/null @@ -1,19 +0,0 @@ -require cmake.inc -inherit native - -# Using cmake's internal libarchive, so some dependencies are needed -DEPENDS += bzip2-native zlib-native - -SRC_URI += \ -file://cmlibarchive-disable-ext2fs.patch \ - - -SRC_URI[md5sum] = 17c6513483d23590cbce6957ec6d1e66 -SRC_URI[sha256sum] = 8c6574e9afabcb9fc66f463bb1f2f051958d86c85c37fccf067eb1a44a120e5e - -# Disable ccmake since we don't depend on ncurses -CMAKE_EXTRACONF = \ --DBUILD_CursesDialog=0 \ --DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \ --DHAVE_SYS_ACL_H=0 \ - diff --git a/meta/recipes-devtools/cmake/cmake-native_3.2.2.bb b/meta/recipes-devtools/cmake/cmake-native_3.2.2.bb new file mode 100644 index 000..17e9e2c --- /dev/null +++ b/meta/recipes-devtools/cmake/cmake-native_3.2.2.bb @@ -0,0 +1,19 @@ +require cmake.inc +inherit native + +# Using cmake's internal libarchive, so some dependencies are needed +DEPENDS += bzip2-native zlib-native + +SRC_URI += \ +file://cmlibarchive-disable-ext2fs.patch \ + + +SRC_URI[md5sum] = 2da57308071ea98b10253a87d2419281 +SRC_URI[sha256sum] =