summaryrefslogtreecommitdiffstats
path: root/meta/classes/license.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* license.bbclass: make sure that image manifest dir existsMarkus Lehtonen2016-04-221-2/+4
| | | | | | | | | | | | | | | | | | Previously, write_deploy_manifest() was relying on write_package_manifest() to create the subdirectory for the manifest file. However, do_rootfs may be an empty function so that write_package_manifest() will not be called and the manifest subdirectory will not be created, causing a build failure. This patch fixes that by creating the directory hierarchy inside write_deploy_manifest(). [YOCTO #9446] (From OE-Core rev: e2dbe5eb869b8336b91023b83d7ca866197efa73) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: do write_deploy_manifest in image postprocessingMarkus Lehtonen2016-04-191-1/+4
| | | | | | | | | | | | | | Call write_deploy_manifest() in image postprocessing phase, instead of rootfs postprocessing. The reason being that not necessarily all do_deploy tasks are dependencies of the do_rootfs and we might miss something. [YOCTO #9446] (From OE-Core rev: 1f35b05d60f4e84554c5ee837cb071815e12c91c) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: fix warnings when run in unprivileged "container" envBjørn Forsman2016-04-061-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | An unprivileged "container" environment like this[1] doesn't have root account (uid 0) which causes tons of "Invalid argument" warnings: $ bitbake ... ... WARNING: Could not copy license file [src] to [dest]: [Errno 22] Invalid argument: '[src]' WARNING: Could not copy license file [src] to [dest]: [Errno 22] Invalid argument: '[src]' WARNING: Could not copy license file [src] to [dest]: [Errno 22] Invalid argument: '[src]' ... Fix it by handling EINVAL similar to existing handling of EPERM (which was added for when not running under pseudo). [1]: The real environemnt is buildFHSUserEnv from NixOS/nixpkgs, but a demonstration of the issue can be done like this: $ touch f $ unshare --user --mount chown 0:0 f chown: changing ownership of ‘f’: Invalid argument (From OE-Core rev: d00b2250a6afebd7d1373c04b4006290f0cd4043) Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: fix host contamination warnings for license filesJagadeesh Krishnanjanappa2016-03-091-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We get below host contamination warnings of license files for each recipe, when we try to create a separate ${PN}-lic package (which contains license files), by setting LICENSE_CREATE_PACKAGE equal to "1" in local.conf. -- snip -- WARNING: QA Issue: libcgroup: /libcgroup-lic/usr/share/licenses/libcgroup/generic_LGPLv2.1 is owned by uid 5001, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated] WARNING: QA Issue: attr: /attr-lic/usr/share/licenses/attr/libattr.c is owned by uid 5001, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated] WARNING: QA Issue: bash: /bash-lic/usr/share/licenses/bash/COPYING is owned by uid 5001, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated] -- CUT -- Since the license files from source and OE-core, are populated in a normal shell environment rather in pseudo environment (fakeroot); the ownership of these files will be same as host user running bitbake. During the do_package task (which runs in pseudo environment (fakeroot)), os.link preserves the ownership of these license files as host user instead of root user. This causes license files to have UID same as host user id and resulting in above warnings during do_package_qa task. Changing ownership of license files to root user (which has UID and GID as 0) under pseudo environment will solve above warnings, and on exiting pseudo environment the license files will continue to be owned by host user. Perform this manipulation within try/except statements, as tasks which are not exected under pseudo (such as do_populate_lic) result in OSError when trying to change ownership of license files. (From OE-Core rev: a411e96c3989bc9ffbd870b54cd6a7ad2e9f2c61) Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: add LICENSE_CREATE_PACKAGE to perform_packagecopy vardepsRoss Burton2016-02-041-0/+1
| | | | | | | | | | | | | This class has a perform_packagecopy_prepend() that uses LICENSE_CREATE_PACKAGE, but the BitBake variable dependency code doesn't know that oe.data.typed_value() is a getter. Until BitBake knows this, add an explicit vardeps. [ YOCTO #5635 ] (From OE-Core rev: 0450c74e36b5547e3e903fdabe0f52675ac94dea) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/lib: Add expand parameter to getVarFlagRichard Purdie2016-02-041-6/+6
| | | | | | | | | | | | | | | | This sets the scene for removing the default False for expansion from getVarFlag. This would later allow True to become the default. On the most part this is an automatic translation with: sed -e 's:\(\.getVarFlag([^,()]*, [^,()]*\)):\1, True):g' -i `grep -ril getVar *` In this case, the default was False, but True was used since in most cases here expansion would be expected. (From OE-Core rev: 42a10788e89b07b14a150ced07113566cf99fcdd) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/rootfs: Use list_pkgs() instead of list()Mariano Lopez2016-01-201-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | This patch changes the use list_pkgs() instead of list() from class RpmPkgsList. The change is in two functions, image_list_installed_packages from rootfs.py and sdk_list_installed_packages from sdk.py. With this change the functions calling the functions listed above, must format the output as they required. The formatting can be done using format_pkg_list() from oe.utils. The classes calling the afected functions are changed too with this patch, to keep the same functionality using the new data structure. [YOCTO #7427] (From OE-Core rev: 983ea373362514e5888bd1d7d9c4f136c94b00f2) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: fix license manifestJackie Huang2016-01-181-1/+1
| | | | | | | | | | | The license manifest is wrong when there is no spaces before and after separates |&() and we can get warning like: WARNING: The license listed Artistic-1.0GPLv1+ was not in the licenses collected for recipe (From OE-Core rev: 20d6a4ce4e395251604d92111ce5ecacde5ce172) Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license: Fix BB_TASKDEPDATA referencesRichard Purdie2015-12-161-2/+4
| | | | | | | | | | We shouldn't try and expand what is a python dict object and we don't want it to influence the task hashes, task dependencies are already accounted for. (From OE-Core rev: 697072130a3298aede7166f125aa982be23793ca) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: Create image license manifestMariano Lopez2015-12-011-11/+51
| | | | | | | | | | | | | | | | | | | | | | This change adds the license_deployed_manifest function that will create the manifest for the packages deployed next to the image but not installed in rootfs. Some examples of these recipes would be the bootloaders, or the kernel. This new function was added to ROOTFS_POSTPROCESS_COMMAND so it will run after every rootfs task. This change also modify the write_license_files because the image manifest is different from the root manifest. [YOCTO #6772] (From OE-Core rev: a58e8e164b888a6e4747ef62a7a43825c4f47c32) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: Add function get_deployed_filesMariano Lopez2015-12-011-0/+15
| | | | | | | | | | | | | This function will get the files that were deployed using the sstate-control manifest file. This will give a better view of what was deployed next to the image. [YOCTO #6772] (From OE-Core rev: f1a0a86ea2db6f16d9b643636a8973aaeb85e4a6) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: Added function get_deployed_dependenciesMariano Lopez2015-12-011-0/+48
| | | | | | | | | | | | | | | This change introduce a new function to get the dependencies that were deployed. It uses BB_TASKDEPDATAto get all the dependencies of the current task, so it is possible to get different packages depending at what point this function is called. [YOCTO #6772] (From OE-Core rev: 2be96279580eac2b03970131dcd81b13c7f7f7d5) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: Added get_boot_dependencies functionMariano Lopez2015-12-011-0/+36
| | | | | | | | | | | | | | | This function gets the dependencies from the classes that create a boot image, this is required because sometimes the bootloader dependecy is in these classes. The current classes covered are bootimg and bootdirectdisk because these are the only clases that add dependencies. [YOCTO #6772] (From OE-Core rev: b165c2d3349115546c9db2f084eb6def4913b82d) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: Split license create manifestMariano Lopez2015-12-011-14/+22
| | | | | | | | | | | | | | | | This changes moves the writing of the licenses to a separated function that could be called for other packages. With these change it will be easier to reuse the writing of the license for the packages deployed but not installed in the rootfs. [YOCTO #6772] (From OE-Core rev: 71fb5da7a3a8e61b15be4efc05b968c0c9920d2f) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: Write recipeinfo file in license folderMariano Lopez2015-12-011-0/+11
| | | | | | | | | | | | | | | | | | | Currently there is no way to get the recipe version when creating the rootfs. It is needed because the manifest file for the image has to contain this important piece of information. This change writes a new file in the license folder for every recipe. This file is called "recipeinfo" and have the information used to write the manifest file for the recipes deployed next to the image. [YOCTO #6772] (From OE-Core rev: 2d97d82fb51281fe130e8d135f3cf9a78423dd94) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/license: fix intermittent license collection warningPaul Eggleton2015-11-241-0/+1
| | | | | | | | | | | | | | | | | | | | Fixes the following warning sometimes appearing during image builds: WARNING: The license listed ABC was not in the licenses collected for recipe xyz The files being looked for here, which runs during do_rootfs, are written out by the do_populate_lic task for each recipe. However, there was no explicit dependency between do_rootfs and all of the do_populate_lic tasks to ensure they had run - only an implicit link via do_build, so it is possible that sometimes they had not depending on how the tasks were scheduled. Add an explicit set of dependencies to fix this. (From OE-Core rev: ef7dc532e800d9b170246550cbc8703adf624beb) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Empty image: package list splitting and iterationAlex Franco2015-08-291-1/+1
| | | | | | | | | | | | A few short fixes to splitting/iteration done over package lists in license.bbclass, package_manager.py and rootfs.py. [YOCTO #7664] (From OE-Core rev: a902e98c5938f52ec960e0518e0ceaf8f5ee610c) Signed-off-by: Alex Franco <alejandro.franco@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license_class: Fix choose_lic_set into incompatible licenseAníbal Limón2015-08-011-2/+2
| | | | | | | | | | | | Use canonical_license when doing evaluation of license expresion since INCOMPATIBLE_LICENSE are already canonized. [YOCTO #8080] (From OE-Core rev: 799b25e09a149303edc1c098935f38a438878a95) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Add explict getVar param for (non) expansionRichard Purdie2015-06-231-2/+2
| | | | | | | | | | | | | | Rather than just use d.getVar(X), use the more explict d.getVar(X, False) since at some point in the future, having the default of expansion would be nice. This is the first step towards that. This patch was mostly made using the command: sed -e 's:\(getVar([^,()]*\)\s*):\1, False):g' -i `grep -ril getVar *` (From OE-Core rev: ab7c1d239b122c8e549e8112c88fd46c9e2b061b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license_class: Add explicity avoid of CLOSED license in validationsAníbal Limón2015-05-221-2/+8
| | | | | | | | | | | | | The CLOSED license isn't a generic license it is a set and can be any closed source license. [YOCTO #7752] (From OE-Core rev: f33651a46d12bb763a4e3c13438d084411406849) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license_class: license_create_manifest improvmentAníbal Limón2015-05-091-13/+10
| | | | | | | | | | Use image_list_installed_packges instead of open manually the package manifest and iterate over it. (From OE-Core rev: 7ffe10df73cc20d10fcd41b121074445273bd60e) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license: Add support for handle INCOMPATIBLE_LICENSE in manifest creationAníbal Limón2015-05-091-3/+26
| | | | | | | | | | | | | | | When INCOMPATIBLE_LICENSE's is specified it need to be removed from license.manifest and also avoid copy to target image. Add ManifestVisitor that walk the license string searching for INCOMPATIBLE_LICENSE's if found remove it. [YOCTO #6765] (From OE-Core rev: d1278570041029d7c9fc6ce657e9a1701a421841) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license_class: Generalize license_ok functionAníbal Limón2015-05-091-17/+4
| | | | | | | | | | Add dont_want_licenses as parameter to license_ok function and move it to oe.license module in order to use in other modules. (From OE-Core rev: 243fe3a4583a21ad6c0b2a26196ed18d41740f7a) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license_class: Reimplemented manifest creation in pythonAníbal Limón2015-05-091-81/+82
| | | | | | | | | | | | | Reimplemented license_manifest_create from shell to python for INCOMPATIBLE_LICENSE handle using oe.license module. Optimizations are made to avoid license copy now uses a hardlink and symbolic link this helps to save space during build. (From OE-Core rev: a7976cbae34dc1bd08395afb8d720d43c5f0062e) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: allow copying license not in common licensesJackie Huang2015-04-301-1/+16
| | | | | | | | | | | | | | | | | | Some package like linux-firmware has many licenses that aren't in any way common, and new ones will be added from time to time, in order to avoid adding bunch of such common license files that are only applicable to a specific package, NO_GENERIC_LICENSE is added to allow copying license not in common licenses, it should be used in the recipe as: NO_GENERIC_LICENSE[<license_name>] = "<license file in fetched source>" e.g. NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENCE.Abilis.txt" (From OE-Core rev: 56930227128d55dab22f79138152b29cf040ceff) Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: skip license checking if the package contains no fileChen Qi2015-03-221-0/+8
| | | | | | | | | | | If the package doesn't contain any file, then the license isn't relevant as far as the final image is concerned. So we skip the license checking in license_create_manifest if such case. (From OE-Core rev: f7b6684d2248f4a56e70b292891f9a454275449d) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: set dirs for do_populate_lic_setsceneRobert Yang2015-03-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Fixed: ERROR: Build of do_populate_lic failed ERROR: Traceback (most recent call last): File "bitbake/lib/bb/build.py", line 497, in exec_task return _exec_task(fn, task, d, quieterr) File "bitbake/lib/bb/build.py", line 437, in _exec_task exec_func(func, localdata) File "bitbake/lib/bb/build.py", line 212, in exec_func exec_func_python(func, d, runfile, cwd=adir) File "/home/nxadm/nx/ala-blade44.1/builds-2015-03-09-163005/qemuppc_world_oe_bp/bitbake/lib/bb/build.py", line 237, in exec_func_python os.chdir(cwd) OSError: [Errno 2] No such file or directory: 'bitbake_build/tmp/work/ppc7400-wrs-linux/taglib/1.9.1-r0/build' When running setscene, the cwd is $B which maybe removed by autotools.bbclass or cmake.bbclass when rebuild. (From OE-Core rev: b3262af11094f93c9588f2e3edc70a5058491e6d) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: fix unexpected operator for LICENSE values with spaceMartin Jansa2015-02-171-1/+1
| | | | | | | | | | | * add quotes around pkged_lic so that it works correctly with spaces * fixes following error: run.license_create_manifest.50601: 193: [: GPLv2: unexpected operator (From OE-Core rev: 2bb8b2abb689d91b7b7e28e6bd528747bde94dd2) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-pkgdata-util: improve command-line usagePaul Eggleton2015-02-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | * Use argparse instead of optparse for standardised help output, options and a much cleaner code structure * Look up pkgdata directory automatically so the user doesn't have to specify it * Use standard logging NOTE: this does mean a slight change in syntax - if you do want to specify the pkgdata directory (usually only necessary if you're calling it from within the build process) you need to use the parameter -p (or --pkgdata-dir) and specify this before the command, not after it. Examples: oe-pkgdata-util find-path /sbin/mke2fs oe-pkgdata-util lookup-recipe libelf1 oe-pkgdata-util read-value PKGSIZE libc6 oe-pkgdata-util -p /home/user/oe/build/tmp/sysroots/qemux86-64/pkgdata read-value PKGSIZE libc6 (From OE-Core rev: 04dc571ac7c26f0dcf1a1fcd466482e22519998d) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/license: tweak license format messagesPaul Eggleton2015-02-081-7/+8
| | | | | | | | | | | | Strictly speaking not all of these characters are operators, so reword the message to describe them as separators. Also use the standard "recipename: message" format. (From OE-Core rev: 9e5da3e83f2a5d43620e07a31728b7427329d8f4) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: hardlink requires write permissionRobert Yang2014-12-251-2/+2
| | | | | | | | | | | | | | | | | | Fixed: * The os.link() reqiures write permission on the src file (suppose the src file belongs to another user, then you need write permission to harlink to it since the link count would change) * Print more info when failed to copy The warning was like: WARNING: Could not copy license file COPYING: [Errno 1] Operation not permitted We couldn't know which recipe print the warning from this message. (From OE-Core rev: ebc185186c36fe839008d94dbfb779383df960c7) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license: Validate if LICENSE is well defined.Aníbal Limón2014-12-251-0/+22
| | | | | | | | | | | | | Add check_license_format function that shows warning if LICENSE don't have valid operators and also if have space separated entries without operator, add check_license_format validation into base class. [YOCTO #6758] (From OE-Core rev: 346a023a42f127881476e760e8fa4e04303849b9) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license_class: fix license.manifest shows LICENSE field differently to recipeAníbal Limón2014-12-251-6/+7
| | | | | | | | | | | | Drop removal of [|&()*] operators in pkged_lic because this removal is only needed to validate if license is collected. [YOCTO #6757] (From OE-Core rev: 57e5f74382d51f2a8df00e18b6008e3d2b44ad1a) Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* base/license.bbclass: expand wildcards in INCOMPATIBLE_LICENSEHongxu Jia2014-12-191-0/+25
| | | | | | | | | | | | | | | | The whitelist processing in code in base.bbclass does not play well with wildcards in INCOMPATIBLE_LICENSES. The code expects bad_licenses to contain actual license names, not wildcards. Add incompatible_license_contains to replace bb.utils.contains( "INCOMPATIBLE_LICENSE", **, **, **, d) [YOCTO #5592] (From OE-Core rev: 3587653a8d8abc7cfed6a5c6ecfa72bee283e451) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: canonicalise the licenses named with 'X+'Jackie Huang2014-11-041-2/+9
| | | | | | | | | | | | | | | | If INCOMPATIBLE_LICENSE=GPLv3, GPLv3+ should be excluded as well but not now since there is no SPDXLICENSEMAP for licenses named with 'X+', we can add all the SPDXLICENSEMAP settings for licenses named with 'X+' in licenses.conf, but it's more like a duplication, so improve the canonical_license function to auto map for 'X+' if SPDXLICENSEMAP for 'X' is available, so GPLv3+ becomes GPL-3.0+. (From OE-Core rev: 1d6dab1dbbbfbcb32e58dba3111130157ef2b24f) Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license: Improve disk usageRichard Purdie2014-09-161-1/+8
| | | | | | | | | | | | Currently copies of the license files are made which wastes disk space and adversely affects performance. We can link these instead in most cases for small performance gains. (From OE-Core rev: 0b0f3631fd22f731b6aeedb73965e367b695028b) (From OE-Core rev: fe00d4f479c4fb5e4be5dda616a4de0a257ef6c3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: canonicalise licenses when dealing with INCOMPATIBLE_LICENSERoss Burton2014-07-191-3/+11
| | | | | | | | | | | | | | | If INCOMPATIBLE_LICENSE=GPL-3.0 but the recipe sets LICENSE=GPLv3, the current code won't trigger because they're different strings. Fix this by attempting to canonicalise every license name to a SPDX name, so both names in this example become GPL-3.0. [ YOCTO #5622 ] (From OE-Core rev: 8998e13fc95f11d15c34fb09d8451a9d4b69f2f1) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: fix indentation in python functionRoxana Ciobanu2014-07-191-6/+6
| | | | | | | | | | | | If we don't fix this, the fix for bug 6502 will trigger warnings that the write_package_manifest function contains tabs. Related to fix for [YOCTO #6502]. (From OE-Core rev: 6d93be5338ca301caafbcd44bfe3da08c05610ec) Signed-off-by: Roxana Ciobanu <roxana.ciobanu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass, license.bbclass: adjust the name of list_installed_packages()Laurentiu Palcu2014-03-211-2/+2
| | | | | | | | | The old wrapper got renamed to image_list_installed_packages(). (From OE-Core rev: 118a2a44bbe5ed2e9bbd0012970686be454e5d4c) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: Dont create a manifest when using BUILD_IMAGES_FROM_FEEDSDavid Nyström2014-02-111-0/+5
| | | | | | | | | | Wihtout this patch, FEEDS functionality is broken, and creating a manifest from recipe metadata may be faulty when using FEEDS. (From OE-Core rev: d926c0bdc58ab6dda55eed52b66dbd5834ced64f) Signed-off-by: David Nyström <david.nystrom@enea.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: fix license_create_manifest failedHongxu Jia2014-02-111-1/+1
| | | | | | | | | | | | | | | | | | | | | While rpm incremental image generation enabled, invoked license_create_manifest failed. ... | ln: failed to create symbolic link 'tmp/work/qemux86_ 64-poky-linux/core-image-base/1.0-r0/rootfs/usr/share/ common-licenses/alsa-conf-base/generic_GPLv2':File exists | WARNING:tmp/work/qemux86_64-poky-linux/core-image-base/ 1.0-r0/temp/run.license_create_manifest.26327:1 exit 1 from | ln -s ../${lic}/home/jiahongxu/yocto/build-20140120- yocto-qemux86-64/tmp/work/qemux86_64-poky-linux/core-image -base/1.0-r0/rootfs/usr/share/common-licenses/${pkg}/${lic} ... (From OE-Core rev: 39f8658033c886fedefc9038a673f9a5edad7d26) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass/license.bbclass: ajustment list_installed_packages invokingHongxu Jia2014-02-111-4/+10
| | | | | | | | | | | | | Since the list_installed_packages() function has refactored in python, do the necessary adjustments to license_create_manifes- t() and write_image_manifest() in license.bbclass and image.bb- class respectively; (From OE-Core rev: 4477991633d2971c17afbd0874b1ab2efb7d6eef) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Get rid of crazy name mappingRichard Purdie2013-12-181-1/+0
| | | | | | | | | | | | | | | When originally developed, it was thought a task may have more than one associated sstate archive. The way the code has grown that idea is now not possible or needed. We can therefore assume one sstate archive per task and drop the crazy name mapping code. Simpler is better in this case. The downside is that various sstate archives will change name so this forces a cache rebuild. Given the other sstate changes going in at this time, this isn't really a bad thing as things would rebuild anyway. (From OE-Core rev: 5afe86a6854b21692fd97c5fc7fab50dbc068acb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: fix copying license directories failedHongxu Jia2013-12-091-3/+4
| | | | | | | | | | | | | | | | | | | | | | For each recipe, it populated license files to ${LICENSE_DIRECTORY}/${PN}, such as kernel's license dir was ${LICENSE_DIRECTORY}/kernel-3.10.17-yocto-standard; In do_rootfs task, it copied license directories from ${LICENSE_DIRECTORY}/ ${pkg}, and ${pkg} was listed in ${INSTALLED_PKGS}; We got ${INSTALLED_PKGS} by rpm query, such as the kernel were 'kernel-*', but the kernel's PN was linux-yocto, so searching ${LICENSE_DIRECTORY}/ kernel-* failed. Copied license directories from ${LICENSE_DIRECTORY}/${PN} fixed this issue. [YOCTO #5572] (From OE-Core rev: 8968f9a3461912c8de217135f3691c86e2a58e86) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: fix missing of license files on ubuntu build hostChen Qi2013-11-201-2/+2
| | | | | | | | | | | | | | | | | The license_create_manifest function contains bashism, this will lead to unexpected results on ubuntu build host, as sh is linked to dash on ubuntu. Even if COPY_LIC_MANIFEST and COPY_LIC_DIRS are enabled, the license files will still be missing on target. This patch fixes the above problem. [YOCTO #5549] (From OE-Core rev: 4df9daee5c732c0a20dabe8515577238a1508512) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/license: use "1" to set boolean variablesPaul Eggleton2013-11-141-2/+2
| | | | | | | | | | | | | The expected usage of COPY_LIC_MANIFEST and COPY_LIC_DIRS appears to be to set them to "1" to enable; however the test here is just testing whether they have a value at all, so setting them to "0" would also enable them which is somewhat disingenuous. Actually check if they are set to "1" instead in order to fix this. (From OE-Core rev: 2d8e124adcf27af524eeeae61daf1b21a1c2f27c) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/license: fix commentsPaul Eggleton2013-11-141-3/+3
| | | | | | | | | It's LICENSE_FLAGS, LICENSE_FLAG is invalid. (From OE-Core rev: 70bd620b58ddd90477d9f438922ee3bdc7e8c5a5) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane, license: Trap MalformedUrl exceptions when parsing LIC_FILES_CHKSUMPhil Blundell2013-11-121-1/+4
| | | | | | | | | | | | | | | | | bb.fetch.decodeurl() will throw if it doesn't like the look of the URL that it's given. (Bitbake's idea of what constitutes a valid URL is somewhat idiosyncratic so it is fairly easy to trip over this by mistake when writing a recipe.) If these exceptions are allowed to propagate all the way up to better_exec() then we will get a large amount of python stack trace spew when they are finally caught. Avoid that by catching them locally and throwing bb.build.FuncFailed() with a suitable explanation instead. (From OE-Core rev: ef35e164c62d89806367b822e3baeff482ec237f) Signed-off-by: Phil Blundell <philb@gnu.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: use shutil instead of bb.utils.copyfileRoss Burton2013-10-041-4/+6
| | | | | | | | | | | bb.utils.copyfile is for a specific purpose and more complicated than needed here, so just use shutil.copyfile. (From OE-Core rev: dc81df215cc94c279991df35125d94770a1bc3d2) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake.conf/package: Collapse PKGDATA_DIR into a single machine specific ↵Richard Purdie2013-09-141-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | directory Currently we have a hierarchy of pkgdata directories and the code has to put together a search path and look through each in turn until it finds the data it needs. This has lead to a number of hardcoded paths and file globing which is unpredictable and undesirable. Worse, certain tricks that should be easy like a GL specific package architecture become problematic with the curretn search paths. With the modern sstate code, we can do better and construct a single pkgdata directory for each machine in just the same way as we do for the sysroot. This is already tried and well tested. With such a single directory, all the code that iterated through multiple pkgdata directories and simply be removed and give a significant simplification of the code. Even existing build directories adapt to the change well since the package contents doesn't change, just the location they're installed to and the stamp for them. The only complication is the we need a different shlibs directory for each multilib. These are only used by package.bbclass and the simple fix is to add MLPREFIX to the shlib directory name. This means the multilib packages will repackage and the sstate checksum will change but an existing build directory will adapt to the changes safely. It is close to release however I believe the benefits this patch give us are worth consideration for inclusion and give us more options for dealing with problems like the GL one. It also sets the ground work well for shlibs improvements in 1.6. (From OE-Core rev: 1b8e4abd2d9c0901d38d89d0f944fe1ffd019379) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>