summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe
Commit message (Collapse)AuthorAgeFilesLines
* deb: apply postinstall on sdkhongxu2021-05-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | If not postinstall applied, some nativesdk command could not be found in sdk due to update-alternatives in postinst not be executed, such as chroot: $ which chroot /sbin/chroot $ which chroot.coreutils path-to-sdk/sysroots/x86_64-wrlinuxsdk-linux/usr/bin/chroot.coreutils After applying the fix $ which chroot path-to-sdk/sysroots/x86_64-wrlinuxsdk-linux/usr/bin/chroot $ which chroot.coreutils path-to-sdk/sysroots/x86_64-wrlinuxsdk-linux/usr/bin/chroot.coreutils (From OE-Core rev: cbbdb5333d36bda3e6ce833d95960a8d4b09fbea) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 2a9bf19502766baa4087456649d5471483d04f6a) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/terminal: Fix tmux new-session on older tmux versions (<1.9)Peter Budny2021-04-231-3/+13
| | | | | | | | | | | | | | `tmux new -c` fails on tmux older than 1.9, when that flag was added. We can omit the flag for older versions of tmux, and the working directory gets set even without it. (From OE-Core rev: f1a5ca0b833e3f5bc7e4ccf8d75f0c5296fa9ea5) Signed-off-by: Peter Budny <pbbudny@amazon.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit c55c294be6f5119f4c58a4e7a0bc052904126569) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cve-check: CVE_VERSION_SUFFIX to work with patched releaseLee Chee Yang2021-04-191-1/+6
| | | | | | | | | | | | | | | | CVE_VERSION_SUFFIX in "patch" to treat version string with suffix "pX" or "patchX" as patched release. also update testcases to cover this changes and set CVE_VERSION_SUFFIX for sudo. (From OE-Core rev: 7e75801c9a76d7bcd2fed3a6522214f483966166) Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 8076815fc2ffc8f632e73527ce2b7d158a29e9ea) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Revert "sstatesig.py: show an error instead of warning when sstate manifest ↵Anuj Mittal2021-03-281-1/+1
| | | | | | | | | | | | isn't found" This is causing problems. See: https://lists.openembedded.org/g/openembedded-core/message/149374 This reverts commit da6b76bf6152b2a60c6a31756c287289c3559a74. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig.py: show an error instead of warning when sstate manifest isn't foundMartin Jansa2021-03-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * not sure if there are some valid use-cases for missing manifest, but recently I'm seeing increasing number of build failures where something from native recipe is missing (seen it with pseudo, autoconf, nodejs recently) and the only indication that something is wrong (before showing sometimes misleading error like: recipe-sysroot-native/usr/bin/node: No such file or directory is this warning: NOTE: Running task 7844 of 12431 (/meta-oe/meta-oe/recipes-devtools/nodejs/nodejs_12.20.2.bb:do_prepare_recipe_sysroot) NOTE: recipe nodejs-12.20.2-r0: task do_prepare_recipe_sysroot: Started WARNING: nodejs-12.20.2-r0 do_prepare_recipe_sysroot: Manifest /BUILD/sstate-control/manifest-x86_64_ubuntu-18.04-nodejs-native.populate_sysroot not found in x86_64 x86_64_ubuntu-18.04 (variant '')? NOTE: Running task 7845 of 12431 (/meta-oe/meta-oe/recipes-devtools/nodejs/nodejs_12.20.2.bb:do_unpack) NOTE: recipe nodejs-12.20.2-r0: task do_unpack: Started WARNING: nodejs-12.20.2-r0 do_prepare_recipe_sysroot: Manifest /BUILD/sstate-control/manifest-x86_64_ubuntu-18.04-nodejs-native.populate_sysroot not found in x86_64 x86_64_ubuntu-18.04 (variant '')? NOTE: recipe nodejs-12.20.2-r0: task do_prepare_recipe_sysroot: Succeeded if I rebuild that native dependency, then it gets fixed and I don't see these failures in clean builds (as without sstate and with empty TMPDIR), only in incremental builds * but if there isn't valid reason for missing manifest file, then I think it would be better to error early (or even bb.fatal()) (From OE-Core rev: da6b76bf6152b2a60c6a31756c287289c3559a74) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 95607a26854d873399d2b9d7e5fcbffc0cbdba4c) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe/recipeutils: Fix copying patches when BBLAYERS entries are not normalisedAndrei Gherzan2021-03-101-1/+1
| | | | | | | | | | | | | | | | | | `devtool` uses `copy_recipe_files` for the upgrade operation when creating the new, workspace recipe. Before handling the copy operations, the function checks the entry in `SRC_URI` against `FILE` while in turn uses absolute paths. When BBLAYERS contains entries that are not normalised, this check will fail resulting in having the recipe in the workspace without the initial patches. Signef-off-by: Robert Drab <robert.drab@huawei.com> (From OE-Core rev: 185a874d29706c65fb89920c4177fd6a0bb14711) Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 777fc24ab2c332954b56dac28cd9b3032808828c) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager/deb: Fix image generation with package removalRichard Purdie2021-02-261-0/+4
| | | | | | | | | | | | | | | | | | | When building SDKs with the deb backend you could see errors like: Setting up nativesdk-python3-ndg-httpsclient (0.5.1-r0) ... mkdir: cannot create directory ‘/usr/lib/opkg’: Permission denied dpkg: error processing package nativesdk-python3-ndg-httpsclient (--configure): which is due to environment misconfiguration when removing packages. Fix this by setting the same environment variables as used for installation. (From OE-Core rev: ffdd5e3d61995f78aa57a7f45d21ebc1513cb5a4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit f23c7e319a192ada14bb9a82822ef2967309aaea) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* deb: export INTERCEPT_DIR for remove actionsRichard Leitner2021-02-261-0/+2
| | | | | | | | | | | | | | | | | | | | During the do_populate_sdk task apt-get purge is called by deb's remove function. This fails with error messages similiar to the following one if any of the included packages uses intercepts as the INTERCEPT_DIR isn't exported: .../*.postinst: line 4: /postinst_intercept: No such file or directory Therefore fix it by exporting the INTERCEPT_DIR variable within the remove function. (From OE-Core rev: 697c75071932a48ec8d34b778fca68e18bec433a) Signed-off-by: Richard Leitner <richard.leitner@skidata.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit f18adf53dd4bf5dd3adef82b2dcc34a6cdfd0c89) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: drop _PYTHON_SYSCONFIGDATA_NAME hacksAlexander Kanavin2021-02-111-4/+0
| | | | | | | | | | (From OE-Core rev: 94a8eff9a95313e29683ebaecb83378a3c776b48) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 7901859e38de06c56b8535a8425e76cb114c57dc) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Add descriptive error message to getpwuid/getgrgid "uid/gid not ↵Tomasz Dziendzielski2021-02-111-2/+4
| | | | | | | | | | | | | | | | | | | | | | | found" KeyError If path is not owned by any user installed on target it gives insufficient error "getpwuid(): uid not found" which may be misleading. This exception occurs if uid/gid of path was not found in PSEUDO_PASSWD files, which simply means the path is owned by host user and there is host user contamination. Add more information to the exception message to make it easier for user to debug. [YOCTO #14031] (From OE-Core rev: ca324a6fef99eef638a3577543592443a043f4e7) Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 38540b59ed4ec8632e30a5fd6364b010d9da8470) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/patch.py: Don't return command stderr from runcmd functionTomasz Dziendzielski2021-02-051-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | If a function returns any stderr it will be passed to extractPatches and used as path to patch. For example subprocess command output can be: | sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) | /tmp/oepatchhuqle8fj/0001-foo.patch | /tmp/oepatchhuqle8fj/0002-bar.patch that will result in: | FileNotFoundError: [Errno 2] No such file or directory: 'sh:' To fix this I separated output, made the function return stdout and print stderr only in case of command error. (From OE-Core rev: 482589e2cc7c3ddeefb0a0fb98d97a9cbb18c9ec) (From OE-Core rev: 1dadeb58e88c4d953be612654fe4a76b51ff0553) Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 5e2450731c1f70fb72af0b8349905b359d3cd2b1) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cve_check: add CVE_VERSION_SUFFIX to indicate suffix in versioningLee Chee Yang2021-02-051-19/+21
| | | | | | | | | | | | | | | | | | | | | | | add CVE_VERSION_SUFFIX to indicate the version suffix type, currently works in two value, "alphabetical" if the version string uses single alphabetical character suffix as incremental release, blank to not consider the unidentified suffixes. This can be expand when more suffix pattern identified. refactor cve_check.Version class to use functools and add parameter to handle suffix condition. Also update testcases to cover new changes. (From OE-Core rev: 5dfd5ad5144708b474ef31eaa89a846c57be8ac0) (From OE-Core rev: 73f8c25a44ee33866a8fa61824437285cea96249) Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 86b42289bda5bc2a4eff221ab476f170dd3d3794) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cve-check: replace Looseversion with custom version classLee Chee Yang2021-02-051-0/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The way distutils.version.LooseVersion compare version are tricky, it treat all these ( "1.0-beta2", "1.0-rc1", "1.0A", "1.0p2" and "1.0pre1") as greater version than "1.0". This might be right for "1.0A" and "1.0p1" but not for the rest, also these version could be confusing, the "p" in "1.0p1" can be "pre" or "patched" version or even other meaning. Replace Looseversion with custom class, it uses regex to capture common version format like "1.1.1" or tag format using date like "2020-12-12" as release section, check for following known string/tags ( beta, rc, pre, dev, alpha, preview) as pre-release section, any other trailing characters are difficult to understand/define so ignore them. Compare release section and pre-release section saperately. included selftest for the version class. [YOCTO#14127] (From OE-Core rev: 6ced85e9ddd3569240f1e8b82130d1ac0fffbc40) (From OE-Core rev: 02a44b507a1e49a4c460f3e1bec92832b71dfe08) Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 3807c6d9a78ac8ade24c9c69cfe2b9624c49a20d) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/utils: Return empty string in parallel_makeTomasz Dziendzielski2021-01-271-1/+1
| | | | | | | | | | | | | | | | In cmake.bbclass we set CMAKE_BUILD_PARALLEL_LEVEL using parallel_make function and if PARALLEL_MAKE is set to empty string then this variable is exported as "None" causing cmake to fail with: "'CMAKE_BUILD_PARALLEL_LEVEL' environment variable invalid number 'None' given." (From OE-Core rev: 7ee65c50f7a38c22e3fb43b0c89e81aff24a2b7f) Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 2f790ded554a52ac18d1c28002142f9c62abec8b) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/path: Add canonicalize()Peter Kjellerstedt2021-01-121-0/+21
| | | | | | | | | | | | | | | oe.path.canonicalize() is used to canonicalize paths (i.e., remove symbolic links and "..", and make them absolute). It takes a string with paths separated by commas, and returns the canonicalized path in the same format. (From OE-Core rev: 5c9931e0ffcb1663f529289f2e03c549fdb3c4da) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 282b19c0e27488ec119f00fb2542ffdc1af54e2a) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uninative: Don't use single sstate for pseudo-nativeRichard Purdie2020-12-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pseudo-native is a bit special. It conditionally compiles in support for xattr, statx and statvfs amongst other options. If a pseudo-native binary is used on a system where these functions are present but it wasn't compiled in we see hard to debug permissions problems. An example is the devtool.DevtoolExtractTests.test_devtool_deploy_target oe-selftest which shows a cryptic error: File "/home/pokybuild/yocto-worker/oe-selftest-fedora/build/meta/lib/oeqa/selftest/cases/devtool.py", line 1388, in test_devtool_deploy_target self.assertEqual(filelist1, filelist2) File "/usr/lib64/python3.9/unittest/case.py", line 831, in assertEqual assertion_func(first, second, msg=msg) File "/usr/lib64/python3.9/unittest/case.py", line 1037, in assertListEqual self.assertSequenceEqual(list1, list2, msg, seq_type=list) File "/usr/lib64/python3.9/unittest/case.py", line 1019, in assertSequenceEqual self.fail(msg) File "/usr/lib64/python3.9/unittest/case.py", line 670, in fail raise self.failureException(msg) AssertionError: Lists differ: ['-rwxr-xr-x 6000 6000 /etc/init.d/mdmonitor', '-rw-r-[10124 chars]n.8'] != ['-rwxr-xr-x root root /etc/init.d/mdmonitor', '-rw-r-[10124 chars]n.8'] First differing element 0: '-rwxr-xr-x 6000 6000 /etc/init.d/mdmonitor' '-rwxr-xr-x root root /etc/init.d/mdmonitor' This is due to a version of pseudo without statx being used on a system where ls uses statx, hence the files are displayed as 6000.6000 instead of root.root. Avoid this by always building pseudo-native for the specific distro in question rather than using a universal sstate feed. This hopefully fixes one of the mysterious AB-INT issues. (From OE-Core rev: d3ec2ecdf8915a9fb1c4ea36a29b05090abf089c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 6e3785a3f1f3cf68f5fe101cd6bebe91db165973) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/lib/oe/reproducible.py: gitsm:// works just as fine as git:// for ↵Alexander Kanavin2020-12-181-1/+1
| | | | | | | | | | | | | | | timestamps This in particular addresses vulkan-samples reproducibility which made me scratch my head for a while. (From OE-Core rev: 9010bd445740344a9a3c983e5767552eb684af12) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 4a2936126f12eeacecced051fa339c32c1f16576) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* scripts/buildhistory_analysis: Avoid tracebacks from file comparision codeRichard Purdie2020-10-301-2/+4
| | | | | | | | | | We're seeing tracebacks from buildhistory analysing the python 3.8 -> 3.9 upgrade due to the significant file renames. Avoid these by checking before removal as they can happen multiple times. (From OE-Core rev: b1eb390bbcb995c0da70478e17f9170721c75341) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* deb: replace deprecated apt force-yes argumentRichard Leitner2020-10-301-1/+1
| | | | | | | | | | | | | | apt-get deprecated --force-yes in favor of various options starting with --allow [1]. Replace it to avoid the following warning: W: --force-yes is deprecated, use one of the options starting with --allow instead. [1] https://salsa.debian.org/apt-team/apt/-/blob/master/debian/changelog (From OE-Core rev: 4af737e2643f498d1ff4c387207bd8c4f3d405b8) Signed-off-by: Richard Leitner <richard.leitner@skidata.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Log timestamps for hashequiv in reprodubile builds for do_packageRichard Purdie2020-10-301-0/+6
| | | | | | | | | | | | | Currently if a task generates the same output with different timestamps, hasequiv won't detect it but reproducibile builds will fail tests due to the different timestamps. Add do_package timestamps to the hash when reproducibile builds are enabled to avoid this. (From OE-Core rev: 11e8200ccec765ff6a4263e06512e5751eca261a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/rootfs: introduce IMAGE_LOG_CHECK_EXCLUDESKonrad Weihmann2020-10-201-0/+2
| | | | | | | | | | | | | | | When using rpm as package manager and trying to install a file called '/usr/share/doc/What to when an Error occurs.txt' log_check falsely errors out on the build, because used regex match on 'DEBUG: Removing manifest: /path/usr/share/doc/What to when an Error occurs.txt'. To handle such cases introduce IMAGE_LOG_CHECK_EXCLUDES, to allow user to add custom exclude regex to log_check exclude list (From OE-Core rev: 7c7555a79b8bdef0a8d7fbd57e9ddf059066de76) Signed-off-by: Konrad Weihmann <kweihmann@outlook.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* IMAGE_LOCALES_ARCHIVE: add option to prevent locale archive creationMichael Thalmeier2020-10-131-6/+7
| | | | | | | | | | | | Under some circumstances it is not desirable to create a combined locale archive (/usr/lib/locale/locale-archive). The new variable IMAGE_LOCALES_ARCHIVE defaults to '1', so the default behaviour is not changed. (From OE-Core rev: 8d78b819c2ec33fce3a34254fa90864ee5fa7617) Signed-off-by: Michael Thalmeier <michael.thalmeier@hale.at> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* base/bitbake.conf: Enable pseudo path filteringRichard Purdie2020-10-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a pretty big change to the way pseudo operates when used in OpenEmbedded. Normally, pseudo monitors and logs (adds to its database) any file created or modified whilst in a fakeroot environment. There are large numbers of files we simply don't care about the permissions of whilst in that fakeroot context, for example ${S}, ${B}, ${T}, ${SSTATE_DIR}, the central sstate control directories, This change uses new functionality in pseudo to ignore these directory trees, resulting in a cleaner database with less chance of "stray" mismatches if files are modified outside pseudo context. It also should reduce some overhead from pseudo as the interprocess round trip to the server is avoided. There is a possible complication where some existing recipe may break, for example, we found a recipe which was writing to "${B}/install" for "make install" in do_install and since we listed ${B} as not to be tracked, there were errors trying to chown root for files in this location. This patch fixes a few corner cases in OE-Core when used with this new ignore list: * The archiver directory matched a "${WORKDIR}/deploy*" pattern so was renamed to something else since that directory does need its root permissions * The ${S} and ${B} ignoring is conditional on them being different to ${WORKDIR} * package_write_* task output (the debs/rpms/ipks) are now owned by the build user so we don't want the file ownership information in the hashequiv outhash calculation even if they are built under pseudo. * The fontcache postinstall intercept is run under qemu outside of pseudo context so delete files it may delete up front where pseudo can see this. * SSTATE_DIR is in PSEUDO_PATHS_IGNORE, which is in FAKEROOTENV which is cached by bitbake. We therefore need to trigger reparsing if this changes, which means SSTATE_DIR can be in BB_HASHBASE_WHITELIST but not BB_HASHCONFIG_WHITELIST. Rework the variables to handle this. This otherwise breaks some of our sstate tests in oe-selftest. * Ignore the temp directory wic uses for rebuilding rootfs. (From OE-Core rev: ad8f5532ffaead9a5ad13e1034fe9e5e1b7979f4) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* utils: respect scheduler affinity in cpu_count()Ross Burton2020-09-301-2/+1
| | | | | | | | | | | | | | | cpu_count() returns multiprocessing.cpu_count() but that is simply returns os.cpu_count() so we could use that directly. However this returns the number of CPUs on the host, not the number of usable CPUs on the host. If the user is using scheduler affinity then the number of usable CPUs may be less, so when determining how many cores we can use check the affinity instead. (From OE-Core rev: e2e8ccbe410b2f38bcd9525982b2261cf71aab60) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/recipeutils.py: add support for BBFILES_DYNAMICNaveen Saini2020-08-271-0/+17
| | | | | | | | | | | | | | | | Instead of relying on value of BBFILES from bitbake, devtool parses the layer.conf because the layer might not be in bblayers.conf. And it currently does not consider the value of BBFILES_DYNAMIC because of which recipes, in paths defined by BBFILES_DYNAMIC, upgraded using devtool end up in wrong location. Include the code from bitbake to append values to BBFILES based on what is in BBFILES_DYNAMIC too. (From OE-Core rev: c7bbb98ea8ccd3568dd8bded6e404e2f781e6841) Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/package_manager: Fix missing importsRichard Purdie2020-08-019-7/+15
| | | | | | | | | The package_manager code rearranging had some issues with module imports that were now missing. Fix all the ones I could spot from quick inspection. (From OE-Core rev: 287eccd7af7d97604ca68d456c23655fd1b6c40b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/reproducible.py: Fix git HEAD check3.2_M2Joshua Watt2020-07-291-2/+2
| | | | | | | | | | | | | | The check for a git HEAD still wasn't quite correct because it was using the .git directory as the current working directory. Instead, it should be passed as the --git-dir argument when running git. Running `git rev-parse HEAD` in a .git directory with no HEAD reports 'HEAD' and exits with success but then 'git log' will fail, which is not what we want. (From OE-Core rev: cdbd47dd7e1657b91b65a0940b7cbf119764240f) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Revert "lib/oe/log_colorizer.py: add LogColorizerProxyProgressHandler"Richard Purdie2020-07-291-86/+0
| | | | | | | This reverts commit 312fb3c86a3d84e60867b132666c01859f73ceb2 as this wasn't meant to merge as yet. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/log_colorizer.py: add LogColorizerProxyProgressHandlerChris Laplante2020-07-291-0/+86
| | | | | | | | | | | This progress handler intercepts log output, stripping any ANSII color escape codes. Then the stripped output is fed to the underlying progress handler which will render the progress bar as usual. (From OE-Core rev: 312fb3c86a3d84e60867b132666c01859f73ceb2) Signed-off-by: Chris Laplante <chris.laplante@agilent.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* deb: Move package manager to its own dirFredrik Gustafsson2020-07-276-489/+492
| | | | | | | | | | | | This is a part of a refactor that will split the package manager code so that it's possible to use other package managers in other layers. RP: Fixes to parse/build (From OE-Core rev: 510d5c48c0496f23a3d7aede76ea8735da2d371d) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* ipk: Move package manager to its own dirFredrik Gustafsson2020-07-276-434/+506
| | | | | | | | | | | | This is part of a refactor that will split the package manager code so that it's possible to use other package managers in other layers. RP: Fixes to parse/build (From OE-Core rev: 3ef5a3c885e1010cddfe7eba1cd3728f15270d78) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rpm: Move package manager to its own dirFredrik Gustafsson2020-07-276-400/+405
| | | | | | | | | | | | This is part of a refactor that will split the package manager code so that it's possible to use other package managers in other layers. RP: Fixes to parse/build (From OE-Core rev: 8b776ed9ed291dd8e112621561762449c7eb5ee2) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* deb: Move sdk to its own dirFredrik Gustafsson2020-07-272-86/+96
| | | | | | | | | | | This is a part of a refactor that will split the package manager code so that it's possible to use other package managers in other layers. (From OE-Core rev: 2b305d5f48be84b6362be850d6e0b2bd7f4691ce) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* ipk: Move sdk to its own dirFredrik Gustafsson2020-07-272-86/+97
| | | | | | | | | | | This is a part of a refactor that will split the package manager code so that it's possible to use other package managers in other layers. (From OE-Core rev: 3f9cec50065eec5a02ffcc8ccc2986f2027b44b5) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rpm: Move sdk to its own dirFredrik Gustafsson2020-07-272-105/+115
| | | | | | | | | | | This is part of a refactor that will split the package manager code so that it's possible to use other package managers in other layers. (From OE-Core rev: 75066e78d92a23516fd9c6d538c4f991d1504839) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* deb: Move rootfs to its own dirFredrik Gustafsson2020-07-272-199/+211
| | | | | | | | | | | This is a part of a refactor that will split the package manager code so that it's possible to use other package managers in other layers. (From OE-Core rev: abadf053371ce863bf21b4a9474eb61761545de1) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* ipk: Move rootfs to its own dirFredrik Gustafsson2020-07-272-267/+388
| | | | | | | | | | | | This is a part of a refactor that will split the package manager code so that it's possible to use other package managers in other layers. RP: Fixes to parse/build (From OE-Core rev: 67fa086589bae484a9beca50b627b007766dcb93) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rpm: Move rootfs to its own dirFredrik Gustafsson2020-07-272-140/+150
| | | | | | | | | | | This is a part of a refactor that will split the package manager code so that it's possible to use other package managers in other layers. (From OE-Core rev: e4f07444276a88f336d5fe5e60688fcfb2f22df7) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* deb: Move deb manifest to its own subdirFredrik Gustafsson2020-07-274-20/+31
| | | | | | | | | | | This is a part of a refactor that will split the package manager code so that it's possible to use other package managers in other layers. (From OE-Core rev: f8ee8bc737a982001b9fd0ad441495a52f12e9b4) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* ipk: Move ipk manifest to its own subdirFredrik Gustafsson2020-07-274-71/+78
| | | | | | | | | | | This is a part of a refactor that will split the package manager code so that it's possible to use other package managers in other layers. (From OE-Core rev: 405cd8560fed2e05fc82919d728c42516793cc0f) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rpm: Move manifest to its own subdirFredrik Gustafsson2020-07-274-52/+61
| | | | | | | | | | | This is a part of a refactor that will split the package manager code so that it's possible to use other package managers in other layers. (From OE-Core rev: 87a1c8ee406f73e53888df3b682e8a5f0f610c2f) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_manager: Move to package_manager/__init__.pyFredrik Gustafsson2020-07-271-0/+0
| | | | | | | | | | | This is part of a refactor that will split the package manager code so that it's possible to use other package managers in other layers. (From OE-Core rev: 66ccc7a228bf73df0a4dd846bf2c8e99eaa79580) Signed-off-by: Fredrik Gustafsson <fredrigu@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* patch.py: Change to more strictly fuzz detectionNaoto Yamaguchi2020-07-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | When applying patch subject is including a " fuzz ", do_patch_qa detect Fuzz. After the patch is applied, the following log message appears. Applying: meson: treat all fuzz cases as unit tests The current Fuzz detection checks for the presence of "fuzz" in this log message. The log in this example will be treated as Fuzz, despite its success. This patch change to more strictly fuzz detection. if log message is including " fuzz " and "Hunk " in log message, it will be treated as Fuzz. (From OE-Core rev: a8605c66ef5afe7c3583366781dfd90fe3526398) Signed-off-by: Naoto Yamaguchi <wata2ki@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/reproducible: Fix error when no git HEADJoshua Watt2020-07-221-8/+17
| | | | | | | | | | | | Fixes an error that occurs when attempting to get the timestamp of the latest commit when there is no HEAD in the git repository. The easiest way to trigger this condition is to use the 'subdir=' option when specifying a 'git://' SRC_URI. (From OE-Core rev: a64caca5b5dbe4a76acd0b5709b2c3e75b245863) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/reproducible: Move to library codeJoshua Watt2020-07-221-0/+95
| | | | | | | | | | Moves most of the python code used for dealing with the source date epoch to library code. (From OE-Core rev: a7ede90955bc0c8bec1cbb3cab498ef2583b2f4e) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lib/oe/recipeutils.py: add AUTHOR; BBCLASSEXTENDTim Orling2020-07-121-1/+1
| | | | | | | | | | | | | | | | | If you try to create a plugin for recipetool that adds the AUTHOR field, it is impossible to put it in the recommended position [1] without adding to the recipe_progression variable. While we are at it, also add BBCLASSEXTEND at the end, as also recommended by [1]. [1] http://www.openembedded.org/wiki/Styleguide (From OE-Core rev: d687c5b7b10b3decdd80d5c2fd61072a87f061f2) Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs: do not let ldconfig to create symlinksDamian Wrobel2020-07-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | Adds -X option to ldconfig to not create symlinks as part of the ldconfig cache creation process. It is much better to keep all needed symlinks as part of of the package then let ldconfig do the job. In the case symlink was created by ldconfig and later on the package got removed the dangling link will remain on the filesystem. Not to mention that such a symlink is orphaned (e.g. rpm -qf <file-path> will not show the package the symlink is part of). It also align the behaviour with libc-musl where the ldconfig is not invoked by default. (From OE-Core rev: ad4ff7c18cc6a5c15a0525149dbe2dbd5ae39129) Signed-off-by: Damian Wrobel <dwrobel@ertelnet.rybnik.pl> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstatesig: Account for all dataCaches being passedJoshua Watt2020-06-151-37/+42
| | | | | | | | | | | | Bitbake now passes all the dataCaches to the taskhash API, so use this to correctly filter mcdepends. [YOCTO #13724] (From OE-Core rev: 749731a420fb905b6af97ce2909f06b2bcd14fe2) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* buildhistory: Add simplistic file move detectionRichard Purdie2020-06-151-3/+62
| | | | | | | | | | | | | | | | | We'd like to use buildhistory more during patch review however its proving hard, particularly where whole subtrees of files move, such as a kernel version upgrade, or where a software module moves include directory. This adds file rename matching which covers our common case of library moves, kernel upgrades and more. A new test case is also added so that someone in the future can change the code and test the logic is still doing the expected things. (From OE-Core rev: 791ce304f5e066759874beac0feef5ee62a1c255) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* glibc: move ld.so.conf back to main packageRasmus Villemoes2020-06-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are cases where one doesn't want ldconfig on target (e.g. for read-only root filesystems, it's rather pointless), yet one still needs ld.so.conf to be present at image build time: When some recipe installs libraries to a non-standard location, and dutifully drops in a file in /etc/ld.so.conf.d/foo.conf, we need the ld.so.conf containing the include /etc/ld.so.conf.d/*.conf stanza to get those other locations picked up. So change the packaging logic so that there's always an ld.so.conf present when the build-time ldconfig runs. The ld.so.conf and ld.so.conf.d/*.conf files don't take up much room (at least not compared to the 700K binary ldconfig), and they might be needed in case ldconfig is installable, so leave them alone. In case of a read-only rootfs, one could add some logic to remove them if one really wants to shave those few dozens of bytes off. While here, fix typos in the bb.note (add spaces) so one can just copy-paste the line from the log-file and redo the command. (From OE-Core rev: a4cdda012f613d8d80203b9f5fc737d8511d16ce) Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>