From 4ed12e16f882008388c007c6e86be3ce038d8751 Mon Sep 17 00:00:00 2001 From: Andrew Geissler Date: Fri, 5 Jun 2020 18:00:41 -0500 Subject: poky: subtree update:a35bf0e5d3..b66b9f7548 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit backport: meson 0.54.2: backport upstream patch for boost libs Adrian Bunk (1): libubootenv: Remove the DEPENDS on mtd-utils Alex Kiernan (2): openssh: Upgrade 8.2p1 -> 8.3p1 systemd: upgrade v245.5 -> v245.6 Alexander Kanavin (68): btrfs-tools: upgrade 5.4.1 -> 5.6.1 build-compare: upgrade to latest revision ccache: upgrade 3.7.7 -> 3.7.9 createrepo-c: upgrade 0.15.7 -> 0.15.10 dpkg: upgrade 1.19.7 -> 1.20.0 librepo: upgrade 1.11.2 -> 1.11.3 python3-numpy: upgrade 1.18.3 -> 1.18.4 python3-cython: upgrade 0.29.16 -> 0.29.19 python3-gitdb: upgrade 4.0.4 -> 4.0.5 python3-mako: upgrade 1.1.1 -> 1.1.3 python3-pygments: upgrade 2.5.2 -> 2.6.1 python3-smmap: upgrade 2.0.5 -> 3.0.4 python3-subunit: upgrade 1.3.0 -> 1.4.0 python3-testtools: upgrade 2.3.0 -> 2.4.0 python3: upgrade 3.8.2 -> 3.8.3 strace: upgrade 5.5 -> 5.6 vala: upgrade 0.46.6 -> 0.48.6 cups: upgrade 2.3.1 -> 2.3.3 gawk: upgrade 5.0.1 -> 5.1.0 libsolv: upgrade 0.7.10 -> 0.7.14 man-pages: upgrade 5.05 -> 5.06 msmtp: upgrade 1.8.8 -> 1.8.10 stress-ng: upgrade 0.11.01 -> 0.11.12 stress-ng: mark as incompatible with musl sudo: upgrade 1.8.31 -> 1.9.0 adwaita-icon-theme: upgrade 3.34.3 -> 3.36.1 gtk+3: upgrade 3.24.14 -> 3.24.20 cogl-1.0: upgrade 1.22.4 -> 1.22.6 mesa: upgrade 20.0.2 -> 20.0.7 mesa: merge the .bb content into .inc piglit: upgrade to latest revision waffle: upgrade 1.6.0 -> 1.6.1 pixman: upgrade 0.38.4 -> 0.40.0 kmod: upgrade 26 -> 27 powertop: upgrade 2.10 -> 2.12 alsa-plugins: upgrade 1.2.1 -> 1.2.2 alsa-tools: upgrade 1.1.7 -> 1.2.2 alsa-utils: split the content into .inc alsa-topology/ucm-conf: update to 1.2.2 x264: upgrade to latest revision puzzles: upgrade to latest revision libcap: upgrade 2.33 -> 2.34 libical: upgrade 3.0.7 -> 3.0.8 libunwind: upgrade 1.3.1 -> 1.4.0 rng-tools: upgrade 6.9 -> 6.10 babeltrace: correct the git SRC_URI libexif: update to 0.6.22 ppp: update 2.4.7 -> 2.4.8 gettext: update 0.20.1 -> 0.20.2 ptest-runner: fix upstream version check automake: 1.16.1 -> 1.16.2 bison: 3.5.4 -> 3.6.2 cmake: update 3.16.5 -> 3.17.3 gnu-config: update to latest revision jquery: update to 3.5.1 json-c: update 0.13.1 - > 0.14 libmodulemd: update 2.9.2 -> 2.9.4 meson: upgrade 0.53.2 -> 0.54.2 shared-mime-info: fix upstream version check mpg123: fix upstream version check ethtool: upgrade 5.4 -> 5.6 libcpre2: update 10.34 -> 10.35 help2man-native: update to 1.47.15 apt: update to 1.8.2.1 asciidoc: bump PV to 8.6.10 pulseaudio: exclude pre-releases from version checks xinetd: switch to a maintained opensuse fork lz4: disable static library Andreas Müller (1): vte: Pack ${libexecdir}/vte-urlencode-cwd to vte-prompt Anuj Mittal (1): linux-yocto: bump genericx86 kernel version to v5.4.40 Bruce Ashfield (5): linux-yocto/5.4: update to v5.4.42 linux-yocto-rt/5.4: update to rt24 linux-yocto/5.4: temporarily revert IKHEADERS in standard kernels linux-yocto: gather reproducibility configs into a fragment linux-yocto/5.4: update to v5.4.43 Christian Eggers (2): librsvg: Extend for nativesdk tiff: Extend for nativesdk Hongxu Jia (1): rpm: fix rpm -Kv xxx.rpm failed if signature header is larger than 64KB Jacob Kroon (1): bitbake: doc: More explanation to tasks that recursively depend on themselves Jan Luebbe (1): classes/buildhistory: capture package config Jens Rehsack (2): initscripts/init-system-helpers: fix mountnfs.sh dependency init-system-helpers: avoid superfluous update-rc.d Joshua Watt (2): layer.conf: Bump OE-Core layer version wic: Add --offset argument for partitions Junling Zheng (3): buildstats.bbclass: Remove useless variables buildstats.bbclass: Do not recalculate build start time security_flags: Remove stack protector flag from LDFLAGS Kai Kang (1): bitbake: bitbake-user-manual-metadata.xml: fix a minor error Khem Raj (4): make-mod-scripts: Fix a rare build race condition go-1.14: Update to 1.14.3 minor release armv8/tunes: Set TUNE_PKGARCH_64 based on ARMPKGARCH ltp: Disable sigwaitinfo tests relying on undefined behavior Konrad Weihmann (8): qemurunner: fix ip fallback detection sysfsutils: rem leftover settings for libsysfs-dev debianutils: whitespace fixes libjpeg-turbo: whitespace fixes cairo: remove trailing whitespace gtk-doc: remove trailing whitespace libxt: fix whitespaces cogl: point to correct HOMEPAGE Lee Chee Yang (4): re2c: fix CVE-2020-11958 bind: fix CVE-2020-8616/7 glib-2.0: 2.64.2 -> 2.64.3 glib-networking: 2.64.2 -> 2.64.3 Marco Felsch (1): util-linux: alternatify rtcwake Mark Hatle (1): sstate.bbclass: When siginfo or sig files are missing, stop fetcher errors Martin Jansa (6): devtool: use -f and don't use --exclude-standard when adding files to workspace meta-selftest: add test of .gitignore in tarball lib/oe/patch: prevent applying patches without any subject lib/oe/patch: GitApplyTree: save 1 echo in commit-msg hook Revert "lib/oe/patch: fix handling of patches with no header" meta-selftest: add test for .patch file with long filename and without subject Mauro Queirós (3): bitbake: git.py: skip smudging if lfs=0 is set bitbake: git.py: LFS bitbake note should not be printed if need_lfs is not set. bitbake: git.py: Use the correct branch to check if the repository has LFS objects. Ming Liu (2): u-boot.inc: fix some inconsistent coding style u-boot: introduce UBOOT_INITIAL_ENV Paul Barker (5): archiver: Fix test case for srpm archiver mode oe-selftest: Allow overriding the build directory used for tests oe-selftest: Support verbose log output oe-selftest: Recursively patch test case paths bitbake: fetch2: Add the ability to list expanded URL data Peter Kjellerstedt (1): cairo: Do not try to remove nonexistent directories Pierre-Jean Texier (1): diffoscope: upgrade 144 -> 146 Ralph Siemsen (1): cve-check: include epoch in product version output Richard Purdie (7): lib/classextend: Drop unneeded comment poky.ent: Update UBUNTU_HOST_PACKAGES_ESSENTIAL to match recent changes maintainers: Update Ross' email address logrotate: Drop obsolete setting/comment oeqa/targetcontrol: Rework exception handling to avoid warnings patchelf: Add patch to address corrupt shared library issue poky.ent: Update XXX_HOST_PACKAGES_ESSENTIAL to include mesa for other distros Robert P. J. Day (1): bitbake.conf: Remove unused DEPLOY_DIR_TOOLS variable Tim Orling (1): bitbake: toaster-requirements.txt: require Django 2.2 Trevor Gamblin (1): qemuarm: check serial consoles vs /proc/consoles Wang Mingyu (13): less: upgrade 551 -> 562 liburcu: upgrade 0.12.0 -> 0.12.1 alsa-lib: upgrade 1.2.1.2 -> 1.2.2 alsa-utils: upgrade 1.2.1 -> 1.2.2 python3-six: upgrade 1.14.0 -> 1.15.0 util-linux: upgrade 2.35.1 -> 2.35.2 xf86-input-libinput: upgrade 0.29.0 -> 0.30.0 ca-certificates: upgrade 20190110 -> 20200601 dbus: upgrade 1.12.16 -> 1.12.18 libyaml: upgrade 0.2.4 -> 0.2.5 sqlite: upgrade 3.31.1 -> 3.32.1 valgrind: upgrade 3.15.0 -> 3.16.0 dbus-test: upgrade 1.12.16 -> 1.12.18 akuster (2): poky.ent: Update OPENSUSE_HOST_PACKAGES_ESSENTIAL to include mesa-dri-devel yocto-docs: Add SPDX headers in scripts and Makefile hongxu (1): core-image-minimal-initramfs: keep restriction with initramfs-module-install zangrc (3): python3-pycairo:upgrade 1.19.0 -> 1.19.1 python3-pygobject:upgrade 3.34.0 -> 3.36.1 python3-setuptools:upgrade 45.2.0 -> 47.1.1 zhengruoqin (2): gdb: upgrade 9.1 -> 9.2 libyaml: upgrade 0.2.2 -> 0.2.4 Signed-off-by: Andrew Geissler Signed-off-by: Patrick Williams Change-Id: I60e616be0c30904f8cfc947089ed2e4f5e84bc60 --- poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb (limited to 'poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb') diff --git a/poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb b/poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb new file mode 100644 index 000000000..b4d7e80af --- /dev/null +++ b/poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb @@ -0,0 +1,31 @@ +SUMMARY = "jQuery is a fast, small, and feature-rich JavaScript library" +HOMEPAGE = "https://jquery.com/" +LICENSE = "MIT" +SECTION = "devel" +LIC_FILES_CHKSUM = "file://${WORKDIR}/${BP}.js;beginline=8;endline=10;md5=ebd7bc5d23ab165188e526a0c65d24bb" + +SRC_URI = "\ + https://code.jquery.com/${BP}.js;name=js \ + https://code.jquery.com/${BP}.min.js;name=min \ + https://code.jquery.com/${BP}.min.map;name=map \ + " + +SRC_URI[js.sha256sum] = "416a3b2c3bf16d64f6b5b6d0f7b079df2267614dd6847fc2f3271b4409233c37" +SRC_URI[min.sha256sum] = "f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3d" +SRC_URI[map.sha256sum] = "511d6f6d3e7acec78cd2505f04282b6e01329b4c24931f39d91739d0d1ddeef8" + +UPSTREAM_CHECK_REGEX = "jquery-(?P\d+(\.\d+)+)\.js" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/javascript/${BPN}/ + install -m 644 ${WORKDIR}/${BP}.js ${D}${datadir}/javascript/${BPN}/${BPN}.js + install -m 644 ${WORKDIR}/${BP}.min.js ${D}${datadir}/javascript/${BPN}/${BPN}.min.js + install -m 644 ${WORKDIR}/${BP}.min.map ${D}${datadir}/javascript/${BPN}/${BPN}.min.map +} + +PACKAGES = "${PN}" +FILES_${PN} = "${datadir}" + +BBCLASSEXTEND += "native nativesdk" -- cgit v1.2.3 From 475cb72d2bb2f40ca5e9f4edba6d49d6c7afbd3e Mon Sep 17 00:00:00 2001 From: Andrew Geissler Date: Fri, 10 Jul 2020 16:00:51 -0500 Subject: poky: subtree update:5951cbcabe..968fcf4989 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Alejandro Hernandez (3): baremetal-helloworld: Use do_image_complete instead of do_deploy baremetal-image.bbclass: Create a class for baremetal applications or an RTOS baremetal-helloworld: Use baremetal-image class to deploy the application Alejandro del Castillo (2): opkg-utils: upgrade to 0.4.3 opkg: upgrade to version 0.4.3 Alexander Kanavin (30): dnf: upgrade 4.2.21 -> 4.2.23 meson: upgrade 0.54.2 -> 0.54.3 libdnf: update 0.47.0 -> 0.48.0 ffmpeg: disable altivec on ppc by default dropbear: update 2019.78 -> 2020.79 elfutils: upgrade 0.179 -> 0.180 gnu-config: update to latest revision libgpg-error: update 1.37 -> 1.38 perl: update 5.30.2 -> 5.32.0 gst-examples: upstream releases are even numbered bison: upgrade 3.6.3 -> 3.6.4 python3-cython: upgrade 0.29.19 -> 0.29.20 stress-ng: upgrade 0.11.12 -> 0.11.14 piglit: upgrade to latest revision linux-firmware: upgrade 20200519 -> 20200619 systemtap: upgrade 4.2 -> 4.3 alsa-lib: upgrade 1.2.2 -> 1.2.3.1 alsa-topology-conf: upgrade 1.2.2 -> 1.2.3 alsa-ucm-conf: upgrade 1.2.2 -> 1.2.3 alsa-utils: upgrade 1.2.2 -> 1.2.3 puzzles: upgrade to latest revision diffoscope: upgrade 147 -> 148 libcheck: upgrade 0.14.0 -> 0.15.0 rsync: update 3.1.3 -> 3.2.1 sudo: upgrade 1.9.0 -> 1.9.1 python3-numpy: update 1.18.5 -> 1.19.0 mesa: update 20.0.7 -> 20.1.2 go-binary-native: fix upstream version check Revert "python3-setuptools: patch entrypoints for faster initialization" python3-setuptools: upgrade 47.1.1 -> 47.3.1 Alistair Francis (1): opensbi: Update to OpenSBI v0.8 release Andreas Müller (3): nfs-utils: upgrade 2.4.3 -> 2.5.1 ccache: merge ccache.inc into recipe ccache: upgrade 3.7.9 -> 3.7.10 Andrej Valek (2): busybox: 1.31.1 -> 1.32.0 dropbear: update to 2020.80 Andrey Zhizhikin (1): kernel/yocto: fix search for defconfig from src_uri Armin Kuster (1): wpa-supplicant: Security fix CVE-2020-12695 Bjarne Michelsen (1): devtool: default to empty string, if LIC_FILES_CHKSUM is not available Bruce Ashfield (10): kernel/yocto: ensure that defconfigs are processed first linux-yocto/5.4: update to v5.4.45 linux-yocto-rt/5.4: update to rt25 linux-yocto/5.4: update to v5.4.46 linux-yocto/5.4: update to v5.4.47 linux-yocto/5.4: update to v5.4.49 and -rt28 yocto-bsps: bump reference boards to v5.4.49 linux-yocto/5.4: update to v5.4.50 linux-yocto-dev: bump to 5.8-rc lttng-modules: bump devupstream to v2.12.1+ Changqing Li (5): xinit: add rxvt-unicode in RDEPENDS modutils-initscripts: update postinst initscripts: update postinst gtk-icon-cache.bbclass: add runtime dependency logrotate.py: fix testimage occasionally failure Chen Qi (2): oescripts.py: fix typo oescripts: ignore whitespaces when comparing lines Chris Laplante (2): bitbake: contrib/vim: synchronize from kergoth/vim-bitbake rev 4225ee8b4818d7e4696520567216a3a031c26f7d bitbake: ui/teamcity: don't use removed logging classes Christian Eggers (1): libnl: Extend for native/nativesdk Damian Wrobel (1): rootfs: do not let ldconfig to create symlinks Daniel Klauer (2): uboot-sign: Refactor do_deploy prefunc to do_deploy_prepend deploy.bbclass: Clean DEPLOYDIR before do_deploy David Khouya (2): bitbake: lib/ui/taskexp: Validate gi import bitbake: lib/ui/taskexp: Fix missing Gtk import Hannu Lounento (1): openssl: move ${libdir}/[...]/openssl.cnf to ${PN}-conf Hongxu Jia (1): iso-codes: switch upstream branch master -> main Jason Wessel (1): runqemu: If using a vmtype image do not add the -no-reboot flag Joe Slater (1): jquery: use ${S} Joshua Watt (4): bitbake: hashserv: Chunkify large messages bitbake: siggen: Fix error when hash equivalence has an exception classes/archiver: run do_unpack_and_patch after do_preconfigure classes/archive: do_configure should not depend on do_ar_patched Khem Raj (2): musl: Update to tip of master rxvt-unicode: Disable wtmp on musl Konrad Weihmann (2): systemd: remove kernel-install from base pkg bitbake.conf: fix whitespace issues Lee Chee Yang (3): json-c: fix CVE-2020-12762 qemu: fix CVE-2020-10761 oeqa/core/loader: refine regex to find module Lili Li (1): kernel.bbclass: Fix Module.symvers support Matt Madison (1): kernel.bbclass: add gzip-native to do_deploy dependencies Max Krummenacher (2): cogl-1.0: : don't require eglmesaext.h cogl-1.0: cope with missing x11 headers Mingli Yu (2): python3-libarchive-c: add the missing rdepends python3: add ldconfig rdepends for python3-ctypes Nicolas Dechesne (1): checklayer: parse LAYERDEPENDS with bb.utils.explode_dep_versions2() Pierre-Jean Texier (3): libubootenv: bump to revision 86bd30a curl: upgrade 7.71.0 -> 7.71.1 diffoscope: upgrade 148 -> 150 Rahul Kumar (1): bzip2: Add test suite for bzip2 Rasmus Villemoes (1): coreutils: don't split stdbuf to own package with single-binary Richard Purdie (13): pseudo: Switch to oe-core branch in git repo pseudo: merge in fixes for setfacl issue oeqa/selftest: Clean up separate builddir in success case when non-threaded populate_sdk_ext: Fix to use python3, not python bitbake: taskdata: Improve handling of regex in ASSUME_PROVIDED bitbake: runqueue: Avoid unpickle errors in rare cases bitbake: msg: Avoid issues where paths have relative components oeqa/selftest: recipetool/devtool: Avoid load_plugin test race oeqa/targetcontrol: Attempt to fix log closure warning message rootfs-postcommands: Improve/fix rootfs_check_host_user_contaminated spdx: Remove the class as its obsolete adwaita-icon-theme: Add missing license files to LIC_FILES_CHKSUM bitbake: server/process: Increase timeout for commands Ross Burton (3): ovmf: build natively everywhere common-licenses: fix filename of BSD-2-Clause-Patent gtk+3: fix reproducible build failure Timon Ulrich (2): kernel.bbclass: add lz4 dependency and fix the call to lz4 kernel.bbclass: make dependency on lzop-native conditional Vacek, Patrick (1): oeqa/core/loader: fix regex to include numbers Wang Mingyu (1): gtk+3: upgrade 3.24.20 -> 3.24.21 Yanfei Xu (1): classes/kernel: Use a copy of image for kernel*.rpm if fs doesn't support symlinks akuster (5): libuv: update to the last version in meta-oe bitbake: test/fetch: change to better svn source overview-manual: add SPDX license header mega-manual: Add SPDX license headers ref-manual: Add SPDX license headers hongxu (2): qemu: switches from libcap to libcap-ng for PACAKGECONFIG virtfs cpio: add nativesdk support zangrc (1): libjpeg-turbo:upgrade 2.0.4 -> 2.0.5 Signed-off-by: Andrew Geissler Change-Id: I41e066e5957aa74c9a24e86a6c214bcf96e9c46b --- poky/bitbake/contrib/vim/LICENSE.txt | 18 + poky/bitbake/contrib/vim/ftdetect/bitbake.vim | 4 +- poky/bitbake/contrib/vim/ftplugin/bitbake.vim | 15 +- poky/bitbake/contrib/vim/plugin/newbb.vim | 14 +- poky/bitbake/contrib/vim/plugin/newbbappend.vim | 46 + poky/bitbake/contrib/vim/syntax/bitbake.vim | 16 +- poky/bitbake/lib/bb/msg.py | 2 +- poky/bitbake/lib/bb/runqueue.py | 9 +- poky/bitbake/lib/bb/server/process.py | 4 +- poky/bitbake/lib/bb/siggen.py | 1 + poky/bitbake/lib/bb/taskdata.py | 9 +- poky/bitbake/lib/bb/tests/fetch.py | 2 +- poky/bitbake/lib/bb/ui/taskexp.py | 13 +- poky/bitbake/lib/bb/ui/teamcity.py | 2 - poky/bitbake/lib/hashserv/__init__.py | 22 + poky/bitbake/lib/hashserv/client.py | 43 +- poky/bitbake/lib/hashserv/server.py | 105 +- poky/bitbake/lib/hashserv/tests.py | 23 + .../mega-manual/mega-manual-customization.xsl | 1 + poky/documentation/mega-manual/mega-manual.xml | 2 +- poky/documentation/mega-manual/mega-style.css | 2 + .../overview-manual/overview-manual-concepts.xml | 1 + .../overview-manual-customization.xsl | 2 + .../overview-manual-development-environment.xml | 1 + .../overview-manual/overview-manual-intro.xml | 1 + .../overview-manual/overview-manual-style.css | 2 + .../overview-manual/overview-manual-yp-intro.xml | 1 + .../overview-manual/overview-manual.xml | 1 + poky/documentation/ref-manual/faq.xml | 1 + poky/documentation/ref-manual/migration.xml | 1 + poky/documentation/ref-manual/ref-classes.xml | 1 + .../ref-manual/ref-devtool-reference.xml | 1 + poky/documentation/ref-manual/ref-features.xml | 1 + poky/documentation/ref-manual/ref-images.xml | 1 + poky/documentation/ref-manual/ref-kickstart.xml | 1 + .../ref-manual/ref-manual-customization.xsl | 2 + poky/documentation/ref-manual/ref-qa-checks.xml | 1 + .../ref-manual/ref-release-process.xml | 1 + poky/documentation/ref-manual/ref-structure.xml | 1 + poky/documentation/ref-manual/ref-style.css | 3 + .../ref-manual/ref-system-requirements.xml | 1 + poky/documentation/ref-manual/ref-tasks.xml | 1 + poky/documentation/ref-manual/ref-terms.xml | 1 + poky/documentation/ref-manual/ref-variables.xml | 1 + poky/documentation/ref-manual/ref-varlocality.xml | 1 + poky/documentation/ref-manual/resources.xml | 1 + .../baremetal-examples/baremetal-helloworld_git.bb | 94 +- .../recipes-kernel/linux/linux-yocto_5.4.bbappend | 16 +- poky/meta/classes/archiver.bbclass | 4 +- poky/meta/classes/baremetal-image.bbclass | 99 + poky/meta/classes/deploy.bbclass | 1 + poky/meta/classes/gtk-icon-cache.bbclass | 19 +- poky/meta/classes/kernel-yocto.bbclass | 34 +- poky/meta/classes/kernel.bbclass | 34 +- poky/meta/classes/populate_sdk_ext.bbclass | 2 +- poky/meta/classes/rootfs-postcommands.bbclass | 12 +- poky/meta/classes/spdx.bbclass | 360 --- poky/meta/classes/uboot-sign.bbclass | 11 +- poky/meta/conf/bitbake.conf | 4 +- poky/meta/conf/machine/include/riscv/qemuriscv.inc | 2 +- .../meta/files/common-licenses/BSD-2-Clause-Patent | 47 + .../files/common-licenses/BSD-2-Clause-Patent.txt | 47 - poky/meta/lib/oe/rootfs.py | 4 +- poky/meta/lib/oeqa/core/loader.py | 2 +- poky/meta/lib/oeqa/core/utils/concurrencytest.py | 23 +- poky/meta/lib/oeqa/runtime/cases/logrotate.py | 4 - poky/meta/lib/oeqa/selftest/cases/devtool.py | 6 +- poky/meta/lib/oeqa/selftest/cases/oescripts.py | 4 +- poky/meta/lib/oeqa/selftest/cases/recipetool.py | 6 +- poky/meta/lib/oeqa/selftest/context.py | 36 +- poky/meta/lib/oeqa/targetcontrol.py | 1 + poky/meta/recipes-bsp/opensbi/opensbi_0.6.bb | 48 - poky/meta/recipes-bsp/opensbi/opensbi_0.8.bb | 47 + poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb | 2 +- .../recipes-connectivity/libuv/libuv_1.34.2.bb | 19 - .../recipes-connectivity/libuv/libuv_1.38.0.bb | 19 + ...001-cacheio-use-intmax_t-for-formatted-IO.patch | 38 - .../nfs-utils/nfs-utils_2.4.3.bb | 147 -- .../nfs-utils/nfs-utils_2.5.1.bb | 144 ++ .../recipes-connectivity/openssl/openssl_1.1.1g.bb | 4 +- ...-not-allow-event-subscriptions-with-URLs-.patch | 151 ++ ...x-event-message-generation-using-a-long-U.patch | 62 + ...ndle-HTTP-initiation-failures-for-events-.patch | 50 + .../wpa-supplicant/wpa-supplicant_2.9.bb | 5 +- .../recipes-core/busybox/busybox-inittab_1.31.0.bb | 35 - .../recipes-core/busybox/busybox-inittab_1.32.0.bb | 35 + .../busybox/0001-Remove-stime-function-calls.patch | 85 - ...all-wrappers-around-clock_gettime-closes-.patch | 120 - ...-date-Use-64-prefix-syscall-if-we-have-to.patch | 53 - ...-time-Use-64-prefix-syscall-if-we-have-to.patch | 43 - ...runsv-Use-64-prefix-syscall-if-we-have-to.patch | 46 - .../busybox/busybox-udhcpc-no_deconfig.patch | 26 +- poky/meta/recipes-core/busybox/busybox_1.31.1.bb | 55 - poky/meta/recipes-core/busybox/busybox_1.32.0.bb | 50 + poky/meta/recipes-core/coreutils/coreutils_8.32.bb | 15 +- poky/meta/recipes-core/dropbear/dropbear.inc | 2 +- .../dropbear/dropbear-disable-weak-ciphers.patch | 39 +- .../meta/recipes-core/dropbear/dropbear_2019.78.bb | 4 - .../meta/recipes-core/dropbear/dropbear_2020.80.bb | 3 + .../recipes-core/initscripts/initscripts_1.0.bb | 2 +- poky/meta/recipes-core/meta/signing-keys.bb | 2 - ...dynamic-linker-a-relative-symlink-to-libc.patch | 11 +- ...slibdir-and-libdir-as-default-pathes-to-l.patch | 15 +- poky/meta/recipes-core/musl/musl_git.bb | 2 +- poky/meta/recipes-core/ovmf/ovmf_git.bb | 3 +- poky/meta/recipes-core/systemd/systemd_245.6.bb | 1 - poky/meta/recipes-devtools/bison/bison_3.6.3.bb | 44 - poky/meta/recipes-devtools/bison/bison_3.6.4.bb | 44 + poky/meta/recipes-devtools/ccache/ccache.inc | 28 - poky/meta/recipes-devtools/ccache/ccache_3.7.10.bb | 32 + poky/meta/recipes-devtools/ccache/ccache_3.7.9.bb | 7 - poky/meta/recipes-devtools/dnf/dnf_4.2.21.bb | 90 - poky/meta/recipes-devtools/dnf/dnf_4.2.23.bb | 90 + .../recipes-devtools/elfutils/elfutils_0.179.bb | 157 -- .../recipes-devtools/elfutils/elfutils_0.180.bb | 144 ++ .../elfutils/files/0001-musl-obstack-fts.patch | 11 +- ...ile.am-compile-test_nlist-with-standard-C.patch | 27 + .../elfutils/files/0002-musl-libs.patch | 17 +- .../elfutils/files/0003-musl-utils.patch | 7 +- .../elfutils/files/0004-Fix-error-on-musl.patch | 7 +- .../0015-config-eu.am-do-not-use-Werror.patch | 36 + ...ferences-between-mips-machine-identifiers.patch | 34 - ...1-fix-compile-failure-with-debian-patches.patch | 48 - ...-support-for-mips64-abis-in-mips_retval.c.patch | 171 -- .../0003-Add-mips-n64-relocation-format-hack.patch | 229 -- .../elfutils/files/debian/arm_backend.diff | 624 ----- .../elfutils/files/debian/disable_werror.patch | 20 - .../elfutils/files/debian/hppa_backend.diff | 828 ------- .../elfutils/files/debian/hurd_path.patch | 17 - .../elfutils/files/debian/ignore_strmerge.diff | 14 - .../elfutils/files/debian/kfreebsd_path.patch | 20 - .../elfutils/files/debian/mips_backend.diff | 724 ------ .../elfutils/files/debian/mips_cfi.patch | 129 - .../elfutils/files/debian/mips_readelf_w.patch | 31 - .../files/debian/testsuite-ignore-elflint.diff | 52 - .../recipes-devtools/gnu-config/gnu-config_git.bb | 4 +- .../recipes-devtools/go/go-binary-native_1.14.4.bb | 3 + poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb | 16 +- .../json-c/json-c/CVE-2020-12762.patch | 160 ++ poky/meta/recipes-devtools/json-c/json-c_0.14.bb | 5 +- .../libdnf/libdnf/0001-Add-WITH_TESTS-option.patch | 10 +- ...quotes-around-string-literals-used-in-SQL.patch | 36 - poky/meta/recipes-devtools/libdnf/libdnf_0.47.0.bb | 34 - poky/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb | 33 + poky/meta/recipes-devtools/meson/meson.inc | 3 +- .../0001-Make-CPU-family-warnings-fatal.patch | 2 +- ...ways-sort-shared-before-static-fixes-7171.patch | 35 - ...02-Support-building-allarch-recipes-again.patch | 2 +- poky/meta/recipes-devtools/meson/meson_0.54.2.bb | 4 - poky/meta/recipes-devtools/meson/meson_0.54.3.bb | 4 + .../meson/nativesdk-meson_0.54.2.bb | 65 - .../meson/nativesdk-meson_0.54.3.bb | 65 + .../opkg-utils/fix-reproducibility.patch | 32 - .../opkg-utils/opkg-utils_0.4.2.bb | 66 - .../opkg-utils/opkg-utils_0.4.3.bb | 65 + poky/meta/recipes-devtools/opkg/opkg_0.4.2.bb | 74 - poky/meta/recipes-devtools/opkg/opkg_0.4.3.bb | 74 + ...CH-perl-134117-Close-DATA-in-loc_tools.pl.patch | 30 - ...environment-variable-to-suppress-comments.patch | 30 - .../recipes-devtools/perl/files/perl-rdepends.txt | 2493 +------------------- poky/meta/recipes-devtools/perl/perl_5.30.2.bb | 387 --- poky/meta/recipes-devtools/perl/perl_5.32.0.bb | 383 +++ .../pseudo/files/0001-Add-statx.patch | 106 - .../0001-maketables-wrappers-use-Python-3.patch | 34 - ...-DB-fixup-remove-files-that-do-not-exist-.patch | 49 - .../files/0001-pseudo_ipc.h-Fix-enum-typedef.patch | 31 - .../0001-realpath.c-Remove-trailing-slashes.patch | 57 - ...0006-xattr-adjust-for-attr-2.4.48-release.patch | 48 - .../pseudo/files/moreretries.patch | 19 - .../recipes-devtools/pseudo/files/seccomp.patch | 137 -- .../pseudo/files/toomanyfiles.patch | 71 - .../pseudo/files/xattr_version.patch | 54 - poky/meta/recipes-devtools/pseudo/pseudo_git.bb | 14 +- ...h-usr-and-so-on-for-libraries-by-default-.patch | 11 +- ...01-convert-shebang-from-python-to-python3.patch | 555 ----- .../recipes-devtools/python-numpy/python-numpy.inc | 7 +- .../python-numpy/python3-numpy_1.18.5.bb | 3 - .../python-numpy/python3-numpy_1.19.0.bb | 3 + ...ionally-do-not-fetch-code-by-easy_install.patch | 6 +- .../meta/recipes-devtools/python/python-cython.inc | 2 +- .../recipes-devtools/python/python-setuptools.inc | 7 +- .../python/python3-cython_0.29.19.bb | 18 - .../python/python3-cython_0.29.20.bb | 18 + .../python/python3-libarchive-c_2.9.bb | 6 +- ...ficient-usr-bin-wrappers-signoff-included.patch | 62 - .../python/python3-setuptools_47.1.1.bb | 6 - .../python/python3-setuptools_47.3.1.bb | 6 + poky/meta/recipes-devtools/python/python3_3.8.3.bb | 1 + poky/meta/recipes-devtools/qemu/qemu.inc | 3 +- .../qemu/qemu/CVE-2020-10761.patch | 151 ++ .../rsync/files/CVE-2016-9840.patch | 75 - .../rsync/files/CVE-2016-9841.patch | 228 -- .../rsync/files/CVE-2016-9842.patch | 33 - .../rsync/files/CVE-2016-9843.patch | 53 - .../rsync/files/makefile-no-rebuild.patch | 25 +- poky/meta/recipes-devtools/rsync/rsync_3.1.3.bb | 57 - poky/meta/recipes-devtools/rsync/rsync_3.2.1.bb | 58 + poky/meta/recipes-extended/bzip2/bzip2/Makefile.am | 1 + poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb | 31 +- poky/meta/recipes-extended/cpio/cpio_2.13.bb | 6 +- .../stress-ng/stress-ng/no_daddr_t.patch | 16 +- .../stress-ng/stress-ng_0.11.12.bb | 26 - .../stress-ng/stress-ng_0.11.14.bb | 26 + ...1-Include-sys-types.h-for-id_t-definition.patch | 34 - poky/meta/recipes-extended/sudo/sudo_1.9.0.bb | 48 - poky/meta/recipes-extended/sudo/sudo_1.9.1.bb | 46 + .../gnome/adwaita-icon-theme_3.36.1.bb | 4 +- poky/meta/recipes-gnome/gtk+/gtk+3.inc | 8 + poky/meta/recipes-gnome/gtk+/gtk+3_3.24.20.bb | 19 - poky/meta/recipes-gnome/gtk+/gtk+3_3.24.21.bb | 19 + ...1-configure.ac-don-t-require-eglmesaext.h.patch | 92 + poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb | 1 + .../recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb | 59 - .../recipes-graphics/jpeg/libjpeg-turbo_2.0.5.bb | 59 + .../0002-meson.build-make-TLS-ELF-optional.patch | 12 +- ...max_t-for-formatted-output-of-timespec-me.patch | 16 +- poky/meta/recipes-graphics/mesa/mesa-gl_20.0.7.bb | 15 - poky/meta/recipes-graphics/mesa/mesa-gl_20.1.2.bb | 15 + poky/meta/recipes-graphics/mesa/mesa.inc | 3 +- poky/meta/recipes-graphics/mesa/mesa_20.0.7.bb | 1 - poky/meta/recipes-graphics/mesa/mesa_20.1.2.bb | 2 + poky/meta/recipes-graphics/piglit/piglit_git.bb | 2 +- poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb | 3 + .../linux-firmware/linux-firmware_20200519.bb | 946 -------- .../linux-firmware/linux-firmware_20200619.bb | 946 ++++++++ poky/meta/recipes-kernel/linux/linux-yocto-dev.bb | 2 +- .../recipes-kernel/linux/linux-yocto-rt_5.4.bb | 6 +- .../recipes-kernel/linux/linux-yocto-tiny_5.4.bb | 8 +- poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb | 22 +- .../recipes-kernel/lttng/lttng-modules_2.12.1.bb | 6 +- .../modutils-initscripts/modutils-initscripts.bb | 2 +- .../recipes-kernel/systemtap/systemtap_git.inc | 4 +- .../meta/recipes-multimedia/alsa/alsa-lib_1.2.2.bb | 43 - .../recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb | 42 + .../alsa/alsa-topology-conf_1.2.2.bb | 19 - .../alsa/alsa-topology-conf_1.2.3.bb | 19 + .../recipes-multimedia/alsa/alsa-ucm-conf_1.2.2.bb | 20 - .../recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb | 20 + .../alsa/alsa-utils-scripts_1.2.2.bb | 25 - .../alsa/alsa-utils-scripts_1.2.3.bb | 25 + poky/meta/recipes-multimedia/alsa/alsa-utils.inc | 3 +- .../recipes-multimedia/alsa/alsa-utils_1.2.2.bb | 1 - .../recipes-multimedia/alsa/alsa-utils_1.2.3.bb | 2 + poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb | 1 + .../gstreamer/gst-examples_1.16.0.bb | 1 + poky/meta/recipes-sato/puzzles/puzzles_git.bb | 2 +- .../recipes-sato/rxvt-unicode/rxvt-unicode.inc | 2 + poky/meta/recipes-support/curl/curl_7.71.0.bb | 83 - poky/meta/recipes-support/curl/curl_7.71.1.bb | 83 + .../recipes-support/diffoscope/diffoscope_147.bb | 17 - .../recipes-support/diffoscope/diffoscope_150.bb | 17 + .../recipes-support/iso-codes/iso-codes_4.5.0.bb | 2 +- .../recipes-support/libcheck/libcheck_0.14.0.bb | 29 - .../recipes-support/libcheck/libcheck_0.15.0.bb | 28 + ...cross-compiling-into-a-separate-build-dir.patch | 43 + .../0005-src-gen-lock-obj.sh-add-a-file.patch | 134 ++ .../libgpg-error/libgpg-error_1.37.bb | 72 - .../libgpg-error/libgpg-error_1.38.bb | 42 + poky/meta/recipes-support/libnl/libnl_3.5.0.bb | 2 + poky/scripts/lib/checklayer/__init__.py | 7 +- poky/scripts/lib/devtool/upgrade.py | 4 +- poky/scripts/runqemu | 4 +- 262 files changed, 4520 insertions(+), 11227 deletions(-) create mode 100644 poky/bitbake/contrib/vim/LICENSE.txt mode change 100755 => 100644 poky/bitbake/contrib/vim/plugin/newbb.vim create mode 100644 poky/bitbake/contrib/vim/plugin/newbbappend.vim create mode 100644 poky/meta/classes/baremetal-image.bbclass delete mode 100644 poky/meta/classes/spdx.bbclass create mode 100644 poky/meta/files/common-licenses/BSD-2-Clause-Patent delete mode 100644 poky/meta/files/common-licenses/BSD-2-Clause-Patent.txt delete mode 100644 poky/meta/recipes-bsp/opensbi/opensbi_0.6.bb create mode 100644 poky/meta/recipes-bsp/opensbi/opensbi_0.8.bb delete mode 100644 poky/meta/recipes-connectivity/libuv/libuv_1.34.2.bb create mode 100644 poky/meta/recipes-connectivity/libuv/libuv_1.38.0.bb delete mode 100644 poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch delete mode 100644 poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.3.bb create mode 100644 poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb create mode 100644 poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch create mode 100644 poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch create mode 100644 poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch delete mode 100644 poky/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb create mode 100644 poky/meta/recipes-core/busybox/busybox-inittab_1.32.0.bb delete mode 100644 poky/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch delete mode 100644 poky/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch delete mode 100644 poky/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch delete mode 100644 poky/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch delete mode 100644 poky/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch delete mode 100644 poky/meta/recipes-core/busybox/busybox_1.31.1.bb create mode 100644 poky/meta/recipes-core/busybox/busybox_1.32.0.bb delete mode 100644 poky/meta/recipes-core/dropbear/dropbear_2019.78.bb create mode 100644 poky/meta/recipes-core/dropbear/dropbear_2020.80.bb delete mode 100644 poky/meta/recipes-devtools/bison/bison_3.6.3.bb create mode 100644 poky/meta/recipes-devtools/bison/bison_3.6.4.bb delete mode 100644 poky/meta/recipes-devtools/ccache/ccache.inc create mode 100644 poky/meta/recipes-devtools/ccache/ccache_3.7.10.bb delete mode 100644 poky/meta/recipes-devtools/ccache/ccache_3.7.9.bb delete mode 100644 poky/meta/recipes-devtools/dnf/dnf_4.2.21.bb create mode 100644 poky/meta/recipes-devtools/dnf/dnf_4.2.23.bb delete mode 100644 poky/meta/recipes-devtools/elfutils/elfutils_0.179.bb create mode 100644 poky/meta/recipes-devtools/elfutils/elfutils_0.180.bb create mode 100644 poky/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch create mode 100644 poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch delete mode 100644 poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff create mode 100644 poky/meta/recipes-devtools/json-c/json-c/CVE-2020-12762.patch delete mode 100644 poky/meta/recipes-devtools/libdnf/libdnf/0001-Use-single-quotes-around-string-literals-used-in-SQL.patch delete mode 100644 poky/meta/recipes-devtools/libdnf/libdnf_0.47.0.bb create mode 100644 poky/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb delete mode 100644 poky/meta/recipes-devtools/meson/meson/0001-boost-Always-sort-shared-before-static-fixes-7171.patch delete mode 100644 poky/meta/recipes-devtools/meson/meson_0.54.2.bb create mode 100644 poky/meta/recipes-devtools/meson/meson_0.54.3.bb delete mode 100644 poky/meta/recipes-devtools/meson/nativesdk-meson_0.54.2.bb create mode 100644 poky/meta/recipes-devtools/meson/nativesdk-meson_0.54.3.bb delete mode 100644 poky/meta/recipes-devtools/opkg-utils/opkg-utils/fix-reproducibility.patch delete mode 100644 poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb create mode 100644 poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.3.bb delete mode 100644 poky/meta/recipes-devtools/opkg/opkg_0.4.2.bb create mode 100644 poky/meta/recipes-devtools/opkg/opkg_0.4.3.bb delete mode 100644 poky/meta/recipes-devtools/perl/files/0001-PATCH-perl-134117-Close-DATA-in-loc_tools.pl.patch delete mode 100644 poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch delete mode 100644 poky/meta/recipes-devtools/perl/perl_5.30.2.bb create mode 100644 poky/meta/recipes-devtools/perl/perl_5.32.0.bb delete mode 100644 poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch delete mode 100644 poky/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch delete mode 100644 poky/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch delete mode 100644 poky/meta/recipes-devtools/pseudo/files/0001-pseudo_ipc.h-Fix-enum-typedef.patch delete mode 100644 poky/meta/recipes-devtools/pseudo/files/0001-realpath.c-Remove-trailing-slashes.patch delete mode 100644 poky/meta/recipes-devtools/pseudo/files/0006-xattr-adjust-for-attr-2.4.48-release.patch delete mode 100644 poky/meta/recipes-devtools/pseudo/files/moreretries.patch delete mode 100644 poky/meta/recipes-devtools/pseudo/files/seccomp.patch delete mode 100644 poky/meta/recipes-devtools/pseudo/files/toomanyfiles.patch delete mode 100644 poky/meta/recipes-devtools/pseudo/files/xattr_version.patch delete mode 100644 poky/meta/recipes-devtools/python-numpy/files/0001-convert-shebang-from-python-to-python3.patch delete mode 100644 poky/meta/recipes-devtools/python-numpy/python3-numpy_1.18.5.bb create mode 100644 poky/meta/recipes-devtools/python-numpy/python3-numpy_1.19.0.bb delete mode 100644 poky/meta/recipes-devtools/python/python3-cython_0.29.19.bb create mode 100644 poky/meta/recipes-devtools/python/python3-cython_0.29.20.bb delete mode 100644 poky/meta/recipes-devtools/python/python3-setuptools/0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch delete mode 100644 poky/meta/recipes-devtools/python/python3-setuptools_47.1.1.bb create mode 100644 poky/meta/recipes-devtools/python/python3-setuptools_47.3.1.bb create mode 100644 poky/meta/recipes-devtools/qemu/qemu/CVE-2020-10761.patch delete mode 100644 poky/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch delete mode 100644 poky/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch delete mode 100644 poky/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch delete mode 100644 poky/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch delete mode 100644 poky/meta/recipes-devtools/rsync/rsync_3.1.3.bb create mode 100644 poky/meta/recipes-devtools/rsync/rsync_3.2.1.bb delete mode 100644 poky/meta/recipes-extended/stress-ng/stress-ng_0.11.12.bb create mode 100644 poky/meta/recipes-extended/stress-ng/stress-ng_0.11.14.bb delete mode 100644 poky/meta/recipes-extended/sudo/sudo/0001-Include-sys-types.h-for-id_t-definition.patch delete mode 100644 poky/meta/recipes-extended/sudo/sudo_1.9.0.bb create mode 100644 poky/meta/recipes-extended/sudo/sudo_1.9.1.bb delete mode 100644 poky/meta/recipes-gnome/gtk+/gtk+3_3.24.20.bb create mode 100644 poky/meta/recipes-gnome/gtk+/gtk+3_3.24.21.bb create mode 100644 poky/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch delete mode 100644 poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb create mode 100644 poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.5.bb delete mode 100644 poky/meta/recipes-graphics/mesa/mesa-gl_20.0.7.bb create mode 100644 poky/meta/recipes-graphics/mesa/mesa-gl_20.1.2.bb delete mode 100644 poky/meta/recipes-graphics/mesa/mesa_20.0.7.bb create mode 100644 poky/meta/recipes-graphics/mesa/mesa_20.1.2.bb delete mode 100644 poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200519.bb create mode 100644 poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.2.bb create mode 100644 poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.2.bb create mode 100644 poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.2.bb create mode 100644 poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.2.bb create mode 100644 poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.3.bb delete mode 100644 poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.2.bb create mode 100644 poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.3.bb delete mode 100644 poky/meta/recipes-support/curl/curl_7.71.0.bb create mode 100644 poky/meta/recipes-support/curl/curl_7.71.1.bb delete mode 100644 poky/meta/recipes-support/diffoscope/diffoscope_147.bb create mode 100644 poky/meta/recipes-support/diffoscope/diffoscope_150.bb delete mode 100644 poky/meta/recipes-support/libcheck/libcheck_0.14.0.bb create mode 100644 poky/meta/recipes-support/libcheck/libcheck_0.15.0.bb create mode 100644 poky/meta/recipes-support/libgpg-error/libgpg-error/0003-build-Fix-cross-compiling-into-a-separate-build-dir.patch create mode 100644 poky/meta/recipes-support/libgpg-error/libgpg-error/0005-src-gen-lock-obj.sh-add-a-file.patch delete mode 100644 poky/meta/recipes-support/libgpg-error/libgpg-error_1.37.bb create mode 100644 poky/meta/recipes-support/libgpg-error/libgpg-error_1.38.bb (limited to 'poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb') diff --git a/poky/bitbake/contrib/vim/LICENSE.txt b/poky/bitbake/contrib/vim/LICENSE.txt new file mode 100644 index 000000000..c7d915024 --- /dev/null +++ b/poky/bitbake/contrib/vim/LICENSE.txt @@ -0,0 +1,18 @@ +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/poky/bitbake/contrib/vim/ftdetect/bitbake.vim b/poky/bitbake/contrib/vim/ftdetect/bitbake.vim index 200f8ae49..09fc4dc74 100644 --- a/poky/bitbake/contrib/vim/ftdetect/bitbake.vim +++ b/poky/bitbake/contrib/vim/ftdetect/bitbake.vim @@ -6,12 +6,12 @@ " " This sets up the syntax highlighting for BitBake files, like .bb, .bbclass and .inc -if &compatible || version < 600 +if &compatible || version < 600 || exists("b:loaded_bitbake_plugin") finish endif " .bb, .bbappend and .bbclass -au BufNewFile,BufRead *.{bb,bbappend,bbclass} set filetype=bitbake +au BufNewFile,BufRead *.{bb,bbappend,bbclass} set filetype=bitbake " .inc au BufNewFile,BufRead *.inc set filetype=bitbake diff --git a/poky/bitbake/contrib/vim/ftplugin/bitbake.vim b/poky/bitbake/contrib/vim/ftplugin/bitbake.vim index db0d75319..9e8d3e13c 100644 --- a/poky/bitbake/contrib/vim/ftplugin/bitbake.vim +++ b/poky/bitbake/contrib/vim/ftplugin/bitbake.vim @@ -1,2 +1,13 @@ -set sts=4 sw=4 et -set cms=#%s +" Only do this when not done yet for this buffer +if exists("b:did_ftplugin") + finish +endif + +" Don't load another plugin for this buffer +let b:did_ftplugin = 1 + +let b:undo_ftplugin = "setl cms< sts< sw< et< sua<" + +setlocal commentstring=#\ %s +setlocal softtabstop=4 shiftwidth=4 expandtab +setlocal suffixesadd+=.bb,.bbclass diff --git a/poky/bitbake/contrib/vim/plugin/newbb.vim b/poky/bitbake/contrib/vim/plugin/newbb.vim old mode 100755 new mode 100644 index 874e33805..3a4202736 --- a/poky/bitbake/contrib/vim/plugin/newbb.vim +++ b/poky/bitbake/contrib/vim/plugin/newbb.vim @@ -10,7 +10,7 @@ " " Will try to use git to find the user name and email -if &compatible || v:version < 600 +if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin") finish endif @@ -25,7 +25,7 @@ endfun fun! GetUserEmail() let l:user_email = system("git config --get user.email") if v:shell_error - return "unknow@user.org" + return "unknown@user.org" else return substitute(l:user_email, "\n", "", "") endfun @@ -41,6 +41,10 @@ fun! BBHeader() endfun fun! NewBBTemplate() + if line2byte(line('$') + 1) != -1 + return + endif + let l:paste = &paste set nopaste @@ -48,7 +52,7 @@ fun! NewBBTemplate() call BBHeader() " New the bb template - put ='DESCRIPTION = \"\"' + put ='SUMMARY = \"\"' put ='HOMEPAGE = \"\"' put ='LICENSE = \"\"' put ='SECTION = \"\"' @@ -58,7 +62,7 @@ fun! NewBBTemplate() " Go to the first place to edit 0 - /^DESCRIPTION =/ + /^SUMMARY =/ exec "normal 2f\"" if paste == 1 @@ -76,7 +80,7 @@ if v:progname =~ "vimdiff" endif augroup NewBB - au BufNewFile *.bb + au BufNewFile,BufReadPost *.bb \ if g:bb_create_on_empty | \ call NewBBTemplate() | \ endif diff --git a/poky/bitbake/contrib/vim/plugin/newbbappend.vim b/poky/bitbake/contrib/vim/plugin/newbbappend.vim new file mode 100644 index 000000000..e04174cf6 --- /dev/null +++ b/poky/bitbake/contrib/vim/plugin/newbbappend.vim @@ -0,0 +1,46 @@ +" Vim plugin file +" Purpose: Create a template for new bbappend file +" Author: Joshua Watt +" Copyright: Copyright (C) 2017 Joshua Watt +" +" This file is licensed under the MIT license, see COPYING.MIT in +" this source distribution for the terms. +" + +if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin") + finish +endif + +fun! NewBBAppendTemplate() + if line2byte(line('$') + 1) != -1 + return + endif + + let l:paste = &paste + set nopaste + + " New bbappend template + 0 put ='FILESEXTRAPATHS_prepend := \"${THISDIR}/${PN}:\"' + 2 + + if paste == 1 + set paste + endif +endfun + +if !exists("g:bb_create_on_empty") + let g:bb_create_on_empty = 1 +endif + +" disable in case of vimdiff +if v:progname =~ "vimdiff" + let g:bb_create_on_empty = 0 +endif + +augroup NewBBAppend + au BufNewFile,BufReadPost *.bbappend + \ if g:bb_create_on_empty | + \ call NewBBAppendTemplate() | + \ endif +augroup END + diff --git a/poky/bitbake/contrib/vim/syntax/bitbake.vim b/poky/bitbake/contrib/vim/syntax/bitbake.vim index fb55f9102..f964621ae 100644 --- a/poky/bitbake/contrib/vim/syntax/bitbake.vim +++ b/poky/bitbake/contrib/vim/syntax/bitbake.vim @@ -12,7 +12,7 @@ " " It's an entirely new type, just has specific syntax in shell and python code -if &compatible || v:version < 600 +if &compatible || v:version < 600 || exists("b:loaded_bitbake_plugin") finish endif if exists("b:current_syntax") @@ -58,8 +58,8 @@ syn match bbVarValue ".*$" contained contains=bbString,bbVarDeref,bbV syn region bbVarPyValue start=+${@+ skip=+\\$+ end=+}+ contained contains=@python " Vars metadata flags -syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag -syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(=\|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq +syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.+]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag +syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(:=\|=\|.=\|=.|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq " Includes and requires syn keyword bbInclude inherit include require contained @@ -67,15 +67,15 @@ syn match bbIncludeRest ".*$" contained contains=bbString,bbVarDeref syn match bbIncludeLine "^\(inherit\|include\|require\)\s\+" contains=bbInclude nextgroup=bbIncludeRest " Add taks and similar -syn keyword bbStatement addtask addhandler after before EXPORT_FUNCTIONS contained +syn keyword bbStatement addtask deltask addhandler after before EXPORT_FUNCTIONS contained syn match bbStatementRest ".*$" skipwhite contained contains=bbStatement -syn match bbStatementLine "^\(addtask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest +syn match bbStatementLine "^\(addtask\|deltask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest " OE Important Functions syn keyword bbOEFunctions do_fetch do_unpack do_patch do_configure do_compile do_stage do_install do_package contained " Generic Functions -syn match bbFunction "\h[0-9A-Za-z_-]*" display contained contains=bbOEFunctions +syn match bbFunction "\h[0-9A-Za-z_\-\.]*" display contained contains=bbOEFunctions " BitBake shell metadata syn include @shell syntax/sh.vim @@ -83,7 +83,7 @@ if exists("b:current_syntax") unlet b:current_syntax endif syn keyword bbShFakeRootFlag fakeroot contained -syn match bbShFuncDef "^\(fakeroot\s*\)\?\([0-9A-Za-z_${}-]\+\)\(python\)\@"): try: event = pickle.loads(self.queue[7:index]) - except ValueError as e: + except (ValueError, pickle.UnpicklingError, AttributeError, IndexError) as e: + if isinstance(e, pickle.UnpicklingError) and "truncated" in str(e): + # The pickled data could contain "" so search for the next occurance + # unpickling again, this should be the only way an unpickle error could occur + index = self.queue.find(b"", index + 1) + continue bb.msg.fatal("RunQueue", "failed load pickle '%s': '%s'" % (e, self.queue[7:index])) bb.event.fire_from_worker(event, self.d) if isinstance(event, taskUniHashUpdate): @@ -2979,7 +2984,7 @@ class runQueuePipe(): while index != -1 and self.queue.startswith(b""): try: task, status = pickle.loads(self.queue[10:index]) - except ValueError as e: + except (ValueError, pickle.UnpicklingError, AttributeError, IndexError) as e: bb.msg.fatal("RunQueue", "failed load pickle '%s': '%s'" % (e, self.queue[10:index])) self.rqexec.runqueue_process_waitpid(task, status) found = True diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py index 69aae626e..83385baf6 100644 --- a/poky/bitbake/lib/bb/server/process.py +++ b/poky/bitbake/lib/bb/server/process.py @@ -331,7 +331,9 @@ class ServerCommunicator(): def runCommand(self, command): self.connection.send(command) if not self.recv.poll(30): - raise ProcessTimeout("Timeout while waiting for a reply from the bitbake server") + logger.note("No reply from server in 30s") + if not self.recv.poll(30): + raise ProcessTimeout("Timeout while waiting for a reply from the bitbake server (60s)") return self.recv.get() def updateFeatureSet(self, featureset): diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py index 872333d7f..4c63b0baa 100644 --- a/poky/bitbake/lib/bb/siggen.py +++ b/poky/bitbake/lib/bb/siggen.py @@ -14,6 +14,7 @@ import simplediff from bb.checksum import FileChecksumCache from bb import runqueue import hashserv +import hashserv.client logger = logging.getLogger('BitBake.SigGen') hashequiv_logger = logging.getLogger('BitBake.SigGen.HashEquiv') diff --git a/poky/bitbake/lib/bb/taskdata.py b/poky/bitbake/lib/bb/taskdata.py index d13a12498..ffbaf362e 100644 --- a/poky/bitbake/lib/bb/taskdata.py +++ b/poky/bitbake/lib/bb/taskdata.py @@ -21,8 +21,13 @@ def re_match_strings(target, strings): Whether or not the string 'target' matches any one string of the strings which can be regular expression string """ - return any(name == target or re.match(name, target) - for name in strings) + for name in strings: + if name.startswith("^") or name.endswith("$"): + if re.match(name, target): + return True + elif name == target: + return True + return False class TaskEntry: def __init__(self): diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py index 4697ef59b..29c96b2b4 100644 --- a/poky/bitbake/lib/bb/tests/fetch.py +++ b/poky/bitbake/lib/bb/tests/fetch.py @@ -1031,7 +1031,7 @@ class SVNTest(FetcherTest): bb.process.run("svn co %s svnfetch_co" % self.repo_url, cwd=self.tempdir) # Github will emulate SVN. Use this to check if we're downloding... - bb.process.run("svn propset svn:externals 'bitbake http://github.com/openembedded/bitbake' .", + bb.process.run("svn propset svn:externals 'bitbake svn://vcs.pcre.org/pcre2/code' .", cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk')) bb.process.run("svn commit --non-interactive -m 'Add external'", cwd=os.path.join(self.tempdir, 'svnfetch_co', 'trunk')) diff --git a/poky/bitbake/lib/bb/ui/taskexp.py b/poky/bitbake/lib/bb/ui/taskexp.py index 8fff24423..05e32338c 100644 --- a/poky/bitbake/lib/bb/ui/taskexp.py +++ b/poky/bitbake/lib/bb/ui/taskexp.py @@ -8,9 +8,16 @@ # import sys -import gi -gi.require_version('Gtk', '3.0') -from gi.repository import Gtk, Gdk, GObject + +try: + import gi + gi.require_version('Gtk', '3.0') + from gi.repository import Gtk, Gdk, GObject +except ValueError: + sys.exit("FATAL: Gtk version needs to be 3.0") +except ImportError: + sys.exit("FATAL: Gtk ui could not load the required gi python module") + import threading from xmlrpc import client import bb diff --git a/poky/bitbake/lib/bb/ui/teamcity.py b/poky/bitbake/lib/bb/ui/teamcity.py index 1854292fa..fca46c287 100644 --- a/poky/bitbake/lib/bb/ui/teamcity.py +++ b/poky/bitbake/lib/bb/ui/teamcity.py @@ -167,8 +167,6 @@ def main(server, eventHandler, params): forcelevel = bb.msg.BBLogFormatter.ERROR else: forcelevel = bb.msg.BBLogFormatter.WARNING - bb.msg.addDefaultlogFilter(console, bb.msg.BBLogFilterStdOut, forcelevel) - bb.msg.addDefaultlogFilter(errconsole, bb.msg.BBLogFilterStdErr) console.setFormatter(format) errconsole.setFormatter(format) if not bb.msg.has_console_handler(logger): diff --git a/poky/bitbake/lib/hashserv/__init__.py b/poky/bitbake/lib/hashserv/__init__.py index c3318620f..f95e8f43f 100644 --- a/poky/bitbake/lib/hashserv/__init__.py +++ b/poky/bitbake/lib/hashserv/__init__.py @@ -6,12 +6,20 @@ from contextlib import closing import re import sqlite3 +import itertools +import json UNIX_PREFIX = "unix://" ADDR_TYPE_UNIX = 0 ADDR_TYPE_TCP = 1 +# The Python async server defaults to a 64K receive buffer, so we hardcode our +# maximum chunk size. It would be better if the client and server reported to +# each other what the maximum chunk sizes were, but that will slow down the +# connection setup with a round trip delay so I'd rather not do that unless it +# is necessary +DEFAULT_MAX_CHUNK = 32 * 1024 def setup_database(database, sync=True): db = sqlite3.connect(database) @@ -66,6 +74,20 @@ def parse_address(addr): return (ADDR_TYPE_TCP, (host, int(port))) +def chunkify(msg, max_chunk): + if len(msg) < max_chunk - 1: + yield ''.join((msg, "\n")) + else: + yield ''.join((json.dumps({ + 'chunk-stream': None + }), "\n")) + + args = [iter(msg)] * (max_chunk - 1) + for m in map(''.join, itertools.zip_longest(*args, fillvalue='')): + yield ''.join(itertools.chain(m, "\n")) + yield "\n" + + def create_server(addr, dbname, *, sync=True): from . import server db = setup_database(dbname, sync=sync) diff --git a/poky/bitbake/lib/hashserv/client.py b/poky/bitbake/lib/hashserv/client.py index 46085d641..a29af836d 100644 --- a/poky/bitbake/lib/hashserv/client.py +++ b/poky/bitbake/lib/hashserv/client.py @@ -7,6 +7,7 @@ import json import logging import socket import os +from . import chunkify, DEFAULT_MAX_CHUNK logger = logging.getLogger('hashserv.client') @@ -25,6 +26,7 @@ class Client(object): self.reader = None self.writer = None self.mode = self.MODE_NORMAL + self.max_chunk = DEFAULT_MAX_CHUNK def connect_tcp(self, address, port): def connect_sock(): @@ -58,7 +60,7 @@ class Client(object): self.reader = self._socket.makefile('r', encoding='utf-8') self.writer = self._socket.makefile('w', encoding='utf-8') - self.writer.write('OEHASHEQUIV 1.0\n\n') + self.writer.write('OEHASHEQUIV 1.1\n\n') self.writer.flush() # Restore mode if the socket is being re-created @@ -91,18 +93,35 @@ class Client(object): count += 1 def send_message(self, msg): + def get_line(): + line = self.reader.readline() + if not line: + raise HashConnectionError('Connection closed') + + if not line.endswith('\n'): + raise HashConnectionError('Bad message %r' % message) + + return line + def proc(): - self.writer.write('%s\n' % json.dumps(msg)) + for c in chunkify(json.dumps(msg), self.max_chunk): + self.writer.write(c) self.writer.flush() - l = self.reader.readline() - if not l: - raise HashConnectionError('Connection closed') + l = get_line() - if not l.endswith('\n'): - raise HashConnectionError('Bad message %r' % message) + m = json.loads(l) + if 'chunk-stream' in m: + lines = [] + while True: + l = get_line().rstrip('\n') + if not l: + break + lines.append(l) - return json.loads(l) + m = json.loads(''.join(lines)) + + return m return self._send_wrapper(proc) @@ -155,6 +174,14 @@ class Client(object): m['unihash'] = unihash return self.send_message({'report-equiv': m}) + def get_taskhash(self, method, taskhash, all_properties=False): + self._set_mode(self.MODE_NORMAL) + return self.send_message({'get': { + 'taskhash': taskhash, + 'method': method, + 'all': all_properties + }}) + def get_stats(self): self._set_mode(self.MODE_NORMAL) return self.send_message({'get-stats': None}) diff --git a/poky/bitbake/lib/hashserv/server.py b/poky/bitbake/lib/hashserv/server.py index cc7e48233..81050715e 100644 --- a/poky/bitbake/lib/hashserv/server.py +++ b/poky/bitbake/lib/hashserv/server.py @@ -13,6 +13,7 @@ import os import signal import socket import time +from . import chunkify, DEFAULT_MAX_CHUNK logger = logging.getLogger('hashserv.server') @@ -107,12 +108,29 @@ class Stats(object): return {k: getattr(self, k) for k in ('num', 'total_time', 'max_time', 'average', 'stdev')} +class ClientError(Exception): + pass + class ServerClient(object): + FAST_QUERY = 'SELECT taskhash, method, unihash FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1' + ALL_QUERY = 'SELECT * FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1' + def __init__(self, reader, writer, db, request_stats): self.reader = reader self.writer = writer self.db = db self.request_stats = request_stats + self.max_chunk = DEFAULT_MAX_CHUNK + + self.handlers = { + 'get': self.handle_get, + 'report': self.handle_report, + 'report-equiv': self.handle_equivreport, + 'get-stream': self.handle_get_stream, + 'get-stats': self.handle_get_stats, + 'reset-stats': self.handle_reset_stats, + 'chunk-stream': self.handle_chunk, + } async def process_requests(self): try: @@ -125,7 +143,11 @@ class ServerClient(object): return (proto_name, proto_version) = protocol.decode('utf-8').rstrip().split() - if proto_name != 'OEHASHEQUIV' or proto_version != '1.0': + if proto_name != 'OEHASHEQUIV': + return + + proto_version = tuple(int(v) for v in proto_version.split('.')) + if proto_version < (1, 0) or proto_version > (1, 1): return # Read headers. Currently, no headers are implemented, so look for @@ -140,40 +162,34 @@ class ServerClient(object): break # Handle messages - handlers = { - 'get': self.handle_get, - 'report': self.handle_report, - 'report-equiv': self.handle_equivreport, - 'get-stream': self.handle_get_stream, - 'get-stats': self.handle_get_stats, - 'reset-stats': self.handle_reset_stats, - } - while True: d = await self.read_message() if d is None: break - - for k in handlers.keys(): - if k in d: - logger.debug('Handling %s' % k) - if 'stream' in k: - await handlers[k](d[k]) - else: - with self.request_stats.start_sample() as self.request_sample, \ - self.request_sample.measure(): - await handlers[k](d[k]) - break - else: - logger.warning("Unrecognized command %r" % d) - break - + await self.dispatch_message(d) await self.writer.drain() + except ClientError as e: + logger.error(str(e)) finally: self.writer.close() + async def dispatch_message(self, msg): + for k in self.handlers.keys(): + if k in msg: + logger.debug('Handling %s' % k) + if 'stream' in k: + await self.handlers[k](msg[k]) + else: + with self.request_stats.start_sample() as self.request_sample, \ + self.request_sample.measure(): + await self.handlers[k](msg[k]) + return + + raise ClientError("Unrecognized command %r" % msg) + def write_message(self, msg): - self.writer.write(('%s\n' % json.dumps(msg)).encode('utf-8')) + for c in chunkify(json.dumps(msg), self.max_chunk): + self.writer.write(c.encode('utf-8')) async def read_message(self): l = await self.reader.readline() @@ -191,14 +207,38 @@ class ServerClient(object): logger.error('Bad message from client: %r' % message) raise e + async def handle_chunk(self, request): + lines = [] + try: + while True: + l = await self.reader.readline() + l = l.rstrip(b"\n").decode("utf-8") + if not l: + break + lines.append(l) + + msg = json.loads(''.join(lines)) + except (json.JSONDecodeError, UnicodeDecodeError) as e: + logger.error('Bad message from client: %r' % message) + raise e + + if 'chunk-stream' in msg: + raise ClientError("Nested chunks are not allowed") + + await self.dispatch_message(msg) + async def handle_get(self, request): method = request['method'] taskhash = request['taskhash'] - row = self.query_equivalent(method, taskhash) + if request.get('all', False): + row = self.query_equivalent(method, taskhash, self.ALL_QUERY) + else: + row = self.query_equivalent(method, taskhash, self.FAST_QUERY) + if row is not None: logger.debug('Found equivalent task %s -> %s', (row['taskhash'], row['unihash'])) - d = {k: row[k] for k in ('taskhash', 'method', 'unihash')} + d = {k: row[k] for k in row.keys()} self.write_message(d) else: @@ -228,7 +268,7 @@ class ServerClient(object): (method, taskhash) = l.split() #logger.debug('Looking up %s %s' % (method, taskhash)) - row = self.query_equivalent(method, taskhash) + row = self.query_equivalent(method, taskhash, self.FAST_QUERY) if row is not None: msg = ('%s\n' % row['unihash']).encode('utf-8') #logger.debug('Found equivalent task %s -> %s', (row['taskhash'], row['unihash'])) @@ -328,7 +368,7 @@ class ServerClient(object): # Fetch the unihash that will be reported for the taskhash. If the # unihash matches, it means this row was inserted (or the mapping # was already valid) - row = self.query_equivalent(data['method'], data['taskhash']) + row = self.query_equivalent(data['method'], data['taskhash'], self.FAST_QUERY) if row['unihash'] == data['unihash']: logger.info('Adding taskhash equivalence for %s with unihash %s', @@ -354,12 +394,11 @@ class ServerClient(object): self.request_stats.reset() self.write_message(d) - def query_equivalent(self, method, taskhash): + def query_equivalent(self, method, taskhash, query): # This is part of the inner loop and must be as fast as possible try: cursor = self.db.cursor() - cursor.execute('SELECT taskhash, method, unihash FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1', - {'method': method, 'taskhash': taskhash}) + cursor.execute(query, {'method': method, 'taskhash': taskhash}) return cursor.fetchone() except: cursor.close() diff --git a/poky/bitbake/lib/hashserv/tests.py b/poky/bitbake/lib/hashserv/tests.py index a5472a996..6e8629507 100644 --- a/poky/bitbake/lib/hashserv/tests.py +++ b/poky/bitbake/lib/hashserv/tests.py @@ -99,6 +99,29 @@ class TestHashEquivalenceServer(object): result = self.client.get_unihash(self.METHOD, taskhash) self.assertEqual(result, unihash) + def test_huge_message(self): + # Simple test that hashes can be created + taskhash = 'c665584ee6817aa99edfc77a44dd853828279370' + outhash = '3c979c3db45c569f51ab7626a4651074be3a9d11a84b1db076f5b14f7d39db44' + unihash = '90e9bc1d1f094c51824adca7f8ea79a048d68824' + + result = self.client.get_unihash(self.METHOD, taskhash) + self.assertIsNone(result, msg='Found unexpected task, %r' % result) + + siginfo = "0" * (self.client.max_chunk * 4) + + result = self.client.report_unihash(taskhash, self.METHOD, outhash, unihash, { + 'outhash_siginfo': siginfo + }) + self.assertEqual(result['unihash'], unihash, 'Server returned bad unihash') + + result = self.client.get_taskhash(self.METHOD, taskhash, True) + self.assertEqual(result['taskhash'], taskhash) + self.assertEqual(result['unihash'], unihash) + self.assertEqual(result['method'], self.METHOD) + self.assertEqual(result['outhash'], outhash) + self.assertEqual(result['outhash_siginfo'], siginfo) + def test_stress(self): def query_server(failures): client = Client(self.server.address) diff --git a/poky/documentation/mega-manual/mega-manual-customization.xsl b/poky/documentation/mega-manual/mega-manual-customization.xsl index b52b5b2aa..33a6e1632 100644 --- a/poky/documentation/mega-manual/mega-manual-customization.xsl +++ b/poky/documentation/mega-manual/mega-manual-customization.xsl @@ -1,4 +1,5 @@ + diff --git a/poky/documentation/mega-manual/mega-manual.xml b/poky/documentation/mega-manual/mega-manual.xml index e730f7259..d9912fa44 100755 --- a/poky/documentation/mega-manual/mega-manual.xml +++ b/poky/documentation/mega-manual/mega-manual.xml @@ -1,7 +1,7 @@ %poky; ] > - + %poky; ] > + Yocto Project Concepts diff --git a/poky/documentation/overview-manual/overview-manual-customization.xsl b/poky/documentation/overview-manual/overview-manual-customization.xsl index 22360e7ba..1dd91bde8 100644 --- a/poky/documentation/overview-manual/overview-manual-customization.xsl +++ b/poky/documentation/overview-manual/overview-manual-customization.xsl @@ -1,4 +1,6 @@ + + diff --git a/poky/documentation/overview-manual/overview-manual-development-environment.xml b/poky/documentation/overview-manual/overview-manual-development-environment.xml index 36ebf8a32..8415d1dd7 100644 --- a/poky/documentation/overview-manual/overview-manual-development-environment.xml +++ b/poky/documentation/overview-manual/overview-manual-development-environment.xml @@ -1,6 +1,7 @@ %poky; ] > + The Yocto Project Development Environment diff --git a/poky/documentation/overview-manual/overview-manual-intro.xml b/poky/documentation/overview-manual/overview-manual-intro.xml index 39433aa41..0e0bfed6e 100644 --- a/poky/documentation/overview-manual/overview-manual-intro.xml +++ b/poky/documentation/overview-manual/overview-manual-intro.xml @@ -1,6 +1,7 @@ %poky; ] > + diff --git a/poky/documentation/overview-manual/overview-manual-style.css b/poky/documentation/overview-manual/overview-manual-style.css index 97a364b12..eec934161 100644 --- a/poky/documentation/overview-manual/overview-manual-style.css +++ b/poky/documentation/overview-manual/overview-manual-style.css @@ -1,4 +1,6 @@ /* + SPDX-License-Identifier: CC-BY-2.0-UK + Generic XHTML / DocBook XHTML CSS Stylesheet. Browser wrangling and typographic design by diff --git a/poky/documentation/overview-manual/overview-manual-yp-intro.xml b/poky/documentation/overview-manual/overview-manual-yp-intro.xml index 1b60a3030..2097ed36e 100644 --- a/poky/documentation/overview-manual/overview-manual-yp-intro.xml +++ b/poky/documentation/overview-manual/overview-manual-yp-intro.xml @@ -1,6 +1,7 @@ %poky; ] > + Introducing the Yocto Project diff --git a/poky/documentation/overview-manual/overview-manual.xml b/poky/documentation/overview-manual/overview-manual.xml index 210d644b3..8021a2e95 100755 --- a/poky/documentation/overview-manual/overview-manual.xml +++ b/poky/documentation/overview-manual/overview-manual.xml @@ -1,6 +1,7 @@ %poky; ] > + %poky; ] > + FAQ diff --git a/poky/documentation/ref-manual/migration.xml b/poky/documentation/ref-manual/migration.xml index affc8b90a..d3d5b16bd 100644 --- a/poky/documentation/ref-manual/migration.xml +++ b/poky/documentation/ref-manual/migration.xml @@ -1,6 +1,7 @@ %poky; ] > + Migrating to a Newer Yocto Project Release diff --git a/poky/documentation/ref-manual/ref-classes.xml b/poky/documentation/ref-manual/ref-classes.xml index f8920d8c1..ab12373ae 100644 --- a/poky/documentation/ref-manual/ref-classes.xml +++ b/poky/documentation/ref-manual/ref-classes.xml @@ -1,6 +1,7 @@ %poky; ] > + Classes diff --git a/poky/documentation/ref-manual/ref-devtool-reference.xml b/poky/documentation/ref-manual/ref-devtool-reference.xml index 11f7399c5..6c3ccc303 100644 --- a/poky/documentation/ref-manual/ref-devtool-reference.xml +++ b/poky/documentation/ref-manual/ref-devtool-reference.xml @@ -1,6 +1,7 @@ %poky; ] > + <filename>devtool</filename> Quick Reference diff --git a/poky/documentation/ref-manual/ref-features.xml b/poky/documentation/ref-manual/ref-features.xml index 294b297c2..8cab5ec3a 100644 --- a/poky/documentation/ref-manual/ref-features.xml +++ b/poky/documentation/ref-manual/ref-features.xml @@ -1,6 +1,7 @@ %poky; ] > + Features diff --git a/poky/documentation/ref-manual/ref-images.xml b/poky/documentation/ref-manual/ref-images.xml index 1f96186c6..aaeda5522 100644 --- a/poky/documentation/ref-manual/ref-images.xml +++ b/poky/documentation/ref-manual/ref-images.xml @@ -1,6 +1,7 @@ %poky; ] > + Images diff --git a/poky/documentation/ref-manual/ref-kickstart.xml b/poky/documentation/ref-manual/ref-kickstart.xml index 1128bd50d..45db1c0ff 100644 --- a/poky/documentation/ref-manual/ref-kickstart.xml +++ b/poky/documentation/ref-manual/ref-kickstart.xml @@ -1,6 +1,7 @@ %poky; ] > + OpenEmbedded Kickstart (<filename>.wks</filename>) Reference diff --git a/poky/documentation/ref-manual/ref-manual-customization.xsl b/poky/documentation/ref-manual/ref-manual-customization.xsl index c58dd905b..3181f618e 100644 --- a/poky/documentation/ref-manual/ref-manual-customization.xsl +++ b/poky/documentation/ref-manual/ref-manual-customization.xsl @@ -1,4 +1,6 @@ + + diff --git a/poky/documentation/ref-manual/ref-qa-checks.xml b/poky/documentation/ref-manual/ref-qa-checks.xml index 424a19c59..0071e4a55 100644 --- a/poky/documentation/ref-manual/ref-qa-checks.xml +++ b/poky/documentation/ref-manual/ref-qa-checks.xml @@ -1,6 +1,7 @@ %poky; ] > + QA Error and Warning Messages diff --git a/poky/documentation/ref-manual/ref-release-process.xml b/poky/documentation/ref-manual/ref-release-process.xml index 5efe17417..87f530806 100644 --- a/poky/documentation/ref-manual/ref-release-process.xml +++ b/poky/documentation/ref-manual/ref-release-process.xml @@ -1,6 +1,7 @@ %poky; ] > + Yocto Project Releases and the Stable Release Process diff --git a/poky/documentation/ref-manual/ref-structure.xml b/poky/documentation/ref-manual/ref-structure.xml index 27f17dd91..8588e9c2d 100644 --- a/poky/documentation/ref-manual/ref-structure.xml +++ b/poky/documentation/ref-manual/ref-structure.xml @@ -1,6 +1,7 @@ %poky; ] > + diff --git a/poky/documentation/ref-manual/ref-style.css b/poky/documentation/ref-manual/ref-style.css index 7077e4b70..622ceb8f7 100644 --- a/poky/documentation/ref-manual/ref-style.css +++ b/poky/documentation/ref-manual/ref-style.css @@ -1,4 +1,7 @@ /* + + SPDX-License-Identifier: CC-BY-2.0-UK + Generic XHTML / DocBook XHTML CSS Stylesheet. Browser wrangling and typographic design by diff --git a/poky/documentation/ref-manual/ref-system-requirements.xml b/poky/documentation/ref-manual/ref-system-requirements.xml index 7a11ec2cf..43e217c6d 100644 --- a/poky/documentation/ref-manual/ref-system-requirements.xml +++ b/poky/documentation/ref-manual/ref-system-requirements.xml @@ -1,6 +1,7 @@ %poky; ] > + System Requirements diff --git a/poky/documentation/ref-manual/ref-tasks.xml b/poky/documentation/ref-manual/ref-tasks.xml index 011e0d749..5b09b3f2e 100644 --- a/poky/documentation/ref-manual/ref-tasks.xml +++ b/poky/documentation/ref-manual/ref-tasks.xml @@ -1,6 +1,7 @@ %poky; ] > + Tasks diff --git a/poky/documentation/ref-manual/ref-terms.xml b/poky/documentation/ref-manual/ref-terms.xml index 722fa7ee2..d2605c62a 100644 --- a/poky/documentation/ref-manual/ref-terms.xml +++ b/poky/documentation/ref-manual/ref-terms.xml @@ -1,6 +1,7 @@ %poky; ] > + Yocto Project Terms diff --git a/poky/documentation/ref-manual/ref-variables.xml b/poky/documentation/ref-manual/ref-variables.xml index 657f6cf3d..9fe744aff 100644 --- a/poky/documentation/ref-manual/ref-variables.xml +++ b/poky/documentation/ref-manual/ref-variables.xml @@ -1,6 +1,7 @@ %poky; ] > + diff --git a/poky/documentation/ref-manual/ref-varlocality.xml b/poky/documentation/ref-manual/ref-varlocality.xml index 54524d5b6..a2436fb31 100644 --- a/poky/documentation/ref-manual/ref-varlocality.xml +++ b/poky/documentation/ref-manual/ref-varlocality.xml @@ -1,6 +1,7 @@ %poky; ] > + Variable Context diff --git a/poky/documentation/ref-manual/resources.xml b/poky/documentation/ref-manual/resources.xml index afe8e288d..4899b2e59 100644 --- a/poky/documentation/ref-manual/resources.xml +++ b/poky/documentation/ref-manual/resources.xml @@ -1,6 +1,7 @@ %poky; ] > + Contributions and Additional Information diff --git a/poky/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb b/poky/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb index e84a90f28..3acc523a8 100644 --- a/poky/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb +++ b/poky/meta-skeleton/recipes-baremetal/baremetal-examples/baremetal-helloworld_git.bb @@ -10,10 +10,19 @@ SRC_URI = "git://github.com/aehs29/baremetal-helloqemu.git;protocol=https;branch S = "${WORKDIR}/git/" -# These examples are not meant to be built when using either musl or glibc -COMPATIBLE_HOST_libc-musl_class-target = "null" -COMPATIBLE_HOST_libc-glibc_class-target = "null" +# The following variables should be set to accomodate each application +BAREMETAL_BINNAME ?= "hello_baremetal_${MACHINE}" +IMAGE_LINK_NAME ?= "baremetal-helloworld-image-${MACHINE}" +IMAGE_NAME_SUFFIX ?= "" + +# Baremetal-Image creates the proper wiring, assumes the output is provided in +# binary and ELF format, installed on ${base_libdir}/firmware/ , we want a +# package to be created since we might have some way of updating the baremetal +# firmware from Linux +inherit baremetal-image + +# These parameters are app specific for this example # This will be translated automatically to the architecture and # machine that QEMU uses on OE, e.g. -machine virt -cpu cortex-a57 # but the examples can also be run on other architectures/machines @@ -25,82 +34,17 @@ BAREMETAL_QEMUARCH_qemuarmv5 = "versatile" BAREMETAL_QEMUARCH_qemuarm = "arm" BAREMETAL_QEMUARCH_qemuarm64 = "aarch64" - EXTRA_OEMAKE_append = " QEMUARCH=${BAREMETAL_QEMUARCH} V=1" -do_install(){ - install -d ${D}/${datadir} - install -m 755 ${B}build/hello_baremetal_${BAREMETAL_QEMUARCH}.bin ${D}/${datadir}/hello_baremetal_${MACHINE}.bin - install -m 755 ${B}build/hello_baremetal_${BAREMETAL_QEMUARCH}.elf ${D}/${datadir}/hello_baremetal_${MACHINE}.elf -} -# Borrowed from meta-freertos -inherit rootfs-postcommands -inherit deploy -IMGDEPLOYDIR ?= "${WORKDIR}/deploy-${PN}-image-complete" -do_deploy[dirs] = "${DEPLOYDIR} ${DEPLOY_DIR_IMAGE}" -do_rootfs[dirs] = "${DEPLOYDIR} ${DEPLOY_DIR_IMAGE}" -DEPLOYDIR = "${IMGDEPLOYDIR}" -IMAGE_LINK_NAME ?= "baremetal-helloworld-image-${MACHINE}" -IMAGE_NAME_SUFFIX ?= "" - -do_deploy(){ - install ${D}/${datadir}/hello_baremetal_${MACHINE}.bin ${DEPLOYDIR}/${IMAGE_LINK_NAME}.bin - install ${D}/${datadir}/hello_baremetal_${MACHINE}.elf ${DEPLOYDIR}/${IMAGE_LINK_NAME}.elf -} - -do_image(){ - : +# Install binaries on the proper location for baremetal-image to fetch and deploy +do_install(){ + install -d ${D}/${base_libdir}/firmware + install -m 755 ${B}build/hello_baremetal_${BAREMETAL_QEMUARCH}.bin ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.bin + install -m 755 ${B}build/hello_baremetal_${BAREMETAL_QEMUARCH}.elf ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf } FILES_${PN} += " \ - ${datadir}/hello_baremetal_${MACHINE}.bin \ - ${datadir}/hello_baremetal_${MACHINE}.elf \ + ${base_libdir}/firmware/${BAREMETAL_BINNAME}.bin \ + ${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf \ " - -python do_rootfs(){ - from oe.utils import execute_pre_post_process - from pathlib import Path - - # Write empty manifest testdate file - deploy_dir = d.getVar('DEPLOYDIR') - link_name = d.getVar('IMAGE_LINK_NAME') - manifest_name = d.getVar('IMAGE_MANIFEST') - - Path(manifest_name).touch() - if os.path.exists(manifest_name) and link_name: - manifest_link = deploy_dir + "/" + link_name + ".manifest" - if os.path.lexists(manifest_link): - os.remove(manifest_link) - os.symlink(os.path.basename(manifest_name), manifest_link) - execute_pre_post_process(d, d.getVar('ROOTFS_POSTPROCESS_COMMAND')) -} - -# QEMU generic FreeRTOS parameters -QB_DEFAULT_KERNEL = "${IMAGE_LINK_NAME}.bin" -QB_MEM = "-m 256" -QB_OPT_APPEND = "-nographic" -QB_DEFAULT_FSTYPE = "bin" -QB_DTB = "" - -# This next part is necessary to trick the build system into thinking -# its building an image recipe so it generates the qemuboot.conf -addtask do_deploy after do_write_qemuboot_conf before do_build -addtask do_rootfs before do_deploy after do_install -addtask do_image after do_rootfs before do_build -inherit qemuboot - -# Based on image.bbclass to make sure we build qemu -python(){ - # do_addto_recipe_sysroot doesnt exist for all recipes, but we need it to have - # /usr/bin on recipe-sysroot (qemu) populated - def extraimage_getdepends(task): - deps = "" - for dep in (d.getVar('EXTRA_IMAGEDEPENDS') or "").split(): - # Make sure we only add it for qemu - if 'qemu' in dep: - deps += " %s:%s" % (dep, task) - return deps - d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_addto_recipe_sysroot')) - d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_populate_sysroot')) -} diff --git a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend index 720744200..626748541 100644 --- a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend +++ b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.4.bbappend @@ -7,17 +7,17 @@ KMACHINE_genericx86 ?= "common-pc" KMACHINE_genericx86-64 ?= "common-pc-64" KMACHINE_beaglebone-yocto ?= "beaglebone" -SRCREV_machine_genericx86 ?= "29f44c85c379c38f15e544828e7e77b3c008f378" -SRCREV_machine_genericx86-64 ?= "29f44c85c379c38f15e544828e7e77b3c008f378" -SRCREV_machine_edgerouter ?= "f4d7dbafb103e4f782323017c239c548871c1567" -SRCREV_machine_beaglebone-yocto ?= "f4d7dbafb103e4f782323017c239c548871c1567" +SRCREV_machine_genericx86 ?= "ec485bd4afef57715eb45ba331b04b3f941e43bb" +SRCREV_machine_genericx86-64 ?= "ec485bd4afef57715eb45ba331b04b3f941e43bb" +SRCREV_machine_edgerouter ?= "ec485bd4afef57715eb45ba331b04b3f941e43bb" +SRCREV_machine_beaglebone-yocto ?= "ec485bd4afef57715eb45ba331b04b3f941e43bb" COMPATIBLE_MACHINE_genericx86 = "genericx86" COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64" COMPATIBLE_MACHINE_edgerouter = "edgerouter" COMPATIBLE_MACHINE_beaglebone-yocto = "beaglebone-yocto" -LINUX_VERSION_genericx86 = "5.4.40" -LINUX_VERSION_genericx86-64 = "5.4.40" -LINUX_VERSION_edgerouter = "5.4.20" -LINUX_VERSION_beaglebone-yocto = "5.4.20" +LINUX_VERSION_genericx86 = "5.4.49" +LINUX_VERSION_genericx86-64 = "5.4.49" +LINUX_VERSION_edgerouter = "5.4.49" +LINUX_VERSION_beaglebone-yocto = "5.4.49" diff --git a/poky/meta/classes/archiver.bbclass b/poky/meta/classes/archiver.bbclass index e221fff69..aff1f9dbb 100644 --- a/poky/meta/classes/archiver.bbclass +++ b/poky/meta/classes/archiver.bbclass @@ -582,8 +582,8 @@ do_deploy_archives[sstate-outputdirs] = "${DEPLOY_DIR_SRC}" addtask do_deploy_archives_setscene addtask do_ar_original after do_unpack -addtask do_unpack_and_patch after do_patch -addtask do_ar_patched after do_unpack_and_patch before do_preconfigure do_configure +addtask do_unpack_and_patch after do_patch do_preconfigure +addtask do_ar_patched after do_unpack_and_patch addtask do_ar_configured after do_unpack_and_patch addtask do_ar_mirror after do_fetch addtask do_dumpdata diff --git a/poky/meta/classes/baremetal-image.bbclass b/poky/meta/classes/baremetal-image.bbclass new file mode 100644 index 000000000..90d58f261 --- /dev/null +++ b/poky/meta/classes/baremetal-image.bbclass @@ -0,0 +1,99 @@ +# Baremetal image class +# +# This class is meant to be inherited by recipes for baremetal/RTOS applications +# It contains code that would be used by all of them, every recipe just needs to +# override certain variables. +# +# For scalability purposes, code within this class focuses on the "image" wiring +# to satisfy the OpenEmbedded image creation and testing infrastructure. +# +# See meta-skeleton for a working example. + + +# Toolchain should be baremetal or newlib based. +# TCLIBC="baremetal" or TCLIBC="newlib" +COMPATIBLE_HOST_libc-musl_class-target = "null" +COMPATIBLE_HOST_libc-glibc_class-target = "null" + + +inherit rootfs-postcommands + +# Set some defaults, but these should be overriden by each recipe if required +IMGDEPLOYDIR ?= "${WORKDIR}/deploy-${PN}-image-complete" +BAREMETAL_BINNAME ?= "hello_baremetal_${MACHINE}" +IMAGE_LINK_NAME ?= "baremetal-helloworld-image-${MACHINE}" +IMAGE_NAME_SUFFIX ?= "" + +do_rootfs[dirs] = "${IMGDEPLOYDIR} ${DEPLOY_DIR_IMAGE}" + +do_image(){ + install ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.bin ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.bin + install ${D}/${base_libdir}/firmware/${BAREMETAL_BINNAME}.elf ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.elf +} + +do_image_complete(){ + : +} + +python do_rootfs(){ + from oe.utils import execute_pre_post_process + from pathlib import Path + + # Write empty manifest file to satisfy test infrastructure + deploy_dir = d.getVar('IMGDEPLOYDIR') + link_name = d.getVar('IMAGE_LINK_NAME') + manifest_name = d.getVar('IMAGE_MANIFEST') + + Path(manifest_name).touch() + if os.path.exists(manifest_name) and link_name: + manifest_link = deploy_dir + "/" + link_name + ".manifest" + if os.path.lexists(manifest_link): + os.remove(manifest_link) + os.symlink(os.path.basename(manifest_name), manifest_link) + execute_pre_post_process(d, d.getVar('ROOTFS_POSTPROCESS_COMMAND')) +} + + +# Assure binaries, manifest and qemubootconf are populated on DEPLOY_DIR_IMAGE +do_image_complete[dirs] = "${TOPDIR}" +do_image_complete[umask] = "022" +SSTATETASKS += "do_image_complete" +SSTATE_SKIP_CREATION_task-image-complete = '1' +do_image_complete[sstate-inputdirs] = "${IMGDEPLOYDIR}" +do_image_complete[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}" +do_image_complete[stamp-extra-info] = "${MACHINE_ARCH}" +addtask do_image_complete after do_image before do_build + +python do_image_complete_setscene () { + sstate_setscene(d) +} +addtask do_image_complete_setscene + +# QEMU generic Baremetal/RTOS parameters +QB_DEFAULT_KERNEL ?= "${IMAGE_LINK_NAME}.bin" +QB_MEM ?= "-m 256" +QB_DEFAULT_FSTYPE ?= "bin" +QB_DTB ?= "" +QB_OPT_APPEND = "-nographic" + +# This next part is necessary to trick the build system into thinking +# its building an image recipe so it generates the qemuboot.conf +addtask do_rootfs before do_image after do_install +addtask do_image after do_rootfs before do_image_complete +addtask do_image_complete after do_image before do_build +inherit qemuboot + +# Based on image.bbclass to make sure we build qemu +python(){ + # do_addto_recipe_sysroot doesnt exist for all recipes, but we need it to have + # /usr/bin on recipe-sysroot (qemu) populated + def extraimage_getdepends(task): + deps = "" + for dep in (d.getVar('EXTRA_IMAGEDEPENDS') or "").split(): + # Make sure we only add it for qemu + if 'qemu' in dep: + deps += " %s:%s" % (dep, task) + return deps + d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_addto_recipe_sysroot')) + d.appendVarFlag('do_image', 'depends', extraimage_getdepends('do_populate_sysroot')) +} diff --git a/poky/meta/classes/deploy.bbclass b/poky/meta/classes/deploy.bbclass index 6d5290878..737c26122 100644 --- a/poky/meta/classes/deploy.bbclass +++ b/poky/meta/classes/deploy.bbclass @@ -8,4 +8,5 @@ python do_deploy_setscene () { } addtask do_deploy_setscene do_deploy[dirs] = "${DEPLOYDIR} ${B}" +do_deploy[cleandirs] = "${DEPLOYDIR}" do_deploy[stamp-extra-info] = "${MACHINE_ARCH}" diff --git a/poky/meta/classes/gtk-icon-cache.bbclass b/poky/meta/classes/gtk-icon-cache.bbclass index 91cb4ad40..dd394af27 100644 --- a/poky/meta/classes/gtk-icon-cache.bbclass +++ b/poky/meta/classes/gtk-icon-cache.bbclass @@ -1,6 +1,10 @@ FILES_${PN} += "${datadir}/icons/hicolor" -DEPENDS +=" ${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} gtk+3-native" +DEPENDS +=" ${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} \ + ${@['gdk-pixbuf', '']['${BPN}' == 'gdk-pixbuf']} \ + ${@['gtk+3', '']['${BPN}' == 'gtk+3']} \ + gtk+3-native \ +" PACKAGE_WRITE_DEPS += "gtk+3-native gdk-pixbuf-native" @@ -48,9 +52,18 @@ python populate_packages_append () { bb.note("adding hicolor-icon-theme dependency to %s" % pkg) rdepends = ' ' + d.getVar('MLPREFIX', False) + "hicolor-icon-theme" d.appendVar('RDEPENDS_%s' % pkg, rdepends) - + + #gtk_icon_cache_postinst depend on gdk-pixbuf and gtk+3 + bb.note("adding gdk-pixbuf dependency to %s" % pkg) + rdepends = ' ' + d.getVar('MLPREFIX', False) + "gdk-pixbuf" + d.appendVar('RDEPENDS_%s' % pkg, rdepends) + + bb.note("adding gtk+3 dependency to %s" % pkg) + rdepends = ' ' + d.getVar('MLPREFIX', False) + "gtk+3" + d.appendVar('RDEPENDS_%s' % pkg, rdepends) + bb.note("adding gtk-icon-cache postinst and postrm scripts to %s" % pkg) - + postinst = d.getVar('pkg_postinst_%s' % pkg) if not postinst: postinst = '#!/bin/sh\n' diff --git a/poky/meta/classes/kernel-yocto.bbclass b/poky/meta/classes/kernel-yocto.bbclass index 5bc627066..54a1a1627 100644 --- a/poky/meta/classes/kernel-yocto.bbclass +++ b/poky/meta/classes/kernel-yocto.bbclass @@ -131,7 +131,7 @@ do_kernel_metadata() { else cp -f ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig fi - sccs="${WORKDIR}/defconfig" + in_tree_defconfig="${WORKDIR}/defconfig" else bbfatal "A KBUILD_DEFCONFIG '${KBUILD_DEFCONFIG}' was specified, but not present in the source tree" fi @@ -153,14 +153,25 @@ do_kernel_metadata() { patches="${@" ".join(find_patches(d,''))}" feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}" - # a quick check to make sure we don't have duplicate defconfigs - # If there's a defconfig in the SRC_URI, did we also have one from - # the KBUILD_DEFCONFIG processing above ? - if [ -n "$sccs" ]; then - # we did have a defconfig from above. remove any that might be in the src_uri - sccs_from_src_uri=$(echo $sccs_from_src_uri | awk '{ if ($0!="defconfig") { print $0 } }' RS=' ') + # a quick check to make sure we don't have duplicate defconfigs If + # there's a defconfig in the SRC_URI, did we also have one from the + # KBUILD_DEFCONFIG processing above ? + src_uri_defconfig=$(echo $sccs_from_src_uri | awk '(match($0, "defconfig") != 0) { print $0 }' RS=' ') + # drop and defconfig's from the src_uri variable, we captured it just above here if it existed + sccs_from_src_uri=$(echo $sccs_from_src_uri | awk '(match($0, "defconfig") == 0) { print $0 }' RS=' ') + + if [ -n "$in_tree_defconfig" ]; then + sccs_defconfig=$in_tree_defconfig + if [ -n "$src_uri_defconfig" ]; then + bbwarn "[NOTE]: defconfig was supplied both via KBUILD_DEFCONFIG and SRC_URI. Dropping SRC_URI defconfig" + fi + else + # if we didn't have an in-tree one, make our defconfig the one + # from the src_uri. Note: there may not have been one from the + # src_uri, so this can be an empty variable. + sccs_defconfig=$src_uri_defconfig fi - sccs="$sccs $sccs_from_src_uri" + sccs="$sccs_from_src_uri" # check for feature directories/repos/branches that were part of the # SRC_URI. If they were supplied, we convert them into include directives @@ -187,11 +198,10 @@ do_kernel_metadata() { # expand kernel features into their full path equivalents bsp_definition=$(spp ${includes} --find -DKMACHINE=${KMACHINE} -DKTYPE=${LINUX_KERNEL_TYPE}) if [ -z "$bsp_definition" ]; then - echo "$sccs" | grep -q defconfig - if [ $? -ne 0 ]; then + if [ -z "$sccs_defconfig" ]; then bbfatal_log "Could not locate BSP definition for ${KMACHINE}/${LINUX_KERNEL_TYPE} and no defconfig was provided" fi - + else # if the bsp definition has "define KMETA_EXTERNAL_BSP t", # then we need to set a flag that will instruct the next # steps to use the BSP as both configuration and patches. @@ -206,7 +216,7 @@ do_kernel_metadata() { elements="`echo -n ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES}`" if [ -n "${elements}" ]; then echo "${bsp_definition}" > ${S}/${meta_dir}/bsp_definition - scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES} + scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} $sccs_defconfig $bsp_definition $sccs $patches ${KERNEL_FEATURES} if [ $? -ne 0 ]; then bbfatal_log "Could not generate configuration queue for ${KMACHINE}." fi diff --git a/poky/meta/classes/kernel.bbclass b/poky/meta/classes/kernel.bbclass index 20a0135fc..cf43a5d60 100644 --- a/poky/meta/classes/kernel.bbclass +++ b/poky/meta/classes/kernel.bbclass @@ -4,10 +4,12 @@ KERNEL_PACKAGE_NAME ??= "kernel" KERNEL_DEPLOYSUBDIR ??= "${@ "" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else d.getVar("KERNEL_PACKAGE_NAME") }" PROVIDES += "${@ "virtual/kernel" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else "" }" -DEPENDS += "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc kmod-native bc-native lzop-native bison-native" +DEPENDS += "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}gcc kmod-native bc-native bison-native" +DEPENDS += "${@bb.utils.contains("INITRAMFS_FSTYPES", "cpio.lzo", "lzop-native", "", d)}" +DEPENDS += "${@bb.utils.contains("INITRAMFS_FSTYPES", "cpio.lz4", "lz4-native", "", d)}" PACKAGE_WRITE_DEPS += "depmodwrapper-cross" -do_deploy[depends] += "depmodwrapper-cross:do_populate_sysroot" +do_deploy[depends] += "depmodwrapper-cross:do_populate_sysroot gzip-native:do_populate_sysroot" do_clean[depends] += "make-mod-scripts:do_clean" CVE_PRODUCT ?= "linux_kernel" @@ -94,6 +96,25 @@ python __anonymous () { d.appendVar('RDEPENDS_%s-image' % kname, ' %s-image-%s' % (kname, typelower)) d.setVar('PKG_%s-image-%s' % (kname,typelower), '%s-image-%s-${KERNEL_VERSION_PKG_NAME}' % (kname, typelower)) d.setVar('ALLOW_EMPTY_%s-image-%s' % (kname, typelower), '1') + d.setVar('pkg_postinst_%s-image-%s' % (kname,typelower), """set +e +if [ -n "$D" ]; then + ln -sf %s-${KERNEL_VERSION} $D/${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1 +else + ln -sf %s-${KERNEL_VERSION} ${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Filesystem on ${KERNEL_IMAGEDEST}/ doesn't support symlinks, falling back to copied image (%s)." + install -m 0644 ${KERNEL_IMAGEDEST}/%s-${KERNEL_VERSION} ${KERNEL_IMAGEDEST}/%s + fi +fi +set -e +""" % (type, type, type, type, type, type, type)) + d.setVar('pkg_postrm_%s-image-%s' % (kname,typelower), """set +e +if [ -f "${KERNEL_IMAGEDEST}/%s" -o -L "${KERNEL_IMAGEDEST}/%s" ]; then + rm -f ${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1 +fi +set -e +""" % (type, type, type)) + image = d.getVar('INITRAMFS_IMAGE') # If the INTIRAMFS_IMAGE is set but the INITRAMFS_IMAGE_BUNDLE is set to 0, @@ -210,7 +231,7 @@ copy_initramfs() { ;; *lz4) echo "lz4 decompressing image" - lz4 -df ${B}/usr/${INITRAMFS_IMAGE_NAME}.$img + lz4 -df ${B}/usr/${INITRAMFS_IMAGE_NAME}.$img ${B}/usr/${INITRAMFS_IMAGE_NAME}.cpio break ;; *lzo) @@ -385,9 +406,6 @@ kernel_do_install() { install -d ${D}/boot for imageType in ${KERNEL_IMAGETYPES} ; do install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType} ${D}/${KERNEL_IMAGEDEST}/${imageType}-${KERNEL_VERSION} - if [ "${KERNEL_PACKAGE_NAME}" = "kernel" ]; then - ln -sf ${imageType}-${KERNEL_VERSION} ${D}/${KERNEL_IMAGEDEST}/${imageType} - fi done install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION} install -m 0644 .config ${D}/boot/config-${KERNEL_VERSION} @@ -463,7 +481,7 @@ do_shared_workdir () { # Copy files required for module builds cp System.map $kerneldir/System.map-${KERNEL_VERSION} - cp Module.symvers $kerneldir/ + [ -e Module.symvers ] && cp Module.symvers $kerneldir/ cp .config $kerneldir/ mkdir -p $kerneldir/include/config cp include/config/kernel.release $kerneldir/include/config/kernel.release @@ -729,8 +747,6 @@ kernel_do_deploy() { done fi } -do_deploy[cleandirs] = "${DEPLOYDIR}" -do_deploy[dirs] = "${DEPLOYDIR} ${B}" do_deploy[prefuncs] += "package_get_auto_pr" addtask deploy after do_populate_sysroot do_packagedata diff --git a/poky/meta/classes/populate_sdk_ext.bbclass b/poky/meta/classes/populate_sdk_ext.bbclass index 9f26cfc13..fd0da16e7 100644 --- a/poky/meta/classes/populate_sdk_ext.bbclass +++ b/poky/meta/classes/populate_sdk_ext.bbclass @@ -676,7 +676,7 @@ sdk_ext_postinst() { # current working directory when first ran, nor will it set $1 when # sourcing a script. That is why this has to look so ugly. LOGFILE="$target_sdk_dir/preparing_build_system.log" - sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && python $target_sdk_dir/ext-sdk-prepare.py $LOGFILE '${SDK_INSTALL_TARGETS}'" || { echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; } + sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && python3 $target_sdk_dir/ext-sdk-prepare.py $LOGFILE '${SDK_INSTALL_TARGETS}'" || { echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; } fi if [ -e $target_sdk_dir/ext-sdk-prepare.py ]; then rm $target_sdk_dir/ext-sdk-prepare.py diff --git a/poky/meta/classes/rootfs-postcommands.bbclass b/poky/meta/classes/rootfs-postcommands.bbclass index 2f171836f..c43b9a982 100644 --- a/poky/meta/classes/rootfs-postcommands.bbclass +++ b/poky/meta/classes/rootfs-postcommands.bbclass @@ -308,12 +308,16 @@ rootfs_check_host_user_contaminated () { HOST_USER_UID="$(PSEUDO_UNLOAD=1 id -u)" HOST_USER_GID="$(PSEUDO_UNLOAD=1 id -g)" - find "${IMAGE_ROOTFS}" -wholename "${IMAGE_ROOTFS}/home" -prune \ - -user "$HOST_USER_UID" -o -group "$HOST_USER_GID" >"$contaminated" + find "${IMAGE_ROOTFS}" -path "${IMAGE_ROOTFS}/home" -prune -o \ + -user "$HOST_USER_UID" -print -o -group "$HOST_USER_GID" -print >"$contaminated" + + sed -e "s,${IMAGE_ROOTFS},," $contaminated | while read line; do + bbwarn "Path in the rootfs is owned by the same user or group as the user running bitbake:" $line `ls -lan ${IMAGE_ROOTFS}/$line` + done if [ -s "$contaminated" ]; then - echo "WARNING: Paths in the rootfs are owned by the same user or group as the user running bitbake. See the logfile for the specific paths." - cat "$contaminated" | sed "s,^, ," + bbwarn "/etc/passwd:" `cat ${IMAGE_ROOTFS}/etc/passwd` + bbwarn "/etc/group:" `cat ${IMAGE_ROOTFS}/etc/group` fi } diff --git a/poky/meta/classes/spdx.bbclass b/poky/meta/classes/spdx.bbclass deleted file mode 100644 index fb78e274a..000000000 --- a/poky/meta/classes/spdx.bbclass +++ /dev/null @@ -1,360 +0,0 @@ -# This class integrates real-time license scanning, generation of SPDX standard -# output and verifiying license info during the building process. -# It is a combination of efforts from the OE-Core, SPDX and Fossology projects. -# -# For more information on FOSSology: -# http://www.fossology.org -# -# For more information on FOSSologySPDX commandline: -# https://github.com/spdx-tools/fossology-spdx/wiki/Fossology-SPDX-Web-API -# -# For more information on SPDX: -# http://www.spdx.org -# - -# SPDX file will be output to the path which is defined as[SPDX_MANIFEST_DIR] -# in ./meta/conf/licenses.conf. - -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 - - info = {} - info['workdir'] = d.getVar('WORKDIR') - info['sourcedir'] = d.getVar('SPDX_S') - info['pn'] = d.getVar('PN') - info['pv'] = d.getVar('PV') - info['spdx_version'] = d.getVar('SPDX_VERSION') - info['data_license'] = d.getVar('DATA_LICENSE') - - sstatedir = d.getVar('SPDXSSTATEDIR') - sstatefile = os.path.join(sstatedir, info['pn'] + info['pv'] + ".spdx") - - manifest_dir = d.getVar('SPDX_MANIFEST_DIR') - info['outfile'] = os.path.join(manifest_dir, info['pn'] + ".spdx" ) - - info['spdx_temp_dir'] = d.getVar('SPDX_TEMP_DIR') - 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']) - 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']) - 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") - cache_cur = True - else: - local_file_info = setup_foss_scan(info, True, cached_spdx['Files']) - else: - local_file_info = setup_foss_scan(info, False, None) - - if cache_cur: - spdx_file_info = cached_spdx['Files'] - foss_package_info = cached_spdx['Package'] - foss_license_info = cached_spdx['Licenses'] - else: - ## setup fossology command - foss_server = d.getVar('FOSS_SERVER') - foss_flags = d.getVar('FOSS_WGET_FLAGS') - foss_full_spdx = d.getVar('FOSS_FULL_SPDX') == "true" or False - foss_command = "wget %s --post-file=%s %s"\ - % (foss_flags, info['tar_file'], foss_server) - - foss_result = run_fossology(foss_command, foss_full_spdx) - if foss_result is not None: - (foss_package_info, foss_file_info, foss_license_info) = foss_result - spdx_file_info = create_spdx_doc(local_file_info, foss_file_info) - ## write to cache - write_cached_spdx(sstatefile, cur_ver_code, foss_package_info, - spdx_file_info, foss_license_info) - else: - bb.error("SPDX: Could not communicate with FOSSology server. Command was: " + foss_command) - return - - ## Get document and package level information - spdx_header_info = get_header_info(info, cur_ver_code, foss_package_info) - - ## CREATE MANIFEST - create_manifest(info, spdx_header_info, spdx_file_info, foss_license_info) - - ## clean up the temp stuff - shutil.rmtree(info['spdx_temp_dir'], ignore_errors=True) - if os.path.exists(info['tar_file']): - remove_file(info['tar_file']) -} -addtask spdx after do_patch before do_configure - -def create_manifest(info, header, files, licenses): - import codecs - with codecs.open(info['outfile'], mode='w', encoding='utf-8') as f: - # Write header - f.write(header + '\n') - - # Write file data - for chksum, block in files.iteritems(): - f.write("FileName: " + block['FileName'] + '\n') - for key, value in block.iteritems(): - if not key == 'FileName': - f.write(key + ": " + value + '\n') - f.write('\n') - - # Write license data - for id, block in licenses.iteritems(): - f.write("LicenseID: " + id + '\n') - for key, value in block.iteritems(): - f.write(key + ": " + value + '\n') - f.write('\n') - -def get_cached_spdx(sstatefile): - import json - import codecs - cached_spdx_info = {} - with codecs.open(sstatefile, mode='r', encoding='utf-8') as f: - try: - cached_spdx_info = json.load(f) - except ValueError as e: - cached_spdx_info = None - return cached_spdx_info - -def write_cached_spdx(sstatefile, ver_code, package_info, files, license_info): - import json - import codecs - spdx_doc = {} - spdx_doc['PackageVerificationCode'] = ver_code - spdx_doc['Files'] = {} - spdx_doc['Files'] = files - spdx_doc['Package'] = {} - spdx_doc['Package'] = package_info - spdx_doc['Licenses'] = {} - spdx_doc['Licenses'] = license_info - with codecs.open(sstatefile, mode='w', encoding='utf-8') as f: - f.write(json.dumps(spdx_doc)) - -def setup_foss_scan(info, cache, cached_files): - import errno, shutil - import tarfile - file_info = {} - cache_dict = {} - - for f_dir, f in list_files(info['sourcedir']): - full_path = os.path.join(f_dir, f) - abs_path = os.path.join(info['sourcedir'], full_path) - dest_dir = os.path.join(info['spdx_temp_dir'], f_dir) - dest_path = os.path.join(info['spdx_temp_dir'], full_path) - - checksum = hash_file(abs_path) - if not checksum is None: - file_info[checksum] = {} - ## retain cache information if it exists - if cache and checksum in cached_files: - file_info[checksum] = cached_files[checksum] - ## have the file included in what's sent to the FOSSology server - else: - file_info[checksum]['FileName'] = full_path - try: - bb.utils.mkdirhier(dest_dir) - shutil.copyfile(abs_path, dest_path) - except OSError as e: - bb.warn("SPDX: mkdirhier failed: " + str(e)) - except shutil.Error as e: - bb.warn("SPDX: copyfile failed: " + str(e)) - except IOError as e: - bb.warn("SPDX: copyfile failed: " + str(e)) - else: - bb.warn("SPDX: Could not get checksum for file: " + f) - - with tarfile.open(info['tar_file'], "w:gz") as tar: - tar.add(info['spdx_temp_dir'], arcname=os.path.basename(info['spdx_temp_dir'])) - - return file_info - -def remove_file(file_name): - try: - os.remove(file_name) - except OSError as e: - pass - -def list_files(dir): - for root, subFolders, files in os.walk(dir): - for f in files: - rel_root = os.path.relpath(root, dir) - yield rel_root, f - return - -def hash_file(file_name): - from bb.utils import sha1_file - return sha1_file(file_name) - -def hash_string(data): - import hashlib - sha1 = hashlib.sha1() - sha1.update(data.encode('utf-8')) - return sha1.hexdigest() - -def run_fossology(foss_command, full_spdx): - import string, re - import subprocess - - try: - foss_output = subprocess.check_output(foss_command.split(), - stderr=subprocess.STDOUT).decode('utf-8') - except subprocess.CalledProcessError as e: - return None - - foss_output = foss_output.replace('\r', '') - - # Package info - package_info = {} - if full_spdx: - # All mandatory, only one occurrence - package_info['PackageCopyrightText'] = re.findall('PackageCopyrightText: (.*?)', foss_output, re.S)[0] - package_info['PackageLicenseDeclared'] = re.findall('PackageLicenseDeclared: (.*)', foss_output)[0] - package_info['PackageLicenseConcluded'] = re.findall('PackageLicenseConcluded: (.*)', foss_output)[0] - # These may be more than one - package_info['PackageLicenseInfoFromFiles'] = re.findall('PackageLicenseInfoFromFiles: (.*)', foss_output) - else: - DEFAULT = "NOASSERTION" - package_info['PackageCopyrightText'] = "" + DEFAULT + "" - package_info['PackageLicenseDeclared'] = DEFAULT - package_info['PackageLicenseConcluded'] = DEFAULT - package_info['PackageLicenseInfoFromFiles'] = [] - - # File info - file_info = {} - records = [] - # FileName is also in PackageFileName, so we match on FileType as well. - records = re.findall('FileName:.*?FileType:.*?', foss_output, re.S) - for rec in records: - chksum = re.findall('FileChecksum: SHA1: (.*)\n', rec)[0] - file_info[chksum] = {} - file_info[chksum]['FileCopyrightText'] = re.findall('FileCopyrightText: ' - + '(.*?)', rec, re.S )[0] - fields = ['FileName', 'FileType', 'LicenseConcluded', 'LicenseInfoInFile'] - for field in fields: - file_info[chksum][field] = re.findall(field + ': (.*)', rec)[0] - - # Licenses - license_info = {} - licenses = [] - licenses = re.findall('LicenseID:.*?LicenseName:.*?\n', foss_output, re.S) - for lic in licenses: - license_id = re.findall('LicenseID: (.*)\n', lic)[0] - license_info[license_id] = {} - license_info[license_id]['ExtractedText'] = re.findall('ExtractedText: (.*?)', lic, re.S)[0] - license_info[license_id]['LicenseName'] = re.findall('LicenseName: (.*)', lic)[0] - - return (package_info, file_info, license_info) - -def create_spdx_doc(file_info, scanned_files): - import json - ## push foss changes back into cache - for chksum, lic_info in scanned_files.iteritems(): - if chksum in file_info: - file_info[chksum]['FileType'] = lic_info['FileType'] - file_info[chksum]['FileChecksum: SHA1'] = chksum - file_info[chksum]['LicenseInfoInFile'] = lic_info['LicenseInfoInFile'] - file_info[chksum]['LicenseConcluded'] = lic_info['LicenseConcluded'] - file_info[chksum]['FileCopyrightText'] = lic_info['FileCopyrightText'] - else: - bb.warn("SPDX: " + lic_info['FileName'] + " : " + chksum - + " : is not in the local file info: " - + json.dumps(lic_info, indent=1)) - return file_info - -def get_ver_code(dirname): - chksums = [] - for f_dir, f in list_files(dirname): - path = os.path.join(dirname, f_dir, f) - hash = hash_file(path) - if not hash is None: - chksums.append(hash) - else: - bb.warn("SPDX: Could not hash file: " + path) - ver_code_string = ''.join(chksums).lower() - ver_code = hash_string(ver_code_string) - return ver_code - -def get_header_info(info, spdx_verification_code, package_info): - """ - Put together the header SPDX information. - Eventually this needs to become a lot less - of a hardcoded thing. - """ - from datetime import datetime - import os - head = [] - DEFAULT = "NOASSERTION" - - package_checksum = hash_file(info['tar_file']) - if package_checksum is None: - package_checksum = DEFAULT - - ## document level information - head.append("## SPDX Document Information") - head.append("SPDXVersion: " + info['spdx_version']) - head.append("DataLicense: " + info['data_license']) - head.append("DocumentComment: SPDX for " - + info['pn'] + " version " + info['pv'] + "") - head.append("") - - ## Creator information - ## Note that this does not give time in UTC. - now = datetime.now().strftime('%Y-%m-%dT%H:%M:%SZ') - head.append("## Creation Information") - ## Tools are supposed to have a version, but FOSSology+SPDX provides none. - head.append("Creator: Tool: FOSSology+SPDX") - head.append("Created: " + now) - head.append("CreatorComment: UNO") - head.append("") - - ## package level information - head.append("## Package Information") - head.append("PackageName: " + info['pn']) - head.append("PackageVersion: " + info['pv']) - head.append("PackageFileName: " + os.path.basename(info['tar_file'])) - head.append("PackageSupplier: Person:" + DEFAULT) - head.append("PackageDownloadLocation: " + DEFAULT) - head.append("PackageSummary: ") - head.append("PackageOriginator: Person:" + DEFAULT) - head.append("PackageChecksum: SHA1: " + package_checksum) - head.append("PackageVerificationCode: " + spdx_verification_code) - head.append("PackageDescription: " + info['pn'] - + " version " + info['pv'] + "") - head.append("") - head.append("PackageCopyrightText: " - + package_info['PackageCopyrightText']) - head.append("") - head.append("PackageLicenseDeclared: " - + package_info['PackageLicenseDeclared']) - head.append("PackageLicenseConcluded: " - + package_info['PackageLicenseConcluded']) - - for licref in package_info['PackageLicenseInfoFromFiles']: - head.append("PackageLicenseInfoFromFiles: " + licref) - head.append("") - - ## header for file level - head.append("## File Information") - head.append("") - - return '\n'.join(head) diff --git a/poky/meta/classes/uboot-sign.bbclass b/poky/meta/classes/uboot-sign.bbclass index 982ed46d0..713196df4 100644 --- a/poky/meta/classes/uboot-sign.bbclass +++ b/poky/meta/classes/uboot-sign.bbclass @@ -117,15 +117,16 @@ do_install_append() { fi } +do_deploy_prepend_pn-${UBOOT_PN}() { + if [ "${UBOOT_SIGN_ENABLE}" = "1" -a -n "${UBOOT_DTB_BINARY}" ]; then + concat_dtb + fi +} + python () { if d.getVar('UBOOT_SIGN_ENABLE') == '1' and d.getVar('PN') == d.getVar('UBOOT_PN') and d.getVar('UBOOT_DTB_BINARY'): kernel_pn = d.getVar('PREFERRED_PROVIDER_virtual/kernel') # Make "bitbake u-boot -cdeploy" deploys the signed u-boot.dtb d.appendVarFlag('do_deploy', 'depends', ' %s:do_deploy' % kernel_pn) - - # kernerl's do_deploy is a litle special, so we can't use - # do_deploy_append, otherwise it would override - # kernel_do_deploy. - d.appendVarFlag('do_deploy', 'prefuncs', ' concat_dtb') } diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf index 89717a713..353caacef 100644 --- a/poky/meta/conf/bitbake.conf +++ b/poky/meta/conf/bitbake.conf @@ -252,7 +252,7 @@ This package contains symbolic links, header files, and \ related items necessary for software development." SUMMARY_${PN}-staticdev ?= "${SUMMARY} - Development files (Static Libraries)" -DESCRIPTION_${PN}-staticdev?= "${DESCRIPTION} \ +DESCRIPTION_${PN}-staticdev ?= "${DESCRIPTION} \ This package contains static libraries for software development." SUMMARY_${PN}-doc ?= "${SUMMARY} - Documentation files" @@ -267,7 +267,7 @@ HOMEPAGE = "" # Ensure that -dev packages recommend the corresponding -dev packages of their # deps, and the same for -dbg. -DEPCHAIN_PRE = "" +DEPCHAIN_PRE = "" DEPCHAIN_POST = "-dev -dbg" DEPENDS = "" diff --git a/poky/meta/conf/machine/include/riscv/qemuriscv.inc b/poky/meta/conf/machine/include/riscv/qemuriscv.inc index a42346f36..759c8a196 100644 --- a/poky/meta/conf/machine/include/riscv/qemuriscv.inc +++ b/poky/meta/conf/machine/include/riscv/qemuriscv.inc @@ -18,7 +18,7 @@ WKS_FILE ?= "qemuriscv.wks" MACHINE_EXTRA_RRECOMMENDS += " kernel-modules" EXTRA_IMAGEDEPENDS += "opensbi" -RISCV_SBI_PLAT ?= "qemu/virt" +RISCV_SBI_PLAT ?= "generic" RISCV_SBI_PAYLOAD ?= "${KERNEL_IMAGETYPE}-${MACHINE}.bin" UBOOT_ENTRYPOINT_riscv32 = "0x80400000" diff --git a/poky/meta/files/common-licenses/BSD-2-Clause-Patent b/poky/meta/files/common-licenses/BSD-2-Clause-Patent new file mode 100644 index 000000000..1184c0295 --- /dev/null +++ b/poky/meta/files/common-licenses/BSD-2-Clause-Patent @@ -0,0 +1,47 @@ +Copyright (c) + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +Subject to the terms and conditions of this license, each copyright holder +and contributor hereby grants to those receiving rights under this license +a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable +(except for failure to satisfy the conditions of this license) patent license +to make, have made, use, offer to sell, sell, import, and otherwise transfer +this software, where such license applies only to those patent claims, already +acquired or hereafter acquired, licensable by such copyright holder or contributor +that are necessarily infringed by: + +(a) their Contribution(s) (the licensed copyrights of copyright holders and +non-copyrightable additions of contributors, in source or binary form) alone; +or + +(b) combination of their Contribution(s) with the work of authorship to which +such Contribution(s) was added by such copyright holder or contributor, if, +at the time the Contribution is added, such addition causes such combination +to be necessarily infringed. The patent license shall not apply to any other +combinations which include the Contribution. + +Except as expressly stated above, no rights or licenses from any copyright +holder or contributor is granted under this license, whether expressly, by +implication, estoppel or otherwise. + +DISCLAIMER + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/poky/meta/files/common-licenses/BSD-2-Clause-Patent.txt b/poky/meta/files/common-licenses/BSD-2-Clause-Patent.txt deleted file mode 100644 index 1184c0295..000000000 --- a/poky/meta/files/common-licenses/BSD-2-Clause-Patent.txt +++ /dev/null @@ -1,47 +0,0 @@ -Copyright (c) - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -Subject to the terms and conditions of this license, each copyright holder -and contributor hereby grants to those receiving rights under this license -a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable -(except for failure to satisfy the conditions of this license) patent license -to make, have made, use, offer to sell, sell, import, and otherwise transfer -this software, where such license applies only to those patent claims, already -acquired or hereafter acquired, licensable by such copyright holder or contributor -that are necessarily infringed by: - -(a) their Contribution(s) (the licensed copyrights of copyright holders and -non-copyrightable additions of contributors, in source or binary form) alone; -or - -(b) combination of their Contribution(s) with the work of authorship to which -such Contribution(s) was added by such copyright holder or contributor, if, -at the time the Contribution is added, such addition causes such combination -to be necessarily infringed. The patent license shall not apply to any other -combinations which include the Contribution. - -Except as expressly stated above, no rights or licenses from any copyright -holder or contributor is granted under this license, whether expressly, by -implication, estoppel or otherwise. - -DISCLAIMER - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/poky/meta/lib/oe/rootfs.py b/poky/meta/lib/oe/rootfs.py index a0ac33ada..0e05f1f75 100644 --- a/poky/meta/lib/oe/rootfs.py +++ b/poky/meta/lib/oe/rootfs.py @@ -297,9 +297,9 @@ class Rootfs(object, metaclass=ABCMeta): def _run_ldconfig(self): if self.d.getVar('LDCONFIGDEPEND'): - bb.note("Executing: ldconfig -r " + self.image_rootfs + " -c new -v") + bb.note("Executing: ldconfig -r " + self.image_rootfs + " -c new -v -X") self._exec_shell_cmd(['ldconfig', '-r', self.image_rootfs, '-c', - 'new', '-v']) + 'new', '-v', '-X']) def _check_for_kernel_modules(self, modules_dir): for root, dirs, files in os.walk(modules_dir, topdown=True): diff --git a/poky/meta/lib/oeqa/core/loader.py b/poky/meta/lib/oeqa/core/loader.py index 0d7970d49..11978213b 100644 --- a/poky/meta/lib/oeqa/core/loader.py +++ b/poky/meta/lib/oeqa/core/loader.py @@ -46,7 +46,7 @@ def _built_modules_dict(modules): for module in modules: # Assumption: package and module names do not contain upper case # characters, whereas class names do - m = re.match(r'^(\w+)(?:\.(\w[^.]*)(?:\.([^.]+))?)?$', module, flags=re.ASCII) + m = re.match(r'^([0-9a-z_.]+)(?:\.(\w[^.]*)(?:\.([^.]+))?)?$', module, flags=re.ASCII) if not m: continue diff --git a/poky/meta/lib/oeqa/core/utils/concurrencytest.py b/poky/meta/lib/oeqa/core/utils/concurrencytest.py index 01c39830f..b2eb68fb0 100644 --- a/poky/meta/lib/oeqa/core/utils/concurrencytest.py +++ b/poky/meta/lib/oeqa/core/utils/concurrencytest.py @@ -183,10 +183,11 @@ class dummybuf(object): # class ConcurrentTestSuite(unittest.TestSuite): - def __init__(self, suite, processes, setupfunc): + def __init__(self, suite, processes, setupfunc, removefunc): super(ConcurrentTestSuite, self).__init__([suite]) self.processes = processes self.setupfunc = setupfunc + self.removefunc = removefunc def run(self, result): tests, totaltests = fork_for_tests(self.processes, self) @@ -237,22 +238,6 @@ class ConcurrentTestSuite(unittest.TestSuite): finally: queue.put(test) -def removebuilddir(d): - delay = 5 - while delay and os.path.exists(d + "/bitbake.lock"): - time.sleep(1) - delay = delay - 1 - # Deleting these directories takes a lot of time, use autobuilder - # clobberdir if its available - clobberdir = os.path.expanduser("~/yocto-autobuilder-helper/janitor/clobberdir") - if os.path.exists(clobberdir): - try: - subprocess.check_call([clobberdir, d]) - return - except subprocess.CalledProcessError: - pass - bb.utils.prunedir(d, ionice=True) - def fork_for_tests(concurrency_num, suite): result = [] if 'BUILDDIR' in os.environ: @@ -297,7 +282,7 @@ def fork_for_tests(concurrency_num, suite): if ourpid != os.getpid(): os._exit(0) if newbuilddir and unittest_result.wasSuccessful(): - removebuilddir(newbuilddir) + suite.removefunc(newbuilddir) except: # Don't do anything with process children if ourpid != os.getpid(): @@ -313,7 +298,7 @@ def fork_for_tests(concurrency_num, suite): sys.stderr.write(traceback.format_exc()) finally: if newbuilddir: - removebuilddir(newbuilddir) + suite.removefunc(newbuilddir) stream.flush() os._exit(1) stream.flush() diff --git a/poky/meta/lib/oeqa/runtime/cases/logrotate.py b/poky/meta/lib/oeqa/runtime/cases/logrotate.py index 3938e9199..a4efcd07c 100644 --- a/poky/meta/lib/oeqa/runtime/cases/logrotate.py +++ b/poky/meta/lib/oeqa/runtime/cases/logrotate.py @@ -37,10 +37,6 @@ class LogrotateTest(OERuntimeTestCase): msg = ('Could not write to /tmp/logrotate-test.conf') self.assertEqual(status, 0, msg = msg) - status, output = self.target.run('echo "/var/log/logrotate_test {\\n missingok \\n monthly \\n rotate 1" > /etc/logrotate.d/logrotate_test') - msg = ('Could not write to /etc/logrotate.d/logrotate_test') - self.assertEqual(status, 0, msg = msg) - # If logrotate fails to rotate the log, view the verbose output of logrotate to see what prevented it _, logrotate_output = self.target.run('logrotate -vf /tmp/logrotate-test.conf') status, _ = self.target.run('find $HOME/logrotate_dir -type f | grep wtmp.1') diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py index 7d8f89504..b383ed9c5 100644 --- a/poky/meta/lib/oeqa/selftest/cases/devtool.py +++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py @@ -1500,7 +1500,11 @@ class DevtoolUpgradeTests(DevtoolBase): dstdir = os.path.join(dstdir, p) if not os.path.exists(dstdir): os.makedirs(dstdir) - self.track_for_cleanup(dstdir) + if p == "lib": + # Can race with other tests + self.add_command_to_tearDown('rmdir --ignore-fail-on-non-empty %s' % dstdir) + else: + self.track_for_cleanup(dstdir) dstfile = os.path.join(dstdir, os.path.basename(srcfile)) if srcfile != dstfile: shutil.copy(srcfile, dstfile) diff --git a/poky/meta/lib/oeqa/selftest/cases/oescripts.py b/poky/meta/lib/oeqa/selftest/cases/oescripts.py index 2f18d8f29..726daff7c 100644 --- a/poky/meta/lib/oeqa/selftest/cases/oescripts.py +++ b/poky/meta/lib/oeqa/selftest/cases/oescripts.py @@ -133,7 +133,7 @@ class OEListPackageconfigTests(OEScriptTests): def check_endlines(self, results, expected_endlines): for line in results.output.splitlines(): for el in expected_endlines: - if line == el: + if line.split() == el.split(): expected_endlines.remove(el) break @@ -177,7 +177,7 @@ class OEListPackageconfigTests(OEScriptTests): self.check_endlines(results, expected_endlines) - def test_packageconfig_flags_optiins_preferred_only(self): + def test_packageconfig_flags_options_preferred_only(self): results = runCmd('%s/contrib/list-packageconfig-flags.py -p' % self.scripts_dir) expected_endlines = [] expected_endlines.append("RECIPE NAME PACKAGECONFIG FLAGS") diff --git a/poky/meta/lib/oeqa/selftest/cases/recipetool.py b/poky/meta/lib/oeqa/selftest/cases/recipetool.py index 6bfe8f177..c2ade2543 100644 --- a/poky/meta/lib/oeqa/selftest/cases/recipetool.py +++ b/poky/meta/lib/oeqa/selftest/cases/recipetool.py @@ -534,7 +534,11 @@ class RecipetoolTests(RecipetoolBase): dstdir = os.path.join(dstdir, p) if not os.path.exists(dstdir): os.makedirs(dstdir) - self.track_for_cleanup(dstdir) + if p == "lib": + # Can race with other tests + self.add_command_to_tearDown('rmdir --ignore-fail-on-non-empty %s' % dstdir) + else: + self.track_for_cleanup(dstdir) dstfile = os.path.join(dstdir, os.path.basename(srcfile)) if srcfile != dstfile: shutil.copy(srcfile, dstfile) diff --git a/poky/meta/lib/oeqa/selftest/context.py b/poky/meta/lib/oeqa/selftest/context.py index 494e9dbd1..23f7d71bd 100644 --- a/poky/meta/lib/oeqa/selftest/context.py +++ b/poky/meta/lib/oeqa/selftest/context.py @@ -22,6 +22,37 @@ from oeqa.core.exception import OEQAPreRun, OEQATestNotFound from oeqa.utils.commands import runCmd, get_bb_vars, get_test_layer +class NonConcurrentTestSuite(unittest.TestSuite): + def __init__(self, suite, processes, setupfunc, removefunc): + super().__init__([suite]) + self.processes = processes + self.suite = suite + self.setupfunc = setupfunc + self.removefunc = removefunc + + def run(self, result): + (builddir, newbuilddir) = self.setupfunc("-st", None, self.suite) + ret = super().run(result) + os.chdir(builddir) + if newbuilddir and ret.wasSuccessful(): + self.removefunc(newbuilddir) + +def removebuilddir(d): + delay = 5 + while delay and os.path.exists(d + "/bitbake.lock"): + time.sleep(1) + delay = delay - 1 + # Deleting these directories takes a lot of time, use autobuilder + # clobberdir if its available + clobberdir = os.path.expanduser("~/yocto-autobuilder-helper/janitor/clobberdir") + if os.path.exists(clobberdir): + try: + subprocess.check_call([clobberdir, d]) + return + except subprocess.CalledProcessError: + pass + bb.utils.prunedir(d, ionice=True) + class OESelftestTestContext(OETestContext): def __init__(self, td=None, logger=None, machines=None, config_paths=None, newbuilddir=None): super(OESelftestTestContext, self).__init__(td, logger) @@ -86,10 +117,9 @@ class OESelftestTestContext(OETestContext): if processes: from oeqa.core.utils.concurrencytest import ConcurrentTestSuite - return ConcurrentTestSuite(suites, processes, self.setup_builddir) + return ConcurrentTestSuite(suites, processes, self.setup_builddir, removebuilddir) else: - self.setup_builddir("-st", None, suites) - return suites + return NonConcurrentTestSuite(suites, processes, self.setup_builddir, removebuilddir) def runTests(self, processes=None, machine=None, skips=[]): if machine: diff --git a/poky/meta/lib/oeqa/targetcontrol.py b/poky/meta/lib/oeqa/targetcontrol.py index 7bbba6016..19f5a4ea7 100644 --- a/poky/meta/lib/oeqa/targetcontrol.py +++ b/poky/meta/lib/oeqa/targetcontrol.py @@ -187,6 +187,7 @@ class QemuTarget(BaseTarget): except: pass self.logger.removeHandler(self.loggerhandler) + self.loggerhandler.close() self.connection = None self.ip = None self.server_ip = None diff --git a/poky/meta/recipes-bsp/opensbi/opensbi_0.6.bb b/poky/meta/recipes-bsp/opensbi/opensbi_0.6.bb deleted file mode 100644 index 56f2d4b91..000000000 --- a/poky/meta/recipes-bsp/opensbi/opensbi_0.6.bb +++ /dev/null @@ -1,48 +0,0 @@ -SUMMARY = "RISC-V Open Source Supervisor Binary Interface (OpenSBI)" -DESCRIPTION = "OpenSBI aims to provide an open-source and extensible implementation of the RISC-V SBI specification for a platform specific firmware (M-mode) and a general purpose OS, hypervisor or bootloader (S-mode or HS-mode). OpenSBI implementation can be easily extended by RISC-V platform or System-on-Chip vendors to fit a particular hadware configuration." -LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=42dd9555eb177f35150cf9aa240b61e5" - -require opensbi-payloads.inc - -inherit autotools-brokensep deploy - -SRCREV = "ac5e821d50be631f26274765a59bc1b444ffd862" -SRC_URI = "git://github.com/riscv/opensbi.git \ - file://0001-Makefile-Don-t-specify-mabi-or-march.patch \ - " - -S = "${WORKDIR}/git" - -EXTRA_OEMAKE += "PLATFORM=${RISCV_SBI_PLAT} I=${D}" -# If RISCV_SBI_PAYLOAD is set then include it as a payload -EXTRA_OEMAKE_append = " ${@riscv_get_extra_oemake_image(d)}" - -# Required if specifying a custom payload -do_compile[depends] += "${@riscv_get_do_compile_depends(d)}" - -do_install_append() { - # In the future these might be required as a dependency for other packages. - # At the moment just delete them to avoid warnings - rm -r ${D}/include - rm -r ${D}/platform/${RISCV_SBI_PLAT}/lib - rm -r ${D}/platform/${RISCV_SBI_PLAT}/firmware/payloads - rm -r ${D}/lib -} - -do_deploy () { - install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.* ${DEPLOYDIR}/ - install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.* ${DEPLOYDIR}/ - install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_dynamic.* ${DEPLOYDIR}/ -} - -addtask deploy before do_build after do_install - -FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.*" -FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.*" -FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_dynamic.*" - -COMPATIBLE_HOST = "(riscv64|riscv32).*" -INHIBIT_PACKAGE_STRIP = "1" - -SECURITY_CFLAGS = "" diff --git a/poky/meta/recipes-bsp/opensbi/opensbi_0.8.bb b/poky/meta/recipes-bsp/opensbi/opensbi_0.8.bb new file mode 100644 index 000000000..818efac73 --- /dev/null +++ b/poky/meta/recipes-bsp/opensbi/opensbi_0.8.bb @@ -0,0 +1,47 @@ +SUMMARY = "RISC-V Open Source Supervisor Binary Interface (OpenSBI)" +DESCRIPTION = "OpenSBI aims to provide an open-source and extensible implementation of the RISC-V SBI specification for a platform specific firmware (M-mode) and a general purpose OS, hypervisor or bootloader (S-mode or HS-mode). OpenSBI implementation can be easily extended by RISC-V platform or System-on-Chip vendors to fit a particular hadware configuration." +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=42dd9555eb177f35150cf9aa240b61e5" + +require opensbi-payloads.inc + +inherit autotools-brokensep deploy + +SRCREV = "a98258d0b537a295f517bbc8d813007336731fa9" +SRC_URI = "git://github.com/riscv/opensbi.git;branch=master \ + file://0001-Makefile-Don-t-specify-mabi-or-march.patch \ + " + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE += "PLATFORM=${RISCV_SBI_PLAT} I=${D}" +# If RISCV_SBI_PAYLOAD is set then include it as a payload +EXTRA_OEMAKE_append = " ${@riscv_get_extra_oemake_image(d)}" + +# Required if specifying a custom payload +do_compile[depends] += "${@riscv_get_do_compile_depends(d)}" + +do_install_append() { + # In the future these might be required as a dependency for other packages. + # At the moment just delete them to avoid warnings + rm -r ${D}/include + rm -r ${D}/lib* + rm -r ${D}/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/payloads +} + +do_deploy () { + install -m 755 ${D}/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_payload.* ${DEPLOYDIR}/ + install -m 755 ${D}/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_jump.* ${DEPLOYDIR}/ + install -m 755 ${D}/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_dynamic.* ${DEPLOYDIR}/ +} + +addtask deploy before do_build after do_install + +FILES_${PN} += "/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_jump.*" +FILES_${PN} += "/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_payload.*" +FILES_${PN} += "/share/opensbi/*/${RISCV_SBI_PLAT}/firmware/fw_dynamic.*" + +COMPATIBLE_HOST = "(riscv64|riscv32).*" +INHIBIT_PACKAGE_STRIP = "1" + +SECURITY_CFLAGS = "" diff --git a/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb b/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb index ea29b668e..3820ba262 100644 --- a/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb +++ b/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb @@ -12,7 +12,7 @@ SECTION = "libs" PV = "0.2+git${SRCPV}" SRC_URI = "git://github.com/sbabic/libubootenv;protocol=https" -SRCREV = "f4b9cde3815abe84a98079cedd515283ea08c16b" +SRCREV = "86bd30a14e153a18f670b25708795253d8736f0f" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-connectivity/libuv/libuv_1.34.2.bb b/poky/meta/recipes-connectivity/libuv/libuv_1.34.2.bb deleted file mode 100644 index 234cec37b..000000000 --- a/poky/meta/recipes-connectivity/libuv/libuv_1.34.2.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "A multi-platform support library with a focus on asynchronous I/O" -HOMEPAGE = "https://github.com/libuv/libuv" -BUGTRACKER = "https://github.com/libuv/libuv/issues" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47" - -SRCREV = "f868c9ab0c307525a16fff99fd21e32a6ebc3837" -SRC_URI = "git://github.com/libuv/libuv;branch=v1.x" - -S = "${WORKDIR}/git" - -inherit autotools - -do_configure() { - ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh" - oe_runconf -} - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-connectivity/libuv/libuv_1.38.0.bb b/poky/meta/recipes-connectivity/libuv/libuv_1.38.0.bb new file mode 100644 index 000000000..afc9b2f2e --- /dev/null +++ b/poky/meta/recipes-connectivity/libuv/libuv_1.38.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "A multi-platform support library with a focus on asynchronous I/O" +HOMEPAGE = "https://github.com/libuv/libuv" +BUGTRACKER = "https://github.com/libuv/libuv/issues" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47" + +SRCREV = "1ab9ea3790378f9f25c4e78e9e2b511c75f9c9ed" +SRC_URI = "git://github.com/libuv/libuv;branch=v1.x" + +S = "${WORKDIR}/git" + +inherit autotools + +do_configure() { + ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh" + oe_runconf +} + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch deleted file mode 100644 index bafff5b9c..000000000 --- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-cacheio-use-intmax_t-for-formatted-IO.patch +++ /dev/null @@ -1,38 +0,0 @@ -From ac32b813f5d6f9a2de944015cf9bb98d68e0203a Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Sat, 1 Dec 2018 10:02:12 -0800 -Subject: [PATCH] cacheio: use intmax_t for formatted IO - -time_t is not same size on x32 ABI (ILP32) - -Upstream-Status: Pending - -Signed-off-by: Khem Raj ---- - support/nfs/cacheio.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c -index 9dc4cf1..2086a95 100644 ---- a/support/nfs/cacheio.c -+++ b/support/nfs/cacheio.c -@@ -17,6 +17,7 @@ - - #include - #include -+#include - #include - #include - #include -@@ -234,7 +235,7 @@ cache_flush(int force) - stb.st_mtime > now) - stb.st_mtime = time(0); - -- sprintf(stime, "%ld\n", stb.st_mtime); -+ sprintf(stime, "%jd\n", (intmax_t)stb.st_mtime); - for (c=0; cachelist[c]; c++) { - int fd; - sprintf(path, "/proc/net/rpc/%s/flush", cachelist[c]); --- -2.19.2 - diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.3.bb b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.3.bb deleted file mode 100644 index 9bdb6f4ae..000000000 --- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.4.3.bb +++ /dev/null @@ -1,147 +0,0 @@ -SUMMARY = "userspace utilities for kernel nfs" -DESCRIPTION = "The nfs-utils package provides a daemon for the kernel \ -NFS server and related tools." -HOMEPAGE = "http://nfs.sourceforge.net/" -SECTION = "console/network" - -LICENSE = "MIT & GPLv2+ & BSD" -LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84" - -# util-linux for libblkid -DEPENDS = "libcap libevent util-linux sqlite3 libtirpc" -RDEPENDS_${PN} = "${PN}-client" -RRECOMMENDS_${PN} = "kernel-module-nfsd" - -inherit useradd - -USERADD_PACKAGES = "${PN}-client" -USERADD_PARAM_${PN}-client = "--system --home-dir /var/lib/nfs \ - --shell /bin/false --user-group rpcuser" - -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.xz \ - file://nfsserver \ - file://nfscommon \ - file://nfs-utils.conf \ - file://nfs-server.service \ - file://nfs-mountd.service \ - file://nfs-statd.service \ - file://proc-fs-nfsd.mount \ - file://nfs-utils-debianize-start-statd.patch \ - file://bugfix-adjust-statd-service-name.patch \ - file://0001-cacheio-use-intmax_t-for-formatted-IO.patch \ - file://0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch \ - file://clang-warnings.patch \ - " -SRC_URI[md5sum] = "06020c76f531ed97f3145514901e0e7c" -SRC_URI[sha256sum] = "af65fce5dd8370cff9ead67baac5a6cd69c376dcadfef264dc2c78c904f26599" - -# Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will -# pull in the remainder of the dependencies. - -INITSCRIPT_PACKAGES = "${PN} ${PN}-client" -INITSCRIPT_NAME = "nfsserver" -INITSCRIPT_PARAMS = "defaults" -INITSCRIPT_NAME_${PN}-client = "nfscommon" -INITSCRIPT_PARAMS_${PN}-client = "defaults 19 21" - -inherit autotools-brokensep update-rc.d systemd pkgconfig - -SYSTEMD_PACKAGES = "${PN} ${PN}-client" -SYSTEMD_SERVICE_${PN} = "nfs-server.service nfs-mountd.service" -SYSTEMD_SERVICE_${PN}-client = "nfs-statd.service" - -# --enable-uuid is need for cross-compiling -EXTRA_OECONF = "--with-statduser=rpcuser \ - --enable-mountconfig \ - --enable-libmount-mount \ - --enable-uuid \ - --disable-gss \ - --disable-nfsdcltrack \ - --with-statdpath=/var/lib/nfs/statd \ - " - -PACKAGECONFIG ??= "tcp-wrappers \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ -" -PACKAGECONFIG_remove_libc-musl = "tcp-wrappers" -PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers,tcp-wrappers" -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -# libdevmapper is available in meta-oe -PACKAGECONFIG[nfsv41] = "--enable-nfsv41,--disable-nfsv41,libdevmapper,libdevmapper" -# keyutils is available in meta-oe -PACKAGECONFIG[nfsv4] = "--enable-nfsv4,--disable-nfsv4,keyutils,python3-core" - -PACKAGES =+ "${PN}-client ${PN}-mount ${PN}-stats" - -CONFFILES_${PN}-client += "${localstatedir}/lib/nfs/etab \ - ${localstatedir}/lib/nfs/rmtab \ - ${localstatedir}/lib/nfs/xtab \ - ${localstatedir}/lib/nfs/statd/state \ - ${sysconfdir}/nfsmount.conf" - -FILES_${PN}-client = "${sbindir}/*statd \ - ${sbindir}/rpc.idmapd ${sbindir}/sm-notify \ - ${sbindir}/showmount ${sbindir}/nfsstat \ - ${localstatedir}/lib/nfs \ - ${sysconfdir}/nfs-utils.conf \ - ${sysconfdir}/nfsmount.conf \ - ${sysconfdir}/init.d/nfscommon \ - ${systemd_unitdir}/system/nfs-statd.service" -RDEPENDS_${PN}-client = "${PN}-mount rpcbind" - -FILES_${PN}-mount = "${base_sbindir}/*mount.nfs*" - -FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat" -RDEPENDS_${PN}-stats = "python3-core" - -FILES_${PN}-staticdev += "${libdir}/libnfsidmap/*.a" - -FILES_${PN} += "${systemd_unitdir} ${libdir}/libnfsidmap/" - -do_configure_prepend() { - sed -i -e 's,sbindir = /sbin,sbindir = ${base_sbindir},g' \ - ${S}/utils/mount/Makefile.am -} - -# Make clean needed because the package comes with -# precompiled 64-bit objects that break the build -do_compile_prepend() { - make clean -} - -# Works on systemd only -HIGH_RLIMIT_NOFILE ??= "4096" - -do_install_append () { - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver - install -m 0755 ${WORKDIR}/nfscommon ${D}${sysconfdir}/init.d/nfscommon - - install -m 0755 ${WORKDIR}/nfs-utils.conf ${D}${sysconfdir} - install -m 0755 ${S}/utils/mount/nfsmount.conf ${D}${sysconfdir} - - install -d ${D}${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/nfs-server.service ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/nfs-mountd.service ${D}${systemd_unitdir}/system/ - install -m 0644 ${WORKDIR}/nfs-statd.service ${D}${systemd_unitdir}/system/ - sed -i -e 's,@SBINDIR@,${sbindir},g' \ - -e 's,@SYSCONFDIR@,${sysconfdir},g' \ - -e 's,@HIGH_RLIMIT_NOFILE@,${HIGH_RLIMIT_NOFILE},g' \ - ${D}${systemd_unitdir}/system/*.service - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/ - install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/ - ln -sf ../proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/sysinit.target.wants/proc-fs-nfsd.mount - fi - - # kernel code as of 3.8 hard-codes this path as a default - install -d ${D}/var/lib/nfs/v4recovery - - # chown the directories and files - chown -R rpcuser:rpcuser ${D}${localstatedir}/lib/nfs/statd - chmod 0644 ${D}${localstatedir}/lib/nfs/statd/state - - # Make python tools use python 3 - sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${sbindir}/mountstats ${D}${sbindir}/nfsiostat - -} diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb new file mode 100644 index 000000000..188a8893b --- /dev/null +++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb @@ -0,0 +1,144 @@ +SUMMARY = "userspace utilities for kernel nfs" +DESCRIPTION = "The nfs-utils package provides a daemon for the kernel \ +NFS server and related tools." +HOMEPAGE = "http://nfs.sourceforge.net/" +SECTION = "console/network" + +LICENSE = "MIT & GPLv2+ & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=95f3a93a5c3c7888de623b46ea085a84" + +# util-linux for libblkid +DEPENDS = "libcap libevent util-linux sqlite3 libtirpc" +RDEPENDS_${PN} = "${PN}-client" +RRECOMMENDS_${PN} = "kernel-module-nfsd" + +inherit useradd + +USERADD_PACKAGES = "${PN}-client" +USERADD_PARAM_${PN}-client = "--system --home-dir /var/lib/nfs \ + --shell /bin/false --user-group rpcuser" + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/nfs-utils/${PV}/nfs-utils-${PV}.tar.xz \ + file://nfsserver \ + file://nfscommon \ + file://nfs-utils.conf \ + file://nfs-server.service \ + file://nfs-mountd.service \ + file://nfs-statd.service \ + file://proc-fs-nfsd.mount \ + file://nfs-utils-debianize-start-statd.patch \ + file://bugfix-adjust-statd-service-name.patch \ + file://0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch \ + file://clang-warnings.patch \ + " +SRC_URI[sha256sum] = "0f1c8170e16a07d9836bbf0836d48d0c842b6f0e0e8b18748f099751851d30c4" + +# Only kernel-module-nfsd is required here (but can be built-in) - the nfsd module will +# pull in the remainder of the dependencies. + +INITSCRIPT_PACKAGES = "${PN} ${PN}-client" +INITSCRIPT_NAME = "nfsserver" +INITSCRIPT_PARAMS = "defaults" +INITSCRIPT_NAME_${PN}-client = "nfscommon" +INITSCRIPT_PARAMS_${PN}-client = "defaults 19 21" + +inherit autotools-brokensep update-rc.d systemd pkgconfig + +SYSTEMD_PACKAGES = "${PN} ${PN}-client" +SYSTEMD_SERVICE_${PN} = "nfs-server.service nfs-mountd.service" +SYSTEMD_SERVICE_${PN}-client = "nfs-statd.service" + +# --enable-uuid is need for cross-compiling +EXTRA_OECONF = "--with-statduser=rpcuser \ + --enable-mountconfig \ + --enable-libmount-mount \ + --enable-uuid \ + --disable-gss \ + --disable-nfsdcltrack \ + --with-statdpath=/var/lib/nfs/statd \ + " + +PACKAGECONFIG ??= "tcp-wrappers \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" +PACKAGECONFIG_remove_libc-musl = "tcp-wrappers" +PACKAGECONFIG[tcp-wrappers] = "--with-tcp-wrappers,--without-tcp-wrappers,tcp-wrappers" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +# libdevmapper is available in meta-oe +PACKAGECONFIG[nfsv41] = "--enable-nfsv41,--disable-nfsv41,libdevmapper,libdevmapper" +# keyutils is available in meta-oe +PACKAGECONFIG[nfsv4] = "--enable-nfsv4,--disable-nfsv4,keyutils,python3-core" + +PACKAGES =+ "${PN}-client ${PN}-mount ${PN}-stats" + +CONFFILES_${PN}-client += "${localstatedir}/lib/nfs/etab \ + ${localstatedir}/lib/nfs/rmtab \ + ${localstatedir}/lib/nfs/xtab \ + ${localstatedir}/lib/nfs/statd/state \ + ${sysconfdir}/nfsmount.conf" + +FILES_${PN}-client = "${sbindir}/*statd \ + ${sbindir}/rpc.idmapd ${sbindir}/sm-notify \ + ${sbindir}/showmount ${sbindir}/nfsstat \ + ${localstatedir}/lib/nfs \ + ${sysconfdir}/nfs-utils.conf \ + ${sysconfdir}/nfsmount.conf \ + ${sysconfdir}/init.d/nfscommon \ + ${systemd_unitdir}/system/nfs-statd.service" +RDEPENDS_${PN}-client = "${PN}-mount rpcbind" + +FILES_${PN}-mount = "${base_sbindir}/*mount.nfs*" + +FILES_${PN}-stats = "${sbindir}/mountstats ${sbindir}/nfsiostat ${sbindir}/nfsdclnts" +RDEPENDS_${PN}-stats = "python3-core" + +FILES_${PN}-staticdev += "${libdir}/libnfsidmap/*.a" + +FILES_${PN} += "${systemd_unitdir} ${libdir}/libnfsidmap/" + +do_configure_prepend() { + sed -i -e 's,sbindir = /sbin,sbindir = ${base_sbindir},g' \ + ${S}/utils/mount/Makefile.am +} + +# Make clean needed because the package comes with +# precompiled 64-bit objects that break the build +do_compile_prepend() { + make clean +} + +# Works on systemd only +HIGH_RLIMIT_NOFILE ??= "4096" + +do_install_append () { + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver + install -m 0755 ${WORKDIR}/nfscommon ${D}${sysconfdir}/init.d/nfscommon + + install -m 0755 ${WORKDIR}/nfs-utils.conf ${D}${sysconfdir} + install -m 0755 ${S}/utils/mount/nfsmount.conf ${D}${sysconfdir} + + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/nfs-server.service ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/nfs-mountd.service ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/nfs-statd.service ${D}${systemd_unitdir}/system/ + sed -i -e 's,@SBINDIR@,${sbindir},g' \ + -e 's,@SYSCONFDIR@,${sysconfdir},g' \ + -e 's,@HIGH_RLIMIT_NOFILE@,${HIGH_RLIMIT_NOFILE},g' \ + ${D}${systemd_unitdir}/system/*.service + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/ + install -d ${D}${systemd_unitdir}/system/sysinit.target.wants/ + ln -sf ../proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/sysinit.target.wants/proc-fs-nfsd.mount + fi + + # kernel code as of 3.8 hard-codes this path as a default + install -d ${D}/var/lib/nfs/v4recovery + + # chown the directories and files + chown -R rpcuser:rpcuser ${D}${localstatedir}/lib/nfs/statd + chmod 0644 ${D}${localstatedir}/lib/nfs/statd/state + + # Make python tools use python 3 + sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${sbindir}/mountstats ${D}${sbindir}/nfsiostat +} diff --git a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb index 66fa8f7d0..47ed6b764 100644 --- a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb +++ b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb @@ -191,7 +191,9 @@ PACKAGES =+ "libcrypto libssl openssl-conf ${PN}-engines ${PN}-misc" FILES_libcrypto = "${libdir}/libcrypto${SOLIBS}" FILES_libssl = "${libdir}/libssl${SOLIBS}" -FILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf" +FILES_openssl-conf = "${sysconfdir}/ssl/openssl.cnf \ + ${libdir}/ssl-1.1/openssl.cnf* \ + " FILES_${PN}-engines = "${libdir}/engines-1.1" FILES_${PN}-misc = "${libdir}/ssl-1.1/misc" FILES_${PN} =+ "${libdir}/ssl-1.1/*" diff --git a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch new file mode 100644 index 000000000..53ad5d028 --- /dev/null +++ b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch @@ -0,0 +1,151 @@ +From 5b78c8f961f25f4dc22d6f2b77ddd06d712cec63 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Wed, 3 Jun 2020 23:17:35 +0300 +Subject: [PATCH 1/3] WPS UPnP: Do not allow event subscriptions with URLs to + other networks + +The UPnP Device Architecture 2.0 specification errata ("UDA errata +16-04-2020.docx") addresses a problem with notifications being allowed +to go out to other domains by disallowing such cases. Do such filtering +for the notification callback URLs to avoid undesired connections to +external networks based on subscriptions that any device in the local +network could request when WPS support for external registrars is +enabled (the upnp_iface parameter in hostapd configuration). + +Upstream-Status: Backport +CVE: CVE-2020-12695 patch #1 +Signed-off-by: Jouni Malinen +Signed-off-by: Armin Kuster + +--- + src/wps/wps_er.c | 2 +- + src/wps/wps_upnp.c | 38 ++++++++++++++++++++++++++++++++++++-- + src/wps/wps_upnp_i.h | 3 ++- + 3 files changed, 39 insertions(+), 4 deletions(-) + +Index: wpa_supplicant-2.9/src/wps/wps_er.c +=================================================================== +--- wpa_supplicant-2.9.orig/src/wps/wps_er.c ++++ wpa_supplicant-2.9/src/wps/wps_er.c +@@ -1298,7 +1298,7 @@ wps_er_init(struct wps_context *wps, con + "with %s", filter); + } + if (get_netif_info(er->ifname, &er->ip_addr, &er->ip_addr_text, +- er->mac_addr)) { ++ NULL, er->mac_addr)) { + wpa_printf(MSG_INFO, "WPS UPnP: Could not get IP/MAC address " + "for %s. Does it have IP address?", er->ifname); + wps_er_deinit(er, NULL, NULL); +Index: wpa_supplicant-2.9/src/wps/wps_upnp.c +=================================================================== +--- wpa_supplicant-2.9.orig/src/wps/wps_upnp.c ++++ wpa_supplicant-2.9/src/wps/wps_upnp.c +@@ -303,6 +303,14 @@ static void subscr_addr_free_all(struct + } + + ++static int local_network_addr(struct upnp_wps_device_sm *sm, ++ struct sockaddr_in *addr) ++{ ++ return (addr->sin_addr.s_addr & sm->netmask.s_addr) == ++ (sm->ip_addr & sm->netmask.s_addr); ++} ++ ++ + /* subscr_addr_add_url -- add address(es) for one url to subscription */ + static void subscr_addr_add_url(struct subscription *s, const char *url, + size_t url_len) +@@ -381,6 +389,7 @@ static void subscr_addr_add_url(struct s + + for (rp = result; rp; rp = rp->ai_next) { + struct subscr_addr *a; ++ struct sockaddr_in *addr = (struct sockaddr_in *) rp->ai_addr; + + /* Limit no. of address to avoid denial of service attack */ + if (dl_list_len(&s->addr_list) >= MAX_ADDR_PER_SUBSCRIPTION) { +@@ -389,6 +398,13 @@ static void subscr_addr_add_url(struct s + break; + } + ++ if (!local_network_addr(s->sm, addr)) { ++ wpa_printf(MSG_INFO, ++ "WPS UPnP: Ignore a delivery URL that points to another network %s", ++ inet_ntoa(addr->sin_addr)); ++ continue; ++ } ++ + a = os_zalloc(sizeof(*a) + alloc_len); + if (a == NULL) + break; +@@ -889,11 +905,12 @@ static int eth_get(const char *device, u + * @net_if: Selected network interface name + * @ip_addr: Buffer for returning IP address in network byte order + * @ip_addr_text: Buffer for returning a pointer to allocated IP address text ++ * @netmask: Buffer for returning netmask or %NULL if not needed + * @mac: Buffer for returning MAC address + * Returns: 0 on success, -1 on failure + */ + int get_netif_info(const char *net_if, unsigned *ip_addr, char **ip_addr_text, +- u8 mac[ETH_ALEN]) ++ struct in_addr *netmask, u8 mac[ETH_ALEN]) + { + struct ifreq req; + int sock = -1; +@@ -919,6 +936,19 @@ int get_netif_info(const char *net_if, u + in_addr.s_addr = *ip_addr; + os_snprintf(*ip_addr_text, 16, "%s", inet_ntoa(in_addr)); + ++ if (netmask) { ++ os_memset(&req, 0, sizeof(req)); ++ os_strlcpy(req.ifr_name, net_if, sizeof(req.ifr_name)); ++ if (ioctl(sock, SIOCGIFNETMASK, &req) < 0) { ++ wpa_printf(MSG_ERROR, ++ "WPS UPnP: SIOCGIFNETMASK failed: %d (%s)", ++ errno, strerror(errno)); ++ goto fail; ++ } ++ addr = (struct sockaddr_in *) &req.ifr_netmask; ++ netmask->s_addr = addr->sin_addr.s_addr; ++ } ++ + #ifdef __linux__ + os_strlcpy(req.ifr_name, net_if, sizeof(req.ifr_name)); + if (ioctl(sock, SIOCGIFHWADDR, &req) < 0) { +@@ -1025,11 +1055,15 @@ static int upnp_wps_device_start(struct + + /* Determine which IP and mac address we're using */ + if (get_netif_info(net_if, &sm->ip_addr, &sm->ip_addr_text, +- sm->mac_addr)) { ++ &sm->netmask, sm->mac_addr)) { + wpa_printf(MSG_INFO, "WPS UPnP: Could not get IP/MAC address " + "for %s. Does it have IP address?", net_if); + goto fail; + } ++ wpa_printf(MSG_DEBUG, "WPS UPnP: Local IP address %s netmask %s hwaddr " ++ MACSTR, ++ sm->ip_addr_text, inet_ntoa(sm->netmask), ++ MAC2STR(sm->mac_addr)); + + /* Listen for incoming TCP connections so that others + * can fetch our "xml files" from us. +Index: wpa_supplicant-2.9/src/wps/wps_upnp_i.h +=================================================================== +--- wpa_supplicant-2.9.orig/src/wps/wps_upnp_i.h ++++ wpa_supplicant-2.9/src/wps/wps_upnp_i.h +@@ -128,6 +128,7 @@ struct upnp_wps_device_sm { + u8 mac_addr[ETH_ALEN]; /* mac addr of network i.f. we use */ + char *ip_addr_text; /* IP address of network i.f. we use */ + unsigned ip_addr; /* IP address of network i.f. we use (host order) */ ++ struct in_addr netmask; + int multicast_sd; /* send multicast messages over this socket */ + int ssdp_sd; /* receive discovery UPD packets on socket */ + int ssdp_sd_registered; /* nonzero if we must unregister */ +@@ -158,7 +159,7 @@ struct subscription * subscription_find( + const u8 uuid[UUID_LEN]); + void subscr_addr_delete(struct subscr_addr *a); + int get_netif_info(const char *net_if, unsigned *ip_addr, char **ip_addr_text, +- u8 mac[ETH_ALEN]); ++ struct in_addr *netmask, u8 mac[ETH_ALEN]); + + /* wps_upnp_ssdp.c */ + void msearchreply_state_machine_stop(struct advertisement_state_machine *a); diff --git a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch new file mode 100644 index 000000000..59640859d --- /dev/null +++ b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch @@ -0,0 +1,62 @@ +From f7d268864a2660b7239b9a8ff5ad37faeeb751ba Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Wed, 3 Jun 2020 22:41:02 +0300 +Subject: [PATCH 2/3] WPS UPnP: Fix event message generation using a long URL + path + +More than about 700 character URL ended up overflowing the wpabuf used +for building the event notification and this resulted in the wpabuf +buffer overflow checks terminating the hostapd process. Fix this by +allocating the buffer to be large enough to contain the full URL path. +However, since that around 700 character limit has been the practical +limit for more than ten years, start explicitly enforcing that as the +limit or the callback URLs since any longer ones had not worked before +and there is no need to enable them now either. + +Upstream-Status: Backport +CVE: CVE-2020-12695 patch #2 +Signed-off-by: Jouni Malinen +Signed-off-by: Armin Kuster + +--- + src/wps/wps_upnp.c | 9 +++++++-- + src/wps/wps_upnp_event.c | 3 ++- + 2 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/src/wps/wps_upnp.c b/src/wps/wps_upnp.c +index 7d4b7439940e..ab685d52ecab 100644 +--- a/src/wps/wps_upnp.c ++++ b/src/wps/wps_upnp.c +@@ -328,9 +328,14 @@ static void subscr_addr_add_url(struct subscription *s, const char *url, + int rerr; + size_t host_len, path_len; + +- /* url MUST begin with http: */ +- if (url_len < 7 || os_strncasecmp(url, "http://", 7)) ++ /* URL MUST begin with HTTP scheme. In addition, limit the length of ++ * the URL to 700 characters which is around the limit that was ++ * implicitly enforced for more than 10 years due to a bug in ++ * generating the event messages. */ ++ if (url_len < 7 || os_strncasecmp(url, "http://", 7) || url_len > 700) { ++ wpa_printf(MSG_DEBUG, "WPS UPnP: Reject an unacceptable URL"); + goto fail; ++ } + url += 7; + url_len -= 7; + +diff --git a/src/wps/wps_upnp_event.c b/src/wps/wps_upnp_event.c +index d7e6edcc6503..08a23612f338 100644 +--- a/src/wps/wps_upnp_event.c ++++ b/src/wps/wps_upnp_event.c +@@ -147,7 +147,8 @@ static struct wpabuf * event_build_message(struct wps_event_ *e) + struct wpabuf *buf; + char *b; + +- buf = wpabuf_alloc(1000 + wpabuf_len(e->data)); ++ buf = wpabuf_alloc(1000 + os_strlen(e->addr->path) + ++ wpabuf_len(e->data)); + if (buf == NULL) + return NULL; + wpabuf_printf(buf, "NOTIFY %s HTTP/1.1\r\n", e->addr->path); +-- +2.20.1 diff --git a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch new file mode 100644 index 000000000..8a014ef28 --- /dev/null +++ b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant/0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch @@ -0,0 +1,50 @@ +From 85aac526af8612c21b3117dadc8ef5944985b476 Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Thu, 4 Jun 2020 21:24:04 +0300 +Subject: [PATCH 3/3] WPS UPnP: Handle HTTP initiation failures for events more + properly + +While it is appropriate to try to retransmit the event to another +callback URL on a failure to initiate the HTTP client connection, there +is no point in trying the exact same operation multiple times in a row. +Replve the event_retry() calls with event_addr_failure() for these cases +to avoid busy loops trying to repeat the same failing operation. + +These potential busy loops would go through eloop callbacks, so the +process is not completely stuck on handling them, but unnecessary CPU +would be used to process the continues retries that will keep failing +for the same reason. + +Upstream-Status: Backport +CVE: CVE-2020-12695 patch #2 +Signed-off-by: Jouni Malinen +Signed-off-by: Armin Kuster + +--- + src/wps/wps_upnp_event.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/wps/wps_upnp_event.c b/src/wps/wps_upnp_event.c +index 08a23612f338..c0d9e41d9a38 100644 +--- a/src/wps/wps_upnp_event.c ++++ b/src/wps/wps_upnp_event.c +@@ -294,7 +294,7 @@ static int event_send_start(struct subscription *s) + + buf = event_build_message(e); + if (buf == NULL) { +- event_retry(e, 0); ++ event_addr_failure(e); + return -1; + } + +@@ -302,7 +302,7 @@ static int event_send_start(struct subscription *s) + event_http_cb, e); + if (e->http_event == NULL) { + wpabuf_free(buf); +- event_retry(e, 0); ++ event_addr_failure(e); + return -1; + } + +-- +2.20.1 diff --git a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb index 2936e89ee..7cc03fef7 100644 --- a/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb +++ b/poky/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.9.bb @@ -25,7 +25,10 @@ SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \ file://wpa_supplicant.conf-sane \ file://99_wpa_supplicant \ file://0001-replace-systemd-install-Alias-with-WantedBy.patch \ - file://0001-AP-Silently-ignore-management-frame-from-unexpected-.patch \ + file://0001-AP-Silently-ignore-management-frame-from-unexpected-.patch \ + file://0001-WPS-UPnP-Do-not-allow-event-subscriptions-with-URLs-.patch \ + file://0002-WPS-UPnP-Fix-event-message-generation-using-a-long-U.patch \ + file://0003-WPS-UPnP-Handle-HTTP-initiation-failures-for-events-.patch \ " SRC_URI[md5sum] = "2d2958c782576dc9901092fbfecb4190" SRC_URI[sha256sum] = "fcbdee7b4a64bea8177973299c8c824419c413ec2e3a95db63dd6a5dc3541f17" diff --git a/poky/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb b/poky/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb deleted file mode 100644 index 61fb8cbad..000000000 --- a/poky/meta/recipes-core/busybox/busybox-inittab_1.31.0.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "inittab configuration for BusyBox" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" - -SRC_URI = "file://inittab" - -S = "${WORKDIR}" - -INHIBIT_DEFAULT_DEPS = "1" - -do_compile() { - : -} - -do_install() { - install -d ${D}${sysconfdir} - install -D -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab - tmp="${SERIAL_CONSOLES}" - [ -n "$tmp" ] && echo >> ${D}${sysconfdir}/inittab - for i in $tmp - do - j=`echo ${i} | sed s/\;/\ /g` - id=`echo ${i} | sed -e 's/^.*;//' -e 's/;.*//'` - echo "$id::respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab - done -} - -# SERIAL_CONSOLES is generally defined by the MACHINE .conf. -# Set PACKAGE_ARCH appropriately. -PACKAGE_ARCH = "${MACHINE_ARCH}" - -FILES_${PN} = "${sysconfdir}/inittab" -CONFFILES_${PN} = "${sysconfdir}/inittab" - -RCONFLICTS_${PN} = "sysvinit-inittab" diff --git a/poky/meta/recipes-core/busybox/busybox-inittab_1.32.0.bb b/poky/meta/recipes-core/busybox/busybox-inittab_1.32.0.bb new file mode 100644 index 000000000..61fb8cbad --- /dev/null +++ b/poky/meta/recipes-core/busybox/busybox-inittab_1.32.0.bb @@ -0,0 +1,35 @@ +SUMMARY = "inittab configuration for BusyBox" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +SRC_URI = "file://inittab" + +S = "${WORKDIR}" + +INHIBIT_DEFAULT_DEPS = "1" + +do_compile() { + : +} + +do_install() { + install -d ${D}${sysconfdir} + install -D -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab + tmp="${SERIAL_CONSOLES}" + [ -n "$tmp" ] && echo >> ${D}${sysconfdir}/inittab + for i in $tmp + do + j=`echo ${i} | sed s/\;/\ /g` + id=`echo ${i} | sed -e 's/^.*;//' -e 's/;.*//'` + echo "$id::respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab + done +} + +# SERIAL_CONSOLES is generally defined by the MACHINE .conf. +# Set PACKAGE_ARCH appropriately. +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES_${PN} = "${sysconfdir}/inittab" +CONFFILES_${PN} = "${sysconfdir}/inittab" + +RCONFLICTS_${PN} = "sysvinit-inittab" diff --git a/poky/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch b/poky/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch deleted file mode 100644 index 9b9432844..000000000 --- a/poky/meta/recipes-core/busybox/busybox/0001-Remove-stime-function-calls.patch +++ /dev/null @@ -1,85 +0,0 @@ -From d3539be8f27b8cbfdfee460fe08299158f08bcd9 Mon Sep 17 00:00:00 2001 -From: Alistair Francis -Date: Tue, 19 Nov 2019 13:06:40 +0100 -Subject: [PATCH] Remove stime() function calls - -stime() has been deprecated in glibc 2.31 and replaced with -clock_settime(). Let's replace the stime() function calls with -clock_settime() in preperation. - -function old new delta -rdate_main 197 224 +27 -clock_settime - 27 +27 -date_main 926 941 +15 -stime 37 - -37 ------------------------------------------------------------------------------- -(add/remove: 2/2 grow/shrink: 2/0 up/down: 69/-37) Total: 32 bytes - -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=d3539be8f27b8cbfdfee460fe08299158f08bcd9] -Signed-off-by: Alistair Francis -Signed-off-by: Denys Vlasenko ---- - coreutils/date.c | 6 +++++- - libbb/missing_syscalls.c | 8 -------- - util-linux/rdate.c | 8 ++++++-- - 3 files changed, 11 insertions(+), 11 deletions(-) - ---- a/coreutils/date.c -+++ b/coreutils/date.c -@@ -279,6 +279,9 @@ int date_main(int argc UNUSED_PARAM, cha - time(&ts.tv_sec); - #endif - } -+#if !ENABLE_FEATURE_DATE_NANO -+ ts.tv_nsec = 0; -+#endif - localtime_r(&ts.tv_sec, &tm_time); - - /* If date string is given, update tm_time, and maybe set date */ -@@ -301,9 +304,10 @@ int date_main(int argc UNUSED_PARAM, cha - if (date_str[0] != '@') - tm_time.tm_isdst = -1; - ts.tv_sec = validate_tm_time(date_str, &tm_time); -+ ts.tv_nsec = 0; - - /* if setting time, set it */ -- if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) { -+ if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) { - bb_perror_msg("can't set date"); - } - } ---- a/libbb/missing_syscalls.c -+++ b/libbb/missing_syscalls.c -@@ -15,14 +15,6 @@ pid_t getsid(pid_t pid) - return syscall(__NR_getsid, pid); - } - --int stime(const time_t *t) --{ -- struct timeval tv; -- tv.tv_sec = *t; -- tv.tv_usec = 0; -- return settimeofday(&tv, NULL); --} -- - int sethostname(const char *name, size_t len) - { - return syscall(__NR_sethostname, name, len); ---- a/util-linux/rdate.c -+++ b/util-linux/rdate.c -@@ -95,9 +95,13 @@ int rdate_main(int argc UNUSED_PARAM, ch - if (!(flags & 2)) { /* no -p (-s may be present) */ - if (time(NULL) == remote_time) - bb_error_msg("current time matches remote time"); -- else -- if (stime(&remote_time) < 0) -+ else { -+ struct timespec ts; -+ ts.tv_sec = remote_time; -+ ts.tv_nsec = 0; -+ if (clock_settime(CLOCK_REALTIME, &ts) < 0) - bb_perror_msg_and_die("can't set time of day"); -+ } - } - - if (flags != 1) /* not lone -s */ diff --git a/poky/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch b/poky/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch deleted file mode 100644 index 0c7f9b813..000000000 --- a/poky/meta/recipes-core/busybox/busybox/0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch +++ /dev/null @@ -1,120 +0,0 @@ -From be5a505d771a77c640acc35ceaa470c80e62f954 Mon Sep 17 00:00:00 2001 -From: Denys Vlasenko -Date: Thu, 24 Oct 2019 16:26:55 +0200 -Subject: [PATCH] Remove syscall wrappers around clock_gettime, closes 12091 - -12091 "Direct use of __NR_clock_gettime is not time64-safe". - -function old new delta -runsv_main 1698 1712 +14 -startservice 378 383 +5 -get_mono 31 25 -6 -date_main 932 926 -6 -gettimeofday_ns 17 - -17 ------------------------------------------------------------------------------- -(add/remove: 0/1 grow/shrink: 2/2 up/down: 19/-29) Total: -10 bytes - -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=be5a505d771a77c640acc35ceaa470c80e62f954] -Signed-off-by: Denys Vlasenko ---- - Makefile.flags | 6 ++++-- - coreutils/date.c | 16 +++------------- - libbb/time.c | 11 +---------- - runit/runsv.c | 11 +---------- - 4 files changed, 9 insertions(+), 35 deletions(-) - ---- a/Makefile.flags -+++ b/Makefile.flags -@@ -129,10 +129,12 @@ endif - # fall back to using a temp file: - CRYPT_AVAILABLE := $(shell echo 'int main(void){return 0;}' >crypttest.c; $(CC) $(CFLAGS) -lcrypt -o /dev/null crypttest.c >/dev/null 2>&1 && echo "y"; rm crypttest.c) - ifeq ($(CRYPT_AVAILABLE),y) --LDLIBS += m crypt -+LDLIBS += m rt crypt - else --LDLIBS += m -+LDLIBS += m rt - endif -+# libm may be needed for dc, awk, ntpd -+# librt may be needed for clock_gettime() - - # libpam may use libpthread, libdl and/or libaudit. - # On some platforms that requires an explicit -lpthread, -ldl, -laudit. ---- a/coreutils/date.c -+++ b/coreutils/date.c -@@ -33,10 +33,9 @@ - //config: Enable option (-I) to output an ISO-8601 compliant - //config: date/time string. - //config: --//config:# defaults to "no": stat's nanosecond field is a bit non-portable - //config:config FEATURE_DATE_NANO - //config: bool "Support %[num]N nanosecond format specifier" --//config: default n # syscall(__NR_clock_gettime) or syscall(__NR_clock_gettime64) -+//config: default n # stat's nanosecond field is a bit non-portable - //config: depends on DATE - //config: select PLATFORM_LINUX - //config: help -@@ -271,17 +270,8 @@ int date_main(int argc UNUSED_PARAM, cha - */ - #endif - } else { --#if ENABLE_FEATURE_DATE_NANO && defined(__NR_clock_gettime) -- /* libc has incredibly messy way of doing this, -- * typically requiring -lrt. We just skip all this mess */ -- syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts); --#elif ENABLE_FEATURE_DATE_NANO && __TIMESIZE == 64 -- /* Let's only support the 64 suffix syscalls for 64-bit time_t. -- * This simplifies the code for us as we don't need to convert -- * between 64-bit and 32-bit. We also don't have a way to -- * report overflow errors here. -- */ -- syscall(__NR_clock_gettime64, CLOCK_REALTIME, &ts); -+#if ENABLE_FEATURE_DATE_NANO -+ clock_gettime(CLOCK_REALTIME, &ts); - #else - time(&ts.tv_sec); - #endif ---- a/libbb/time.c -+++ b/libbb/time.c -@@ -253,18 +253,9 @@ char* FAST_FUNC strftime_YYYYMMDDHHMMSS( - #define CLOCK_MONOTONIC 1 - #endif - --/* libc has incredibly messy way of doing this, -- * typically requiring -lrt. We just skip all this mess */ - static void get_mono(struct timespec *ts) - { --#if defined(__NR_clock_gettime) -- if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts)) --#elif __TIMESIZE == 64 -- if (syscall(__NR_clock_gettime64, CLOCK_MONOTONIC, ts)) --#else --# error "We currently don't support architectures without " \ -- "the __NR_clock_gettime syscall and 32-bit time_t" --#endif -+ if (clock_gettime(CLOCK_MONOTONIC, ts)) - bb_error_msg_and_die("clock_gettime(MONOTONIC) failed"); - } - unsigned long long FAST_FUNC monotonic_ns(void) ---- a/runit/runsv.c -+++ b/runit/runsv.c -@@ -51,18 +51,9 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAG - #if ENABLE_MONOTONIC_SYSCALL - #include - --/* libc has incredibly messy way of doing this, -- * typically requiring -lrt. We just skip all this mess */ - static void gettimeofday_ns(struct timespec *ts) - { --#if defined(__NR_clock_gettime) -- syscall(__NR_clock_gettime, CLOCK_REALTIME, ts); --#elif __TIMESIZE == 64 -- syscall(__NR_clock_gettime64, CLOCK_REALTIME, ts); --#else --# error "We currently don't support architectures without " \ -- "the __NR_clock_gettime syscall and 32-bit time_t" --#endif -+ clock_gettime(CLOCK_REALTIME, ts); - } - #else - static void gettimeofday_ns(struct timespec *ts) diff --git a/poky/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch b/poky/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch deleted file mode 100644 index 944526b7c..000000000 --- a/poky/meta/recipes-core/busybox/busybox/0001-date-Use-64-prefix-syscall-if-we-have-to.patch +++ /dev/null @@ -1,53 +0,0 @@ -From b7b7452f292f03eefafa6fd1da9bcfc933dee15a Mon Sep 17 00:00:00 2001 -From: Alistair Francis -Date: Wed, 18 Sep 2019 09:28:49 -0700 -Subject: [PATCH] date: Use 64 prefix syscall if we have to - -Some 32-bit architectures no longer have the 32-bit time_t syscalls. -Instead they have suffixed syscalls that returns a 64-bit time_t. If -the architecture doesn't have the non-suffixed syscall and is using a -64-bit time_t let's use the suffixed syscall instead. - -This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel -headers. - -If an architecture only supports the suffixed syscalls, but is still -using a 32-bit time_t fall back to the libc call. - -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=b7b7452f292f03eefafa6fd1da9bcfc933dee15a] -Signed-off-by: Alistair Francis -Signed-off-by: Denys Vlasenko ---- - coreutils/date.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - ---- a/coreutils/date.c -+++ b/coreutils/date.c -@@ -36,7 +36,7 @@ - //config:# defaults to "no": stat's nanosecond field is a bit non-portable - //config:config FEATURE_DATE_NANO - //config: bool "Support %[num]N nanosecond format specifier" --//config: default n # syscall(__NR_clock_gettime) -+//config: default n # syscall(__NR_clock_gettime) or syscall(__NR_clock_gettime64) - //config: depends on DATE - //config: select PLATFORM_LINUX - //config: help -@@ -271,10 +271,17 @@ int date_main(int argc UNUSED_PARAM, cha - */ - #endif - } else { --#if ENABLE_FEATURE_DATE_NANO -+#if ENABLE_FEATURE_DATE_NANO && defined(__NR_clock_gettime) - /* libc has incredibly messy way of doing this, - * typically requiring -lrt. We just skip all this mess */ - syscall(__NR_clock_gettime, CLOCK_REALTIME, &ts); -+#elif ENABLE_FEATURE_DATE_NANO && __TIMESIZE == 64 -+ /* Let's only support the 64 suffix syscalls for 64-bit time_t. -+ * This simplifies the code for us as we don't need to convert -+ * between 64-bit and 32-bit. We also don't have a way to -+ * report overflow errors here. -+ */ -+ syscall(__NR_clock_gettime64, CLOCK_REALTIME, &ts); - #else - time(&ts.tv_sec); - #endif diff --git a/poky/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch b/poky/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch deleted file mode 100644 index 58a6c0d8a..000000000 --- a/poky/meta/recipes-core/busybox/busybox/0001-time-Use-64-prefix-syscall-if-we-have-to.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 902d3992922fc8db8495d5fb30a4581711b60c62 Mon Sep 17 00:00:00 2001 -From: Alistair Francis -Date: Wed, 18 Sep 2019 09:28:50 -0700 -Subject: [PATCH] time: Use 64 prefix syscall if we have to - -Some 32-bit architectures no longer have the 32-bit time_t syscalls. -Instead they have suffixed syscalls that returns a 64-bit time_t. If -the architecture doesn't have the non-suffixed syscall and is using a -64-bit time_t let's use the suffixed syscall instead. - -This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel -headers. - -If an architecture only supports the suffixed syscalls, but is still -using a 32-bit time_t report a compilation error. This avoids us have to -deal with converting between 64-bit and 32-bit values. There are -currently no architectures where this is the case. - -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=902d3992922fc8db8495d5fb30a4581711b60c62] -Signed-off-by: Alistair Francis -Signed-off-by: Denys Vlasenko ---- - libbb/time.c | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- a/libbb/time.c -+++ b/libbb/time.c -@@ -257,7 +257,14 @@ char* FAST_FUNC strftime_YYYYMMDDHHMMSS( - * typically requiring -lrt. We just skip all this mess */ - static void get_mono(struct timespec *ts) - { -- if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts)) -+#if defined(__NR_clock_gettime) -+ if (syscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts)) -+#elif __TIMESIZE == 64 -+ if (syscall(__NR_clock_gettime64, CLOCK_MONOTONIC, ts)) -+#else -+# error "We currently don't support architectures without " \ -+ "the __NR_clock_gettime syscall and 32-bit time_t" -+#endif - bb_error_msg_and_die("clock_gettime(MONOTONIC) failed"); - } - unsigned long long FAST_FUNC monotonic_ns(void) diff --git a/poky/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch b/poky/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch deleted file mode 100644 index 476057044..000000000 --- a/poky/meta/recipes-core/busybox/busybox/0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 8c7419649d6e6fda8fa7d0e863084c78ac728628 Mon Sep 17 00:00:00 2001 -From: Alistair Francis -Date: Wed, 28 Aug 2019 10:54:15 -0700 -Subject: [PATCH 3/3] runsv: Use 64 prefix syscall if we have to - -Some 32-bit architectures no longer have the 32-bit time_t syscalls. -Instead they have suffixed syscalls that returns a 64-bit time_t. If -the architecture doesn't have the non-suffixed syscall and is using a -64-bit time_t let's use the suffixed syscall instead. - -This fixes build issues when building for RISC-V 32-bit with 5.1+ kernel -headers. - -If an architecture only supports the suffixed syscalls, but is still -using a 32-bit time_t report a compilation error. This avoids us have to -deal with converting between 64-bit and 32-bit values. There are -currently no architectures where this is the case. - -Signed-off-by: Alistair Francis -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=ad27d44ebe950335616f37e36863469dc181b455] ---- - runit/runsv.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/runit/runsv.c b/runit/runsv.c -index ccc762d78..737909b0e 100644 ---- a/runit/runsv.c -+++ b/runit/runsv.c -@@ -55,7 +55,14 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * typically requiring -lrt. We just skip all this mess */ - static void gettimeofday_ns(struct timespec *ts) - { -+#if defined(__NR_clock_gettime) - syscall(__NR_clock_gettime, CLOCK_REALTIME, ts); -+#elif __TIMESIZE == 64 -+ syscall(__NR_clock_gettime64, CLOCK_REALTIME, ts); -+#else -+# error "We currently don't support architectures without " \ -+ "the __NR_clock_gettime syscall and 32-bit time_t" -+#endif - } - #else - static void gettimeofday_ns(struct timespec *ts) --- -2.22.0 - diff --git a/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch b/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch index 2a0a40c51..35e981d6a 100644 --- a/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch +++ b/poky/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch @@ -31,11 +31,11 @@ Signed-off-by: Andreas Oberritter networking/udhcp/dhcpc.c | 29 ++++++++++++++++------ 1 file changed, 21 insertions(+), 8 deletions(-) -Index: busybox-1.31.0/networking/udhcp/dhcpc.c +Index: busybox-1.32.0/networking/udhcp/dhcpc.c =================================================================== ---- busybox-1.31.0.orig/networking/udhcp/dhcpc.c -+++ busybox-1.31.0/networking/udhcp/dhcpc.c -@@ -48,6 +48,8 @@ +--- busybox-1.32.0.orig/networking/udhcp/dhcpc.c ++++ busybox-1.32.0/networking/udhcp/dhcpc.c +@@ -48,6 +48,8 @@ struct tpacket_auxdata { }; #endif @@ -55,7 +55,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c USE_FOR_MMU( OPTBIT_b,) IF_FEATURE_UDHCPC_ARPING(OPTBIT_a,) IF_FEATURE_UDHCP_PORT( OPTBIT_P,) -@@ -1124,7 +1128,8 @@ +@@ -1084,7 +1088,8 @@ client_data.state = RENEW_REQUESTED; break; case RENEW_REQUESTED: /* impatient are we? fine, square 1 */ @@ -65,7 +65,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c case REQUESTING: case RELEASED: change_listen_mode(LISTEN_RAW); -@@ -1160,7 +1165,8 @@ +@@ -1120,7 +1125,8 @@ static void perform_release(uint32_t server_addr, uint32_t requested_ip) * Users requested to be notified in all cases, even if not in one * of the states above. */ @@ -75,7 +75,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c change_listen_mode(LISTEN_NONE); client_data.state = RELEASED; -@@ -1278,7 +1284,7 @@ +@@ -1238,7 +1244,7 @@ /* Parse command line */ opt = getopt32long(argv, "^" /* O,x: list; -T,-t,-A take numeric param */ @@ -84,7 +84,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c USE_FOR_MMU("b") IF_FEATURE_UDHCPC_ARPING("a::") IF_FEATURE_UDHCP_PORT("P:") -@@ -1389,6 +1395,10 @@ +@@ -1349,6 +1355,10 @@ logmode |= LOGMODE_SYSLOG; } @@ -95,7 +95,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c /* Create pidfile */ write_pidfile(client_data.pidfile); /* Goes to stdout (unless NOMMU) and possibly syslog */ -@@ -1397,7 +1407,8 @@ +@@ -1357,7 +1367,8 @@ srand(monotonic_us()); client_data.state = INIT_SELECTING; @@ -105,17 +105,17 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c change_listen_mode(LISTEN_RAW); packet_num = 0; timeout = 0; -@@ -1570,7 +1581,8 @@ +@@ -1530,7 +1541,8 @@ } /* Timed out, enter init state */ - bb_info_msg("lease lost, entering init state"); + bb_simple_info_msg("lease lost, entering init state"); - udhcp_run_script(NULL, "deconfig"); + if (allow_deconfig) + udhcp_run_script(NULL, "deconfig"); client_data.state = INIT_SELECTING; client_data.first_secs = 0; /* make secs field count from 0 */ /*timeout = 0; - already is */ -@@ -1762,8 +1774,10 @@ +@@ -1722,8 +1734,10 @@ "(got ARP reply), declining"); send_decline(/*xid,*/ server_addr, packet.yiaddr); @@ -128,7 +128,7 @@ Index: busybox-1.31.0/networking/udhcp/dhcpc.c change_listen_mode(LISTEN_RAW); client_data.state = INIT_SELECTING; client_data.first_secs = 0; /* make secs field count from 0 */ -@@ -1832,8 +1846,10 @@ +@@ -1792,8 +1806,10 @@ /* return to init state */ bb_info_msg("received %s", "DHCP NAK"); udhcp_run_script(&packet, "nak"); diff --git a/poky/meta/recipes-core/busybox/busybox_1.31.1.bb b/poky/meta/recipes-core/busybox/busybox_1.31.1.bb deleted file mode 100644 index 2bb1d59ba..000000000 --- a/poky/meta/recipes-core/busybox/busybox_1.31.1.bb +++ /dev/null @@ -1,55 +0,0 @@ -require busybox.inc - -SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ - file://busybox-udhcpc-no_deconfig.patch \ - file://find-touchscreen.sh \ - file://busybox-cron \ - file://busybox-httpd \ - file://busybox-udhcpd \ - file://default.script \ - file://simple.script \ - file://hwclock.sh \ - file://syslog \ - file://syslog-startup.conf \ - file://syslog.conf \ - file://busybox-syslog.default \ - file://mdev \ - file://mdev.conf \ - file://mdev-mount.sh \ - file://defconfig \ - file://busybox-syslog.service.in \ - file://busybox-klogd.service.in \ - file://fail_on_no_media.patch \ - file://run-ptest \ - file://inetd.conf \ - file://inetd \ - file://login-utilities.cfg \ - file://recognize_connmand.patch \ - file://busybox-cross-menuconfig.patch \ - file://0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch \ - file://mount-via-label.cfg \ - file://sha1sum.cfg \ - file://sha256sum.cfg \ - file://getopts.cfg \ - file://resize.cfg \ - ${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \ - ${@["", "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager') == 'busybox-mdev')]} \ - file://syslog.cfg \ - file://unicode.cfg \ - file://rcS \ - file://rcK \ - file://makefile-libbb-race.patch \ - file://0001-testsuite-check-uudecode-before-using-it.patch \ - file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \ - file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \ - file://0001-date-Use-64-prefix-syscall-if-we-have-to.patch \ - file://0001-time-Use-64-prefix-syscall-if-we-have-to.patch \ - file://0003-runsv-Use-64-prefix-syscall-if-we-have-to.patch \ - file://0001-Remove-syscall-wrappers-around-clock_gettime-closes-.patch \ - file://0001-Remove-stime-function-calls.patch \ - file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \ -" -SRC_URI_append_libc-musl = " file://musl.cfg " - -SRC_URI[tarball.md5sum] = "70913edaf2263a157393af07565c17f0" -SRC_URI[tarball.sha256sum] = "d0f940a72f648943c1f2211e0e3117387c31d765137d92bd8284a3fb9752a998" diff --git a/poky/meta/recipes-core/busybox/busybox_1.32.0.bb b/poky/meta/recipes-core/busybox/busybox_1.32.0.bb new file mode 100644 index 000000000..0dfdfdb54 --- /dev/null +++ b/poky/meta/recipes-core/busybox/busybox_1.32.0.bb @@ -0,0 +1,50 @@ +require busybox.inc + +SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ + file://busybox-udhcpc-no_deconfig.patch \ + file://find-touchscreen.sh \ + file://busybox-cron \ + file://busybox-httpd \ + file://busybox-udhcpd \ + file://default.script \ + file://simple.script \ + file://hwclock.sh \ + file://syslog \ + file://syslog-startup.conf \ + file://syslog.conf \ + file://busybox-syslog.default \ + file://mdev \ + file://mdev.conf \ + file://mdev-mount.sh \ + file://defconfig \ + file://busybox-syslog.service.in \ + file://busybox-klogd.service.in \ + file://fail_on_no_media.patch \ + file://run-ptest \ + file://inetd.conf \ + file://inetd \ + file://login-utilities.cfg \ + file://recognize_connmand.patch \ + file://busybox-cross-menuconfig.patch \ + file://0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch \ + file://mount-via-label.cfg \ + file://sha1sum.cfg \ + file://sha256sum.cfg \ + file://getopts.cfg \ + file://resize.cfg \ + ${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \ + ${@["", "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager') == 'busybox-mdev')]} \ + file://syslog.cfg \ + file://unicode.cfg \ + file://rcS \ + file://rcK \ + file://makefile-libbb-race.patch \ + file://0001-testsuite-check-uudecode-before-using-it.patch \ + file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \ + file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \ + file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \ +" +SRC_URI_append_libc-musl = " file://musl.cfg " + +SRC_URI[tarball.md5sum] = "9576986f1a960da471d03b72a62f13c7" +SRC_URI[tarball.sha256sum] = "c35d87f1d04b2b153d33c275c2632e40d388a88f19a9e71727e0bbbff51fe689" diff --git a/poky/meta/recipes-core/coreutils/coreutils_8.32.bb b/poky/meta/recipes-core/coreutils/coreutils_8.32.bb index 2422f8634..f8ae3fd94 100644 --- a/poky/meta/recipes-core/coreutils/coreutils_8.32.bb +++ b/poky/meta/recipes-core/coreutils/coreutils_8.32.bb @@ -59,9 +59,20 @@ base_bindir_progs = "cat chgrp chmod chown cp date dd echo false hostname kill l sbindir_progs= "chroot" -PACKAGE_BEFORE_PN_class-target += "coreutils-stdbuf" +# Split stdbuf into its own package, so one can include +# coreutils-stdbuf without getting the rest of coreutils, but make +# coreutils itself pull in stdbuf, so IMAGE_INSTALL += "coreutils" +# always provides all coreutils +PACKAGE_BEFORE_PN_class-target += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', '', 'coreutils-stdbuf', d)}" FILES_coreutils-stdbuf = "${bindir}/stdbuf ${libdir}/coreutils/libstdbuf.so" -RDEPENDS_coreutils_class-target += "coreutils-stdbuf" +RDEPENDS_coreutils_class-target += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', '', 'coreutils-stdbuf', d)}" + +# However, when the single-binary PACKAGECONFIG is used, stdbuf +# functionality is built into the single coreutils binary, so there's +# no point splitting /usr/bin/stdbuf to its own package. Instead, add +# an RPROVIDE so that rdepending on coreutils-stdbuf will work +# regardless of whether single-binary is in effect. +RPROVIDES_coreutils += "${@bb.utils.contains('PACKAGECONFIG', 'single-binary', 'coreutils-stdbuf', '', d)}" # Let aclocal use the relative path for the m4 file rather than the # absolute since coreutils has a lot of m4 files, otherwise there might diff --git a/poky/meta/recipes-core/dropbear/dropbear.inc b/poky/meta/recipes-core/dropbear/dropbear.inc index 7269888a4..080ee26b2 100644 --- a/poky/meta/recipes-core/dropbear/dropbear.inc +++ b/poky/meta/recipes-core/dropbear/dropbear.inc @@ -5,7 +5,7 @@ SECTION = "console/network" # some files are from other projects and have others license terms: # public domain, OpenSSH 3.5p1, OpenSSH3.6.1p2, PuTTY LICENSE = "MIT & BSD-3-Clause & BSD-2-Clause & PD" -LIC_FILES_CHKSUM = "file://LICENSE;md5=a5ec40cafba26fc4396d0b550f824e01" +LIC_FILES_CHKSUM = "file://LICENSE;md5=25cf44512b7bc8966a48b6b1a9b7605f" DEPENDS = "zlib virtual/crypt" RPROVIDES_${PN} = "ssh sshd" diff --git a/poky/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch b/poky/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch index e48a34bac..b54581f17 100644 --- a/poky/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch +++ b/poky/meta/recipes-core/dropbear/dropbear/dropbear-disable-weak-ciphers.patch @@ -1,33 +1,24 @@ -This feature disables all CBC, SHA1, and diffie-hellman group1 ciphers +From c347ece05a7fdbf50d76cb136b9ed45caed333f6 Mon Sep 17 00:00:00 2001 +From: Joseph Reynolds +Date: Thu, 20 Jun 2019 16:29:15 -0500 +Subject: [PATCH] dropbear: new feature: disable-weak-ciphers + +This feature disables all CBC, SHA1, and diffie-hellman group1 ciphers in the dropbear ssh server and client since they're considered weak ciphers and we want to support the stong algorithms. Upstream-Status: Inappropriate [configuration] Signed-off-by: Joseph Reynolds -Index: dropbear-2019.78/default_options.h -=================================================================== ---- dropbear-2019.78.orig/default_options.h -+++ dropbear-2019.78/default_options.h -@@ -91,7 +91,7 @@ IMPORTANT: Some options will require "ma - - /* Enable CBC mode for ciphers. This has security issues though - * is the most compatible with older SSH implementations */ --#define DROPBEAR_ENABLE_CBC_MODE 1 -+#define DROPBEAR_ENABLE_CBC_MODE 0 - - /* Enable "Counter Mode" for ciphers. This is more secure than - * CBC mode against certain attacks. It is recommended for security -@@ -101,7 +101,7 @@ IMPORTANT: Some options will require "ma - /* Message integrity. sha2-256 is recommended as a default, - sha1 for compatibility */ - #define DROPBEAR_SHA1_HMAC 1 --#define DROPBEAR_SHA1_96_HMAC 1 -+#define DROPBEAR_SHA1_96_HMAC 0 - #define DROPBEAR_SHA2_256_HMAC 1 - - /* Hostkey/public key algorithms - at least one required, these are used -@@ -149,12 +149,12 @@ IMPORTANT: Some options will require "ma +--- + default_options.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/default_options.h b/default_options.h +index 1aa2297..7ff1394 100644 +--- a/default_options.h ++++ b/default_options.h +@@ -163,12 +163,12 @@ IMPORTANT: Some options will require "make clean" after changes */ * Small systems should generally include either curve25519 or ecdh for performance. * curve25519 is less widely supported but is faster */ diff --git a/poky/meta/recipes-core/dropbear/dropbear_2019.78.bb b/poky/meta/recipes-core/dropbear/dropbear_2019.78.bb deleted file mode 100644 index d2cd8161b..000000000 --- a/poky/meta/recipes-core/dropbear/dropbear_2019.78.bb +++ /dev/null @@ -1,4 +0,0 @@ -require dropbear.inc - -SRC_URI[md5sum] = "a972c85ed678ad0fdcb7844e1294fb54" -SRC_URI[sha256sum] = "525965971272270995364a0eb01f35180d793182e63dd0b0c3eb0292291644a4" diff --git a/poky/meta/recipes-core/dropbear/dropbear_2020.80.bb b/poky/meta/recipes-core/dropbear/dropbear_2020.80.bb new file mode 100644 index 000000000..088c71cb9 --- /dev/null +++ b/poky/meta/recipes-core/dropbear/dropbear_2020.80.bb @@ -0,0 +1,3 @@ +require dropbear.inc + +SRC_URI[sha256sum] = "d927941b91f2da150b2033f1a88b6a47999bf0afb1493a73e9216cffdb5d7949" diff --git a/poky/meta/recipes-core/initscripts/initscripts_1.0.bb b/poky/meta/recipes-core/initscripts/initscripts_1.0.bb index 4080c4a49..32c527799 100644 --- a/poky/meta/recipes-core/initscripts/initscripts_1.0.bb +++ b/poky/meta/recipes-core/initscripts/initscripts_1.0.bb @@ -170,7 +170,7 @@ MASKED_SCRIPTS = " \ urandom" pkg_postinst_${PN} () { - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + if type systemctl >/dev/null 2>/dev/null; then if [ -n "$D" ]; then OPTS="--root=$D" fi diff --git a/poky/meta/recipes-core/meta/signing-keys.bb b/poky/meta/recipes-core/meta/signing-keys.bb index 1e1c7e345..5bab94aa3 100644 --- a/poky/meta/recipes-core/meta/signing-keys.bb +++ b/poky/meta/recipes-core/meta/signing-keys.bb @@ -67,8 +67,6 @@ do_deploy () { fi } do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_RPM}" -# cleandirs should possibly be in deploy.bbclass but we need it -do_deploy[cleandirs] = "${DEPLOYDIR}" # clear stamp-extra-info since MACHINE_ARCH is normally put there by # deploy.bbclass do_deploy[stamp-extra-info] = "" diff --git a/poky/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch b/poky/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch index 462d338b9..ba00efe7b 100644 --- a/poky/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch +++ b/poky/meta/recipes-core/musl/musl/0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch @@ -22,11 +22,9 @@ Upstream-Status: Pending tools/install.sh | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) -diff --git a/Makefile b/Makefile -index 8246b78..d1dbe39 100644 --- a/Makefile +++ b/Makefile -@@ -215,7 +215,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/include/% +@@ -210,7 +210,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/inc $(INSTALL) -D -m 644 $< $@ $(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so @@ -35,8 +33,6 @@ index 8246b78..d1dbe39 100644 install-libs: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(if $(SHARED_LIBS),$(DESTDIR)$(LDSO_PATHNAME),) -diff --git a/tools/install.sh b/tools/install.sh -index d913b60..b6a7f79 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -6,18 +6,20 @@ @@ -62,7 +58,7 @@ index d913b60..b6a7f79 100755 m) mode=$OPTARG ;; ?) usage ;; esac -@@ -48,7 +50,7 @@ trap 'rm -f "$tmp"' EXIT INT QUIT TERM HUP +@@ -48,7 +50,7 @@ trap 'rm -f "$tmp"' EXIT INT QUIT TERM H umask 077 if test "$symlink" ; then @@ -71,6 +67,3 @@ index d913b60..b6a7f79 100755 else cat < "$1" > "$tmp" chmod "$mode" "$tmp" --- -2.7.4 - diff --git a/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch b/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch index 6a875a717..f57aae5f3 100644 --- a/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch +++ b/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch @@ -20,11 +20,9 @@ Signed-off-by: Serhey Popovych ldso/dynlink.c | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) -diff --git a/Makefile b/Makefile -index b46f8ca4..c07e4ae8 100644 --- a/Makefile +++ b/Makefile -@@ -46,7 +46,8 @@ CFLAGS_AUTO = -Os -pipe +@@ -47,7 +47,8 @@ CFLAGS_AUTO = -Os -pipe CFLAGS_C99FSE = -std=c99 -ffreestanding -nostdinc CFLAGS_ALL = $(CFLAGS_C99FSE) @@ -34,20 +32,18 @@ index b46f8ca4..c07e4ae8 100644 CFLAGS_ALL += $(CPPFLAGS) $(CFLAGS_AUTO) $(CFLAGS) LDFLAGS_ALL = $(LDFLAGS_AUTO) $(LDFLAGS) -diff --git a/ldso/dynlink.c b/ldso/dynlink.c -index ec921dfd..7c119c55 100644 --- a/ldso/dynlink.c +++ b/ldso/dynlink.c -@@ -22,6 +22,8 @@ +@@ -24,6 +24,8 @@ + #include "libc.h" #include "dynlink.h" - #include "malloc_impl.h" +#define SYS_PATH_DFLT SYSLIBDIR ":" LIBDIR + static void error(const char *, ...); #define MAXP2(a,b) (-(-(a)&-(b))) -@@ -1038,7 +1040,7 @@ static struct dso *load_library(const char *name, struct dso *needed_by) +@@ -1071,7 +1073,7 @@ static struct dso *load_library(const ch sys_path = ""; } } @@ -56,6 +52,3 @@ index ec921dfd..7c119c55 100644 fd = path_open(name, sys_path, buf, sizeof buf); } pathname = buf; --- -2.7.4 - diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb index 6aa69985d..0913b09aa 100644 --- a/poky/meta/recipes-core/musl/musl_git.bb +++ b/poky/meta/recipes-core/musl/musl_git.bb @@ -4,7 +4,7 @@ require musl.inc inherit linuxloader -SRCREV = "1b4e84c56df0f8ca30f6bc05962a860f869e71df" +SRCREV = "fca7428c096066482d8c3f52450810288e27515c" BASEVER = "1.2.0" diff --git a/poky/meta/recipes-core/ovmf/ovmf_git.bb b/poky/meta/recipes-core/ovmf/ovmf_git.bb index 91c1b6ba1..84547630e 100644 --- a/poky/meta/recipes-core/ovmf/ovmf_git.bb +++ b/poky/meta/recipes-core/ovmf/ovmf_git.bb @@ -37,7 +37,7 @@ EDK_TOOLS_DIR="edk2_basetools" BUILD_OPTIMIZATION="-pipe" # OVMF supports IA only, although it could conceivably support ARM someday. -COMPATIBLE_HOST='(i.86|x86_64).*' +COMPATIBLE_HOST_class-target='(i.86|x86_64).*' # Additional build flags for OVMF with Secure Boot. # Fedora also uses "-D SMM_REQUIRE -D EXCLUDE_SHELL_FROM_FD". @@ -220,7 +220,6 @@ do_deploy[depends] += "${DEPLOYDEP}" do_deploy() { } -do_deploy[cleandirs] = "${DEPLOYDIR}" do_deploy_class-target() { # For use with "runqemu ovmf". for i in \ diff --git a/poky/meta/recipes-core/systemd/systemd_245.6.bb b/poky/meta/recipes-core/systemd/systemd_245.6.bb index b6681b206..cdafb9824 100644 --- a/poky/meta/recipes-core/systemd/systemd_245.6.bb +++ b/poky/meta/recipes-core/systemd/systemd_245.6.bb @@ -544,7 +544,6 @@ FILES_${PN} = " ${base_bindir}/* \ ${bindir}/resolvectl \ ${bindir}/timedatectl \ ${bindir}/bootctl \ - ${bindir}/kernel-install \ ${exec_prefix}/lib/tmpfiles.d/*.conf \ ${exec_prefix}/lib/systemd \ ${exec_prefix}/lib/modules-load.d \ diff --git a/poky/meta/recipes-devtools/bison/bison_3.6.3.bb b/poky/meta/recipes-devtools/bison/bison_3.6.3.bb deleted file mode 100644 index 1d0f5995c..000000000 --- a/poky/meta/recipes-devtools/bison/bison_3.6.3.bb +++ /dev/null @@ -1,44 +0,0 @@ -SUMMARY = "GNU Project parser generator (yacc replacement)" -DESCRIPTION = "Bison is a general-purpose parser generator that converts an annotated context-free grammar into \ -an LALR(1) or GLR parser for that grammar. Bison is upward compatible with Yacc: all properly-written Yacc \ -grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with \ -little trouble." -HOMEPAGE = "http://www.gnu.org/software/bison/" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -SECTION = "devel" -DEPENDS = "bison-native flex-native" - -SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \ - file://add-with-bisonlocaledir.patch \ - file://0001-bison-fix-the-parallel-build.patch \ - " -SRC_URI[sha256sum] = "06db793651de9dd5f0a85a6fe4bdbca413c0806bf2432377523da96ca0b4b73d" - -# No point in hardcoding path to m4, just use PATH -EXTRA_OECONF += "M4=m4" - -# Reset any loadavg set via environment, it breaks parallel build -# | ../bison-3.5.2/lib/uniwidth/width.c:21:10: fatal error: uniwidth.h: No such file or directory -# | #include "uniwidth.h" -# | ^~~~~~~~~~~~ -EXTRA_OEMAKE_append = " -l" - -inherit autotools gettext texinfo - -# The automatic m4 path detection gets confused, so force the right value -acpaths = "-I ${S}/m4" - -do_compile_prepend() { - for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done -} - -do_install_append_class-native() { - create_wrapper ${D}/${bindir}/bison \ - BISON_PKGDATADIR=${STAGING_DATADIR_NATIVE}/bison -} -do_install_append_class-nativesdk() { - create_wrapper ${D}/${bindir}/bison \ - BISON_PKGDATADIR=${datadir}/bison -} -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/bison/bison_3.6.4.bb b/poky/meta/recipes-devtools/bison/bison_3.6.4.bb new file mode 100644 index 000000000..0c877c3c5 --- /dev/null +++ b/poky/meta/recipes-devtools/bison/bison_3.6.4.bb @@ -0,0 +1,44 @@ +SUMMARY = "GNU Project parser generator (yacc replacement)" +DESCRIPTION = "Bison is a general-purpose parser generator that converts an annotated context-free grammar into \ +an LALR(1) or GLR parser for that grammar. Bison is upward compatible with Yacc: all properly-written Yacc \ +grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with \ +little trouble." +HOMEPAGE = "http://www.gnu.org/software/bison/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +SECTION = "devel" +DEPENDS = "bison-native flex-native" + +SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \ + file://add-with-bisonlocaledir.patch \ + file://0001-bison-fix-the-parallel-build.patch \ + " +SRC_URI[sha256sum] = "8b13473b31ca7fcf65e5e8a74224368ffd5df19275602a9c9567ba393f18577d" + +# No point in hardcoding path to m4, just use PATH +EXTRA_OECONF += "M4=m4" + +# Reset any loadavg set via environment, it breaks parallel build +# | ../bison-3.5.2/lib/uniwidth/width.c:21:10: fatal error: uniwidth.h: No such file or directory +# | #include "uniwidth.h" +# | ^~~~~~~~~~~~ +EXTRA_OEMAKE_append = " -l" + +inherit autotools gettext texinfo + +# The automatic m4 path detection gets confused, so force the right value +acpaths = "-I ${S}/m4" + +do_compile_prepend() { + for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done +} + +do_install_append_class-native() { + create_wrapper ${D}/${bindir}/bison \ + BISON_PKGDATADIR=${STAGING_DATADIR_NATIVE}/bison +} +do_install_append_class-nativesdk() { + create_wrapper ${D}/${bindir}/bison \ + BISON_PKGDATADIR=${datadir}/bison +} +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-devtools/ccache/ccache.inc b/poky/meta/recipes-devtools/ccache/ccache.inc deleted file mode 100644 index dcbbf0ca7..000000000 --- a/poky/meta/recipes-devtools/ccache/ccache.inc +++ /dev/null @@ -1,28 +0,0 @@ -SUMMARY = "a fast C/C++ compiler cache" -DESCRIPTION = "ccache is a compiler cache. It speeds up recompilation \ -by caching the result of previous compilations and detecting when the \ -same compilation is being done again. Supported languages are C, C\+\+, \ -Objective-C and Objective-C++." -HOMEPAGE = "http://ccache.samba.org" -SECTION = "devel" -LICENSE = "GPLv3+" - -DEPENDS = "zlib" - -SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz" -UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/" - -inherit autotools - -# Remove ccache-native's dependencies, so that it can be used widely by -# other native recipes. -DEPENDS_class-native = "" -EXTRA_OECONF_class-native = "--with-bundled-zlib" -INHIBIT_AUTOTOOLS_DEPS_class-native = "1" -PATCHTOOL = "patch" - -BBCLASSEXTEND = "native" - -do_configure_class-native() { - oe_runconf -} diff --git a/poky/meta/recipes-devtools/ccache/ccache_3.7.10.bb b/poky/meta/recipes-devtools/ccache/ccache_3.7.10.bb new file mode 100644 index 000000000..852583dfd --- /dev/null +++ b/poky/meta/recipes-devtools/ccache/ccache_3.7.10.bb @@ -0,0 +1,32 @@ +SUMMARY = "a fast C/C++ compiler cache" +DESCRIPTION = "ccache is a compiler cache. It speeds up recompilation \ +by caching the result of previous compilations and detecting when the \ +same compilation is being done again. Supported languages are C, C\+\+, \ +Objective-C and Objective-C++." +HOMEPAGE = "http://ccache.samba.org" +SECTION = "devel" + +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=22d514dbc01fdf9a9784334b6b59417a" + +DEPENDS = "zlib" + +SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz" +SRC_URI[sha256sum] = "447ddf21a5f0ffa6b6d26839ae876a6d17d0d7e3533926cdf78ecd11dad793f8" + +UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/" + +inherit autotools + +# Remove ccache-native's dependencies, so that it can be used widely by +# other native recipes. +DEPENDS_class-native = "" +EXTRA_OECONF_class-native = "--with-bundled-zlib" +INHIBIT_AUTOTOOLS_DEPS_class-native = "1" +PATCHTOOL = "patch" + +BBCLASSEXTEND = "native" + +do_configure_class-native() { + oe_runconf +} diff --git a/poky/meta/recipes-devtools/ccache/ccache_3.7.9.bb b/poky/meta/recipes-devtools/ccache/ccache_3.7.9.bb deleted file mode 100644 index a4de6c9fe..000000000 --- a/poky/meta/recipes-devtools/ccache/ccache_3.7.9.bb +++ /dev/null @@ -1,7 +0,0 @@ -require ccache.inc - -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=22d514dbc01fdf9a9784334b6b59417a" - -SRC_URI[md5sum] = "a4a38afc62ed189904357739fd8f3fb8" -SRC_URI[sha256sum] = "92838e2133c9e704fdab9ee2608dad86c99021278b9ac47d065aa8ff2ea8ce36" diff --git a/poky/meta/recipes-devtools/dnf/dnf_4.2.21.bb b/poky/meta/recipes-devtools/dnf/dnf_4.2.21.bb deleted file mode 100644 index 44dab1d8a..000000000 --- a/poky/meta/recipes-devtools/dnf/dnf_4.2.21.bb +++ /dev/null @@ -1,90 +0,0 @@ -SUMMARY = "Package manager forked from Yum, using libsolv as a dependency resolver" -DESCRIPTION = "Software package manager that installs, updates, and removes \ -packages on RPM-based Linux distributions. It automatically computes \ -dependencies and determines the actions required to install packages." -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://PACKAGE-LICENSING;md5=4a0548e303dbc77f067335b4d688e745 \ - " - -SRC_URI = "git://github.com/rpm-software-management/dnf.git \ - file://0001-Corretly-install-tmpfiles.d-configuration.patch \ - file://0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch \ - file://0005-Do-not-prepend-installroot-to-logdir.patch \ - file://0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ - file://0030-Run-python-scripts-using-env.patch \ - file://0001-set-python-path-for-completion_helper.patch \ - file://0001-dnf-write-the-log-lock-to-root.patch \ - " - -SRCREV = "864c381baabf024c299dca75abfda96139b8f583" -UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" - -S = "${WORKDIR}/git" - -inherit cmake gettext bash-completion distutils3-base systemd - -DEPENDS += "libdnf librepo libcomps python3-iniparse" - -# manpages generation requires http://www.sphinx-doc.org/ -EXTRA_OECMAKE = " -DWITH_MAN=0 -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3" - -BBCLASSEXTEND = "native nativesdk" - -RDEPENDS_${PN} += " \ - python3-core \ - python3-codecs \ - python3-netclient \ - python3-email \ - python3-threading \ - python3-distutils \ - python3-logging \ - python3-fcntl \ - librepo \ - python3-shell \ - libcomps \ - libdnf \ - python3-sqlite3 \ - python3-compression \ - python3-rpm \ - python3-iniparse \ - python3-json \ - python3-curses \ - python3-misc \ - python3-gpg \ - " - -RDEPENDS_${PN}_class-native = "" - -RRECOMMENDS_${PN}_class-target += "gnupg" - -# Create a symlink called 'dnf' as 'make install' does not do it, but -# .spec file in dnf source tree does (and then Fedora and dnf documentation -# says that dnf binary is plain 'dnf'). -do_install_append() { - lnr ${D}/${bindir}/dnf-3 ${D}/${bindir}/dnf - lnr ${D}/${bindir}/dnf-automatic-3 ${D}/${bindir}/dnf-automatic -} - -# Direct dnf-native to read rpm configuration from our sysroot, not the one it was compiled in -do_install_append_class-native() { - create_wrapper ${D}/${bindir}/dnf \ - RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \ - RPM_NO_CHROOT_FOR_SCRIPTS=1 -} - -do_install_append_class-nativesdk() { - create_wrapper ${D}/${bindir}/dnf \ - RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm \ - RPM_NO_CHROOT_FOR_SCRIPTS=1 -} - -SYSTEMD_SERVICE_${PN} = "dnf-makecache.service dnf-makecache.timer \ - dnf-automatic.service dnf-automatic.timer \ - dnf-automatic-download.service dnf-automatic-download.timer \ - dnf-automatic-install.service dnf-automatic-install.timer \ - dnf-automatic-notifyonly.service dnf-automatic-notifyonly.timer \ -" -SYSTEMD_AUTO_ENABLE ?= "disable" - -PNBLACKLIST[dnf] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build without package_rpm in PACKAGE_CLASSES due disabled rpm support in libsolv', d)}" diff --git a/poky/meta/recipes-devtools/dnf/dnf_4.2.23.bb b/poky/meta/recipes-devtools/dnf/dnf_4.2.23.bb new file mode 100644 index 000000000..8cfd4d0c8 --- /dev/null +++ b/poky/meta/recipes-devtools/dnf/dnf_4.2.23.bb @@ -0,0 +1,90 @@ +SUMMARY = "Package manager forked from Yum, using libsolv as a dependency resolver" +DESCRIPTION = "Software package manager that installs, updates, and removes \ +packages on RPM-based Linux distributions. It automatically computes \ +dependencies and determines the actions required to install packages." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://PACKAGE-LICENSING;md5=4a0548e303dbc77f067335b4d688e745 \ + " + +SRC_URI = "git://github.com/rpm-software-management/dnf.git \ + file://0001-Corretly-install-tmpfiles.d-configuration.patch \ + file://0001-Do-not-hardcode-etc-and-systemd-unit-directories.patch \ + file://0005-Do-not-prepend-installroot-to-logdir.patch \ + file://0029-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ + file://0030-Run-python-scripts-using-env.patch \ + file://0001-set-python-path-for-completion_helper.patch \ + file://0001-dnf-write-the-log-lock-to-root.patch \ + " + +SRCREV = "126d861812f827285960592359615ed7cb195aac" +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" + +S = "${WORKDIR}/git" + +inherit cmake gettext bash-completion distutils3-base systemd + +DEPENDS += "libdnf librepo libcomps python3-iniparse" + +# manpages generation requires http://www.sphinx-doc.org/ +EXTRA_OECMAKE = " -DWITH_MAN=0 -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3" + +BBCLASSEXTEND = "native nativesdk" + +RDEPENDS_${PN} += " \ + python3-core \ + python3-codecs \ + python3-netclient \ + python3-email \ + python3-threading \ + python3-distutils \ + python3-logging \ + python3-fcntl \ + librepo \ + python3-shell \ + libcomps \ + libdnf \ + python3-sqlite3 \ + python3-compression \ + python3-rpm \ + python3-iniparse \ + python3-json \ + python3-curses \ + python3-misc \ + python3-gpg \ + " + +RDEPENDS_${PN}_class-native = "" + +RRECOMMENDS_${PN}_class-target += "gnupg" + +# Create a symlink called 'dnf' as 'make install' does not do it, but +# .spec file in dnf source tree does (and then Fedora and dnf documentation +# says that dnf binary is plain 'dnf'). +do_install_append() { + lnr ${D}/${bindir}/dnf-3 ${D}/${bindir}/dnf + lnr ${D}/${bindir}/dnf-automatic-3 ${D}/${bindir}/dnf-automatic +} + +# Direct dnf-native to read rpm configuration from our sysroot, not the one it was compiled in +do_install_append_class-native() { + create_wrapper ${D}/${bindir}/dnf \ + RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm \ + RPM_NO_CHROOT_FOR_SCRIPTS=1 +} + +do_install_append_class-nativesdk() { + create_wrapper ${D}/${bindir}/dnf \ + RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm \ + RPM_NO_CHROOT_FOR_SCRIPTS=1 +} + +SYSTEMD_SERVICE_${PN} = "dnf-makecache.service dnf-makecache.timer \ + dnf-automatic.service dnf-automatic.timer \ + dnf-automatic-download.service dnf-automatic-download.timer \ + dnf-automatic-install.service dnf-automatic-install.timer \ + dnf-automatic-notifyonly.service dnf-automatic-notifyonly.timer \ +" +SYSTEMD_AUTO_ENABLE ?= "disable" + +PNBLACKLIST[dnf] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'does not build without package_rpm in PACKAGE_CLASSES due disabled rpm support in libsolv', d)}" diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.179.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.179.bb deleted file mode 100644 index 1da95ec1d..000000000 --- a/poky/meta/recipes-devtools/elfutils/elfutils_0.179.bb +++ /dev/null @@ -1,157 +0,0 @@ -SUMMARY = "Utilities and libraries for handling compiled object files" -HOMEPAGE = "https://sourceware.org/elfutils" -SECTION = "base" -LICENSE = "GPLv2 & LGPLv3+ & GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -DEPENDS = "zlib virtual/libintl" -DEPENDS_append_libc-musl = " argp-standalone fts musl-obstack " -# The Debian patches below are from: -# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz -SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \ - file://0001-dso-link-change.patch \ - file://0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch \ - file://0003-fixheadercheck.patch \ - file://0004-Disable-the-test-to-convert-euc-jp.patch \ - file://0006-Fix-build-on-aarch64-musl.patch \ - file://0001-libasm-may-link-with-libbz2-if-found.patch \ - file://0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch \ - file://debian/hppa_backend.diff \ - file://debian/arm_backend.diff \ - file://debian/mips_backend.diff \ - file://debian/mips_readelf_w.patch \ - file://debian/kfreebsd_path.patch \ - file://debian/0001-Ignore-differences-between-mips-machine-identifiers.patch \ - file://debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch \ - file://debian/0003-Add-mips-n64-relocation-format-hack.patch \ - file://debian/hurd_path.patch \ - file://debian/ignore_strmerge.diff \ - file://debian/disable_werror.patch \ - file://debian/testsuite-ignore-elflint.diff \ - file://debian/mips_cfi.patch \ - file://debian/0001-fix-compile-failure-with-debian-patches.patch \ - file://0001-skip-the-test-when-gcc-not-deployed.patch \ - file://0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch \ - file://run-ptest \ - file://ptest.patch \ - " -SRC_URI_append_libc-musl = " \ - file://0001-musl-obstack-fts.patch \ - file://0002-musl-libs.patch \ - file://0003-musl-utils.patch \ - file://0004-Fix-error-on-musl.patch \ - " -SRC_URI[md5sum] = "8ee56b371b5a7ea081284c44e5164600" -SRC_URI[sha256sum] = "25a545566cbacaa37ae6222e58f1c48ea4570f53ba991886e2f5ce96e22a23a2" - -inherit autotools gettext ptest pkgconfig - -EXTRA_OECONF = "--program-prefix=eu- --disable-debuginfod" - -DEPENDS_BZIP2 = "bzip2-replacement-native" -DEPENDS_BZIP2_class-target = "bzip2" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[bzip2] = "--with-bzlib,--without-bzlib,${DEPENDS_BZIP2}" -PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz" - -RDEPENDS_${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils" - -EXTRA_OECONF_append_class-target = " --disable-tests-rpath" - -RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" - -do_compile_ptest() { - cd ${B}/tests - oe_runmake buildtest-TESTS oecheck -} - -do_install_ptest() { - if [ ${PTEST_ENABLED} = "1" ]; then - # copy the files which needed by the cases - TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint elfcompress elfclassify stack unstrip" - install -d -m 755 ${D}${PTEST_PATH}/src - install -d -m 755 ${D}${PTEST_PATH}/libelf - install -d -m 755 ${D}${PTEST_PATH}/libdw - install -d -m 755 ${D}${PTEST_PATH}/libasm - for test_file in ${TEST_FILES}; do - if [ -f ${B}/src/${test_file} ]; then - cp -r ${B}/src/${test_file} ${D}${PTEST_PATH}/src - fi - done - cp ${D}${libdir}/libelf-${PV}.so ${D}${PTEST_PATH}/libelf/libelf.so - cp ${D}${libdir}/libdw-${PV}.so ${D}${PTEST_PATH}/libdw/libdw.so - cp ${D}${libdir}/libasm-${PV}.so ${D}${PTEST_PATH}/libasm/libasm.so - cp -r ${S}/tests/ ${D}${PTEST_PATH} - cp -r ${B}/tests/* ${D}${PTEST_PATH}/tests - cp -r ${B}/config.h ${D}${PTEST_PATH} - cp -r ${B}/backends ${D}${PTEST_PATH} - sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile - find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {} - fi -} - -EXTRA_OEMAKE_class-native = "" -EXTRA_OEMAKE_class-nativesdk = "" - -BBCLASSEXTEND = "native nativesdk" - -# Package utilities separately -PACKAGES =+ "${PN}-binutils libelf libasm libdw" - -# shared libraries are licensed GPLv2 or GPLv3+, binaries GPLv3+ -# according to NEWS file: -# "The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone -# programs. There is now also a formal CONTRIBUTING document describing how to -# submit patches." -LICENSE_${PN}-binutils = "GPLv3+" -LICENSE_${PN} = "GPLv3+" -LICENSE_libelf = "GPLv2 | LGPLv3+" -LICENSE_libasm = "GPLv2 | LGPLv3+" -LICENSE_libdw = "GPLv2 | LGPLv3+" - -FILES_${PN}-binutils = "\ - ${bindir}/eu-addr2line \ - ${bindir}/eu-ld \ - ${bindir}/eu-nm \ - ${bindir}/eu-readelf \ - ${bindir}/eu-size \ - ${bindir}/eu-strip" - -FILES_libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*" -FILES_libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*" -FILES_libdw = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*" -# Some packages have the version preceeding the .so instead properly -# versioned .so., so we need to reorder and repackage. -#FILES_${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so" -#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so" - -# The package contains symlinks that trip up insane -INSANE_SKIP_${MLPREFIX}libdw = "dev-so" - -# avoid stripping some generated binaries otherwise some of the tests such as test-nlist, -# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail -INHIBIT_PACKAGE_STRIP_FILES = "\ - ${PKGD}${PTEST_PATH}/tests/test-nlist \ - ${PKGD}${PTEST_PATH}/tests/elfstrmerge \ - ${PKGD}${PTEST_PATH}/tests/backtrace-child \ - ${PKGD}${PTEST_PATH}/tests/backtrace-data \ - ${PKGD}${PTEST_PATH}/tests/backtrace-dwarf \ - ${PKGD}${PTEST_PATH}/tests/deleted \ - ${PKGD}${PTEST_PATH}/src/strip \ - ${PKGD}${PTEST_PATH}/src/addr2line \ - ${PKGD}${PTEST_PATH}/src/elfcmp \ - ${PKGD}${PTEST_PATH}/src/objdump \ - ${PKGD}${PTEST_PATH}/src/readelf \ - ${PKGD}${PTEST_PATH}/src/nm \ - ${PKGD}${PTEST_PATH}/src/elflint \ - ${PKGD}${PTEST_PATH}/src/elfclassify \ - ${PKGD}${PTEST_PATH}/src/stack \ - ${PKGD}${PTEST_PATH}/src/unstrip \ - ${PKGD}${PTEST_PATH}/libelf/libelf.so \ - ${PKGD}${PTEST_PATH}/libdw/libdw.so \ - ${PKGD}${PTEST_PATH}/libasm/libasm.so \ - ${PKGD}${PTEST_PATH}/backends/libebl_i386.so \ - ${PKGD}${PTEST_PATH}/backends/libebl_x86_64.so \ -" - -PRIVATE_LIBS_${PN}-ptest = "libdw.so.1 libelf.so.1 libasm.so.1" diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.180.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.180.bb new file mode 100644 index 000000000..9f8bfc24f --- /dev/null +++ b/poky/meta/recipes-devtools/elfutils/elfutils_0.180.bb @@ -0,0 +1,144 @@ +SUMMARY = "Utilities and libraries for handling compiled object files" +HOMEPAGE = "https://sourceware.org/elfutils" +SECTION = "base" +LICENSE = "GPLv2 & LGPLv3+ & GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" +DEPENDS = "zlib virtual/libintl" +DEPENDS_append_libc-musl = " argp-standalone fts musl-obstack " +# The Debian patches below are from: +# http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz +SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \ + file://0001-dso-link-change.patch \ + file://0002-Fix-elf_cvt_gunhash-if-dest-and-src-are-same.patch \ + file://0003-fixheadercheck.patch \ + file://0004-Disable-the-test-to-convert-euc-jp.patch \ + file://0006-Fix-build-on-aarch64-musl.patch \ + file://0001-libasm-may-link-with-libbz2-if-found.patch \ + file://0001-libelf-elf_end.c-check-data_list.data.d.d_buf-before.patch \ + file://0001-skip-the-test-when-gcc-not-deployed.patch \ + file://0001-ppc_initreg.c-Incliude-asm-ptrace.h-for-pt_regs-defi.patch \ + file://run-ptest \ + file://ptest.patch \ + file://0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch \ + " +SRC_URI_append_libc-musl = " \ + file://0001-musl-obstack-fts.patch \ + file://0002-musl-libs.patch \ + file://0003-musl-utils.patch \ + file://0004-Fix-error-on-musl.patch \ + file://0015-config-eu.am-do-not-use-Werror.patch \ + " +SRC_URI[sha256sum] = "b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d" + +inherit autotools gettext ptest pkgconfig + +EXTRA_OECONF = "--program-prefix=eu- --disable-debuginfod" + +DEPENDS_BZIP2 = "bzip2-replacement-native" +DEPENDS_BZIP2_class-target = "bzip2" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[bzip2] = "--with-bzlib,--without-bzlib,${DEPENDS_BZIP2}" +PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz" + +RDEPENDS_${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils" + +EXTRA_OECONF_append_class-target = " --disable-tests-rpath" + +RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" + +do_compile_ptest() { + cd ${B}/tests + oe_runmake buildtest-TESTS oecheck +} + +do_install_ptest() { + if [ ${PTEST_ENABLED} = "1" ]; then + # copy the files which needed by the cases + TEST_FILES="strip strip.o addr2line elfcmp objdump readelf size.o nm.o nm elflint elfcompress elfclassify stack unstrip" + install -d -m 755 ${D}${PTEST_PATH}/src + install -d -m 755 ${D}${PTEST_PATH}/libelf + install -d -m 755 ${D}${PTEST_PATH}/libdw + install -d -m 755 ${D}${PTEST_PATH}/libasm + for test_file in ${TEST_FILES}; do + if [ -f ${B}/src/${test_file} ]; then + cp -r ${B}/src/${test_file} ${D}${PTEST_PATH}/src + fi + done + cp ${D}${libdir}/libelf-${PV}.so ${D}${PTEST_PATH}/libelf/libelf.so + cp ${D}${libdir}/libdw-${PV}.so ${D}${PTEST_PATH}/libdw/libdw.so + cp ${D}${libdir}/libasm-${PV}.so ${D}${PTEST_PATH}/libasm/libasm.so + cp -r ${S}/tests/ ${D}${PTEST_PATH} + cp -r ${B}/tests/* ${D}${PTEST_PATH}/tests + cp -r ${B}/config.h ${D}${PTEST_PATH} + cp -r ${B}/backends ${D}${PTEST_PATH} + sed -i '/^Makefile:/c Makefile:' ${D}${PTEST_PATH}/tests/Makefile + find ${D}${PTEST_PATH} -type f -name *.[hoc] | xargs -i rm {} + fi +} + +EXTRA_OEMAKE_class-native = "" +EXTRA_OEMAKE_class-nativesdk = "" + +BBCLASSEXTEND = "native nativesdk" + +# Package utilities separately +PACKAGES =+ "${PN}-binutils libelf libasm libdw" + +# shared libraries are licensed GPLv2 or GPLv3+, binaries GPLv3+ +# according to NEWS file: +# "The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone +# programs. There is now also a formal CONTRIBUTING document describing how to +# submit patches." +LICENSE_${PN}-binutils = "GPLv3+" +LICENSE_${PN} = "GPLv3+" +LICENSE_libelf = "GPLv2 | LGPLv3+" +LICENSE_libasm = "GPLv2 | LGPLv3+" +LICENSE_libdw = "GPLv2 | LGPLv3+" + +FILES_${PN}-binutils = "\ + ${bindir}/eu-addr2line \ + ${bindir}/eu-ld \ + ${bindir}/eu-nm \ + ${bindir}/eu-readelf \ + ${bindir}/eu-size \ + ${bindir}/eu-strip" + +FILES_libelf = "${libdir}/libelf-${PV}.so ${libdir}/libelf.so.*" +FILES_libasm = "${libdir}/libasm-${PV}.so ${libdir}/libasm.so.*" +FILES_libdw = "${libdir}/libdw-${PV}.so ${libdir}/libdw.so.* ${libdir}/elfutils/lib*" +# Some packages have the version preceeding the .so instead properly +# versioned .so., so we need to reorder and repackage. +#FILES_${PN} += "${libdir}/*-${PV}.so ${base_libdir}/*-${PV}.so" +#FILES_SOLIBSDEV = "${libdir}/libasm.so ${libdir}/libdw.so ${libdir}/libelf.so" + +# The package contains symlinks that trip up insane +INSANE_SKIP_${MLPREFIX}libdw = "dev-so" + +# avoid stripping some generated binaries otherwise some of the tests such as test-nlist, +# run-strip-reloc.sh, run-strip-strmerge.sh and so on will fail +INHIBIT_PACKAGE_STRIP_FILES = "\ + ${PKGD}${PTEST_PATH}/tests/test-nlist \ + ${PKGD}${PTEST_PATH}/tests/elfstrmerge \ + ${PKGD}${PTEST_PATH}/tests/backtrace-child \ + ${PKGD}${PTEST_PATH}/tests/backtrace-data \ + ${PKGD}${PTEST_PATH}/tests/backtrace-dwarf \ + ${PKGD}${PTEST_PATH}/tests/deleted \ + ${PKGD}${PTEST_PATH}/src/strip \ + ${PKGD}${PTEST_PATH}/src/addr2line \ + ${PKGD}${PTEST_PATH}/src/elfcmp \ + ${PKGD}${PTEST_PATH}/src/objdump \ + ${PKGD}${PTEST_PATH}/src/readelf \ + ${PKGD}${PTEST_PATH}/src/nm \ + ${PKGD}${PTEST_PATH}/src/elflint \ + ${PKGD}${PTEST_PATH}/src/elfclassify \ + ${PKGD}${PTEST_PATH}/src/stack \ + ${PKGD}${PTEST_PATH}/src/unstrip \ + ${PKGD}${PTEST_PATH}/libelf/libelf.so \ + ${PKGD}${PTEST_PATH}/libdw/libdw.so \ + ${PKGD}${PTEST_PATH}/libasm/libasm.so \ + ${PKGD}${PTEST_PATH}/backends/libebl_i386.so \ + ${PKGD}${PTEST_PATH}/backends/libebl_x86_64.so \ +" + +PRIVATE_LIBS_${PN}-ptest = "libdw.so.1 libelf.so.1 libasm.so.1" diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch b/poky/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch index f751a2ecd..2450b0d6b 100644 --- a/poky/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch +++ b/poky/meta/recipes-devtools/elfutils/files/0001-musl-obstack-fts.patch @@ -1,7 +1,7 @@ -From 8ccf3d92b8766b53f203df7e01b489604ef851f3 Mon Sep 17 00:00:00 2001 +From 1ec7b2208803e0fbdcbe6c07b849e7dc4d9fa8a2 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Fri, 23 Aug 2019 10:17:25 +0800 -Subject: [PATCH 1/4] musl-obstack-fts +Subject: [PATCH] musl-obstack-fts Look for libfts and libobstack during configure, these libraries are external to libc when using musl, whereas @@ -20,10 +20,10 @@ Signed-off-by: Hongxu Jia 3 files changed, 58 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac -index cad7b2b..6d4229b 100644 +index e9649c2..03643c8 100644 --- a/configure.ac +++ b/configure.ac -@@ -529,6 +529,60 @@ else +@@ -538,6 +538,60 @@ else fi AC_SUBST([argp_LDADD]) @@ -122,6 +122,3 @@ index 13d9bda..d5a4f7d 100644 unstrip_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) stack_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) $(demanglelib) elfcompress_LDADD = $(libebl) $(libelf) $(libdw) $(libeu) $(argp_LDADD) --- -2.17.1 - diff --git a/poky/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch b/poky/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch new file mode 100644 index 000000000..481b91238 --- /dev/null +++ b/poky/meta/recipes-devtools/elfutils/files/0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch @@ -0,0 +1,27 @@ +From 1ca86294ee5454592c9ad855e13080509d8a92d3 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Tue, 23 Jun 2020 07:49:35 +0000 +Subject: [PATCH] tests/Makefile.am: compile test_nlist with standard CFLAGS + +Otherwise, it will contain build paths in it and wont +be reproducible. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin +--- + tests/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 8048b69..d2b28a4 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -86,7 +86,7 @@ backtrace-child-biarch$(EXEEXT): backtrace-child.c + test-nlist$(EXEEXT): test-nlist.c + $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) \ +- $(test_nlist_CFLAGS) $(test_nlist_LDADD) -o $@ $< ++ $(CFLAGS) $(test_nlist_LDADD) -o $@ $< + + TESTS = run-arextract.sh run-arsymtest.sh run-ar.sh newfile test-nlist \ + update1 update2 update3 update4 \ diff --git a/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch b/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch index cf1468386..d5ec0ec9e 100644 --- a/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch +++ b/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch @@ -1,7 +1,7 @@ -From ea908c7009de5a208383abf4bec4c6b3d9519ca3 Mon Sep 17 00:00:00 2001 +From 9a57efb0f826a70ae360aa55504ee2de656b92b6 Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Fri, 23 Aug 2019 10:18:47 +0800 -Subject: [PATCH 2/4] musl-libs +Subject: [PATCH] musl-libs Collection of fixes needed to compile libelf and other libraries provided by elfutils for musl targets @@ -104,7 +104,7 @@ index 7bcf61c..11dcc8b 100644 return elf_errmsg (error & 0xffff); case OTHER_ERROR (LIBDW): diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c -index d46ab5a..1c3faee 100644 +index 0434f1e..5afaee8 100644 --- a/libdwfl/linux-kernel-modules.c +++ b/libdwfl/linux-kernel-modules.c @@ -50,6 +50,7 @@ @@ -116,7 +116,7 @@ index d46ab5a..1c3faee 100644 /* If fts.h is included before config.h, its indirect inclusions may not give us the right LFS aliases of these functions, so map them manually. */ diff --git a/libelf/elf.h b/libelf/elf.h -index bed273d..be228e6 100644 +index 197b557..8e5b94c 100644 --- a/libelf/elf.h +++ b/libelf/elf.h @@ -21,7 +21,9 @@ @@ -130,9 +130,9 @@ index bed273d..be228e6 100644 /* Standard ELF types. */ -@@ -4029,6 +4031,7 @@ enum - #define R_NDS32_TLS_TPOFF 102 - #define R_NDS32_TLS_DESC 119 +@@ -4103,6 +4105,7 @@ enum + #define R_ARC_TLS_LE_S9 0x4a + #define R_ARC_TLS_LE_32 0x4b -__END_DECLS - @@ -140,6 +140,3 @@ index bed273d..be228e6 100644 +} +#endif #endif /* elf.h */ --- -2.17.1 - diff --git a/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch b/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch index 79c9d9ad5..4f28d9d02 100644 --- a/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch +++ b/poky/meta/recipes-devtools/elfutils/files/0003-musl-utils.patch @@ -1,7 +1,7 @@ -From 94028b16e56c8eef1aa02dcc4da268a0e471b4ea Mon Sep 17 00:00:00 2001 +From 6923400b777d4ba6f040c4006413bf997326460f Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Fri, 23 Aug 2019 10:19:48 +0800 -Subject: [PATCH 3/4] musl-utils +Subject: [PATCH] musl-utils Provide missing defines which otherwise are available on glibc system headers @@ -161,6 +161,3 @@ index 9b8c09a..1fb5063 100644 /* Name and version of program. */ ARGP_PROGRAM_VERSION_HOOK_DEF = print_version; --- -2.17.1 - diff --git a/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch b/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch index 1b2f9ed98..481e4b38e 100644 --- a/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch +++ b/poky/meta/recipes-devtools/elfutils/files/0004-Fix-error-on-musl.patch @@ -1,7 +1,7 @@ -From 7ff8cbecde7455b530fa7894a78d2326799f2556 Mon Sep 17 00:00:00 2001 +From 48b769ab692c8f02c1ae467229fe3404f662098a Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 1 May 2019 22:15:03 +0100 -Subject: [PATCH 4/4] Fix error on musl: +Subject: [PATCH] Fix error on musl: | ../../elfutils-0.176/tests/elfstrmerge.c: In function 'main': | ../../elfutils-0.176/tests/elfstrmerge.c:370:60: error: 'ALLPERMS' undeclared (first use in this function); did you mean 'EPERM'? @@ -34,6 +34,3 @@ index ba0d68d..1d2447f 100644 /* The original ELF file. */ static int fd = -1; static Elf *elf = NULL; --- -2.17.1 - diff --git a/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch b/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch new file mode 100644 index 000000000..c3ae35726 --- /dev/null +++ b/poky/meta/recipes-devtools/elfutils/files/0015-config-eu.am-do-not-use-Werror.patch @@ -0,0 +1,36 @@ +From dce2187dd8f592316357b200ebbe8dbed9ee65cb Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 22 Jun 2020 21:35:16 +0000 +Subject: [PATCH] config/eu.am: do not use -Werror + +Due to re-definition of error() on musl, gcc starts throwing +errors where none happen with glibc. Since upstream is not +likely to be interested in musl builds, lets just disable +Werror. + +Upstream-Status: Inappropriate [oe core specific] +Signed-off-by: Alexander Kanavin +--- + config/eu.am | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/config/eu.am b/config/eu.am +index 6c3c444..3bc0dc9 100644 +--- a/config/eu.am ++++ b/config/eu.am +@@ -73,7 +73,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ + -Wold-style-definition -Wstrict-prototypes -Wtrampolines \ + $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ + $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ +- $(if $($(*F)_no_Werror),,-Werror) \ + $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ + $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ + $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ +@@ -83,7 +82,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \ + -Wtrampolines \ + $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ + $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ +- $(if $($(*F)_no_Werror),,-Werror) \ + $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ + $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ + $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch b/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch deleted file mode 100644 index a2983c577..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/0001-Ignore-differences-between-mips-machine-identifiers.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 77cb4a53c270d5854d3af24f19547bc3de825233 Mon Sep 17 00:00:00 2001 -From: James Cowgill -Date: Mon, 5 Jan 2015 15:16:58 +0000 -Subject: [PATCH 1/3] Ignore differences between mips machine identifiers - -Little endian binaries actually use EM_MIPS so you can't tell the endianness -from the elf machine id. Also, the EM_MIPS_RS3_LE machine is dead anyway (the -kernel will not load binaries containing it). - -Signed-off-by: James Cowgill - -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia ---- - backends/mips_init.c | 6 +----- - 1 file changed, 1 insertion(+), 5 deletions(-) - -Index: b/backends/mips_init.c -=================================================================== ---- a/backends/mips_init.c -+++ b/backends/mips_init.c -@@ -45,11 +45,7 @@ mips_init (Elf *elf __attribute__ ((unus - return NULL; - - /* We handle it. */ -- if (machine == EM_MIPS) -- eh->name = "MIPS R3000 big-endian"; -- else if (machine == EM_MIPS_RS3_LE) -- eh->name = "MIPS R3000 little-endian"; -- -+ eh->name = "MIPS"; - mips_init_reloc (eh); - HOOK (eh, reloc_simple_type); - HOOK (eh, return_value_location); diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch b/poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch deleted file mode 100644 index 19a201506..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/0001-fix-compile-failure-with-debian-patches.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 3f3e7b16934ec58ab47d2bdc9982f54a55b07534 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Wed, 21 Aug 2019 16:25:33 +0800 -Subject: [PATCH] fix compile failure with debian patches - -While applying debian patches, there is a compile failure -... -elfutils-0.177/backends/mips_init.c:48:5: error: 'Ebl' {aka 'struct ebl'} has no member named 'name' -... - -Since upstream applied commit [b323391 libdwelf: Add dwelf_elf_e_machine_string -and use it in readelf], it remove 'name' from 'struct ebl' - -Upstream-Status: Pending - -Signed-off-by: Hongxu Jia ---- - backends/mips_init.c | 1 - - backends/parisc_init.c | 1 - - 2 files changed, 2 deletions(-) - -diff --git a/backends/mips_init.c b/backends/mips_init.c -index bce5abe..e1c65c8 100644 ---- a/backends/mips_init.c -+++ b/backends/mips_init.c -@@ -45,7 +45,6 @@ mips_init (Elf *elf __attribute__ ((unused)), - return NULL; - - /* We handle it. */ -- eh->name = "MIPS"; - mips_init_reloc (eh); - HOOK (eh, reloc_simple_type); - HOOK (eh, return_value_location); -diff --git a/backends/parisc_init.c b/backends/parisc_init.c -index f1e401c..97b4a8c 100644 ---- a/backends/parisc_init.c -+++ b/backends/parisc_init.c -@@ -56,7 +56,6 @@ parisc_init (Elf *elf __attribute__ ((unused)), - pa64 = 1; - } - /* We handle it. */ -- eh->name = "PA-RISC"; - parisc_init_reloc (eh); - HOOK (eh, reloc_simple_type); - HOOK (eh, machine_flag_check); --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch b/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch deleted file mode 100644 index aee00cba1..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/0002-Add-support-for-mips64-abis-in-mips_retval.c.patch +++ /dev/null @@ -1,171 +0,0 @@ -From fdaab18a65ed2529656baa64cb6169f34d7e507b Mon Sep 17 00:00:00 2001 -From: James Cowgill -Date: Mon, 5 Jan 2015 15:17:01 +0000 -Subject: [PATCH 2/3] Add support for mips64 abis in mips_retval.c - -Signed-off-by: James Cowgill - -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia ---- - backends/mips_retval.c | 104 ++++++++++++++++++++++++++++++++++++++++++++----- - 1 file changed, 94 insertions(+), 10 deletions(-) - -diff --git a/backends/mips_retval.c b/backends/mips_retval.c -index 33f12a7..d5c6ef0 100644 ---- a/backends/mips_retval.c -+++ b/backends/mips_retval.c -@@ -91,6 +91,8 @@ enum mips_abi find_mips_abi(Elf *elf) - default: - if ((elf_flags & EF_MIPS_ABI2)) - return MIPS_ABI_N32; -+ else if ((ehdr->e_ident[EI_CLASS] == ELFCLASS64)) -+ return MIPS_ABI_N64; - } - - /* GCC creates a pseudo-section whose name describes the ABI. */ -@@ -195,6 +197,57 @@ static const Dwarf_Op loc_aggregate[] = - }; - #define nloc_aggregate 1 - -+/* Test if a struct member is a float */ -+static int is_float_child(Dwarf_Die *childdie) -+{ -+ /* Test if this is actually a struct member */ -+ if (dwarf_tag(childdie) != DW_TAG_member) -+ return 0; -+ -+ /* Get type of member */ -+ Dwarf_Attribute attr_mem; -+ Dwarf_Die child_type_mem; -+ Dwarf_Die *child_typedie = -+ dwarf_formref_die(dwarf_attr_integrate(childdie, -+ DW_AT_type, -+ &attr_mem), &child_type_mem); -+ -+ if (dwarf_tag(child_typedie) != DW_TAG_base_type) -+ return 0; -+ -+ /* Get base subtype */ -+ Dwarf_Word encoding; -+ if (dwarf_formudata (dwarf_attr_integrate (child_typedie, -+ DW_AT_encoding, -+ &attr_mem), &encoding) != 0) -+ return 0; -+ -+ return encoding == DW_ATE_float; -+} -+ -+/* Returns the number of fpregs which can be returned in the given struct */ -+static int get_struct_fpregs(Dwarf_Die *structtypedie) -+{ -+ Dwarf_Die child_mem; -+ int fpregs = 0; -+ -+ /* Get first structure member */ -+ if (dwarf_child(structtypedie, &child_mem) != 0) -+ return 0; -+ -+ do -+ { -+ /* Ensure this register is a float */ -+ if (!is_float_child(&child_mem)) -+ return 0; -+ -+ fpregs++; -+ } -+ while (dwarf_siblingof (&child_mem, &child_mem) == 0); -+ -+ return fpregs; -+} -+ - int - mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - { -@@ -240,6 +293,7 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - tag = dwarf_tag (typedie); - } - -+ Dwarf_Word size; - switch (tag) - { - case -1: -@@ -258,8 +312,6 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - case DW_TAG_enumeration_type: - case DW_TAG_pointer_type: - case DW_TAG_ptr_to_member_type: -- { -- Dwarf_Word size; - if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, - &attr_mem), &size) != 0) - { -@@ -289,7 +341,7 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - if (size <= 4*regsize && abi == MIPS_ABI_O32) - return nloc_fpregquad; - -- goto aggregate; -+ goto large; - } - } - *locp = ABI_LOC(loc_intreg, regsize); -@@ -298,18 +350,50 @@ mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - if (size <= 2*regsize) - return nloc_intregpair; - -- /* Else fall through. Shouldn't happen though (at least with gcc) */ -- } -+ /* Else pass in memory. Shouldn't happen though (at least with gcc) */ -+ goto large; - - case DW_TAG_structure_type: - case DW_TAG_class_type: - case DW_TAG_union_type: -- case DW_TAG_array_type: -- aggregate: -- /* XXX TODO: Can't handle structure return with other ABI's yet :-/ */ -- if ((abi != MIPS_ABI_O32) && (abi != MIPS_ABI_O64)) -- return -2; -+ /* Handle special cases for structures <= 128 bytes in newer ABIs */ -+ if (abi == MIPS_ABI_EABI32 || abi == MIPS_ABI_EABI64 || -+ abi == MIPS_ABI_N32 || abi == MIPS_ABI_N64) -+ { -+ if (dwarf_aggregate_size (typedie, &size) == 0 && size <= 16) -+ { -+ /* -+ * Special case in N64 / N32 - -+ * structures containing only floats are returned in fp regs. -+ * Everything else is returned in integer regs. -+ */ -+ if (tag != DW_TAG_union_type && -+ (abi == MIPS_ABI_N32 || abi == MIPS_ABI_N64)) -+ { -+ int num_fpregs = get_struct_fpregs(typedie); -+ if (num_fpregs == 1 || num_fpregs == 2) -+ { -+ *locp = loc_fpreg; -+ if (num_fpregs == 1) -+ return nloc_fpreg; -+ else -+ return nloc_fpregpair; -+ } -+ } -+ -+ *locp = loc_intreg; -+ if (size <= 8) -+ return nloc_intreg; -+ else -+ return nloc_intregpair; -+ } -+ } -+ -+ /* Fallthrough to handle large types */ - -+ case DW_TAG_array_type: -+ large: -+ /* Return large structures in memory */ - *locp = loc_aggregate; - return nloc_aggregate; - } --- -2.1.4 - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch b/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch deleted file mode 100644 index c949e9653..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/0003-Add-mips-n64-relocation-format-hack.patch +++ /dev/null @@ -1,229 +0,0 @@ -From 59d4b8c48e5040af7e02b34eb26ea602ec82a38e Mon Sep 17 00:00:00 2001 -From: James Cowgill -Date: Mon, 5 Jan 2015 15:17:02 +0000 -Subject: [PATCH 3/3] Add mips n64 relocation format hack - -MIPSEL N64 ELF files use a slightly different format for storing relocation -entries which is incompatible with the normal R_SYM / R_INFO macros. -To workaround this, we rearrange the bytes in the relocation's r_info field -when reading and writing the relocations. - -This patch also ensures that strip.c sets the correct value of e_machine -before manipulating relocations so that these changes take effect. - -Signed-off-by: James Cowgill - -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia ---- - libelf/gelf_getrel.c | 25 +++++++++++++++++++++++-- - libelf/gelf_getrela.c | 25 +++++++++++++++++++++++-- - libelf/gelf_update_rel.c | 20 +++++++++++++++++++- - libelf/gelf_update_rela.c | 20 +++++++++++++++++++- - src/strip.c | 17 +++++++++++++++++ - 5 files changed, 101 insertions(+), 6 deletions(-) - -Index: elfutils-0.175/libelf/gelf_getrel.c -=================================================================== ---- elfutils-0.175.orig/libelf/gelf_getrel.c -+++ elfutils-0.175/libelf/gelf_getrel.c -@@ -36,6 +36,7 @@ - - #include "libelfP.h" - -+#define EF_MIPS_ABI 0x0000F000 - - GElf_Rel * - gelf_getrel (Elf_Data *data, int ndx, GElf_Rel *dst) -@@ -89,8 +90,28 @@ gelf_getrel (Elf_Data *data, int ndx, GE - result = NULL; - } - else -- result = memcpy (dst, &((Elf64_Rel *) data_scn->d.d_buf)[ndx], -- sizeof (Elf64_Rel)); -+ { -+ GElf_Ehdr hdr; -+ result = memcpy (dst, &((Elf64_Rel *) data_scn->d.d_buf)[ndx], -+ sizeof (Elf64_Rel)); -+ -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && -+ hdr.e_machine == EM_MIPS && -+ (hdr.e_flags & EF_MIPS_ABI) == 0) -+ { -+ /* -+ * The relocation format is mangled on MIPSEL N64 -+ * We'll adjust it so at least R_SYM will work on it -+ */ -+ GElf_Xword r_info = dst->r_info; -+ dst->r_info = (r_info << 32) | -+ ((r_info >> 8) & 0xFF000000) | -+ ((r_info >> 24) & 0x00FF0000) | -+ ((r_info >> 40) & 0x0000FF00) | -+ ((r_info >> 56) & 0x000000FF); -+ } -+ } - } - - rwlock_unlock (scn->elf->lock); -Index: elfutils-0.175/libelf/gelf_getrela.c -=================================================================== ---- elfutils-0.175.orig/libelf/gelf_getrela.c -+++ elfutils-0.175/libelf/gelf_getrela.c -@@ -36,6 +36,7 @@ - - #include "libelfP.h" - -+#define EF_MIPS_ABI 0x0000F000 - - GElf_Rela * - gelf_getrela (Elf_Data *data, int ndx, GElf_Rela *dst) -@@ -90,8 +91,28 @@ gelf_getrela (Elf_Data *data, int ndx, G - result = NULL; - } - else -- result = memcpy (dst, &((Elf64_Rela *) data_scn->d.d_buf)[ndx], -- sizeof (Elf64_Rela)); -+ { -+ GElf_Ehdr hdr; -+ result = memcpy (dst, &((Elf64_Rela *) data_scn->d.d_buf)[ndx], -+ sizeof (Elf64_Rela)); -+ -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && -+ hdr.e_machine == EM_MIPS && -+ (hdr.e_flags & EF_MIPS_ABI) == 0) -+ { -+ /* -+ * The relocation format is mangled on MIPSEL N64 -+ * We'll adjust it so at least R_SYM will work on it -+ */ -+ GElf_Xword r_info = dst->r_info; -+ dst->r_info = (r_info << 32) | -+ ((r_info >> 8) & 0xFF000000) | -+ ((r_info >> 24) & 0x00FF0000) | -+ ((r_info >> 40) & 0x0000FF00) | -+ ((r_info >> 56) & 0x000000FF); -+ } -+ } - } - - rwlock_unlock (scn->elf->lock); -Index: elfutils-0.175/libelf/gelf_update_rel.c -=================================================================== ---- elfutils-0.175.orig/libelf/gelf_update_rel.c -+++ elfutils-0.175/libelf/gelf_update_rel.c -@@ -36,6 +36,7 @@ - - #include "libelfP.h" - -+#define EF_MIPS_ABI 0x0000F000 - - int - gelf_update_rel (Elf_Data *dst, int ndx, GElf_Rel *src) -@@ -86,6 +87,9 @@ gelf_update_rel (Elf_Data *dst, int ndx, - } - else - { -+ GElf_Ehdr hdr; -+ GElf_Rel value = *src; -+ - /* Check whether we have to resize the data buffer. */ - if (INVALID_NDX (ndx, Elf64_Rel, &data_scn->d)) - { -@@ -93,7 +97,21 @@ gelf_update_rel (Elf_Data *dst, int ndx, - goto out; - } - -- ((Elf64_Rel *) data_scn->d.d_buf)[ndx] = *src; -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && -+ hdr.e_machine == EM_MIPS && -+ (hdr.e_flags & EF_MIPS_ABI) == 0) -+ { -+ /* Undo the MIPSEL N64 hack from gelf_getrel */ -+ GElf_Xword r_info = value.r_info; -+ value.r_info = (r_info >> 32) | -+ ((r_info << 8) & 0x000000FF00000000) | -+ ((r_info << 24) & 0x0000FF0000000000) | -+ ((r_info << 40) & 0x00FF000000000000) | -+ ((r_info << 56) & 0xFF00000000000000); -+ } -+ -+ ((Elf64_Rel *) data_scn->d.d_buf)[ndx] = value; - } - - result = 1; -Index: elfutils-0.175/libelf/gelf_update_rela.c -=================================================================== ---- elfutils-0.175.orig/libelf/gelf_update_rela.c -+++ elfutils-0.175/libelf/gelf_update_rela.c -@@ -36,6 +36,7 @@ - - #include "libelfP.h" - -+#define EF_MIPS_ABI 0x0000F000 - - int - gelf_update_rela (Elf_Data *dst, int ndx, GElf_Rela *src) -@@ -89,6 +90,9 @@ gelf_update_rela (Elf_Data *dst, int ndx - } - else - { -+ GElf_Ehdr hdr; -+ GElf_Rela value = *src; -+ - /* Check whether we have to resize the data buffer. */ - if (INVALID_NDX (ndx, Elf64_Rela, &data_scn->d)) - { -@@ -96,7 +100,21 @@ gelf_update_rela (Elf_Data *dst, int ndx - goto out; - } - -- ((Elf64_Rela *) data_scn->d.d_buf)[ndx] = *src; -+ if (gelf_getehdr(scn->elf, &hdr) != NULL && -+ hdr.e_ident[EI_DATA] == ELFDATA2LSB && -+ hdr.e_machine == EM_MIPS && -+ (hdr.e_flags & EF_MIPS_ABI) == 0) -+ { -+ /* Undo the MIPSEL N64 hack from gelf_getrel */ -+ GElf_Xword r_info = value.r_info; -+ value.r_info = (r_info >> 32) | -+ ((r_info << 8) & 0x000000FF00000000) | -+ ((r_info << 24) & 0x0000FF0000000000) | -+ ((r_info << 40) & 0x00FF000000000000) | -+ ((r_info << 56) & 0xFF00000000000000); -+ } -+ -+ ((Elf64_Rela *) data_scn->d.d_buf)[ndx] = value; - } - - result = 1; -Index: elfutils-0.175/src/strip.c -=================================================================== ---- elfutils-0.175.orig/src/strip.c -+++ elfutils-0.175/src/strip.c -@@ -1062,6 +1062,23 @@ handle_elf (int fd, Elf *elf, const char - goto fail; - } - -+ /* Copy identity part of the ELF header now */ -+ newehdr = gelf_getehdr (newelf, &newehdr_mem); -+ if (newehdr == NULL) -+ INTERNAL_ERROR (fname); -+ -+ memcpy (newehdr->e_ident, ehdr->e_ident, EI_NIDENT); -+ newehdr->e_type = ehdr->e_type; -+ newehdr->e_machine = ehdr->e_machine; -+ newehdr->e_version = ehdr->e_version; -+ -+ if (gelf_update_ehdr (newelf, newehdr) == 0) -+ { -+ error (0, 0, gettext ("%s: error while creating ELF header: %s"), -+ fname, elf_errmsg (-1)); -+ return 1; -+ } -+ - /* Copy over the old program header if needed. */ - if (phnum > 0) - { diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff b/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff deleted file mode 100644 index ba0ce33bd..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/arm_backend.diff +++ /dev/null @@ -1,624 +0,0 @@ -From 4e6fededb3d8c90694c44214c862ac216a69ecae Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Wed, 21 Aug 2019 16:50:33 +0800 -Subject: [PATCH] arm_backend - -Upstream-Status: Pending [from debian] -Rebase to 0.177 -Signed-off-by: Hongxu Jia ---- - backends/arm_init.c | 18 ++++- - backends/arm_regs.c | 132 ++++++++++++++++++++++++++++++++++++ - backends/arm_retval.c | 43 +++++++++++- - backends/libebl_arm.h | 9 +++ - libelf/elf.h | 11 +++ - tests/run-addrcfi.sh | 93 ++++++++++++++++++++++++- - tests/run-allregs.sh | 95 +++++++++++++++++++++++++- - tests/run-readelf-mixed-corenote.sh | 11 ++- - 8 files changed, 400 insertions(+), 12 deletions(-) - create mode 100644 backends/libebl_arm.h - -diff --git a/backends/arm_init.c b/backends/arm_init.c -index af023f0..ea2bcb7 100644 ---- a/backends/arm_init.c -+++ b/backends/arm_init.c -@@ -35,20 +35,31 @@ - #define RELOC_PREFIX R_ARM_ - #include "libebl_CPU.h" - -+#include "libebl_arm.h" -+ - /* This defines the common reloc hooks based on arm_reloc.def. */ - #include "common-reloc.c" - - - const char * --arm_init (Elf *elf __attribute__ ((unused)), -+arm_init (Elf *elf, - GElf_Half machine __attribute__ ((unused)), - Ebl *eh, - size_t ehlen) - { -+ int soft_float = 0; -+ - /* Check whether the Elf_BH object has a sufficent size. */ - if (ehlen < sizeof (Ebl)) - return NULL; - -+ if (elf) { -+ GElf_Ehdr ehdr_mem; -+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); -+ if (ehdr && (ehdr->e_flags & EF_ARM_SOFT_FLOAT)) -+ soft_float = 1; -+ } -+ - /* We handle it. */ - arm_init_reloc (eh); - HOOK (eh, segment_type_name); -@@ -59,7 +70,10 @@ arm_init (Elf *elf __attribute__ ((unused)), - HOOK (eh, core_note); - HOOK (eh, auxv_info); - HOOK (eh, check_object_attribute); -- HOOK (eh, return_value_location); -+ if (soft_float) -+ eh->return_value_location = arm_return_value_location_soft; -+ else -+ eh->return_value_location = arm_return_value_location_hard; - HOOK (eh, abi_cfi); - HOOK (eh, check_reloc_target_type); - HOOK (eh, symbol_type_name); -diff --git a/backends/arm_regs.c b/backends/arm_regs.c -index a46a4c9..418c931 100644 ---- a/backends/arm_regs.c -+++ b/backends/arm_regs.c -@@ -31,6 +31,7 @@ - #endif - - #include -+#include - #include - - #define BACKEND arm_ -@@ -76,6 +77,9 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)), - break; - - case 16 + 0 ... 16 + 7: -+ /* AADWARF says that there are no registers in that range, -+ * but gcc maps FPA registers here -+ */ - regno += 96 - 16; - FALLTHROUGH; - case 96 + 0 ... 96 + 7: -@@ -87,11 +91,139 @@ arm_register_info (Ebl *ebl __attribute__ ((unused)), - namelen = 2; - break; - -+ case 64 + 0 ... 64 + 9: -+ *setname = "VFP"; -+ *bits = 32; -+ *type = DW_ATE_float; -+ name[0] = 's'; -+ name[1] = regno - 64 + '0'; -+ namelen = 2; -+ break; -+ -+ case 64 + 10 ... 64 + 31: -+ *setname = "VFP"; -+ *bits = 32; -+ *type = DW_ATE_float; -+ name[0] = 's'; -+ name[1] = (regno - 64) / 10 + '0'; -+ name[2] = (regno - 64) % 10 + '0'; -+ namelen = 3; -+ break; -+ -+ case 104 + 0 ... 104 + 7: -+ /* XXX TODO: -+ * This can be either intel wireless MMX general purpose/control -+ * registers or xscale accumulator, which have different usage. -+ * We only have the intel wireless MMX here now. -+ * The name needs to be changed for the xscale accumulator too. */ -+ *setname = "MMX"; -+ *type = DW_ATE_unsigned; -+ *bits = 32; -+ memcpy(name, "wcgr", 4); -+ name[4] = regno - 104 + '0'; -+ namelen = 5; -+ break; -+ -+ case 112 + 0 ... 112 + 9: -+ *setname = "MMX"; -+ *type = DW_ATE_unsigned; -+ *bits = 64; -+ name[0] = 'w'; -+ name[1] = 'r'; -+ name[2] = regno - 112 + '0'; -+ namelen = 3; -+ break; -+ -+ case 112 + 10 ... 112 + 15: -+ *setname = "MMX"; -+ *type = DW_ATE_unsigned; -+ *bits = 64; -+ name[0] = 'w'; -+ name[1] = 'r'; -+ name[2] = '1'; -+ name[3] = regno - 112 - 10 + '0'; -+ namelen = 4; -+ break; -+ - case 128: -+ *setname = "state"; - *type = DW_ATE_unsigned; - return stpcpy (name, "spsr") + 1 - name; - -+ case 129: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_fiq") + 1 - name; -+ -+ case 130: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_irq") + 1 - name; -+ -+ case 131: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_abt") + 1 - name; -+ -+ case 132: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_und") + 1 - name; -+ -+ case 133: -+ *setname = "state"; -+ *type = DW_ATE_unsigned; -+ return stpcpy(name, "spsr_svc") + 1 - name; -+ -+ case 144 ... 150: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_usr", regno - 144 + 8) + 1; -+ -+ case 151 ... 157: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_fiq", regno - 151 + 8) + 1; -+ -+ case 158 ... 159: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_irq", regno - 158 + 13) + 1; -+ -+ case 160 ... 161: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_abt", regno - 160 + 13) + 1; -+ -+ case 162 ... 163: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_und", regno - 162 + 13) + 1; -+ -+ case 164 ... 165: -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ return sprintf(name, "r%d_svc", regno - 164 + 13) + 1; -+ -+ case 192 ... 199: -+ *setname = "MMX"; -+ *bits = 32; -+ *type = DW_ATE_unsigned; -+ name[0] = 'w'; -+ name[1] = 'c'; -+ name[2] = regno - 192 + '0'; -+ namelen = 3; -+ break; -+ - case 256 + 0 ... 256 + 9: -+ /* XXX TODO: Neon also uses those registers and can contain -+ * both float and integers */ - *setname = "VFP"; - *type = DW_ATE_float; - *bits = 64; -diff --git a/backends/arm_retval.c b/backends/arm_retval.c -index 1c28f01..313e4eb 100644 ---- a/backends/arm_retval.c -+++ b/backends/arm_retval.c -@@ -48,6 +48,13 @@ static const Dwarf_Op loc_intreg[] = - #define nloc_intreg 1 - #define nloc_intregs(n) (2 * (n)) - -+/* f1 */ /* XXX TODO: f0 can also have number 96 if program was compiled with -mabi=aapcs */ -+static const Dwarf_Op loc_fpreg[] = -+ { -+ { .atom = DW_OP_reg16 }, -+ }; -+#define nloc_fpreg 1 -+ - /* The return value is a structure and is actually stored in stack space - passed in a hidden argument by the caller. But, the compiler - helpfully returns the address of that space in r0. */ -@@ -58,8 +65,9 @@ static const Dwarf_Op loc_aggregate[] = - #define nloc_aggregate 1 - - --int --arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+static int -+arm_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp, -+ int soft_float) - { - /* Start with the function's type, and get the DW_AT_type attribute, - which is the type of the return value. */ -@@ -98,6 +106,21 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - else - return -1; - } -+ if (tag == DW_TAG_base_type) -+ { -+ Dwarf_Word encoding; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, -+ &attr_mem), &encoding) != 0) -+ return -1; -+ -+ if ((encoding == DW_ATE_float) && !soft_float) -+ { -+ *locp = loc_fpreg; -+ if (size <= 8) -+ return nloc_fpreg; -+ goto aggregate; -+ } -+ } - if (size <= 16) - { - intreg: -@@ -106,6 +129,7 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - } - - aggregate: -+ /* XXX TODO sometimes aggregates are returned in r0 (-mabi=aapcs) */ - *locp = loc_aggregate; - return nloc_aggregate; - } -@@ -125,3 +149,18 @@ arm_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) - DWARF and might be valid. */ - return -2; - } -+ -+/* return location for -mabi=apcs-gnu -msoft-float */ -+int -+arm_return_value_location_soft (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ return arm_return_value_location_ (functypedie, locp, 1); -+} -+ -+/* return location for -mabi=apcs-gnu -mhard-float (current default) */ -+int -+arm_return_value_location_hard (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ return arm_return_value_location_ (functypedie, locp, 0); -+} -+ -diff --git a/backends/libebl_arm.h b/backends/libebl_arm.h -new file mode 100644 -index 0000000..c00770c ---- /dev/null -+++ b/backends/libebl_arm.h -@@ -0,0 +1,9 @@ -+#ifndef _LIBEBL_ARM_H -+#define _LIBEBL_ARM_H 1 -+ -+#include -+ -+extern int arm_return_value_location_soft(Dwarf_Die *, const Dwarf_Op **locp); -+extern int arm_return_value_location_hard(Dwarf_Die *, const Dwarf_Op **locp); -+ -+#endif -diff --git a/libelf/elf.h b/libelf/elf.h -index 01648bd..05b7e7e 100644 ---- a/libelf/elf.h -+++ b/libelf/elf.h -@@ -2690,6 +2690,9 @@ enum - #define EF_ARM_EABI_VER4 0x04000000 - #define EF_ARM_EABI_VER5 0x05000000 - -+/* EI_OSABI values */ -+#define ELFOSABI_ARM_AEABI 64 /* Contains symbol versioning. */ -+ - /* Additional symbol types for Thumb. */ - #define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */ - #define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */ -@@ -2707,12 +2710,19 @@ enum - - /* Processor specific values for the Phdr p_type field. */ - #define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */ -+#define PT_ARM_UNWIND PT_ARM_EXIDX - - /* Processor specific values for the Shdr sh_type field. */ - #define SHT_ARM_EXIDX (SHT_LOPROC + 1) /* ARM unwind section. */ - #define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */ - #define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */ - -+/* Processor specific values for the Dyn d_tag field. */ -+#define DT_ARM_RESERVED1 (DT_LOPROC + 0) -+#define DT_ARM_SYMTABSZ (DT_LOPROC + 1) -+#define DT_ARM_PREEMTMAB (DT_LOPROC + 2) -+#define DT_ARM_RESERVED2 (DT_LOPROC + 3) -+#define DT_ARM_NUM 4 - - /* AArch64 relocs. */ - -@@ -3005,6 +3015,7 @@ enum - TLS block (LDR, STR). */ - #define R_ARM_TLS_IE12GP 111 /* 12 bit GOT entry relative - to GOT origin (LDR). */ -+/* 112 - 127 private range */ - #define R_ARM_ME_TOO 128 /* Obsolete. */ - #define R_ARM_THM_TLS_DESCSEQ 129 - #define R_ARM_THM_TLS_DESCSEQ16 129 -diff --git a/tests/run-addrcfi.sh b/tests/run-addrcfi.sh -index 64fa24d..1c2aa4d 100755 ---- a/tests/run-addrcfi.sh -+++ b/tests/run-addrcfi.sh -@@ -3554,6 +3554,38 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range - FPA reg21 (f5): undefined - FPA reg22 (f6): undefined - FPA reg23 (f7): undefined -+ VFP reg64 (s0): undefined -+ VFP reg65 (s1): undefined -+ VFP reg66 (s2): undefined -+ VFP reg67 (s3): undefined -+ VFP reg68 (s4): undefined -+ VFP reg69 (s5): undefined -+ VFP reg70 (s6): undefined -+ VFP reg71 (s7): undefined -+ VFP reg72 (s8): undefined -+ VFP reg73 (s9): undefined -+ VFP reg74 (s10): undefined -+ VFP reg75 (s11): undefined -+ VFP reg76 (s12): undefined -+ VFP reg77 (s13): undefined -+ VFP reg78 (s14): undefined -+ VFP reg79 (s15): undefined -+ VFP reg80 (s16): undefined -+ VFP reg81 (s17): undefined -+ VFP reg82 (s18): undefined -+ VFP reg83 (s19): undefined -+ VFP reg84 (s20): undefined -+ VFP reg85 (s21): undefined -+ VFP reg86 (s22): undefined -+ VFP reg87 (s23): undefined -+ VFP reg88 (s24): undefined -+ VFP reg89 (s25): undefined -+ VFP reg90 (s26): undefined -+ VFP reg91 (s27): undefined -+ VFP reg92 (s28): undefined -+ VFP reg93 (s29): undefined -+ VFP reg94 (s30): undefined -+ VFP reg95 (s31): undefined - FPA reg96 (f0): undefined - FPA reg97 (f1): undefined - FPA reg98 (f2): undefined -@@ -3562,7 +3594,66 @@ dwarf_cfi_addrframe (.eh_frame): no matching address range - FPA reg101 (f5): undefined - FPA reg102 (f6): undefined - FPA reg103 (f7): undefined -- integer reg128 (spsr): undefined -+ MMX reg104 (wcgr0): undefined -+ MMX reg105 (wcgr1): undefined -+ MMX reg106 (wcgr2): undefined -+ MMX reg107 (wcgr3): undefined -+ MMX reg108 (wcgr4): undefined -+ MMX reg109 (wcgr5): undefined -+ MMX reg110 (wcgr6): undefined -+ MMX reg111 (wcgr7): undefined -+ MMX reg112 (wr0): undefined -+ MMX reg113 (wr1): undefined -+ MMX reg114 (wr2): undefined -+ MMX reg115 (wr3): undefined -+ MMX reg116 (wr4): undefined -+ MMX reg117 (wr5): undefined -+ MMX reg118 (wr6): undefined -+ MMX reg119 (wr7): undefined -+ MMX reg120 (wr8): undefined -+ MMX reg121 (wr9): undefined -+ MMX reg122 (wr10): undefined -+ MMX reg123 (wr11): undefined -+ MMX reg124 (wr12): undefined -+ MMX reg125 (wr13): undefined -+ MMX reg126 (wr14): undefined -+ MMX reg127 (wr15): undefined -+ state reg128 (spsr): undefined -+ state reg129 (spsr_fiq): undefined -+ state reg130 (spsr_irq): undefined -+ state reg131 (spsr_abt): undefined -+ state reg132 (spsr_und): undefined -+ state reg133 (spsr_svc): undefined -+ integer reg144 (r8_usr): undefined -+ integer reg145 (r9_usr): undefined -+ integer reg146 (r10_usr): undefined -+ integer reg147 (r11_usr): undefined -+ integer reg148 (r12_usr): undefined -+ integer reg149 (r13_usr): undefined -+ integer reg150 (r14_usr): undefined -+ integer reg151 (r8_fiq): undefined -+ integer reg152 (r9_fiq): undefined -+ integer reg153 (r10_fiq): undefined -+ integer reg154 (r11_fiq): undefined -+ integer reg155 (r12_fiq): undefined -+ integer reg156 (r13_fiq): undefined -+ integer reg157 (r14_fiq): undefined -+ integer reg158 (r13_irq): undefined -+ integer reg159 (r14_irq): undefined -+ integer reg160 (r13_abt): undefined -+ integer reg161 (r14_abt): undefined -+ integer reg162 (r13_und): undefined -+ integer reg163 (r14_und): undefined -+ integer reg164 (r13_svc): undefined -+ integer reg165 (r14_svc): undefined -+ MMX reg192 (wc0): undefined -+ MMX reg193 (wc1): undefined -+ MMX reg194 (wc2): undefined -+ MMX reg195 (wc3): undefined -+ MMX reg196 (wc4): undefined -+ MMX reg197 (wc5): undefined -+ MMX reg198 (wc6): undefined -+ MMX reg199 (wc7): undefined - VFP reg256 (d0): undefined - VFP reg257 (d1): undefined - VFP reg258 (d2): undefined -diff --git a/tests/run-allregs.sh b/tests/run-allregs.sh -index 1422bd6..dc0fc99 100755 ---- a/tests/run-allregs.sh -+++ b/tests/run-allregs.sh -@@ -2672,7 +2672,28 @@ integer registers: - 13: sp (sp), address 32 bits - 14: lr (lr), address 32 bits - 15: pc (pc), address 32 bits -- 128: spsr (spsr), unsigned 32 bits -+ 144: r8_usr (r8_usr), signed 32 bits -+ 145: r9_usr (r9_usr), signed 32 bits -+ 146: r10_usr (r10_usr), signed 32 bits -+ 147: r11_usr (r11_usr), signed 32 bits -+ 148: r12_usr (r12_usr), signed 32 bits -+ 149: r13_usr (r13_usr), signed 32 bits -+ 150: r14_usr (r14_usr), signed 32 bits -+ 151: r8_fiq (r8_fiq), signed 32 bits -+ 152: r9_fiq (r9_fiq), signed 32 bits -+ 153: r10_fiq (r10_fiq), signed 32 bits -+ 154: r11_fiq (r11_fiq), signed 32 bits -+ 155: r12_fiq (r12_fiq), signed 32 bits -+ 156: r13_fiq (r13_fiq), signed 32 bits -+ 157: r14_fiq (r14_fiq), signed 32 bits -+ 158: r13_irq (r13_irq), signed 32 bits -+ 159: r14_irq (r14_irq), signed 32 bits -+ 160: r13_abt (r13_abt), signed 32 bits -+ 161: r14_abt (r14_abt), signed 32 bits -+ 162: r13_und (r13_und), signed 32 bits -+ 163: r14_und (r14_und), signed 32 bits -+ 164: r13_svc (r13_svc), signed 32 bits -+ 165: r14_svc (r14_svc), signed 32 bits - FPA registers: - 16: f0 (f0), float 96 bits - 17: f1 (f1), float 96 bits -@@ -2690,7 +2711,72 @@ FPA registers: - 101: f5 (f5), float 96 bits - 102: f6 (f6), float 96 bits - 103: f7 (f7), float 96 bits -+MMX registers: -+ 104: wcgr0 (wcgr0), unsigned 32 bits -+ 105: wcgr1 (wcgr1), unsigned 32 bits -+ 106: wcgr2 (wcgr2), unsigned 32 bits -+ 107: wcgr3 (wcgr3), unsigned 32 bits -+ 108: wcgr4 (wcgr4), unsigned 32 bits -+ 109: wcgr5 (wcgr5), unsigned 32 bits -+ 110: wcgr6 (wcgr6), unsigned 32 bits -+ 111: wcgr7 (wcgr7), unsigned 32 bits -+ 112: wr0 (wr0), unsigned 64 bits -+ 113: wr1 (wr1), unsigned 64 bits -+ 114: wr2 (wr2), unsigned 64 bits -+ 115: wr3 (wr3), unsigned 64 bits -+ 116: wr4 (wr4), unsigned 64 bits -+ 117: wr5 (wr5), unsigned 64 bits -+ 118: wr6 (wr6), unsigned 64 bits -+ 119: wr7 (wr7), unsigned 64 bits -+ 120: wr8 (wr8), unsigned 64 bits -+ 121: wr9 (wr9), unsigned 64 bits -+ 122: wr10 (wr10), unsigned 64 bits -+ 123: wr11 (wr11), unsigned 64 bits -+ 124: wr12 (wr12), unsigned 64 bits -+ 125: wr13 (wr13), unsigned 64 bits -+ 126: wr14 (wr14), unsigned 64 bits -+ 127: wr15 (wr15), unsigned 64 bits -+ 192: wc0 (wc0), unsigned 32 bits -+ 193: wc1 (wc1), unsigned 32 bits -+ 194: wc2 (wc2), unsigned 32 bits -+ 195: wc3 (wc3), unsigned 32 bits -+ 196: wc4 (wc4), unsigned 32 bits -+ 197: wc5 (wc5), unsigned 32 bits -+ 198: wc6 (wc6), unsigned 32 bits -+ 199: wc7 (wc7), unsigned 32 bits - VFP registers: -+ 64: s0 (s0), float 32 bits -+ 65: s1 (s1), float 32 bits -+ 66: s2 (s2), float 32 bits -+ 67: s3 (s3), float 32 bits -+ 68: s4 (s4), float 32 bits -+ 69: s5 (s5), float 32 bits -+ 70: s6 (s6), float 32 bits -+ 71: s7 (s7), float 32 bits -+ 72: s8 (s8), float 32 bits -+ 73: s9 (s9), float 32 bits -+ 74: s10 (s10), float 32 bits -+ 75: s11 (s11), float 32 bits -+ 76: s12 (s12), float 32 bits -+ 77: s13 (s13), float 32 bits -+ 78: s14 (s14), float 32 bits -+ 79: s15 (s15), float 32 bits -+ 80: s16 (s16), float 32 bits -+ 81: s17 (s17), float 32 bits -+ 82: s18 (s18), float 32 bits -+ 83: s19 (s19), float 32 bits -+ 84: s20 (s20), float 32 bits -+ 85: s21 (s21), float 32 bits -+ 86: s22 (s22), float 32 bits -+ 87: s23 (s23), float 32 bits -+ 88: s24 (s24), float 32 bits -+ 89: s25 (s25), float 32 bits -+ 90: s26 (s26), float 32 bits -+ 91: s27 (s27), float 32 bits -+ 92: s28 (s28), float 32 bits -+ 93: s29 (s29), float 32 bits -+ 94: s30 (s30), float 32 bits -+ 95: s31 (s31), float 32 bits - 256: d0 (d0), float 64 bits - 257: d1 (d1), float 64 bits - 258: d2 (d2), float 64 bits -@@ -2723,6 +2809,13 @@ VFP registers: - 285: d29 (d29), float 64 bits - 286: d30 (d30), float 64 bits - 287: d31 (d31), float 64 bits -+state registers: -+ 128: spsr (spsr), unsigned 32 bits -+ 129: spsr_fiq (spsr_fiq), unsigned 32 bits -+ 130: spsr_irq (spsr_irq), unsigned 32 bits -+ 131: spsr_abt (spsr_abt), unsigned 32 bits -+ 132: spsr_und (spsr_und), unsigned 32 bits -+ 133: spsr_svc (spsr_svc), unsigned 32 bits - EOF - - # See run-readelf-mixed-corenote.sh for instructions to regenerate -diff --git a/tests/run-readelf-mixed-corenote.sh b/tests/run-readelf-mixed-corenote.sh -index c960f1d..e4bf074 100755 ---- a/tests/run-readelf-mixed-corenote.sh -+++ b/tests/run-readelf-mixed-corenote.sh -@@ -31,12 +31,11 @@ Note segment of 892 bytes at offset 0x274: - pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 - utime: 0.000000, stime: 0.010000, cutime: 0.000000, cstime: 0.000000 - orig_r0: -1, fpvalid: 1 -- r0: 1 r1: -1091672508 r2: -1091672500 -- r3: 0 r4: 0 r5: 0 -- r6: 33728 r7: 0 r8: 0 -- r9: 0 r10: -1225703496 r11: -1091672844 -- r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48 -- pc: 0x00008500 spsr: 0x60000010 -+ r0: 1 r1: -1091672508 r2: -1091672500 r3: 0 -+ r4: 0 r5: 0 r6: 33728 r7: 0 -+ r8: 0 r9: 0 r10: -1225703496 r11: -1091672844 -+ r12: 0 sp: 0xbeee64f4 lr: 0xb6dc3f48 pc: 0x00008500 -+ spsr: 0x60000010 - CORE 124 PRPSINFO - state: 0, sname: R, zomb: 0, nice: 0, flag: 0x00400500 - uid: 0, gid: 0, pid: 11087, ppid: 11063, pgrp: 11087, sid: 11063 --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch b/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch deleted file mode 100644 index bd98dae4b..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/disable_werror.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Helmut Grohne -Subject: disable -Werror as it tends to break with new gcc versions -Bug-Debian: https://bugs.debian.org/886004 -Last-Update: 2018-01-01 - -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia - -Index: elfutils-0.176/config/eu.am -=================================================================== ---- elfutils-0.176.orig/config/eu.am -+++ elfutils-0.176/config/eu.am -@@ -73,7 +73,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -W - -Wold-style-definition -Wstrict-prototypes -Wtrampolines \ - $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ - $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ -- $(if $($(*F)_no_Werror),,-Werror) \ - $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ - $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ - $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff b/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff deleted file mode 100644 index 53fa2f435..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/hppa_backend.diff +++ /dev/null @@ -1,828 +0,0 @@ -From ffb811e18d7046d5bbe54ede5b1b7e14eaac0146 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Wed, 21 Aug 2019 15:44:18 +0800 -Subject: [PATCH] hppa backend - -Rebase to 0.177 -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia - ---- - backends/Makefile.am | 7 +- - backends/libebl_parisc.h | 9 ++ - backends/parisc_init.c | 73 +++++++++++++ - backends/parisc_regs.c | 159 ++++++++++++++++++++++++++++ - backends/parisc_reloc.def | 128 +++++++++++++++++++++++ - backends/parisc_retval.c | 213 ++++++++++++++++++++++++++++++++++++++ - backends/parisc_symbol.c | 113 ++++++++++++++++++++ - libelf/elf.h | 11 ++ - 8 files changed, 711 insertions(+), 2 deletions(-) - create mode 100644 backends/libebl_parisc.h - create mode 100644 backends/parisc_init.c - create mode 100644 backends/parisc_regs.c - create mode 100644 backends/parisc_reloc.def - create mode 100644 backends/parisc_retval.c - create mode 100644 backends/parisc_symbol.c - -diff --git a/backends/Makefile.am b/backends/Makefile.am -index f405212..4755f61 100644 ---- a/backends/Makefile.am -+++ b/backends/Makefile.am -@@ -37,7 +37,9 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ - noinst_LIBRARIES = libebl_backends.a libebl_backends_pic.a - - modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ -- tilegx m68k bpf riscv csky -+ tilegx m68k bpf riscv csky parisc -+ -+parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c - - i386_SRCS = i386_init.c i386_symbol.c i386_corenote.c i386_cfi.c \ - i386_retval.c i386_regs.c i386_auxv.c i386_syscall.c \ -@@ -102,7 +104,8 @@ libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \ - $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \ - $(aarch64_SRCS) $(sparc_SRCS) $(ppc_SRCS) \ - $(ppc64_SRCS) $(s390_SRCS) $(tilegx_SRCS) \ -- $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS) -+ $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS) \ -+ $(parisc_SRCS) - - libebl_backends_pic_a_SOURCES = - am_libebl_backends_pic_a_OBJECTS = $(libebl_backends_a_SOURCES:.c=.os) -diff --git a/backends/libebl_parisc.h b/backends/libebl_parisc.h -new file mode 100644 -index 0000000..f473b79 ---- /dev/null -+++ b/backends/libebl_parisc.h -@@ -0,0 +1,9 @@ -+#ifndef _LIBEBL_HPPA_H -+#define _LIBEBL_HPPA_H 1 -+ -+#include -+ -+extern int parisc_return_value_location_32(Dwarf_Die *, const Dwarf_Op **locp); -+extern int parisc_return_value_location_64(Dwarf_Die *, const Dwarf_Op **locp); -+ -+#endif -diff --git a/backends/parisc_init.c b/backends/parisc_init.c -new file mode 100644 -index 0000000..f1e401c ---- /dev/null -+++ b/backends/parisc_init.c -@@ -0,0 +1,73 @@ -+/* Initialization of PA-RISC specific backend library. -+ Copyright (C) 2002, 2005, 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ Written by Ulrich Drepper , 2002. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#define BACKEND parisc_ -+#define RELOC_PREFIX R_PARISC_ -+#include "libebl_CPU.h" -+#include "libebl_parisc.h" -+ -+/* This defines the common reloc hooks based on parisc_reloc.def. */ -+#include "common-reloc.c" -+ -+ -+const char * -+parisc_init (Elf *elf __attribute__ ((unused)), -+ GElf_Half machine __attribute__ ((unused)), -+ Ebl *eh, -+ size_t ehlen) -+{ -+ int pa64 = 0; -+ -+ /* Check whether the Elf_BH object has a sufficent size. */ -+ if (ehlen < sizeof (Ebl)) -+ return NULL; -+ -+ if (elf) { -+ GElf_Ehdr ehdr_mem; -+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); -+ if (ehdr && (ehdr->e_flags & EF_PARISC_WIDE)) -+ pa64 = 1; -+ } -+ /* We handle it. */ -+ eh->name = "PA-RISC"; -+ parisc_init_reloc (eh); -+ HOOK (eh, reloc_simple_type); -+ HOOK (eh, machine_flag_check); -+ HOOK (eh, symbol_type_name); -+ HOOK (eh, segment_type_name); -+ HOOK (eh, section_type_name); -+ HOOK (eh, register_info); -+ if (pa64) -+ eh->return_value_location = parisc_return_value_location_64; -+ else -+ eh->return_value_location = parisc_return_value_location_32; -+ -+ return MODVERSION; -+} -diff --git a/backends/parisc_regs.c b/backends/parisc_regs.c -new file mode 100644 -index 0000000..3895f8e ---- /dev/null -+++ b/backends/parisc_regs.c -@@ -0,0 +1,159 @@ -+/* Register names and numbers for PA-RISC DWARF. -+ Copyright (C) 2005, 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+#include -+ -+#define BACKEND parisc_ -+#include "libebl_CPU.h" -+ -+ssize_t -+parisc_register_info (Ebl *ebl, int regno, char *name, size_t namelen, -+ const char **prefix, const char **setname, -+ int *bits, int *type) -+{ -+ int pa64 = 0; -+ -+ if (ebl->elf) { -+ GElf_Ehdr ehdr_mem; -+ GElf_Ehdr *ehdr = gelf_getehdr (ebl->elf, &ehdr_mem); -+ if (ehdr->e_flags & EF_PARISC_WIDE) -+ pa64 = 1; -+ } -+ -+ int nregs = pa64 ? 127 : 128; -+ -+ if (name == NULL) -+ return nregs; -+ -+ if (regno < 0 || regno >= nregs || namelen < 6) -+ return -1; -+ -+ *prefix = "%"; -+ -+ if (regno < 32) -+ { -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ if (pa64) -+ { -+ *bits = 64; -+ } -+ else -+ { -+ *bits = 32; -+ } -+ } -+ else if (regno == 32) -+ { -+ *setname = "special"; -+ if (pa64) -+ { -+ *bits = 6; -+ } -+ else -+ { -+ *bits = 5; -+ } -+ *type = DW_ATE_unsigned; -+ } -+ else -+ { -+ *setname = "FPU"; -+ *type = DW_ATE_float; -+ if (pa64) -+ { -+ *bits = 64; -+ } -+ else -+ { -+ *bits = 32; -+ } -+ } -+ -+ if (regno < 33) { -+ switch (regno) -+ { -+ case 0 ... 9: -+ name[0] = 'r'; -+ name[1] = regno + '0'; -+ namelen = 2; -+ break; -+ case 10 ... 31: -+ name[0] = 'r'; -+ name[1] = regno / 10 + '0'; -+ name[2] = regno % 10 + '0'; -+ namelen = 3; -+ break; -+ case 32: -+ *prefix = NULL; -+ name[0] = 'S'; -+ name[1] = 'A'; -+ name[2] = 'R'; -+ namelen = 3; -+ break; -+ } -+ } -+ else { -+ if (pa64 && ((regno - 72) % 2)) { -+ *setname = NULL; -+ return 0; -+ } -+ -+ switch (regno) -+ { -+ case 72 + 0 ... 72 + 11: -+ name[0] = 'f'; -+ name[1] = 'r'; -+ name[2] = (regno + 8 - 72) / 2 + '0'; -+ namelen = 3; -+ if ((regno + 8 - 72) % 2) { -+ name[3] = 'R'; -+ namelen++; -+ } -+ break; -+ case 72 + 12 ... 72 + 55: -+ name[0] = 'f'; -+ name[1] = 'r'; -+ name[2] = (regno + 8 - 72) / 2 / 10 + '0'; -+ name[3] = (regno + 8 - 72) / 2 % 10 + '0'; -+ namelen = 4; -+ if ((regno + 8 - 72) % 2) { -+ name[4] = 'R'; -+ namelen++; -+ } -+ break; -+ default: -+ *setname = NULL; -+ return 0; -+ } -+ } -+ name[namelen++] = '\0'; -+ return namelen; -+} -diff --git a/backends/parisc_reloc.def b/backends/parisc_reloc.def -new file mode 100644 -index 0000000..1f875ba ---- /dev/null -+++ b/backends/parisc_reloc.def -@@ -0,0 +1,128 @@ -+/* List the relocation types for PA-RISC. -*- C -*- -+ Copyright (C) 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ . */ -+ -+/* NAME, REL|EXEC|DYN */ -+ -+RELOC_TYPE (NONE, EXEC|DYN) -+RELOC_TYPE (DIR32, REL|EXEC|DYN) -+RELOC_TYPE (DIR21L, REL|EXEC|DYN) -+RELOC_TYPE (DIR17R, REL) -+RELOC_TYPE (DIR17F, REL) -+RELOC_TYPE (DIR14R, REL|DYN) -+RELOC_TYPE (PCREL32, REL) -+RELOC_TYPE (PCREL21L, REL) -+RELOC_TYPE (PCREL17R, REL) -+RELOC_TYPE (PCREL17F, REL) -+RELOC_TYPE (PCREL14R, REL|EXEC) -+RELOC_TYPE (DPREL21L, REL) -+RELOC_TYPE (DPREL14WR, REL) -+RELOC_TYPE (DPREL14DR, REL) -+RELOC_TYPE (DPREL14R, REL) -+RELOC_TYPE (GPREL21L, 0) -+RELOC_TYPE (GPREL14R, 0) -+RELOC_TYPE (LTOFF21L, REL) -+RELOC_TYPE (LTOFF14R, REL) -+RELOC_TYPE (DLTIND14F, 0) -+RELOC_TYPE (SETBASE, 0) -+RELOC_TYPE (SECREL32, REL) -+RELOC_TYPE (BASEREL21L, 0) -+RELOC_TYPE (BASEREL17R, 0) -+RELOC_TYPE (BASEREL14R, 0) -+RELOC_TYPE (SEGBASE, 0) -+RELOC_TYPE (SEGREL32, REL) -+RELOC_TYPE (PLTOFF21L, 0) -+RELOC_TYPE (PLTOFF14R, 0) -+RELOC_TYPE (PLTOFF14F, 0) -+RELOC_TYPE (LTOFF_FPTR32, 0) -+RELOC_TYPE (LTOFF_FPTR21L, 0) -+RELOC_TYPE (LTOFF_FPTR14R, 0) -+RELOC_TYPE (FPTR64, 0) -+RELOC_TYPE (PLABEL32, REL|DYN) -+RELOC_TYPE (PCREL64, 0) -+RELOC_TYPE (PCREL22C, 0) -+RELOC_TYPE (PCREL22F, 0) -+RELOC_TYPE (PCREL14WR, 0) -+RELOC_TYPE (PCREL14DR, 0) -+RELOC_TYPE (PCREL16F, 0) -+RELOC_TYPE (PCREL16WF, 0) -+RELOC_TYPE (PCREL16DF, 0) -+RELOC_TYPE (DIR64, REL|DYN) -+RELOC_TYPE (DIR14WR, REL) -+RELOC_TYPE (DIR14DR, REL) -+RELOC_TYPE (DIR16F, REL) -+RELOC_TYPE (DIR16WF, REL) -+RELOC_TYPE (DIR16DF, REL) -+RELOC_TYPE (GPREL64, 0) -+RELOC_TYPE (GPREL14WR, 0) -+RELOC_TYPE (GPREL14DR, 0) -+RELOC_TYPE (GPREL16F, 0) -+RELOC_TYPE (GPREL16WF, 0) -+RELOC_TYPE (GPREL16DF, 0) -+RELOC_TYPE (LTOFF64, 0) -+RELOC_TYPE (LTOFF14WR, 0) -+RELOC_TYPE (LTOFF14DR, 0) -+RELOC_TYPE (LTOFF16F, 0) -+RELOC_TYPE (LTOFF16WF, 0) -+RELOC_TYPE (LTOFF16DF, 0) -+RELOC_TYPE (SECREL64, 0) -+RELOC_TYPE (BASEREL14WR, 0) -+RELOC_TYPE (BASEREL14DR, 0) -+RELOC_TYPE (SEGREL64, 0) -+RELOC_TYPE (PLTOFF14WR, 0) -+RELOC_TYPE (PLTOFF14DR, 0) -+RELOC_TYPE (PLTOFF16F, 0) -+RELOC_TYPE (PLTOFF16WF, 0) -+RELOC_TYPE (PLTOFF16DF, 0) -+RELOC_TYPE (LTOFF_FPTR64, 0) -+RELOC_TYPE (LTOFF_FPTR14WR, 0) -+RELOC_TYPE (LTOFF_FPTR14DR, 0) -+RELOC_TYPE (LTOFF_FPTR16F, 0) -+RELOC_TYPE (LTOFF_FPTR16WF, 0) -+RELOC_TYPE (LTOFF_FPTR16DF, 0) -+RELOC_TYPE (COPY, EXEC) -+RELOC_TYPE (IPLT, EXEC|DYN) -+RELOC_TYPE (EPLT, 0) -+RELOC_TYPE (TPREL32, DYN) -+RELOC_TYPE (TPREL21L, 0) -+RELOC_TYPE (TPREL14R, 0) -+RELOC_TYPE (LTOFF_TP21L, 0) -+RELOC_TYPE (LTOFF_TP14R, 0) -+RELOC_TYPE (LTOFF_TP14F, 0) -+RELOC_TYPE (TPREL64, 0) -+RELOC_TYPE (TPREL14WR, 0) -+RELOC_TYPE (TPREL14DR, 0) -+RELOC_TYPE (TPREL16F, 0) -+RELOC_TYPE (TPREL16WF, 0) -+RELOC_TYPE (TPREL16DF, 0) -+RELOC_TYPE (LTOFF_TP64, 0) -+RELOC_TYPE (LTOFF_TP14WR, 0) -+RELOC_TYPE (LTOFF_TP14DR, 0) -+RELOC_TYPE (LTOFF_TP16F, 0) -+RELOC_TYPE (LTOFF_TP16WF, 0) -+RELOC_TYPE (LTOFF_TP16DF, 0) -+RELOC_TYPE (TLS_DTPMOD32, DYN) -+RELOC_TYPE (TLS_DTPMOD64, DYN) -+ -+#define NO_RELATIVE_RELOC 1 -diff --git a/backends/parisc_retval.c b/backends/parisc_retval.c -new file mode 100644 -index 0000000..df7ec3a ---- /dev/null -+++ b/backends/parisc_retval.c -@@ -0,0 +1,213 @@ -+/* Function return value location for Linux/PA-RISC ABI. -+ Copyright (C) 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+#include -+ -+#define BACKEND parisc_ -+#include "libebl_CPU.h" -+#include "libebl_parisc.h" -+ -+/* %r28, or pair %r28, %r29. */ -+static const Dwarf_Op loc_intreg32[] = -+ { -+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 4 }, -+ }; -+ -+static const Dwarf_Op loc_intreg[] = -+ { -+ { .atom = DW_OP_reg28 }, { .atom = DW_OP_piece, .number = 8 }, -+ { .atom = DW_OP_reg29 }, { .atom = DW_OP_piece, .number = 8 }, -+ }; -+#define nloc_intreg 1 -+#define nloc_intregpair 4 -+ -+/* %fr4L, or pair %fr4L, %fr4R on pa-32 */ -+static const Dwarf_Op loc_fpreg32[] = -+ { -+ { .atom = DW_OP_regx, .number = 72 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_regx, .number = 73 }, { .atom = DW_OP_piece, .number = 4 }, -+ }; -+#define nloc_fpreg32 2 -+#define nloc_fpregpair32 4 -+ -+/* $fr4 */ -+static const Dwarf_Op loc_fpreg[] = -+ { -+ { .atom = DW_OP_regx, .number = 72 }, -+ }; -+#define nloc_fpreg 1 -+ -+#if 0 -+/* The return value is a structure and is actually stored in stack space -+ passed in a hidden argument by the caller. Address of the location is stored -+ in %r28 before function call, but it may be changed by function. */ -+static const Dwarf_Op loc_aggregate[] = -+ { -+ { .atom = DW_OP_breg28 }, -+ }; -+#define nloc_aggregate 1 -+#endif -+ -+static int -+parisc_return_value_location_ (Dwarf_Die *functypedie, const Dwarf_Op **locp, int pa64) -+{ -+ Dwarf_Word regsize = pa64 ? 8 : 4; -+ -+ /* Start with the function's type, and get the DW_AT_type attribute, -+ which is the type of the return value. */ -+ -+ Dwarf_Attribute attr_mem; -+ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem); -+ if (attr == NULL) -+ /* The function has no return value, like a `void' function in C. */ -+ return 0; -+ -+ Dwarf_Die die_mem; -+ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem); -+ int tag = dwarf_tag (typedie); -+ -+ /* Follow typedefs and qualifiers to get to the actual type. */ -+ while (tag == DW_TAG_typedef -+ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type -+ || tag == DW_TAG_restrict_type) -+ { -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); -+ typedie = dwarf_formref_die (attr, &die_mem); -+ tag = dwarf_tag (typedie); -+ } -+ -+ switch (tag) -+ { -+ case -1: -+ return -1; -+ -+ case DW_TAG_subrange_type: -+ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size)) -+ { -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); -+ typedie = dwarf_formref_die (attr, &die_mem); -+ tag = dwarf_tag (typedie); -+ } -+ /* Fall through. */ -+ -+ case DW_TAG_base_type: -+ case DW_TAG_enumeration_type: -+ case DW_TAG_pointer_type: -+ case DW_TAG_ptr_to_member_type: -+ { -+ Dwarf_Word size; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, -+ &attr_mem), &size) != 0) -+ { -+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type) -+ size = 4; -+ else -+ return -1; -+ } -+ if (tag == DW_TAG_base_type) -+ { -+ Dwarf_Word encoding; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, -+ &attr_mem), &encoding) != 0) -+ return -1; -+ -+ if (encoding == DW_ATE_float) -+ { -+ if (pa64) { -+ *locp = loc_fpreg; -+ if (size <= 8) -+ return nloc_fpreg; -+ } -+ else { -+ *locp = loc_fpreg32; -+ if (size <= 4) -+ return nloc_fpreg32; -+ else if (size <= 8) -+ return nloc_fpregpair32; -+ } -+ goto aggregate; -+ } -+ } -+ if (pa64) -+ *locp = loc_intreg; -+ else -+ *locp = loc_intreg32; -+ if (size <= regsize) -+ return nloc_intreg; -+ if (size <= 2 * regsize) -+ return nloc_intregpair; -+ -+ /* Else fall through. */ -+ } -+ -+ case DW_TAG_structure_type: -+ case DW_TAG_class_type: -+ case DW_TAG_union_type: -+ case DW_TAG_array_type: -+ aggregate: { -+ Dwarf_Word size; -+ if (dwarf_aggregate_size (typedie, &size) != 0) -+ return -1; -+ if (pa64) -+ *locp = loc_intreg; -+ else -+ *locp = loc_intreg32; -+ if (size <= regsize) -+ return nloc_intreg; -+ if (size <= 2 * regsize) -+ return nloc_intregpair; -+#if 0 -+ /* there should be some way to know this location... But I do not see it. */ -+ *locp = loc_aggregate; -+ return nloc_aggregate; -+#endif -+ /* fall through. */ -+ } -+ } -+ -+ /* XXX We don't have a good way to return specific errors from ebl calls. -+ This value means we do not understand the type, but it is well-formed -+ DWARF and might be valid. */ -+ return -2; -+} -+ -+int -+parisc_return_value_location_32 (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ return parisc_return_value_location_ (functypedie, locp, 0); -+} -+ -+int -+parisc_return_value_location_64 (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ return parisc_return_value_location_ (functypedie, locp, 1); -+} -+ -diff --git a/backends/parisc_symbol.c b/backends/parisc_symbol.c -new file mode 100644 -index 0000000..5754bd8 ---- /dev/null -+++ b/backends/parisc_symbol.c -@@ -0,0 +1,113 @@ -+/* PA-RISC specific symbolic name handling. -+ Copyright (C) 2002, 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ Written by Ulrich Drepper , 2002. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+#include -+ -+#define BACKEND parisc_ -+#include "libebl_CPU.h" -+ -+const char * -+parisc_segment_type_name (int segment, char *buf __attribute__ ((unused)), -+ size_t len __attribute__ ((unused))) -+{ -+ switch (segment) -+ { -+ case PT_PARISC_ARCHEXT: -+ return "PARISC_ARCHEXT"; -+ case PT_PARISC_UNWIND: -+ return "PARISC_UNWIND"; -+ default: -+ break; -+ } -+ return NULL; -+} -+ -+/* Return symbolic representation of symbol type. */ -+const char * -+parisc_symbol_type_name(int symbol, char *buf __attribute__ ((unused)), -+ size_t len __attribute__ ((unused))) -+{ -+ if (symbol == STT_PARISC_MILLICODE) -+ return "PARISC_MILLI"; -+ return NULL; -+} -+ -+/* Return symbolic representation of section type. */ -+const char * -+parisc_section_type_name (int type, -+ char *buf __attribute__ ((unused)), -+ size_t len __attribute__ ((unused))) -+{ -+ switch (type) -+ { -+ case SHT_PARISC_EXT: -+ return "PARISC_EXT"; -+ case SHT_PARISC_UNWIND: -+ return "PARISC_UNWIND"; -+ case SHT_PARISC_DOC: -+ return "PARISC_DOC"; -+ } -+ -+ return NULL; -+} -+ -+/* Check whether machine flags are valid. */ -+bool -+parisc_machine_flag_check (GElf_Word flags) -+{ -+ if (flags &~ (EF_PARISC_TRAPNIL | EF_PARISC_EXT | EF_PARISC_LSB | -+ EF_PARISC_WIDE | EF_PARISC_NO_KABP | -+ EF_PARISC_LAZYSWAP | EF_PARISC_ARCH)) -+ return 0; -+ -+ GElf_Word arch = flags & EF_PARISC_ARCH; -+ -+ return ((arch == EFA_PARISC_1_0) || (arch == EFA_PARISC_1_1) || -+ (arch == EFA_PARISC_2_0)); -+} -+ -+/* Check for the simple reloc types. */ -+Elf_Type -+parisc_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, -+ int *addsub __attribute__ ((unused))) -+{ -+ switch (type) -+ { -+ case R_PARISC_DIR64: -+ case R_PARISC_SECREL64: -+ return ELF_T_XWORD; -+ case R_PARISC_DIR32: -+ case R_PARISC_SECREL32: -+ return ELF_T_WORD; -+ default: -+ return ELF_T_NUM; -+ } -+} -diff --git a/libelf/elf.h b/libelf/elf.h -index 01648bd..218ceb2 100644 ---- a/libelf/elf.h -+++ b/libelf/elf.h -@@ -2162,16 +2162,24 @@ enum - #define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */ - #define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */ - #define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */ -+#define R_PARISC_DPREL14WR 19 -+#define R_PARISC_DPREL14DR 20 - #define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */ - #define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */ - #define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */ - #define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */ - #define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */ -+#define R_PARISC_DLTIND14F 39 -+#define R_PARISC_SETBASE 40 - #define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */ -+#define R_PARISC_BASEREL21L 42 -+#define R_PARISC_BASEREL17R 43 -+#define R_PARISC_BASEREL14R 46 - #define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */ - #define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */ - #define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */ - #define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */ -+#define R_PARISC_PLTOFF14F 55 - #define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */ - #define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */ - #define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */ -@@ -2180,6 +2188,7 @@ enum - #define R_PARISC_PLABEL21L 66 /* Left 21 bits of fdesc address. */ - #define R_PARISC_PLABEL14R 70 /* Right 14 bits of fdesc address. */ - #define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */ -+#define R_PARISC_PCREL22C 73 - #define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */ - #define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */ - #define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */ -@@ -2205,6 +2214,8 @@ enum - #define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */ - #define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */ - #define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */ -+#define R_PARISC_BASEREL14WR 107 -+#define R_PARISC_BASEREL14DR 108 - #define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */ - #define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */ - #define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */ diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch b/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch deleted file mode 100644 index 62a960f3a..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/hurd_path.patch +++ /dev/null @@ -1,17 +0,0 @@ -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia - -Index: elfutils-0.165/tests/run-native-test.sh -=================================================================== ---- elfutils-0.165.orig/tests/run-native-test.sh -+++ elfutils-0.165/tests/run-native-test.sh -@@ -83,6 +83,9 @@ native_test() - # "cannot attach to process: Function not implemented". - [ "$(uname)" = "GNU/kFreeBSD" ] && exit 77 - -+# hurd's /proc/$PID/maps does not give paths yet. -+[ "$(uname)" = "GNU" ] && exit 77 -+ - native_test ${abs_builddir}/allregs - native_test ${abs_builddir}/funcretval - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff b/poky/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff deleted file mode 100644 index 55513eedd..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/ignore_strmerge.diff +++ /dev/null @@ -1,14 +0,0 @@ -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia - ---- elfutils-0.165.orig/tests/run-strip-strmerge.sh -+++ elfutils-0.165/tests/run-strip-strmerge.sh -@@ -30,7 +30,7 @@ remerged=remerged.elf - tempfiles $merged $stripped $debugfile $remerged - - echo elflint $input --testrun ${abs_top_builddir}/src/elflint --gnu $input -+testrun_on_self_skip ${abs_top_builddir}/src/elflint --gnu $input - echo elfstrmerge - testrun ${abs_top_builddir}/tests/elfstrmerge -o $merged $input - echo elflint $merged diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch b/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch deleted file mode 100644 index e85a2fed9..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/kfreebsd_path.patch +++ /dev/null @@ -1,20 +0,0 @@ -Upstream-Status: Pending [from debian] -Signed-off-by: Hongxu Jia - -Index: b/tests/run-native-test.sh -=================================================================== ---- a/tests/run-native-test.sh -+++ b/tests/run-native-test.sh -@@ -77,6 +77,12 @@ native_test() - test $native -eq 0 || testrun "$@" -p $native > /dev/null - } - -+# On the Debian buildds, GNU/kFreeBSD linprocfs /proc/$PID/maps does -+# not give absolute paths due to sbuild's bind mounts (bug #570805) -+# therefore the next two test programs are expected to fail with -+# "cannot attach to process: Function not implemented". -+[ "$(uname)" = "GNU/kFreeBSD" ] && exit 77 -+ - native_test ${abs_builddir}/allregs - native_test ${abs_builddir}/funcretval - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff b/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff deleted file mode 100644 index 749faa403..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/mips_backend.diff +++ /dev/null @@ -1,724 +0,0 @@ -From 7e0b036d087dfff7f5e306f52fc78745f99454c3 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Wed, 21 Aug 2019 15:49:52 +0800 -Subject: [PATCH] mips backend - -Rebase to 0.177 -Upstream-Status: Pending [from debian] - -Signed-off-by: Hongxu Jia - ---- - backends/Makefile.am | 6 +- - backends/mips_init.c | 59 ++++++++ - backends/mips_regs.c | 104 +++++++++++++ - backends/mips_reloc.def | 79 ++++++++++ - backends/mips_retval.c | 321 ++++++++++++++++++++++++++++++++++++++++ - backends/mips_symbol.c | 53 +++++++ - libebl/eblopenbackend.c | 3 + - 7 files changed, 623 insertions(+), 2 deletions(-) - create mode 100644 backends/mips_init.c - create mode 100644 backends/mips_regs.c - create mode 100644 backends/mips_reloc.def - create mode 100644 backends/mips_retval.c - create mode 100644 backends/mips_symbol.c - -diff --git a/backends/Makefile.am b/backends/Makefile.am -index 4755f61..07d45d7 100644 ---- a/backends/Makefile.am -+++ b/backends/Makefile.am -@@ -37,7 +37,7 @@ AM_CPPFLAGS += -I$(top_srcdir)/libebl -I$(top_srcdir)/libasm \ - noinst_LIBRARIES = libebl_backends.a libebl_backends_pic.a - - modules = i386 sh x86_64 ia64 alpha arm aarch64 sparc ppc ppc64 s390 \ -- tilegx m68k bpf riscv csky parisc -+ tilegx m68k bpf riscv csky parisc mips - - parisc_SRCS = parisc_init.c parisc_symbol.c parisc_regs.c parisc_retval.c - -@@ -100,12 +100,14 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \ - csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \ - csky_regs.c csky_initreg.c csky_corenote.c - -+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c -+ - libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \ - $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \ - $(aarch64_SRCS) $(sparc_SRCS) $(ppc_SRCS) \ - $(ppc64_SRCS) $(s390_SRCS) $(tilegx_SRCS) \ - $(m68k_SRCS) $(bpf_SRCS) $(riscv_SRCS) $(csky_SRCS) \ -- $(parisc_SRCS) -+ $(parisc_SRCS) $(mips_SRCS) - - libebl_backends_pic_a_SOURCES = - am_libebl_backends_pic_a_OBJECTS = $(libebl_backends_a_SOURCES:.c=.os) -diff --git a/backends/mips_init.c b/backends/mips_init.c -new file mode 100644 -index 0000000..975c04e ---- /dev/null -+++ b/backends/mips_init.c -@@ -0,0 +1,59 @@ -+/* Initialization of mips specific backend library. -+ Copyright (C) 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#define BACKEND mips_ -+#define RELOC_PREFIX R_MIPS_ -+#include "libebl_CPU.h" -+ -+/* This defines the common reloc hooks based on mips_reloc.def. */ -+#include "common-reloc.c" -+ -+const char * -+mips_init (Elf *elf __attribute__ ((unused)), -+ GElf_Half machine __attribute__ ((unused)), -+ Ebl *eh, -+ size_t ehlen) -+{ -+ /* Check whether the Elf_BH object has a sufficent size. */ -+ if (ehlen < sizeof (Ebl)) -+ return NULL; -+ -+ /* We handle it. */ -+ if (machine == EM_MIPS) -+ eh->name = "MIPS R3000 big-endian"; -+ else if (machine == EM_MIPS_RS3_LE) -+ eh->name = "MIPS R3000 little-endian"; -+ -+ mips_init_reloc (eh); -+ HOOK (eh, reloc_simple_type); -+ HOOK (eh, return_value_location); -+ HOOK (eh, register_info); -+ -+ return MODVERSION; -+} -diff --git a/backends/mips_regs.c b/backends/mips_regs.c -new file mode 100644 -index 0000000..44f86cb ---- /dev/null -+++ b/backends/mips_regs.c -@@ -0,0 +1,104 @@ -+/* Register names and numbers for MIPS DWARF. -+ Copyright (C) 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+#include -+ -+#define BACKEND mips_ -+#include "libebl_CPU.h" -+ -+ssize_t -+mips_register_info (Ebl *ebl __attribute__((unused)), -+ int regno, char *name, size_t namelen, -+ const char **prefix, const char **setname, -+ int *bits, int *type) -+{ -+ if (name == NULL) -+ return 66; -+ -+ if (regno < 0 || regno > 65 || namelen < 4) -+ return -1; -+ -+ *prefix = "$"; -+ -+ if (regno < 32) -+ { -+ *setname = "integer"; -+ *type = DW_ATE_signed; -+ *bits = 32; -+ if (regno < 32 + 10) -+ { -+ name[0] = regno + '0'; -+ namelen = 1; -+ } -+ else -+ { -+ name[0] = (regno / 10) + '0'; -+ name[1] = (regno % 10) + '0'; -+ namelen = 2; -+ } -+ } -+ else if (regno < 64) -+ { -+ *setname = "FPU"; -+ *type = DW_ATE_float; -+ *bits = 32; -+ name[0] = 'f'; -+ if (regno < 32 + 10) -+ { -+ name[1] = (regno - 32) + '0'; -+ namelen = 2; -+ } -+ else -+ { -+ name[1] = (regno - 32) / 10 + '0'; -+ name[2] = (regno - 32) % 10 + '0'; -+ namelen = 3; -+ } -+ } -+ else if (regno == 64) -+ { -+ *type = DW_ATE_signed; -+ *bits = 32; -+ name[0] = 'h'; -+ name[1] = 'i'; -+ namelen = 2; -+ } -+ else -+ { -+ *type = DW_ATE_signed; -+ *bits = 32; -+ name[0] = 'l'; -+ name[1] = 'o'; -+ namelen = 2; -+ } -+ -+ name[namelen++] = '\0'; -+ return namelen; -+} -diff --git a/backends/mips_reloc.def b/backends/mips_reloc.def -new file mode 100644 -index 0000000..4579970 ---- /dev/null -+++ b/backends/mips_reloc.def -@@ -0,0 +1,79 @@ -+/* List the relocation types for mips. -*- C -*- -+ Copyright (C) 2006 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ . */ -+ -+/* NAME, REL|EXEC|DYN */ -+ -+RELOC_TYPE (NONE, 0) -+RELOC_TYPE (16, 0) -+RELOC_TYPE (32, 0) -+RELOC_TYPE (REL32, 0) -+RELOC_TYPE (26, 0) -+RELOC_TYPE (HI16, 0) -+RELOC_TYPE (LO16, 0) -+RELOC_TYPE (GPREL16, 0) -+RELOC_TYPE (LITERAL, 0) -+RELOC_TYPE (GOT16, 0) -+RELOC_TYPE (PC16, 0) -+RELOC_TYPE (CALL16, 0) -+RELOC_TYPE (GPREL32, 0) -+ -+RELOC_TYPE (SHIFT5, 0) -+RELOC_TYPE (SHIFT6, 0) -+RELOC_TYPE (64, 0) -+RELOC_TYPE (GOT_DISP, 0) -+RELOC_TYPE (GOT_PAGE, 0) -+RELOC_TYPE (GOT_OFST, 0) -+RELOC_TYPE (GOT_HI16, 0) -+RELOC_TYPE (GOT_LO16, 0) -+RELOC_TYPE (SUB, 0) -+RELOC_TYPE (INSERT_A, 0) -+RELOC_TYPE (INSERT_B, 0) -+RELOC_TYPE (DELETE, 0) -+RELOC_TYPE (HIGHER, 0) -+RELOC_TYPE (HIGHEST, 0) -+RELOC_TYPE (CALL_HI16, 0) -+RELOC_TYPE (CALL_LO16, 0) -+RELOC_TYPE (SCN_DISP, 0) -+RELOC_TYPE (REL16, 0) -+RELOC_TYPE (ADD_IMMEDIATE, 0) -+RELOC_TYPE (PJUMP, 0) -+RELOC_TYPE (RELGOT, 0) -+RELOC_TYPE (JALR, 0) -+RELOC_TYPE (TLS_DTPMOD32, 0) -+RELOC_TYPE (TLS_DTPREL32, 0) -+RELOC_TYPE (TLS_DTPMOD64, 0) -+RELOC_TYPE (TLS_DTPREL64, 0) -+RELOC_TYPE (TLS_GD, 0) -+RELOC_TYPE (TLS_LDM, 0) -+RELOC_TYPE (TLS_DTPREL_HI16, 0) -+RELOC_TYPE (TLS_DTPREL_LO16, 0) -+RELOC_TYPE (TLS_GOTTPREL, 0) -+RELOC_TYPE (TLS_TPREL32, 0) -+RELOC_TYPE (TLS_TPREL64, 0) -+RELOC_TYPE (TLS_TPREL_HI16, 0) -+RELOC_TYPE (TLS_TPREL_LO16, 0) -+ -+#define NO_COPY_RELOC 1 -+#define NO_RELATIVE_RELOC 1 -diff --git a/backends/mips_retval.c b/backends/mips_retval.c -new file mode 100644 -index 0000000..656cd1f ---- /dev/null -+++ b/backends/mips_retval.c -@@ -0,0 +1,321 @@ -+/* Function return value location for Linux/mips ABI. -+ Copyright (C) 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+#include -+#include -+#include -+ -+#include "../libebl/libeblP.h" -+#include "../libdw/libdwP.h" -+ -+#define BACKEND mips_ -+#include "libebl_CPU.h" -+ -+/* The ABI of the file. Also see EF_MIPS_ABI2 above. */ -+#define EF_MIPS_ABI 0x0000F000 -+ -+/* The original o32 abi. */ -+#define E_MIPS_ABI_O32 0x00001000 -+ -+/* O32 extended to work on 64 bit architectures */ -+#define E_MIPS_ABI_O64 0x00002000 -+ -+/* EABI in 32 bit mode */ -+#define E_MIPS_ABI_EABI32 0x00003000 -+ -+/* EABI in 64 bit mode */ -+#define E_MIPS_ABI_EABI64 0x00004000 -+ -+/* All the possible MIPS ABIs. */ -+enum mips_abi -+ { -+ MIPS_ABI_UNKNOWN = 0, -+ MIPS_ABI_N32, -+ MIPS_ABI_O32, -+ MIPS_ABI_N64, -+ MIPS_ABI_O64, -+ MIPS_ABI_EABI32, -+ MIPS_ABI_EABI64, -+ MIPS_ABI_LAST -+ }; -+ -+/* Find the mips ABI of the current file */ -+enum mips_abi find_mips_abi(Elf *elf) -+{ -+ GElf_Ehdr ehdr_mem; -+ GElf_Ehdr *ehdr = gelf_getehdr (elf, &ehdr_mem); -+ -+ if (ehdr == NULL) -+ return MIPS_ABI_LAST; -+ -+ GElf_Word elf_flags = ehdr->e_flags; -+ -+ /* Check elf_flags to see if it specifies the ABI being used. */ -+ switch ((elf_flags & EF_MIPS_ABI)) -+ { -+ case E_MIPS_ABI_O32: -+ return MIPS_ABI_O32; -+ case E_MIPS_ABI_O64: -+ return MIPS_ABI_O64; -+ case E_MIPS_ABI_EABI32: -+ return MIPS_ABI_EABI32; -+ case E_MIPS_ABI_EABI64: -+ return MIPS_ABI_EABI64; -+ default: -+ if ((elf_flags & EF_MIPS_ABI2)) -+ return MIPS_ABI_N32; -+ } -+ -+ /* GCC creates a pseudo-section whose name describes the ABI. */ -+ size_t shstrndx; -+ if (elf_getshdrstrndx (elf, &shstrndx) < 0) -+ return MIPS_ABI_LAST; -+ -+ const char *name; -+ Elf_Scn *scn = NULL; -+ while ((scn = elf_nextscn (elf, scn)) != NULL) -+ { -+ GElf_Shdr shdr_mem; -+ GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); -+ if (shdr == NULL) -+ return MIPS_ABI_LAST; -+ -+ name = elf_strptr (elf, shstrndx, shdr->sh_name) ?: ""; -+ if (strncmp (name, ".mdebug.", 8) != 0) -+ continue; -+ -+ if (strcmp (name, ".mdebug.abi32") == 0) -+ return MIPS_ABI_O32; -+ else if (strcmp (name, ".mdebug.abiN32") == 0) -+ return MIPS_ABI_N32; -+ else if (strcmp (name, ".mdebug.abi64") == 0) -+ return MIPS_ABI_N64; -+ else if (strcmp (name, ".mdebug.abiO64") == 0) -+ return MIPS_ABI_O64; -+ else if (strcmp (name, ".mdebug.eabi32") == 0) -+ return MIPS_ABI_EABI32; -+ else if (strcmp (name, ".mdebug.eabi64") == 0) -+ return MIPS_ABI_EABI64; -+ else -+ return MIPS_ABI_UNKNOWN; -+ } -+ -+ return MIPS_ABI_UNKNOWN; -+} -+ -+unsigned int -+mips_abi_regsize (enum mips_abi abi) -+{ -+ switch (abi) -+ { -+ case MIPS_ABI_EABI32: -+ case MIPS_ABI_O32: -+ return 4; -+ case MIPS_ABI_N32: -+ case MIPS_ABI_N64: -+ case MIPS_ABI_O64: -+ case MIPS_ABI_EABI64: -+ return 8; -+ case MIPS_ABI_UNKNOWN: -+ case MIPS_ABI_LAST: -+ default: -+ return 0; -+ } -+} -+ -+ -+/* $v0 or pair $v0, $v1 */ -+static const Dwarf_Op loc_intreg_o32[] = -+ { -+ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 4 }, -+ }; -+ -+static const Dwarf_Op loc_intreg[] = -+ { -+ { .atom = DW_OP_reg2 }, { .atom = DW_OP_piece, .number = 8 }, -+ { .atom = DW_OP_reg3 }, { .atom = DW_OP_piece, .number = 8 }, -+ }; -+#define nloc_intreg 1 -+#define nloc_intregpair 4 -+ -+/* $f0 (float), or pair $f0, $f1 (double). -+ * f2/f3 are used for COMPLEX (= 2 doubles) returns in Fortran */ -+static const Dwarf_Op loc_fpreg_o32[] = -+ { -+ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_regx, .number = 33 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 4 }, -+ { .atom = DW_OP_regx, .number = 35 }, { .atom = DW_OP_piece, .number = 4 }, -+ }; -+ -+/* $f0, or pair $f0, $f2. */ -+static const Dwarf_Op loc_fpreg[] = -+ { -+ { .atom = DW_OP_regx, .number = 32 }, { .atom = DW_OP_piece, .number = 8 }, -+ { .atom = DW_OP_regx, .number = 34 }, { .atom = DW_OP_piece, .number = 8 }, -+ }; -+#define nloc_fpreg 1 -+#define nloc_fpregpair 4 -+#define nloc_fpregquad 8 -+ -+/* The return value is a structure and is actually stored in stack space -+ passed in a hidden argument by the caller. But, the compiler -+ helpfully returns the address of that space in $v0. */ -+static const Dwarf_Op loc_aggregate[] = -+ { -+ { .atom = DW_OP_breg2, .number = 0 } -+ }; -+#define nloc_aggregate 1 -+ -+int -+mips_return_value_location (Dwarf_Die *functypedie, const Dwarf_Op **locp) -+{ -+ /* First find the ABI used by the elf object */ -+ enum mips_abi abi = find_mips_abi(functypedie->cu->dbg->elf); -+ -+ /* Something went seriously wrong while trying to figure out the ABI */ -+ if (abi == MIPS_ABI_LAST) -+ return -1; -+ -+ /* We couldn't identify the ABI, but the file seems valid */ -+ if (abi == MIPS_ABI_UNKNOWN) -+ return -2; -+ -+ /* Can't handle EABI variants */ -+ if ((abi == MIPS_ABI_EABI32) || (abi == MIPS_ABI_EABI64)) -+ return -2; -+ -+ unsigned int regsize = mips_abi_regsize (abi); -+ if (!regsize) -+ return -2; -+ -+ /* Start with the function's type, and get the DW_AT_type attribute, -+ which is the type of the return value. */ -+ -+ Dwarf_Attribute attr_mem; -+ Dwarf_Attribute *attr = dwarf_attr_integrate (functypedie, DW_AT_type, &attr_mem); -+ if (attr == NULL) -+ /* The function has no return value, like a `void' function in C. */ -+ return 0; -+ -+ Dwarf_Die die_mem; -+ Dwarf_Die *typedie = dwarf_formref_die (attr, &die_mem); -+ int tag = dwarf_tag (typedie); -+ -+ /* Follow typedefs and qualifiers to get to the actual type. */ -+ while (tag == DW_TAG_typedef -+ || tag == DW_TAG_const_type || tag == DW_TAG_volatile_type -+ || tag == DW_TAG_restrict_type) -+ { -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); -+ typedie = dwarf_formref_die (attr, &die_mem); -+ tag = dwarf_tag (typedie); -+ } -+ -+ switch (tag) -+ { -+ case -1: -+ return -1; -+ -+ case DW_TAG_subrange_type: -+ if (! dwarf_hasattr_integrate (typedie, DW_AT_byte_size)) -+ { -+ attr = dwarf_attr_integrate (typedie, DW_AT_type, &attr_mem); -+ typedie = dwarf_formref_die (attr, &die_mem); -+ tag = dwarf_tag (typedie); -+ } -+ /* Fall through. */ -+ -+ case DW_TAG_base_type: -+ case DW_TAG_enumeration_type: -+ case DW_TAG_pointer_type: -+ case DW_TAG_ptr_to_member_type: -+ { -+ Dwarf_Word size; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_byte_size, -+ &attr_mem), &size) != 0) -+ { -+ if (tag == DW_TAG_pointer_type || tag == DW_TAG_ptr_to_member_type) -+ size = regsize; -+ else -+ return -1; -+ } -+ if (tag == DW_TAG_base_type) -+ { -+ Dwarf_Word encoding; -+ if (dwarf_formudata (dwarf_attr_integrate (typedie, DW_AT_encoding, -+ &attr_mem), &encoding) != 0) -+ return -1; -+ -+#define ABI_LOC(loc, regsize) ((regsize) == 4 ? (loc ## _o32) : (loc)) -+ -+ if (encoding == DW_ATE_float) -+ { -+ *locp = ABI_LOC(loc_fpreg, regsize); -+ if (size <= regsize) -+ return nloc_fpreg; -+ -+ if (size <= 2*regsize) -+ return nloc_fpregpair; -+ -+ if (size <= 4*regsize && abi == MIPS_ABI_O32) -+ return nloc_fpregquad; -+ -+ goto aggregate; -+ } -+ } -+ *locp = ABI_LOC(loc_intreg, regsize); -+ if (size <= regsize) -+ return nloc_intreg; -+ if (size <= 2*regsize) -+ return nloc_intregpair; -+ -+ /* Else fall through. Shouldn't happen though (at least with gcc) */ -+ } -+ -+ case DW_TAG_structure_type: -+ case DW_TAG_class_type: -+ case DW_TAG_union_type: -+ case DW_TAG_array_type: -+ aggregate: -+ /* XXX TODO: Can't handle structure return with other ABI's yet :-/ */ -+ if ((abi != MIPS_ABI_O32) && (abi != MIPS_ABI_O64)) -+ return -2; -+ -+ *locp = loc_aggregate; -+ return nloc_aggregate; -+ } -+ -+ /* XXX We don't have a good way to return specific errors from ebl calls. -+ This value means we do not understand the type, but it is well-formed -+ DWARF and might be valid. */ -+ return -2; -+} -diff --git a/backends/mips_symbol.c b/backends/mips_symbol.c -new file mode 100644 -index 0000000..261b05d ---- /dev/null -+++ b/backends/mips_symbol.c -@@ -0,0 +1,53 @@ -+/* MIPS specific symbolic name handling. -+ Copyright (C) 2002, 2003, 2005 Red Hat, Inc. -+ This file is part of Red Hat elfutils. -+ Written by Jakub Jelinek , 2002. -+ -+ Red Hat elfutils is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by the -+ Free Software Foundation; version 2 of the License. -+ -+ Red Hat elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License along -+ with Red Hat elfutils; if not, write to the Free Software Foundation, -+ Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. -+ -+ Red Hat elfutils is an included package of the Open Invention Network. -+ An included package of the Open Invention Network is a package for which -+ Open Invention Network licensees cross-license their patents. No patent -+ license is granted, either expressly or impliedly, by designation as an -+ included package. Should you wish to participate in the Open Invention -+ Network licensing program, please visit www.openinventionnetwork.com -+ . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+#include -+ -+#define BACKEND mips_ -+#include "libebl_CPU.h" -+ -+/* Check for the simple reloc types. */ -+Elf_Type -+mips_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type, -+ int *addsub __attribute__ ((unused))) -+{ -+ switch (type) -+ { -+ case R_MIPS_16: -+ return ELF_T_HALF; -+ case R_MIPS_32: -+ return ELF_T_WORD; -+ case R_MIPS_64: -+ return ELF_T_XWORD; -+ default: -+ return ELF_T_NUM; -+ } -+} -diff --git a/libebl/eblopenbackend.c b/libebl/eblopenbackend.c -index 210b47e..1feac13 100644 ---- a/libebl/eblopenbackend.c -+++ b/libebl/eblopenbackend.c -@@ -57,6 +57,7 @@ const char *m68k_init (Elf *, GElf_Half, Ebl *, size_t); - const char *bpf_init (Elf *, GElf_Half, Ebl *, size_t); - const char *riscv_init (Elf *, GElf_Half, Ebl *, size_t); - const char *csky_init (Elf *, GElf_Half, Ebl *, size_t); -+const char *mips_init (Elf *, GElf_Half, Ebl *, size_t); - - /* This table should contain the complete list of architectures as far - as the ELF specification is concerned. */ -@@ -87,6 +88,8 @@ static const struct - { sparc_init, "elf_sparc", "sparc", 5, EM_SPARC, 0, 0 }, - { sparc_init, "elf_sparcv8plus", "sparc", 5, EM_SPARC32PLUS, 0, 0 }, - { s390_init, "ebl_s390", "s390", 4, EM_S390, 0, 0 }, -+ { mips_init, "elf_mips", "mips", 4, EM_MIPS, 0, 0 }, -+ { mips_init, "elf_mipsel", "mipsel", 4, EM_MIPS_RS3_LE, 0, 0 }, - - { NULL, "elf_m32", "m32", 3, EM_M32, 0, 0 }, - { m68k_init, "elf_m68k", "m68k", 4, EM_68K, ELFCLASS32, ELFDATA2MSB }, --- -2.17.1 - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch b/poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch deleted file mode 100644 index dd8f88a45..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/mips_cfi.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 5bf6117a6eaf9007ce80adbb8b66a95ca98047a4 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Wed, 21 Aug 2019 17:00:30 +0800 -Subject: [PATCH] mips_cfi - -Upstream-Status: Pending [from debian] - -Rebase to 0.177 - -Signed-off-by: Hongxu Jia - ---- - backends/Makefile.am | 2 +- - backends/mips_cfi.c | 80 ++++++++++++++++++++++++++++++++++++++++++++ - backends/mips_init.c | 1 + - 3 files changed, 82 insertions(+), 1 deletion(-) - create mode 100644 backends/mips_cfi.c - -diff --git a/backends/Makefile.am b/backends/Makefile.am -index 07d45d7..dec3080 100644 ---- a/backends/Makefile.am -+++ b/backends/Makefile.am -@@ -100,7 +100,7 @@ riscv_SRCS = riscv_init.c riscv_symbol.c riscv_cfi.c riscv_regs.c \ - csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \ - csky_regs.c csky_initreg.c csky_corenote.c - --mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c -+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c mips_cfi.c - - libebl_backends_a_SOURCES = $(i386_SRCS) $(sh_SRCS) $(x86_64_SRCS) \ - $(ia64_SRCS) $(alpha_SRCS) $(arm_SRCS) \ -diff --git a/backends/mips_cfi.c b/backends/mips_cfi.c -new file mode 100644 -index 0000000..9ffdab5 ---- /dev/null -+++ b/backends/mips_cfi.c -@@ -0,0 +1,80 @@ -+/* MIPS ABI-specified defaults for DWARF CFI. -+ Copyright (C) 2018 Kurt Roeckx, Inc. -+ This file is part of elfutils. -+ -+ This file is free software; you can redistribute it and/or modify -+ it under the terms of either -+ -+ * the GNU Lesser General Public License as published by the Free -+ Software Foundation; either version 3 of the License, or (at -+ your option) any later version -+ -+ or -+ -+ * the GNU General Public License as published by the Free -+ Software Foundation; either version 2 of the License, or (at -+ your option) any later version -+ -+ or both in parallel, as here. -+ -+ elfutils is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received copies of the GNU General Public License and -+ the GNU Lesser General Public License along with this program. If -+ not, see . */ -+ -+#ifdef HAVE_CONFIG_H -+# include -+#endif -+ -+#include -+ -+#define BACKEND mips_ -+#include "libebl_CPU.h" -+ -+int -+mips_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info) -+{ -+ static const uint8_t abi_cfi[] = -+ { -+ /* Call-saved regs. */ -+ DW_CFA_same_value, ULEB128_7 (16), /* $16 */ -+ DW_CFA_same_value, ULEB128_7 (17), /* $17 */ -+ DW_CFA_same_value, ULEB128_7 (18), /* $18 */ -+ DW_CFA_same_value, ULEB128_7 (19), /* $19 */ -+ DW_CFA_same_value, ULEB128_7 (20), /* $20 */ -+ DW_CFA_same_value, ULEB128_7 (21), /* $21 */ -+ DW_CFA_same_value, ULEB128_7 (22), /* $22 */ -+ DW_CFA_same_value, ULEB128_7 (23), /* $23 */ -+ DW_CFA_same_value, ULEB128_7 (28), /* $28 */ -+ DW_CFA_same_value, ULEB128_7 (29), /* $29 */ -+ DW_CFA_same_value, ULEB128_7 (30), /* $30 */ -+ -+ DW_CFA_same_value, ULEB128_7 (52), /* $f20 */ -+ DW_CFA_same_value, ULEB128_7 (53), /* $f21 */ -+ DW_CFA_same_value, ULEB128_7 (54), /* $f22 */ -+ DW_CFA_same_value, ULEB128_7 (55), /* $f23 */ -+ DW_CFA_same_value, ULEB128_7 (56), /* $f24 */ -+ DW_CFA_same_value, ULEB128_7 (57), /* $f25 */ -+ DW_CFA_same_value, ULEB128_7 (58), /* $f26 */ -+ DW_CFA_same_value, ULEB128_7 (59), /* $f27 */ -+ DW_CFA_same_value, ULEB128_7 (60), /* $f28 */ -+ DW_CFA_same_value, ULEB128_7 (61), /* $f29 */ -+ DW_CFA_same_value, ULEB128_7 (62), /* $f30 */ -+ DW_CFA_same_value, ULEB128_7 (63), /* $f31 */ -+ -+ /* The CFA is the SP. */ -+ DW_CFA_def_cfa, ULEB128_7 (29), ULEB128_7 (0), -+ }; -+ -+ abi_info->initial_instructions = abi_cfi; -+ abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi]; -+ abi_info->data_alignment_factor = 4; -+ -+ abi_info->return_address_register = 31; /* $31 */ -+ -+ return 0; -+} -diff --git a/backends/mips_init.c b/backends/mips_init.c -index 8482e7f..bce5abe 100644 ---- a/backends/mips_init.c -+++ b/backends/mips_init.c -@@ -50,6 +50,7 @@ mips_init (Elf *elf __attribute__ ((unused)), - HOOK (eh, reloc_simple_type); - HOOK (eh, return_value_location); - HOOK (eh, register_info); -+ HOOK (eh, abi_cfi); - - return MODVERSION; - } diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch b/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch deleted file mode 100644 index c6d42e163..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/mips_readelf_w.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 7bdc83296865cf2b2a5615dbdb7ac0d441fb1849 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Wed, 21 Aug 2019 16:55:01 +0800 -Subject: [PATCH] mips_readelf_w - -Upstream-Status: Pending [from debian] - -Rebase to 0.177 - -Signed-off-by: Hongxu Jia ---- - src/readelf.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/readelf.c b/src/readelf.c -index 2084fb1..5c02a9b 100644 ---- a/src/readelf.c -+++ b/src/readelf.c -@@ -11256,7 +11256,8 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) - GElf_Shdr shdr_mem; - GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); - -- if (shdr != NULL && shdr->sh_type == SHT_PROGBITS) -+ if (shdr != NULL && ( -+ (shdr->sh_type == SHT_PROGBITS) || (shdr->sh_type == SHT_MIPS_DWARF))) - { - static const struct - { --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff b/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff deleted file mode 100644 index e6d7948c6..000000000 --- a/poky/meta/recipes-devtools/elfutils/files/debian/testsuite-ignore-elflint.diff +++ /dev/null @@ -1,52 +0,0 @@ -From 6393b0e57872b3ffedf0dbd6784cd29694010878 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Wed, 21 Aug 2019 16:59:01 +0800 -Subject: [PATCH 1/2] testsuite-ignore-elflint - -Upstream-Status: Pending [from debian] - -Rebase to 0.177 - -Signed-off-by: Hongxu Jia ---- - tests/run-elflint-self.sh | 2 +- - tests/test-subr.sh | 15 +++++++++++++++ - 2 files changed, 16 insertions(+), 1 deletion(-) - -diff --git a/tests/run-elflint-self.sh b/tests/run-elflint-self.sh -index 58fa7d0..85d21a5 100755 ---- a/tests/run-elflint-self.sh -+++ b/tests/run-elflint-self.sh -@@ -18,5 +18,5 @@ - - . $srcdir/test-subr.sh - --testrun_on_self ${abs_top_builddir}/src/elflint --quiet --gnu-ld -+testrun_on_self_skip ${abs_top_builddir}/src/elflint --quiet --gnu-ld - testrun_on_self_compressed ${abs_top_builddir}/src/elflint --quiet --gnu-ld -diff --git a/tests/test-subr.sh b/tests/test-subr.sh -index 09f428d..26f61f1 100644 ---- a/tests/test-subr.sh -+++ b/tests/test-subr.sh -@@ -201,3 +201,18 @@ testrun_on_self_quiet() - # Only exit if something failed - if test $exit_status != 0; then exit $exit_status; fi - } -+ -+# Same as testrun_on_self(), but skip on failure. -+testrun_on_self_skip() -+{ -+ exit_status=0 -+ -+ for file in $self_test_files; do -+ testrun $* $file \ -+ || { echo "*** failure in $* $file"; exit_status=77; } -+ done -+ -+ # Only exit if something failed -+ if test $exit_status != 0; then exit $exit_status; fi -+} -+ --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb index 9d1874c7b..54eb5e48a 100644 --- a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb +++ b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb @@ -8,8 +8,8 @@ DEPENDS_class-native = "hostperl-runtime-native" INHIBIT_DEFAULT_DEPS = "1" -SRCREV = "e78c96e5288993aaea3ec44e5c6ee755c668da79" -PV = "20200515+git${SRCPV}" +SRCREV = "696cd4a4eab1ee9fefbb7e38dbab291d741d0c5a" +PV = "20200621+git${SRCPV}" SRC_URI = "git://git.savannah.gnu.org/config.git \ file://gnu-configize.in" diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.14.4.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.14.4.bb index 3c535e14c..72c988944 100644 --- a/poky/meta/recipes-devtools/go/go-binary-native_1.14.4.bb +++ b/poky/meta/recipes-devtools/go/go-binary-native_1.14.4.bb @@ -11,6 +11,9 @@ SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz SRC_URI[go_linux_amd64.sha256sum] = "aed845e4185a0b2a3c3d5e1d0a35491702c55889192bb9c30e67a3de6849c067" SRC_URI[go_linux_arm64.sha256sum] = "05dc46ada4e23a1f58e72349f7c366aae2e9c7a7f1e7653095538bc5bba5e077" +UPSTREAM_CHECK_URI = "https://golang.org/dl/" +UPSTREAM_CHECK_REGEX = "go(?P\d+(\.\d+)+)\.linux" + S = "${WORKDIR}/go" inherit goarch native diff --git a/poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb b/poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb index b4d7e80af..62f0dfb0c 100644 --- a/poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb +++ b/poky/meta/recipes-devtools/jquery/jquery_3.5.1.bb @@ -2,12 +2,14 @@ SUMMARY = "jQuery is a fast, small, and feature-rich JavaScript library" HOMEPAGE = "https://jquery.com/" LICENSE = "MIT" SECTION = "devel" -LIC_FILES_CHKSUM = "file://${WORKDIR}/${BP}.js;beginline=8;endline=10;md5=ebd7bc5d23ab165188e526a0c65d24bb" +LIC_FILES_CHKSUM = "file://${S}/${BP}.js;beginline=8;endline=10;md5=ebd7bc5d23ab165188e526a0c65d24bb" +# unpack items to ${S} so the archiver can see them +# SRC_URI = "\ - https://code.jquery.com/${BP}.js;name=js \ - https://code.jquery.com/${BP}.min.js;name=min \ - https://code.jquery.com/${BP}.min.map;name=map \ + https://code.jquery.com/${BP}.js;name=js;subdir=${BP} \ + https://code.jquery.com/${BP}.min.js;name=min;subdir=${BP} \ + https://code.jquery.com/${BP}.min.map;name=map;subdir=${BP} \ " SRC_URI[js.sha256sum] = "416a3b2c3bf16d64f6b5b6d0f7b079df2267614dd6847fc2f3271b4409233c37" @@ -20,9 +22,9 @@ inherit allarch do_install() { install -d ${D}${datadir}/javascript/${BPN}/ - install -m 644 ${WORKDIR}/${BP}.js ${D}${datadir}/javascript/${BPN}/${BPN}.js - install -m 644 ${WORKDIR}/${BP}.min.js ${D}${datadir}/javascript/${BPN}/${BPN}.min.js - install -m 644 ${WORKDIR}/${BP}.min.map ${D}${datadir}/javascript/${BPN}/${BPN}.min.map + install -m 644 ${S}/${BP}.js ${D}${datadir}/javascript/${BPN}/${BPN}.js + install -m 644 ${S}/${BP}.min.js ${D}${datadir}/javascript/${BPN}/${BPN}.min.js + install -m 644 ${S}/${BP}.min.map ${D}${datadir}/javascript/${BPN}/${BPN}.min.map } PACKAGES = "${PN}" diff --git a/poky/meta/recipes-devtools/json-c/json-c/CVE-2020-12762.patch b/poky/meta/recipes-devtools/json-c/json-c/CVE-2020-12762.patch new file mode 100644 index 000000000..a45cfb61b --- /dev/null +++ b/poky/meta/recipes-devtools/json-c/json-c/CVE-2020-12762.patch @@ -0,0 +1,160 @@ +From 099016b7e8d70a6d5dd814e788bba08d33d48426 Mon Sep 17 00:00:00 2001 +From: Tobias Stoeckmann +Date: Mon, 4 May 2020 19:41:16 +0200 +Subject: [PATCH 1/3] Protect array_list_del_idx against size_t overflow. + +If the assignment of stop overflows due to idx and count being +larger than SIZE_T_MAX in sum, out of boundary access could happen. + +It takes invalid usage of this function for this to happen, but +I decided to add this check so array_list_del_idx is as safe against +bad usage as the other arraylist functions. + +Upstream-Status: Backport [https://github.com/json-c/json-c/commit/31243e4d1204ef78be34b0fcae73221eee6b83be] +CVE: CVE-2020-12762 +Signed-off-by: Chee Yang Lee + +--- + arraylist.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/arraylist.c b/arraylist.c +index 12ad8af6d3..e5524aca75 100644 +--- a/arraylist.c ++++ b/arraylist.c +@@ -136,6 +136,9 @@ int array_list_del_idx(struct array_list *arr, size_t idx, size_t count) + { + size_t i, stop; + ++ /* Avoid overflow in calculation with large indices. */ ++ if (idx > SIZE_T_MAX - count) ++ return -1; + stop = idx + count; + if (idx >= arr->length || stop > arr->length) + return -1; + +From 77d935b7ae7871a1940cd827e850e6063044ec45 Mon Sep 17 00:00:00 2001 +From: Tobias Stoeckmann +Date: Mon, 4 May 2020 19:46:45 +0200 +Subject: [PATCH 2/3] Prevent division by zero in linkhash. + +If a linkhash with a size of zero is created, then modulo operations +are prone to division by zero operations. + +Purely protective measure against bad usage. +--- + linkhash.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/linkhash.c b/linkhash.c +index 7ea58c0abf..f05cc38030 100644 +--- a/linkhash.c ++++ b/linkhash.c +@@ -12,6 +12,7 @@ + + #include "config.h" + ++#include + #include + #include + #include +@@ -499,6 +500,8 @@ struct lh_table *lh_table_new(int size, lh_entry_free_fn *free_fn, lh_hash_fn *h + int i; + struct lh_table *t; + ++ /* Allocate space for elements to avoid divisions by zero. */ ++ assert(size > 0); + t = (struct lh_table *)calloc(1, sizeof(struct lh_table)); + if (!t) + return NULL; + +From d07b91014986900a3a75f306d302e13e005e9d67 Mon Sep 17 00:00:00 2001 +From: Tobias Stoeckmann +Date: Mon, 4 May 2020 19:47:25 +0200 +Subject: [PATCH 3/3] Fix integer overflows. + +The data structures linkhash and printbuf are limited to 2 GB in size +due to a signed integer being used to track their current size. + +If too much data is added, then size variable can overflow, which is +an undefined behaviour in C programming language. + +Assuming that a signed int overflow just leads to a negative value, +like it happens on many sytems (Linux i686/amd64 with gcc), then +printbuf is vulnerable to an out of boundary write on 64 bit systems. +--- + linkhash.c | 7 +++++-- + printbuf.c | 19 ++++++++++++++++--- + 2 files changed, 21 insertions(+), 5 deletions(-) + +diff --git a/linkhash.c b/linkhash.c +index f05cc38030..51e90b13a2 100644 +--- a/linkhash.c ++++ b/linkhash.c +@@ -580,9 +580,12 @@ int lh_table_insert_w_hash(struct lh_table *t, const void *k, const void *v, con + { + unsigned long n; + +- if (t->count >= t->size * LH_LOAD_FACTOR) +- if (lh_table_resize(t, t->size * 2) != 0) ++ if (t->count >= t->size * LH_LOAD_FACTOR) { ++ /* Avoid signed integer overflow with large tables. */ ++ int new_size = INT_MAX / 2 < t->size ? t->size * 2 : INT_MAX; ++ if (t->size == INT_MAX || lh_table_resize(t, new_size) != 0) + return -1; ++ } + + n = h % t->size; + +diff --git a/printbuf.c b/printbuf.c +index 976c12dde5..00822fac4f 100644 +--- a/printbuf.c ++++ b/printbuf.c +@@ -15,6 +15,7 @@ + + #include "config.h" + ++#include + #include + #include + #include +@@ -65,10 +66,16 @@ static int printbuf_extend(struct printbuf *p, int min_size) + + if (p->size >= min_size) + return 0; +- +- new_size = p->size * 2; +- if (new_size < min_size + 8) ++ /* Prevent signed integer overflows with large buffers. */ ++ if (min_size > INT_MAX - 8) ++ return -1; ++ if (p->size > INT_MAX / 2) + new_size = min_size + 8; ++ else { ++ new_size = p->size * 2; ++ if (new_size < min_size + 8) ++ new_size = min_size + 8; ++ } + #ifdef PRINTBUF_DEBUG + MC_DEBUG("printbuf_memappend: realloc " + "bpos=%d min_size=%d old_size=%d new_size=%d\n", +@@ -83,6 +90,9 @@ static int printbuf_extend(struct printbuf *p, int min_size) + + int printbuf_memappend(struct printbuf *p, const char *buf, int size) + { ++ /* Prevent signed integer overflows with large buffers. */ ++ if (size > INT_MAX - p->bpos - 1) ++ return -1; + if (p->size <= p->bpos + size + 1) + { + if (printbuf_extend(p, p->bpos + size + 1) < 0) +@@ -100,6 +110,9 @@ int printbuf_memset(struct printbuf *pb, int offset, int charvalue, int len) + + if (offset == -1) + offset = pb->bpos; ++ /* Prevent signed integer overflows with large buffers. */ ++ if (len > INT_MAX - offset) ++ return -1; + size_needed = offset + len; + if (pb->size < size_needed) + { diff --git a/poky/meta/recipes-devtools/json-c/json-c_0.14.bb b/poky/meta/recipes-devtools/json-c/json-c_0.14.bb index 99fde873b..1d501d129 100644 --- a/poky/meta/recipes-devtools/json-c/json-c_0.14.bb +++ b/poky/meta/recipes-devtools/json-c/json-c_0.14.bb @@ -4,7 +4,10 @@ HOMEPAGE = "https://github.com/json-c/json-c/wiki" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=de54b60fbbc35123ba193fea8ee216f2" -SRC_URI = "https://s3.amazonaws.com/json-c_releases/releases/${BP}.tar.gz" +SRC_URI = "https://s3.amazonaws.com/json-c_releases/releases/${BP}.tar.gz \ + file://CVE-2020-12762.patch \ +" + SRC_URI[sha256sum] = "b377de08c9b23ca3b37d9a9828107dff1de5ce208ff4ebb35005a794f30c6870" UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch index ac9400c48..384add5e1 100644 --- a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch +++ b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Add-WITH_TESTS-option.patch @@ -1,4 +1,4 @@ -From 56fa2bbdbd29377a6ef0d0b7aadbac8b5ea8c95b Mon Sep 17 00:00:00 2001 +From 7d60d62b5c5374156703ca7262fb2f85ec5db119 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Tue, 6 Nov 2018 13:54:43 +0100 Subject: [PATCH] Add WITH_TESTS option @@ -14,7 +14,7 @@ Signed-off-by: Alexander Kanavin 2 files changed, 5 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 881152a..965c992 100644 +index 9c6e1b2f..8599c540 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,7 @@ option(WITH_MAN "Enables hawkey man page generation" ON) @@ -24,8 +24,8 @@ index 881152a..965c992 100644 +option(WITH_TESTS "Enables unit tests" ON) - # load pkg-config first; it's required by other modules -@@ -165,8 +166,10 @@ endif() + # build options - debugging +@@ -179,8 +180,10 @@ endif() # build tests @@ -37,7 +37,7 @@ index 881152a..965c992 100644 add_subdirectory(python/hawkey) endif() diff --git a/python/hawkey/CMakeLists.txt b/python/hawkey/CMakeLists.txt -index d964534..84d1720 100644 +index d9645346..84d17204 100644 --- a/python/hawkey/CMakeLists.txt +++ b/python/hawkey/CMakeLists.txt @@ -50,4 +50,6 @@ target_link_libraries(_hawkeymodule ${PYTHON_LIBRARY}) diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Use-single-quotes-around-string-literals-used-in-SQL.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0001-Use-single-quotes-around-string-literals-used-in-SQL.patch deleted file mode 100644 index 6be484fea..000000000 --- a/poky/meta/recipes-devtools/libdnf/libdnf/0001-Use-single-quotes-around-string-literals-used-in-SQL.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 96ca7d0049461df2293dd0000edcbc69b64255e0 Mon Sep 17 00:00:00 2001 -From: Peter Kjellerstedt -Date: Sun, 3 May 2020 22:40:39 +0200 -Subject: [PATCH] Use single-quotes around string literals used in SQL - statements - -If sqlite is built with -DSQLITE_DQS=0 in accordance with -https://sqlite.org/quirks.html#dblquote, migration to version 1.2 of the -history database would fail with: - - History database cannot be created: /var/lib/dnf/history.sqlite. - Error: SQLite error on ":memory:": Executing an SQL statement failed: - no such column: 1.2 - -Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/951] -Signed-off-by: Peter Kjellerstedt ---- - libdnf/transaction/sql/migrate_tables_1_2.sql | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libdnf/transaction/sql/migrate_tables_1_2.sql b/libdnf/transaction/sql/migrate_tables_1_2.sql -index 49b75315..f80ad1c4 100644 ---- a/libdnf/transaction/sql/migrate_tables_1_2.sql -+++ b/libdnf/transaction/sql/migrate_tables_1_2.sql -@@ -1,9 +1,9 @@ - R"**( - BEGIN TRANSACTION; - ALTER TABLE trans -- ADD comment TEXT DEFAULT ""; -+ ADD comment TEXT DEFAULT ''; - UPDATE config -- SET value = "1.2" -+ SET value = '1.2' - WHERE key = 'version'; - COMMIT; - )**" diff --git a/poky/meta/recipes-devtools/libdnf/libdnf_0.47.0.bb b/poky/meta/recipes-devtools/libdnf/libdnf_0.47.0.bb deleted file mode 100644 index 1b06d66b1..000000000 --- a/poky/meta/recipes-devtools/libdnf/libdnf_0.47.0.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Library providing simplified C and Python API to libsolv" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI = "git://github.com/rpm-software-management/libdnf;branch=dnf-4-master \ - file://0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch \ - file://0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch \ - file://0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch \ - file://0001-Add-WITH_TESTS-option.patch \ - file://0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch \ - file://0001-Use-single-quotes-around-string-literals-used-in-SQL.patch \ - " - -SRCREV = "8330eea6985c4e4b53796f858de5b6b38b1ddf5c" -UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" - -S = "${WORKDIR}/git" - -DEPENDS = "glib-2.0 libsolv libcheck librepo rpm gtk-doc libmodulemd json-c swig-native" - -inherit gtk-doc gobject-introspection cmake pkgconfig distutils3-base - -EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DWITH_MAN=OFF -DPYTHON_DESIRED=3 \ - ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DWITH_GIR=ON', '-DWITH_GIR=OFF', d)} \ - -DWITH_TESTS=OFF \ - -DWITH_ZCHUNK=OFF \ - -DWITH_HTML=OFF \ - " -EXTRA_OECMAKE_append_class-native = " -DWITH_GIR=OFF" -EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_GIR=OFF" - -BBCLASSEXTEND = "native nativesdk" -PNBLACKLIST[libdnf] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'Does not build without package_rpm in PACKAGE_CLASSES due disabled rpm support in libsolv', d)}" - diff --git a/poky/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb b/poky/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb new file mode 100644 index 000000000..947b2f234 --- /dev/null +++ b/poky/meta/recipes-devtools/libdnf/libdnf_0.48.0.bb @@ -0,0 +1,33 @@ +SUMMARY = "Library providing simplified C and Python API to libsolv" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://github.com/rpm-software-management/libdnf;branch=dnf-4-master \ + file://0001-FindGtkDoc.cmake-drop-the-requirement-for-GTKDOC_SCA.patch \ + file://0004-Set-libsolv-variables-with-pkg-config-cmake-s-own-mo.patch \ + file://0001-Get-parameters-for-both-libsolv-and-libsolvext-libdn.patch \ + file://0001-Add-WITH_TESTS-option.patch \ + file://0001-Look-fo-sphinx-only-if-documentation-is-actually-ena.patch \ + " + +SRCREV = "46a28d0cf09277fffc11392e5e362a2eda0d53a8" +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+(\.\d+)+)" + +S = "${WORKDIR}/git" + +DEPENDS = "glib-2.0 libsolv libcheck librepo rpm gtk-doc libmodulemd json-c swig-native" + +inherit gtk-doc gobject-introspection cmake pkgconfig distutils3-base + +EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DWITH_MAN=OFF -DPYTHON_DESIRED=3 \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DWITH_GIR=ON', '-DWITH_GIR=OFF', d)} \ + -DWITH_TESTS=OFF \ + -DWITH_ZCHUNK=OFF \ + -DWITH_HTML=OFF \ + " +EXTRA_OECMAKE_append_class-native = " -DWITH_GIR=OFF" +EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_GIR=OFF" + +BBCLASSEXTEND = "native nativesdk" +PNBLACKLIST[libdnf] ?= "${@bb.utils.contains('PACKAGE_CLASSES', 'package_rpm', '', 'Does not build without package_rpm in PACKAGE_CLASSES due disabled rpm support in libsolv', d)}" + diff --git a/poky/meta/recipes-devtools/meson/meson.inc b/poky/meta/recipes-devtools/meson/meson.inc index a0b54f57d..ffa17b306 100644 --- a/poky/meta/recipes-devtools/meson/meson.inc +++ b/poky/meta/recipes-devtools/meson/meson.inc @@ -15,9 +15,8 @@ SRC_URI = "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P file://cross-prop-default.patch \ file://0001-modules-python.py-do-not-substitute-python-s-install.patch \ file://0001-gnome.py-prefix-g-i-paths-with-PKG_CONFIG_SYSROOT_DI.patch \ - file://0001-boost-Always-sort-shared-before-static-fixes-7171.patch \ " -SRC_URI[sha256sum] = "a7716eeae8f8dff002e4147642589ab6496ff839e4376a5aed761f83c1fa0455" +SRC_URI[sha256sum] = "f2bdf4cf0694e696b48261cdd14380fb1d0fe33d24744d8b2df0c12f33ebb662" SRC_URI_append_class-native = " \ file://0001-Make-CPU-family-warnings-fatal.patch \ diff --git a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch index 01a8bb3d5..39b1af52e 100644 --- a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch +++ b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch @@ -1,4 +1,4 @@ -From 830db2c7a136b2446d740c9ca025374352ffd16d Mon Sep 17 00:00:00 2001 +From 62c415eedb62905de76e2e0bbd156a947705cab2 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Tue, 3 Jul 2018 13:59:09 +0100 Subject: [PATCH] Make CPU family warnings fatal diff --git a/poky/meta/recipes-devtools/meson/meson/0001-boost-Always-sort-shared-before-static-fixes-7171.patch b/poky/meta/recipes-devtools/meson/meson/0001-boost-Always-sort-shared-before-static-fixes-7171.patch deleted file mode 100644 index 217218180..000000000 --- a/poky/meta/recipes-devtools/meson/meson/0001-boost-Always-sort-shared-before-static-fixes-7171.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 5862ad6965c60caa861dfdcd29e499c34c4d00da Mon Sep 17 00:00:00 2001 -From: Daniel Mensinger -Date: Thu, 21 May 2020 13:35:27 +0200 -Subject: [PATCH] boost: Always sort shared before static (fixes #7171) - -Upstream-Status: Backport [https://github.com/mesonbuild/meson/commit/5862ad6965c60caa861dfdcd29e499c34c4d00da] - -Signed-off-by: Andrew Geissler ---- - mesonbuild/dependencies/boost.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py -index 6e85c534..38497041 100644 ---- a/mesonbuild/dependencies/boost.py -+++ b/mesonbuild/dependencies/boost.py -@@ -189,13 +189,13 @@ class BoostLibraryFile(): - def __lt__(self, other: T.Any) -> bool: - if isinstance(other, BoostLibraryFile): - return ( -- self.mod_name, self.version_lib, self.arch, self.static, -+ self.mod_name, self.static, self.version_lib, self.arch, - not self.mt, not self.runtime_static, - not self.debug, self.runtime_debug, self.python_debug, - self.stlport, self.deprecated_iostreams, - self.name, - ) < ( -- other.mod_name, other.version_lib, other.arch, other.static, -+ other.mod_name, other.static, other.version_lib, other.arch, - not other.mt, not other.runtime_static, - not other.debug, other.runtime_debug, other.python_debug, - other.stlport, other.deprecated_iostreams, --- -2.26.2 - diff --git a/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch b/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch index 246c4d7be..bb06d9924 100644 --- a/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch +++ b/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch @@ -1,4 +1,4 @@ -From 45df8f0a71c6b60cb98a336f8690af04965dfa9b Mon Sep 17 00:00:00 2001 +From d976d5a8abd6d42edf794d2a4c211fc6697fb14c Mon Sep 17 00:00:00 2001 From: Peter Kjellerstedt Date: Thu, 26 Jul 2018 16:32:49 +0200 Subject: [PATCH] Support building allarch recipes again diff --git a/poky/meta/recipes-devtools/meson/meson_0.54.2.bb b/poky/meta/recipes-devtools/meson/meson_0.54.2.bb deleted file mode 100644 index de9b905c1..000000000 --- a/poky/meta/recipes-devtools/meson/meson_0.54.2.bb +++ /dev/null @@ -1,4 +0,0 @@ -include meson.inc - -BBCLASSEXTEND = "native" - diff --git a/poky/meta/recipes-devtools/meson/meson_0.54.3.bb b/poky/meta/recipes-devtools/meson/meson_0.54.3.bb new file mode 100644 index 000000000..de9b905c1 --- /dev/null +++ b/poky/meta/recipes-devtools/meson/meson_0.54.3.bb @@ -0,0 +1,4 @@ +include meson.inc + +BBCLASSEXTEND = "native" + diff --git a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.54.2.bb b/poky/meta/recipes-devtools/meson/nativesdk-meson_0.54.2.bb deleted file mode 100644 index 67add2c25..000000000 --- a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.54.2.bb +++ /dev/null @@ -1,65 +0,0 @@ -include meson.inc - -inherit nativesdk -inherit siteinfo - -SRC_URI += "file://meson-setup.py \ - file://meson-wrapper" - -def meson_endian(prefix, d): - arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS") - sitedata = siteinfo_data_for_machine(arch, os, d) - if "endian-little" in sitedata: - return "little" - elif "endian-big" in sitedata: - return "big" - else: - bb.fatal("Cannot determine endianism for %s-%s" % (arch, os)) - -# The cross file logic is similar but not identical to that in meson.bbclass, -# since it's generating for an SDK rather than a cross-compile. Important -# differences are: -# - We can't set vars like CC, CXX, etc. yet because they will be filled in with -# real paths by meson-setup.sh when the SDK is extracted. -# - Some overrides aren't needed, since the SDK injects paths that take care of -# them. -do_install_append() { - install -d ${D}${datadir}/meson - cat >${D}${datadir}/meson/meson.cross.template <${D}${datadir}/meson/meson.cross.template < - -Index: opkg-utils-0.4.2/opkg-build -=================================================================== ---- opkg-utils-0.4.2.orig/opkg-build -+++ opkg-utils-0.4.2/opkg-build -@@ -305,8 +305,10 @@ if [ ! -z "$SOURCE_DATE_EPOCH" ]; then - mtime_args="--mtime=@$build_date --clamp-mtime" - fi - --( cd $pkg_dir/$CONTROL && find . -type f > $tmp_dir/control_list ) --( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print > $tmp_dir/file_list ) -+export LANG=C -+export LC_ALL=C -+( cd $pkg_dir/$CONTROL && find . -type f | sort > $tmp_dir/control_list ) -+( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print | sort > $tmp_dir/file_list ) - ( cd $pkg_dir && tar $ogargs $tsortargs --no-recursion $mtime_args -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext ) - ( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --no-recursion --mtime=@$build_date -c $tarformat -T $tmp_dir/control_list | gzip $zipargs > $tmp_dir/control.tar.gz ) - rm $tmp_dir/file_list diff --git a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb deleted file mode 100644 index 931524019..000000000 --- a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.2.bb +++ /dev/null @@ -1,66 +0,0 @@ -SUMMARY = "Additional utilities for the opkg package manager" -SUMMARY_update-alternatives-opkg = "Utility for managing the alternatives system" -SECTION = "base" -HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://opkg.py;beginline=2;endline=18;md5=ffa11ff3c15eb31c6a7ceaa00cc9f986" -PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'virtual/update-alternatives', '', d)}" - -SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \ - file://fix-reproducibility.patch \ -" -UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/" - -SRC_URI[md5sum] = "cc210650644fcb9bba06ad5ec95a63ec" -SRC_URI[sha256sum] = "5929ad87d541789e0b82d626db01a1201ac48df6f49f2262fcfb86cf815e5d6c" - -TARGET_CC_ARCH += "${LDFLAGS}" - -RDEPENDS_${PN} += "bash" - -inherit perlnative - -# For native builds we use the host Python -PYTHONRDEPS = "python3 python3-shell python3-io python3-math python3-crypt python3-logging python3-fcntl python3-pickle python3-compression python3-stringold" -PYTHONRDEPS_class-native = "" - -PACKAGECONFIG = "python update-alternatives" -PACKAGECONFIG[python] = ",,,${PYTHONRDEPS}" -PACKAGECONFIG[update-alternatives] = ",,," - -do_install() { - oe_runmake PREFIX=${prefix} DESTDIR=${D} install - if ! ${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'true', 'false', d)}; then - rm -f "${D}${bindir}/update-alternatives" - fi -} - -do_install_append_class-target() { - if ! ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then - grep -lZ "/usr/bin/env.*python" ${D}${bindir}/* | xargs -0 rm - fi - - if [ -e "${D}${bindir}/update-alternatives" ]; then - sed -i ${D}${bindir}/update-alternatives -e 's,/usr/bin,${bindir},g; s,/usr/lib,${nonarch_libdir},g' - fi -} - -# These are empty and will pull python3-dev into images where it wouldn't -# have been otherwise, so don't generate them. -PACKAGES_remove = "${PN}-dev ${PN}-staticdev" - -PACKAGES =+ "update-alternatives-opkg" -FILES_update-alternatives-opkg = "${bindir}/update-alternatives" -RPROVIDES_update-alternatives-opkg = "update-alternatives update-alternatives-cworth" -RREPLACES_update-alternatives-opkg = "update-alternatives-cworth" -RCONFLICTS_update-alternatives-opkg = "update-alternatives-cworth" - -pkg_postrm_update-alternatives-opkg() { - rm -rf $D${nonarch_libdir}/opkg/alternatives - rmdir $D${nonarch_libdir}/opkg || true -} - -BBCLASSEXTEND = "native nativesdk" - -CLEANBROKEN = "1" diff --git a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.3.bb b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.3.bb new file mode 100644 index 000000000..f9df58a29 --- /dev/null +++ b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.4.3.bb @@ -0,0 +1,65 @@ +SUMMARY = "Additional utilities for the opkg package manager" +SUMMARY_update-alternatives-opkg = "Utility for managing the alternatives system" +SECTION = "base" +HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://opkg.py;beginline=2;endline=18;md5=ffa11ff3c15eb31c6a7ceaa00cc9f986" +PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'virtual/update-alternatives', '', d)}" + +SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV}.tar.gz \ +" +UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/" + +SRC_URI[md5sum] = "7bbadb3c381f3ea935b21d3bb8cc4671" +SRC_URI[sha256sum] = "046517600fb0aed6c4645edefe02281f4fa2f1c02f71596152d93172452c0b01" + +TARGET_CC_ARCH += "${LDFLAGS}" + +RDEPENDS_${PN} += "bash" + +inherit perlnative + +# For native builds we use the host Python +PYTHONRDEPS = "python3 python3-shell python3-io python3-math python3-crypt python3-logging python3-fcntl python3-pickle python3-compression python3-stringold" +PYTHONRDEPS_class-native = "" + +PACKAGECONFIG = "python update-alternatives" +PACKAGECONFIG[python] = ",,,${PYTHONRDEPS}" +PACKAGECONFIG[update-alternatives] = ",,," + +do_install() { + oe_runmake PREFIX=${prefix} DESTDIR=${D} install + if ! ${@bb.utils.contains('PACKAGECONFIG', 'update-alternatives', 'true', 'false', d)}; then + rm -f "${D}${bindir}/update-alternatives" + fi +} + +do_install_append_class-target() { + if ! ${@bb.utils.contains('PACKAGECONFIG', 'python', 'true', 'false', d)}; then + grep -lZ "/usr/bin/env.*python" ${D}${bindir}/* | xargs -0 rm + fi + + if [ -e "${D}${bindir}/update-alternatives" ]; then + sed -i ${D}${bindir}/update-alternatives -e 's,/usr/bin,${bindir},g; s,/usr/lib,${nonarch_libdir},g' + fi +} + +# These are empty and will pull python3-dev into images where it wouldn't +# have been otherwise, so don't generate them. +PACKAGES_remove = "${PN}-dev ${PN}-staticdev" + +PACKAGES =+ "update-alternatives-opkg" +FILES_update-alternatives-opkg = "${bindir}/update-alternatives" +RPROVIDES_update-alternatives-opkg = "update-alternatives update-alternatives-cworth" +RREPLACES_update-alternatives-opkg = "update-alternatives-cworth" +RCONFLICTS_update-alternatives-opkg = "update-alternatives-cworth" + +pkg_postrm_update-alternatives-opkg() { + rm -rf $D${nonarch_libdir}/opkg/alternatives + rmdir $D${nonarch_libdir}/opkg || true +} + +BBCLASSEXTEND = "native nativesdk" + +CLEANBROKEN = "1" diff --git a/poky/meta/recipes-devtools/opkg/opkg_0.4.2.bb b/poky/meta/recipes-devtools/opkg/opkg_0.4.2.bb deleted file mode 100644 index 66a74dc5e..000000000 --- a/poky/meta/recipes-devtools/opkg/opkg_0.4.2.bb +++ /dev/null @@ -1,74 +0,0 @@ -SUMMARY = "Open Package Manager" -SUMMARY_libopkg = "Open Package Manager library" -SECTION = "base" -HOMEPAGE = "http://code.google.com/p/opkg/" -BUGTRACKER = "http://code.google.com/p/opkg/issues/list" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://src/opkg.c;beginline=4;endline=18;md5=d6200b0f2b41dee278aa5fad333eecae" - -DEPENDS = "libarchive" - -PE = "1" - -SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \ - file://opkg.conf \ - file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \ - file://run-ptest \ -" - -SRC_URI[md5sum] = "bd13e5dfc1c2536f0c7b2e15f795278e" -SRC_URI[sha256sum] = "86887852c43457edfff9d8b6d9520f3f1cdd55f25eb600a6eb31e1c4e151e106" - -# This needs to be before ptest inherit, otherwise all ptest files end packaged -# in libopkg package if OPKGLIBDIR == libdir, because default -# PTEST_PATH ?= "${libdir}/${BPN}/ptest" -PACKAGES =+ "libopkg" - -inherit autotools pkgconfig ptest - -target_localstatedir := "${localstatedir}" -OPKGLIBDIR ??= "${target_localstatedir}/lib" - -PACKAGECONFIG ??= "libsolv" - -PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,\ - gnupg gpgme libgpg-error,\ - ${@ "gnupg" if ("native" in d.getVar("PN")) else "gnupg-gpg"}\ - " -PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" -PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl" -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" -PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256" -PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv" - -EXTRA_OECONF += " --disable-pathfinder" -EXTRA_OECONF_class-native = "--localstatedir=/${@os.path.relpath('${localstatedir}', '${STAGING_DIR_NATIVE}')} --sysconfdir=/${@os.path.relpath('${sysconfdir}', '${STAGING_DIR_NATIVE}')}" - -do_install_append () { - install -d ${D}${sysconfdir}/opkg - install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf - echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf - - # We need to create the lock directory - install -d ${D}${OPKGLIBDIR}/opkg -} - -do_install_ptest () { - sed -i -e '/@echo $^/d' ${D}${PTEST_PATH}/tests/Makefile - sed -i -e '/@PYTHONPATH=. $(PYTHON) $^/a\\t@if [ "$$?" != "0" ];then echo "FAIL:"$^;else echo "PASS:"$^;fi' ${D}${PTEST_PATH}/tests/Makefile -} - -RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive" -RDEPENDS_${PN}_class-native = "" -RDEPENDS_${PN}_class-nativesdk = "" -RDEPENDS_${PN}-ptest += "make binutils python3-core python3-compression" -RREPLACES_${PN} = "opkg-nogpg opkg-collateral" -RCONFLICTS_${PN} = "opkg-collateral" -RPROVIDES_${PN} = "opkg-collateral" - -FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/" - -BBCLASSEXTEND = "native nativesdk" - -CONFFILES_${PN} = "${sysconfdir}/opkg/opkg.conf" diff --git a/poky/meta/recipes-devtools/opkg/opkg_0.4.3.bb b/poky/meta/recipes-devtools/opkg/opkg_0.4.3.bb new file mode 100644 index 000000000..46b7aa252 --- /dev/null +++ b/poky/meta/recipes-devtools/opkg/opkg_0.4.3.bb @@ -0,0 +1,74 @@ +SUMMARY = "Open Package Manager" +SUMMARY_libopkg = "Open Package Manager library" +SECTION = "base" +HOMEPAGE = "http://code.google.com/p/opkg/" +BUGTRACKER = "http://code.google.com/p/opkg/issues/list" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://src/opkg.c;beginline=4;endline=18;md5=d6200b0f2b41dee278aa5fad333eecae" + +DEPENDS = "libarchive" + +PE = "1" + +SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \ + file://opkg.conf \ + file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "86ec5eee9362aca0990994a402e077e9" +SRC_URI[sha256sum] = "dda452854bc0cd1334f7ba18a66003d1c12a98600c894111b56919b1ea434718" + +# This needs to be before ptest inherit, otherwise all ptest files end packaged +# in libopkg package if OPKGLIBDIR == libdir, because default +# PTEST_PATH ?= "${libdir}/${BPN}/ptest" +PACKAGES =+ "libopkg" + +inherit autotools pkgconfig ptest + +target_localstatedir := "${localstatedir}" +OPKGLIBDIR ??= "${target_localstatedir}/lib" + +PACKAGECONFIG ??= "libsolv" + +PACKAGECONFIG[gpg] = "--enable-gpg,--disable-gpg,\ + gnupg gpgme libgpg-error,\ + ${@ "gnupg" if ("native" in d.getVar("PN")) else "gnupg-gpg"}\ + " +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" +PACKAGECONFIG[ssl-curl] = "--enable-ssl-curl,--disable-ssl-curl,curl openssl" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" +PACKAGECONFIG[sha256] = "--enable-sha256,--disable-sha256" +PACKAGECONFIG[libsolv] = "--with-libsolv,--without-libsolv,libsolv" + +EXTRA_OECONF += " --disable-pathfinder" +EXTRA_OECONF_class-native = "--localstatedir=/${@os.path.relpath('${localstatedir}', '${STAGING_DIR_NATIVE}')} --sysconfdir=/${@os.path.relpath('${sysconfdir}', '${STAGING_DIR_NATIVE}')}" + +do_install_append () { + install -d ${D}${sysconfdir}/opkg + install -m 0644 ${WORKDIR}/opkg.conf ${D}${sysconfdir}/opkg/opkg.conf + echo "option lists_dir ${OPKGLIBDIR}/opkg/lists" >>${D}${sysconfdir}/opkg/opkg.conf + + # We need to create the lock directory + install -d ${D}${OPKGLIBDIR}/opkg +} + +do_install_ptest () { + sed -i -e '/@echo $^/d' ${D}${PTEST_PATH}/tests/Makefile + sed -i -e '/@PYTHONPATH=. $(PYTHON) $^/a\\t@if [ "$$?" != "0" ];then echo "FAIL:"$^;else echo "PASS:"$^;fi' ${D}${PTEST_PATH}/tests/Makefile +} + +RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} opkg-arch-config libarchive" +RDEPENDS_${PN}_class-native = "" +RDEPENDS_${PN}_class-nativesdk = "" +RDEPENDS_${PN}-ptest += "make binutils python3-core python3-compression" +RREPLACES_${PN} = "opkg-nogpg opkg-collateral" +RCONFLICTS_${PN} = "opkg-collateral" +RPROVIDES_${PN} = "opkg-collateral" + +FILES_libopkg = "${libdir}/*.so.* ${OPKGLIBDIR}/opkg/" + +BBCLASSEXTEND = "native nativesdk" + +CONFFILES_${PN} = "${sysconfdir}/opkg/opkg.conf" diff --git a/poky/meta/recipes-devtools/perl/files/0001-PATCH-perl-134117-Close-DATA-in-loc_tools.pl.patch b/poky/meta/recipes-devtools/perl/files/0001-PATCH-perl-134117-Close-DATA-in-loc_tools.pl.patch deleted file mode 100644 index 79cae0d6f..000000000 --- a/poky/meta/recipes-devtools/perl/files/0001-PATCH-perl-134117-Close-DATA-in-loc_tools.pl.patch +++ /dev/null @@ -1,30 +0,0 @@ -From a04a75f20f03aa08ce8118b3b0b3f93eb3e997c5 Mon Sep 17 00:00:00 2001 -From: Richard Leach -Date: Sun, 19 May 2019 20:16:41 +0000 -Subject: [PATCH] PATCH: [perl #134117] Close DATA in loc_tools.pl - -This prevents unexpected text and fixes test lib/warnings.t - -Upstream-Status: Backport [a04a75f20f03aa08ce8118b3b0b3f93eb3e997c5] - -Signed-off-by: Matthew Zeng - ---- - t/loc_tools.pl | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/t/loc_tools.pl b/t/loc_tools.pl -index c76e29388a..beebd98d88 100644 ---- a/t/loc_tools.pl -+++ b/t/loc_tools.pl -@@ -421,7 +421,7 @@ sub find_locales ($;$) { - } - - # The rest of the locales are in this file. -- push @Data, ; -+ push @Data, ; close DATA; - - foreach my $line (@Data) { - my ($locale_name, $language_codes, $country_codes, $encodings) = --- -2.25.0 diff --git a/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch b/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch deleted file mode 100644 index 1a531072a..000000000 --- a/poky/meta/recipes-devtools/perl/files/0001-enc2xs-Add-environment-variable-to-suppress-comments.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 31a2c5555f9ef32f35d7d5ce1fd09a010ba5f5c6 Mon Sep 17 00:00:00 2001 -From: Joshua Watt -Date: Mon, 17 Jun 2019 10:47:15 -0500 -Subject: [PATCH 1/2] enc2xs: Add environment variable to suppress comments - -Comment generation in enc2xs can now be suppressed by setting the -ENC2XS_NO_COMMENTS environment variable. This allows enc2xs to produce -reproducible output by omitting the name of the generating program. - -Signed-off-by: Joshua Watt -Upstream-Status: Backport [https://github.com/dankogai/p5-encode/pull/145] ---- - cpan/Encode/bin/enc2xs | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/cpan/Encode/bin/enc2xs b/cpan/Encode/bin/enc2xs -index 619b64b757..bfce9ee735 100644 ---- a/cpan/Encode/bin/enc2xs -+++ b/cpan/Encode/bin/enc2xs -@@ -144,6 +144,7 @@ getopts('CM:SQqOo:f:n:v',\%opt); - $opt{M} and make_makefile_pl($opt{M}, @ARGV); - $opt{C} and make_configlocal_pm($opt{C}, @ARGV); - $opt{v} ||= $ENV{ENC2XS_VERBOSE}; -+$opt{q} ||= $ENV{ENC2XS_NO_COMMENTS}; - - sub verbose { - print STDERR @_ if $opt{v}; --- -2.21.0 - diff --git a/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt b/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt index 9ecfce001..e7cd55198 100644 --- a/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt +++ b/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt @@ -59,7 +59,6 @@ RDEPENDS_perl-module-archive-tar += "perl-module-io-file" RDEPENDS_perl-module-archive-tar += "perl-module-io-zlib" RDEPENDS_perl-module-archive-tar += "perl-module-strict" RDEPENDS_perl-module-archive-tar += "perl-module-vars" -RDEPENDS_perl-module-arybase += "perl-module-xsloader" RDEPENDS_perl-module-attribute-handlers += "perl-module-strict" RDEPENDS_perl-module-attribute-handlers += "perl-module-warnings" RDEPENDS_perl-module-attributes += "perl-module-exporter" @@ -109,9 +108,6 @@ RDEPENDS_perl-module-b-concise += "perl-module-exporter" RDEPENDS_perl-module-b-concise += "perl-module-feature" RDEPENDS_perl-module-b-concise += "perl-module-strict" RDEPENDS_perl-module-b-concise += "perl-module-warnings" -RDEPENDS_perl-module-b-debug += "perl-module-b" -RDEPENDS_perl-module-b-debug += "perl-module-config" -RDEPENDS_perl-module-b-debug += "perl-module-strict" RDEPENDS_perl-module-benchmark += "perl-module-exporter" RDEPENDS_perl-module-benchmark += "perl-module-strict" RDEPENDS_perl-module-bigint += "perl-module-constant" @@ -153,9 +149,6 @@ RDEPENDS_perl-module-b-xref += "perl-module-b" RDEPENDS_perl-module-b-xref += "perl-module-config" RDEPENDS_perl-module-b-xref += "perl-module-strict" RDEPENDS_perl-module-bytes += "perl-module-bytes-heavy" -RDEPENDS_perl-module-carp += "perl-module-exporter" -RDEPENDS_perl-module-carp += "perl-module-strict" -RDEPENDS_perl-module-carp += "perl-module-warnings" RDEPENDS_perl-module--charnames += "perl-module-bytes" RDEPENDS_perl-module-charnames += "perl-module-bytes" RDEPENDS_perl-module-charnames += "perl-module--charnames" @@ -196,2313 +189,6 @@ RDEPENDS_perl-module-compress-zlib += "perl-module-warnings " RDEPENDS_perl-module-config-extensions += "perl-module-config" RDEPENDS_perl-module-config-extensions += "perl-module-exporter" RDEPENDS_perl-module-config-extensions += "perl-module-strict" -RDEPENDS_perl-module-config += "perl-module-strict" -RDEPENDS_perl-module-config += "perl-module-warnings" -RDEPENDS_perl-module-config-perl-v += "perl-module-config" -RDEPENDS_perl-module-config-perl-v += "perl-module-exporter" -RDEPENDS_perl-module-config-perl-v += "perl-module-strict" -RDEPENDS_perl-module-config-perl-v += "perl-module-vars" -RDEPENDS_perl-module-config-perl-v += "perl-module-warnings" -RDEPENDS_perl-module-constant += "perl-module-strict" -RDEPENDS_perl-module-constant += "perl-module-warnings-register" -RDEPENDS_perl-module-corelist += "perl-module-list-util" -RDEPENDS_perl-module-corelist += "perl-module-corelist" -RDEPENDS_perl-module-corelist += "perl-module-strict" -RDEPENDS_perl-module-corelist += "perl-module-version" -RDEPENDS_perl-module-corelist += "perl-module-warnings" -RDEPENDS_perl-module-cpan += "perl-module-b" -RDEPENDS_perl-module-cpan += "perl-module-config" -RDEPENDS_perl-module-cpan += "perl-module-cwd" -RDEPENDS_perl-module-cpan += "perl-module-data-dumper" -RDEPENDS_perl-module-cpan += "perl-module-dirhandle" -RDEPENDS_perl-module-cpan += "perl-module-errno" -RDEPENDS_perl-module-cpan += "perl-module-exporter" -RDEPENDS_perl-module-cpan += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-cpan += "perl-module-extutils-manifest" -RDEPENDS_perl-module-cpan += "perl-module-fcntl" -RDEPENDS_perl-module-cpan += "perl-module-file-basename" -RDEPENDS_perl-module-cpan += "perl-module-file-copy" -RDEPENDS_perl-module-cpan += "perl-module-file-find" -RDEPENDS_perl-module-cpan += "perl-module-filehandle" -RDEPENDS_perl-module-cpan += "perl-module-file-path" -RDEPENDS_perl-module-cpan += "perl-module-lib" -RDEPENDS_perl-module-cpan += "perl-module-net-ping" -RDEPENDS_perl-module-cpan += "perl-module-overload" -RDEPENDS_perl-module-cpan += "perl-module-posix" -RDEPENDS_perl-module-cpan += "perl-module-safe" -RDEPENDS_perl-module-cpan += "perl-module-strict" -RDEPENDS_perl-module-cpan += "perl-module-sys-hostname" -RDEPENDS_perl-module-cpan += "perl-module-term-readline" -RDEPENDS_perl-module-cpan += "perl-module-text-parsewords" -RDEPENDS_perl-module-cpan += "perl-module-text-wrap" -RDEPENDS_perl-module-cpan += "perl-module-time-local" -RDEPENDS_perl-module-cpan += "perl-module-vars" -RDEPENDS_perl-module-cpan += "perl-module-warnings" -RDEPENDS_perl-module-cwd += "perl-module-errno" -RDEPENDS_perl-module-cwd += "perl-module-exporter" -RDEPENDS_perl-module-cwd += "perl-module-strict" -RDEPENDS_perl-module-cwd += "perl-module-xsloader" -RDEPENDS_perl-module-data-dumper += "perl-module-bytes" -RDEPENDS_perl-module-data-dumper += "perl-module-config" -RDEPENDS_perl-module-data-dumper += "perl-module-constant" -RDEPENDS_perl-module-data-dumper += "perl-module-exporter" -RDEPENDS_perl-module-data-dumper += "perl-module-xsloader" -RDEPENDS_perl-module-dbm-filter-compress += "perl-module-strict" -RDEPENDS_perl-module-dbm-filter-compress += "perl-module-warnings" -RDEPENDS_perl-module-dbm-filter-encode += "perl-module-strict" -RDEPENDS_perl-module-dbm-filter-encode += "perl-module-warnings" -RDEPENDS_perl-module-dbm-filter-int32 += "perl-module-strict" -RDEPENDS_perl-module-dbm-filter-int32 += "perl-module-warnings" -RDEPENDS_perl-module-dbm-filter-null += "perl-module-strict" -RDEPENDS_perl-module-dbm-filter-null += "perl-module-warnings" -RDEPENDS_perl-module-dbm-filter += "perl-module-strict" -RDEPENDS_perl-module-dbm-filter += "perl-module-warnings" -RDEPENDS_perl-module-dbm-filter-utf8 += "perl-module-strict" -RDEPENDS_perl-module-dbm-filter-utf8 += "perl-module-warnings" -RDEPENDS_perl-module-db += "perl-module-strict" -RDEPENDS_perl-module-deprecate += "perl-module-strict" -RDEPENDS_perl-module-deprecate += "perl-module-warnings" -RDEPENDS_perl-module-devel-peek += "perl-module-exporter" -RDEPENDS_perl-module-devel-peek += "perl-module-xsloader" -RDEPENDS_perl-module-devel-ppport += "perl-module-file-find" -RDEPENDS_perl-module-devel-ppport += "perl-module-getopt-long" -RDEPENDS_perl-module-devel-ppport += "perl-module-strict" -RDEPENDS_perl-module-devel-ppport += "perl-module-vars" -RDEPENDS_perl-module-devel-selfstubber += "perl-module-selfloader" -RDEPENDS_perl-module-diagnostics += "perl-module-config" -RDEPENDS_perl-module-diagnostics += "perl-module-getopt-std" -RDEPENDS_perl-module-diagnostics += "perl-module-strict" -RDEPENDS_perl-module-diagnostics += "perl-module-text-tabs" -RDEPENDS_perl-module-digest-base += "perl-module-mime-base64" -RDEPENDS_perl-module-digest-base += "perl-module-strict" -RDEPENDS_perl-module-digest-base += "perl-module-vars" -RDEPENDS_perl-module-digest-file += "perl-module-digest" -RDEPENDS_perl-module-digest-file += "perl-module-exporter" -RDEPENDS_perl-module-digest-file += "perl-module-strict" -RDEPENDS_perl-module-digest-file += "perl-module-vars" -RDEPENDS_perl-module-digest-md5 += "perl-module-digest-base" -RDEPENDS_perl-module-digest-md5 += "perl-module-exporter" -RDEPENDS_perl-module-digest-md5 += "perl-module-strict" -RDEPENDS_perl-module-digest-md5 += "perl-module-vars" -RDEPENDS_perl-module-digest-md5 += "perl-module-xsloader" -RDEPENDS_perl-module-digest += "perl-module-strict" -RDEPENDS_perl-module-digest += "perl-module-vars" -RDEPENDS_perl-module-digest-sha += "perl-module-digest-base" -RDEPENDS_perl-module-digest-sha += "perl-module-dynaloader" -RDEPENDS_perl-module-digest-sha += "perl-module-exporter" -RDEPENDS_perl-module-digest-sha += "perl-module-fcntl" -RDEPENDS_perl-module-digest-sha += "perl-module-integer" -RDEPENDS_perl-module-digest-sha += "perl-module-strict" -RDEPENDS_perl-module-digest-sha += "perl-module-vars" -RDEPENDS_perl-module-digest-sha += "perl-module-warnings" -RDEPENDS_perl-module-digest-sha += "perl-module-xsloader" -RDEPENDS_perl-module-dynaloader += "perl-module-config" -RDEPENDS_perl-module-encode-alias += "perl-module-constant" -RDEPENDS_perl-module-encode-alias += "perl-module-encode" -RDEPENDS_perl-module-encode-alias += "perl-module-exporter" -RDEPENDS_perl-module-encode-alias += "perl-module-strict" -RDEPENDS_perl-module-encode-alias += "perl-module-warnings" -RDEPENDS_perl-module-encode-byte += "perl-module-encode" -RDEPENDS_perl-module-encode-byte += "perl-module-strict" -RDEPENDS_perl-module-encode-byte += "perl-module-warnings" -RDEPENDS_perl-module-encode-byte += "perl-module-xsloader" -RDEPENDS_perl-module-encode-cjkconstants += "perl-module-exporter" -RDEPENDS_perl-module-encode-cjkconstants += "perl-module-strict" -RDEPENDS_perl-module-encode-cjkconstants += "perl-module-warnings" -RDEPENDS_perl-module-encode-cn-hz += "perl-module-encode" -RDEPENDS_perl-module-encode-cn-hz += "perl-module-parent" -RDEPENDS_perl-module-encode-cn-hz += "perl-module-strict" -RDEPENDS_perl-module-encode-cn-hz += "perl-module-utf8" -RDEPENDS_perl-module-encode-cn-hz += "perl-module-vars" -RDEPENDS_perl-module-encode-cn-hz += "perl-module-warnings" -RDEPENDS_perl-module-encode-cn += "perl-module-encode" -RDEPENDS_perl-module-encode-cn += "perl-module-encode-cn-hz" -RDEPENDS_perl-module-encode-cn += "perl-module-strict" -RDEPENDS_perl-module-encode-cn += "perl-module-warnings" -RDEPENDS_perl-module-encode-cn += "perl-module-xsloader" -RDEPENDS_perl-module-encode-config += "perl-module-strict" -RDEPENDS_perl-module-encode-config += "perl-module-warnings" -RDEPENDS_perl-module-encode-ebcdic += "perl-module-encode" -RDEPENDS_perl-module-encode-ebcdic += "perl-module-strict" -RDEPENDS_perl-module-encode-ebcdic += "perl-module-warnings" -RDEPENDS_perl-module-encode-ebcdic += "perl-module-xsloader" -RDEPENDS_perl-module-encode-encoder += "perl-module-constant" -RDEPENDS_perl-module-encode-encoder += "perl-module-encode" -RDEPENDS_perl-module-encode-encoder += "perl-module-exporter" -RDEPENDS_perl-module-encode-encoder += "perl-module-overload" -RDEPENDS_perl-module-encode-encoder += "perl-module-strict" -RDEPENDS_perl-module-encode-encoder += "perl-module-warnings" -RDEPENDS_perl-module-encode-encoding += "perl-module-constant" -RDEPENDS_perl-module-encode-encoding += "perl-module-encode" -RDEPENDS_perl-module-encode-encoding += "perl-module-encode-mime-name" -RDEPENDS_perl-module-encode-encoding += "perl-module-strict" -RDEPENDS_perl-module-encode-encoding += "perl-module-warnings" -RDEPENDS_perl-module-encode-gsm0338 += "perl-module-encode" -RDEPENDS_perl-module-encode-gsm0338 += "perl-module-parent" -RDEPENDS_perl-module-encode-gsm0338 += "perl-module-strict" -RDEPENDS_perl-module-encode-gsm0338 += "perl-module-utf8" -RDEPENDS_perl-module-encode-gsm0338 += "perl-module-vars" -RDEPENDS_perl-module-encode-gsm0338 += "perl-module-warnings" -RDEPENDS_perl-module-encode-guess += "perl-module-bytes" -RDEPENDS_perl-module-encode-guess += "perl-module-constant" -RDEPENDS_perl-module-encode-guess += "perl-module-encode" -RDEPENDS_perl-module-encode-guess += "perl-module-encode-unicode" -RDEPENDS_perl-module-encode-guess += "perl-module-parent" -RDEPENDS_perl-module-encode-guess += "perl-module-strict" -RDEPENDS_perl-module-encode-guess += "perl-module-warnings" -RDEPENDS_perl-module-encode-jp-h2z += "perl-module-encode-cjkconstants" -RDEPENDS_perl-module-encode-jp-h2z += "perl-module-strict" -RDEPENDS_perl-module-encode-jp-h2z += "perl-module-vars" -RDEPENDS_perl-module-encode-jp-h2z += "perl-module-warnings" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-bytes" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-encode" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-encode-cjkconstants" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-encode-jp-h2z" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-parent" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-strict" -RDEPENDS_perl-module-encode-jp-jis7 += "perl-module-warnings" -RDEPENDS_perl-module-encode-jp += "perl-module-encode" -RDEPENDS_perl-module-encode-jp += "perl-module-encode-jp-jis7" -RDEPENDS_perl-module-encode-jp += "perl-module-strict" -RDEPENDS_perl-module-encode-jp += "perl-module-warnings" -RDEPENDS_perl-module-encode-jp += "perl-module-xsloader" -RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-encode" -RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-encode-cjkconstants" -RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-parent" -RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-strict" -RDEPENDS_perl-module-encode-kr-2022-kr += "perl-module-warnings" -RDEPENDS_perl-module-encode-kr += "perl-module-encode" -RDEPENDS_perl-module-encode-kr += "perl-module-encode-kr-2022-kr" -RDEPENDS_perl-module-encode-kr += "perl-module-strict" -RDEPENDS_perl-module-encode-kr += "perl-module-warnings" -RDEPENDS_perl-module-encode-kr += "perl-module-xsloader" -RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-constant" -RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-encode-cjkconstants" -RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-parent" -RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-strict" -RDEPENDS_perl-module-encode-mime-header-iso-2022-jp += "perl-module-warnings" -RDEPENDS_perl-module-encode-mime-header += "perl-module-encode" -RDEPENDS_perl-module-encode-mime-header += "perl-module-mime-base64" -RDEPENDS_perl-module-encode-mime-header += "perl-module-parent" -RDEPENDS_perl-module-encode-mime-header += "perl-module-strict" -RDEPENDS_perl-module-encode-mime-header += "perl-module-warnings" -RDEPENDS_perl-module-encode-mime-name += "perl-module-strict" -RDEPENDS_perl-module-encode-mime-name += "perl-module-warnings" -RDEPENDS_perl-module-encode += "perl-module-bytes" -RDEPENDS_perl-module-encode += "perl-module-constant" -RDEPENDS_perl-module-encode += "perl-module-encode-alias" -RDEPENDS_perl-module-encode += "perl-module-encode-config" -RDEPENDS_perl-module-encode += "perl-module-encode-configlocal-pm" -RDEPENDS_perl-module-encode += "perl-module-encode-mime-name" -RDEPENDS_perl-module-encode += "perl-module-exporter" -RDEPENDS_perl-module-encode += "perl-module-parent" -RDEPENDS_perl-module-encode += "perl-module-storable" -RDEPENDS_perl-module-encode += "perl-module-strict" -RDEPENDS_perl-module-encode += "perl-module-warnings" -RDEPENDS_perl-module-encode += "perl-module-xsloader" -RDEPENDS_perl-module-encode-symbol += "perl-module-encode" -RDEPENDS_perl-module-encode-symbol += "perl-module-strict" -RDEPENDS_perl-module-encode-symbol += "perl-module-warnings" -RDEPENDS_perl-module-encode-symbol += "perl-module-xsloader" -RDEPENDS_perl-module-encode-tw += "perl-module-encode" -RDEPENDS_perl-module-encode-tw += "perl-module-strict" -RDEPENDS_perl-module-encode-tw += "perl-module-warnings" -RDEPENDS_perl-module-encode-tw += "perl-module-xsloader" -RDEPENDS_perl-module-encode-unicode += "perl-module-encode" -RDEPENDS_perl-module-encode-unicode += "perl-module-parent" -RDEPENDS_perl-module-encode-unicode += "perl-module-strict" -RDEPENDS_perl-module-encode-unicode += "perl-module-warnings" -RDEPENDS_perl-module-encode-unicode += "perl-module-xsloader" -RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-encode" -RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-mime-base64" -RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-parent" -RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-re" -RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-strict" -RDEPENDS_perl-module-encode-unicode-utf7 += "perl-module-warnings" -RDEPENDS_perl-module-encoding += "perl-module-config" -RDEPENDS_perl-module-encoding += "perl-module-constant" -RDEPENDS_perl-module-encoding += "perl-module-encode" -RDEPENDS_perl-module-encoding += "perl-module-filter-util-call" -RDEPENDS_perl-module-encoding += "perl-module-i18n-langinfo" -RDEPENDS_perl-module-encoding += "perl-module-posix" -RDEPENDS_perl-module-encoding += "perl-module-strict" -RDEPENDS_perl-module-encoding += "perl-module-utf8" -RDEPENDS_perl-module-encoding += "perl-module-warnings" -RDEPENDS_perl-module-encoding-warnings += "perl-module-strict" -RDEPENDS_perl-module-encoding-warnings += "perl-module-warnings" -RDEPENDS_perl-module-english += "perl-module-exporter" -RDEPENDS_perl-module-env += "perl-module-config" -RDEPENDS_perl-module-env += "perl-module-tie-array" -RDEPENDS_perl-module-errno += "perl-module-exporter" -RDEPENDS_perl-module-errno += "perl-module-strict" -RDEPENDS_perl-module-experimental += "perl-module-strict" -RDEPENDS_perl-module-experimental += "perl-module-version" -RDEPENDS_perl-module-experimental += "perl-module-warnings" -RDEPENDS_perl-module-exporter-heavy += "perl-module-exporter" -RDEPENDS_perl-module-exporter-heavy += "perl-module-strict" -RDEPENDS_perl-module-exporter += "perl-module-exporter-heavy" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-config" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-cwd" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-dynaloader" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-extutils-mksymlists" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-file-temp" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-ipc-cmd" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-text-parsewords" -RDEPENDS_perl-module-extutils-cbuilder-base += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder += "perl-module-extutils-cbuilder-base" -RDEPENDS_perl-module-extutils-cbuilder += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-cbuilder += "perl-module-file-path" -RDEPENDS_perl-module-extutils-cbuilder += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-aix += "perl-module-extutils-cbuilder-platform-unix" -RDEPENDS_perl-module-extutils-cbuilder-platform-aix += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-aix += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-android += "perl-module-config" -RDEPENDS_perl-module-extutils-cbuilder-platform-android += "perl-module-extutils-cbuilder-platform-unix" -RDEPENDS_perl-module-extutils-cbuilder-platform-android += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-android += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-cygwin += "perl-module-extutils-cbuilder-platform-unix" -RDEPENDS_perl-module-extutils-cbuilder-platform-cygwin += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-cygwin += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-darwin += "perl-module-extutils-cbuilder-platform-unix" -RDEPENDS_perl-module-extutils-cbuilder-platform-darwin += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-darwin += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-dec-osf += "perl-module-extutils-cbuilder-platform-unix" -RDEPENDS_perl-module-extutils-cbuilder-platform-dec-osf += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-dec-osf += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-os2 += "perl-module-extutils-cbuilder-platform-unix" -RDEPENDS_perl-module-extutils-cbuilder-platform-os2 += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-os2 += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-unix += "perl-module-extutils-cbuilder-base" -RDEPENDS_perl-module-extutils-cbuilder-platform-unix += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-unix += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-vms += "perl-module-config" -RDEPENDS_perl-module-extutils-cbuilder-platform-vms += "perl-module-extutils-cbuilder-base" -RDEPENDS_perl-module-extutils-cbuilder-platform-vms += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-vms += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows-bcc += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows-bcc += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows-gcc += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows-gcc += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows-msvc += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows-msvc += "perl-module-warnings" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-extutils-cbuilder-base" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-io-file" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-strict" -RDEPENDS_perl-module-extutils-cbuilder-platform-windows += "perl-module-warnings" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-exporter" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-extutils-command" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-extutils-install" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-getopt-long" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-strict" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-test-harness" -RDEPENDS_perl-module-extutils-command-mm += "perl-module-warnings" -RDEPENDS_perl-module-extutils-command += "perl-module-exporter" -RDEPENDS_perl-module-extutils-command += "perl-module-file-copy" -RDEPENDS_perl-module-extutils-command += "perl-module-file-find" -RDEPENDS_perl-module-extutils-command += "perl-module-file-path" -RDEPENDS_perl-module-extutils-command += "perl-module-strict" -RDEPENDS_perl-module-extutils-command += "perl-module-vars" -RDEPENDS_perl-module-extutils-constant-base += "perl-module-constant" -RDEPENDS_perl-module-extutils-constant-base += "perl-module-extutils-constant-utils" -RDEPENDS_perl-module-extutils-constant-base += "perl-module-strict" -RDEPENDS_perl-module-extutils-constant-base += "perl-module-text-wrap" -RDEPENDS_perl-module-extutils-constant-base += "perl-module-vars" -RDEPENDS_perl-module-extutils-constant += "perl-module-exporter" -RDEPENDS_perl-module-extutils-constant += "perl-module-extutils-constant-proxysubs" -RDEPENDS_perl-module-extutils-constant += "perl-module-extutils-constant-utils" -RDEPENDS_perl-module-extutils-constant += "perl-module-extutils-constant-xs" -RDEPENDS_perl-module-extutils-constant += "perl-module-filehandle" -RDEPENDS_perl-module-extutils-constant += "perl-module-strict" -RDEPENDS_perl-module-extutils-constant += "perl-module-vars" -RDEPENDS_perl-module-extutils-constant-proxysubs += "perl-module-extutils-constant-utils" -RDEPENDS_perl-module-extutils-constant-proxysubs += "perl-module-extutils-constant-xs" -RDEPENDS_perl-module-extutils-constant-proxysubs += "perl-module-strict" -RDEPENDS_perl-module-extutils-constant-proxysubs += "perl-module-vars" -RDEPENDS_perl-module-extutils-constant-utils += "perl-module-constant" -RDEPENDS_perl-module-extutils-constant-utils += "perl-module-posix" -RDEPENDS_perl-module-extutils-constant-utils += "perl-module-strict" -RDEPENDS_perl-module-extutils-constant-utils += "perl-module-vars" -RDEPENDS_perl-module-extutils-constant-xs += "perl-module-data-dumper" -RDEPENDS_perl-module-extutils-constant-xs += "perl-module-extutils-constant" -RDEPENDS_perl-module-extutils-constant-xs += "perl-module-extutils-constant-base" -RDEPENDS_perl-module-extutils-constant-xs += "perl-module-extutils-constant-utils" -RDEPENDS_perl-module-extutils-constant-xs += "perl-module-strict" -RDEPENDS_perl-module-extutils-constant-xs += "perl-module-vars" -RDEPENDS_perl-module-extutils-embed += "perl-module-config" -RDEPENDS_perl-module-extutils-embed += "perl-module-exporter" -RDEPENDS_perl-module-extutils-embed += "perl-module-extutils-liblist" -RDEPENDS_perl-module-extutils-embed += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-extutils-embed += "perl-module-getopt-std" -RDEPENDS_perl-module-extutils-embed += "perl-module-strict" -RDEPENDS_perl-module-extutils-installed += "perl-module-config" -RDEPENDS_perl-module-extutils-installed += "perl-module-data-dumper" -RDEPENDS_perl-module-extutils-installed += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-extutils-installed += "perl-module-extutils-packlist" -RDEPENDS_perl-module-extutils-installed += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-installed += "perl-module-file-find" -RDEPENDS_perl-module-extutils-installed += "perl-module-strict" -RDEPENDS_perl-module-extutils-installed += "perl-module-vars" -RDEPENDS_perl-module-extutils-install += "perl-module-autosplit" -RDEPENDS_perl-module-extutils-install += "perl-module-config" -RDEPENDS_perl-module-extutils-install += "perl-module-cwd" -RDEPENDS_perl-module-extutils-install += "perl-module-exporter" -RDEPENDS_perl-module-extutils-install += "perl-module-extutils-packlist" -RDEPENDS_perl-module-extutils-install += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-install += "perl-module-file-compare" -RDEPENDS_perl-module-extutils-install += "perl-module-file-copy" -RDEPENDS_perl-module-extutils-install += "perl-module-file-find" -RDEPENDS_perl-module-extutils-install += "perl-module-file-path" -RDEPENDS_perl-module-extutils-install += "perl-module-strict" -RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-cwd" -RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-strict" -RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-text-parsewords" -RDEPENDS_perl-module-extutils-liblist-kid += "perl-module-warnings" -RDEPENDS_perl-module-extutils-liblist += "perl-module-extutils-liblist-kid" -RDEPENDS_perl-module-extutils-liblist += "perl-module-strict" -RDEPENDS_perl-module-extutils-makemaker-config += "perl-module-config" -RDEPENDS_perl-module-extutils-makemaker-config += "perl-module-strict" -RDEPENDS_perl-module-extutils-makemaker-locale += "perl-module-base" -RDEPENDS_perl-module-extutils-makemaker-locale += "perl-module-encode" -RDEPENDS_perl-module-extutils-makemaker-locale += "perl-module-encode-alias" -RDEPENDS_perl-module-extutils-makemaker-locale += "perl-module-i18n-langinfo" -RDEPENDS_perl-module-extutils-makemaker-locale += "perl-module-strict" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-b" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-cpan" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-cwd" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-exporter" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-makemaker-version" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-manifest" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-mm" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-my" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-file-path" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-strict" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-version" -RDEPENDS_perl-module-extutils-makemaker-version += "perl-module-strict" -RDEPENDS_perl-module-extutils-makemaker-version += "perl-module-vars" -RDEPENDS_perl-module-extutils-manifest += "perl-module-config" -RDEPENDS_perl-module-extutils-manifest += "perl-module-exporter" -RDEPENDS_perl-module-extutils-manifest += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-manifest += "perl-module-file-copy" -RDEPENDS_perl-module-extutils-manifest += "perl-module-file-find" -RDEPENDS_perl-module-extutils-manifest += "perl-module-file-path" -RDEPENDS_perl-module-extutils-manifest += "perl-module-strict" -RDEPENDS_perl-module-extutils-manifest += "perl-module-warnings" -RDEPENDS_perl-module-extutils-miniperl += "perl-module-exporter" -RDEPENDS_perl-module-extutils-miniperl += "perl-module-extutils-embed" -RDEPENDS_perl-module-extutils-miniperl += "perl-module-strict" -RDEPENDS_perl-module-extutils-mkbootstrap += "perl-module-config" -RDEPENDS_perl-module-extutils-mkbootstrap += "perl-module-dynaloader" -RDEPENDS_perl-module-extutils-mkbootstrap += "perl-module-exporter" -RDEPENDS_perl-module-extutils-mkbootstrap += "perl-module-strict" -RDEPENDS_perl-module-extutils-mksymlists += "perl-module-config" -RDEPENDS_perl-module-extutils-mksymlists += "perl-module-exporter" -RDEPENDS_perl-module-extutils-mksymlists += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-aix += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-mm-aix += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-aix += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-any += "perl-module-autosplit" -RDEPENDS_perl-module-extutils-mm-any += "perl-module-cpan" -RDEPENDS_perl-module-extutils-mm-any += "perl-module-data-dumper" -RDEPENDS_perl-module-extutils-mm-any += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-extutils-mm-any += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-mm-any += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-mm-any += "perl-module-file-find" -RDEPENDS_perl-module-extutils-mm-any += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-any += "perl-module-version" -RDEPENDS_perl-module-extutils-mm-beos += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-mm-beos += "perl-module-extutils-mm-any" -RDEPENDS_perl-module-extutils-mm-beos += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-beos += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-cygwin += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-mm-cygwin += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-cygwin += "perl-module-extutils-mm-win32" -RDEPENDS_perl-module-extutils-mm-cygwin += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-darwin += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-darwin += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-dos += "perl-module-extutils-mm-any" -RDEPENDS_perl-module-extutils-mm-dos += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-dos += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-macos += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-nw5 += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-extutils-mm-nw5 += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-mm-nw5 += "perl-module-extutils-mm-win32" -RDEPENDS_perl-module-extutils-mm-nw5 += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-mm-nw5 += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-os2 += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-extutils-mm-os2 += "perl-module-extutils-mm-any" -RDEPENDS_perl-module-extutils-mm-os2 += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-os2 += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm += "perl-module-extutils-liblist" -RDEPENDS_perl-module-extutils-mm += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-extutils-mm += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-mm += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-qnx += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-qnx += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-cwd" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-encode" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-extutils-liblist" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-extutils-mm-any" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-file-find" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-vars" -RDEPENDS_perl-module-extutils-mm-unix += "perl-module-version" -RDEPENDS_perl-module-extutils-mm-uwin += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-uwin += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-vms += "perl-module-exporter" -RDEPENDS_perl-module-extutils-mm-vms += "perl-module-extutils-liblist-kid" -RDEPENDS_perl-module-extutils-mm-vms += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-extutils-mm-vms += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-mm-vms += "perl-module-extutils-mm-any" -RDEPENDS_perl-module-extutils-mm-vms += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-vms += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-mm-vms += "perl-module-file-find" -RDEPENDS_perl-module-extutils-mm-vms += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-vos += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-vos += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-win32 += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-extutils-mm-win32 += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-mm-win32 += "perl-module-extutils-mm-any" -RDEPENDS_perl-module-extutils-mm-win32 += "perl-module-extutils-mm-unix" -RDEPENDS_perl-module-extutils-mm-win32 += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-mm-win32 += "perl-module-strict" -RDEPENDS_perl-module-extutils-mm-win95 += "perl-module-extutils-makemaker-config" -RDEPENDS_perl-module-extutils-mm-win95 += "perl-module-extutils-mm-win32" -RDEPENDS_perl-module-extutils-mm-win95 += "perl-module-strict" -RDEPENDS_perl-module-extutils-my += "perl-module-extutils-mm" -RDEPENDS_perl-module-extutils-my += "perl-module-strict" -RDEPENDS_perl-module-extutils-packlist += "perl-module-config" -RDEPENDS_perl-module-extutils-packlist += "perl-module-cwd" -RDEPENDS_perl-module-extutils-packlist += "perl-module-strict" -RDEPENDS_perl-module-extutils-packlist += "perl-module-vars" -RDEPENDS_perl-module-extutils-parsexs-constants += "perl-module-strict" -RDEPENDS_perl-module-extutils-parsexs-constants += "perl-module-warnings" -RDEPENDS_perl-module-extutils-parsexs-countlines += "perl-module-strict" -RDEPENDS_perl-module-extutils-parsexs-eval += "perl-module-strict" -RDEPENDS_perl-module-extutils-parsexs-eval += "perl-module-warnings" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-config" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-cwd" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-exporter" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-extutils-parsexs-constants" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-extutils-parsexs-countlines" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-extutils-parsexs-eval" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-extutils-parsexs-utilities" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-file-basename" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-re" -RDEPENDS_perl-module-extutils-parsexs += "perl-module-strict" -RDEPENDS_perl-module-extutils-parsexs-utilities += "perl-module-exporter" -RDEPENDS_perl-module-extutils-parsexs-utilities += "perl-module-extutils-parsexs-constants" -RDEPENDS_perl-module-extutils-parsexs-utilities += "perl-module-extutils-typemaps" -RDEPENDS_perl-module-extutils-parsexs-utilities += "perl-module-strict" -RDEPENDS_perl-module-extutils-parsexs-utilities += "perl-module-warnings" -RDEPENDS_perl-module-extutils-testlib += "perl-module-cwd" -RDEPENDS_perl-module-extutils-testlib += "perl-module-lib" -RDEPENDS_perl-module-extutils-testlib += "perl-module-strict" -RDEPENDS_perl-module-extutils-testlib += "perl-module-warnings" -RDEPENDS_perl-module-extutils-typemaps-cmd += "perl-module-exporter" -RDEPENDS_perl-module-extutils-typemaps-cmd += "perl-module-extutils-typemaps" -RDEPENDS_perl-module-extutils-typemaps-cmd += "perl-module-strict" -RDEPENDS_perl-module-extutils-typemaps-cmd += "perl-module-warnings" -RDEPENDS_perl-module-extutils-typemaps-inputmap += "perl-module-strict" -RDEPENDS_perl-module-extutils-typemaps-inputmap += "perl-module-warnings" -RDEPENDS_perl-module-extutils-typemaps-outputmap += "perl-module-re" -RDEPENDS_perl-module-extutils-typemaps-outputmap += "perl-module-strict" -RDEPENDS_perl-module-extutils-typemaps-outputmap += "perl-module-warnings" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-parsexs" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-parsexs-constants" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-typemaps-inputmap" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-typemaps-outputmap" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-extutils-typemaps-type" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-strict" -RDEPENDS_perl-module-extutils-typemaps += "perl-module-warnings" -RDEPENDS_perl-module-extutils-typemaps-type += "perl-module-extutils-typemaps" -RDEPENDS_perl-module-extutils-typemaps-type += "perl-module-strict" -RDEPENDS_perl-module-extutils-typemaps-type += "perl-module-warnings" -RDEPENDS_perl-module-fatal += "perl-module-autodie" -RDEPENDS_perl-module-fatal += "perl-module-autodie-exception-system" -RDEPENDS_perl-module-fatal += "perl-module-autodie-hints" -RDEPENDS_perl-module-fatal += "perl-module-autodie-util" -RDEPENDS_perl-module-fatal += "perl-module-config" -RDEPENDS_perl-module-fatal += "perl-module-constant" -RDEPENDS_perl-module-fatal += "perl-module-fcntl" -RDEPENDS_perl-module-fatal += "perl-module-posix" -RDEPENDS_perl-module-fatal += "perl-module-strict" -RDEPENDS_perl-module-fatal += "perl-module-tie-refhash" -RDEPENDS_perl-module-fatal += "perl-module-warnings" -RDEPENDS_perl-module-fcntl += "perl-module-exporter" -RDEPENDS_perl-module-fcntl += "perl-module-strict" -RDEPENDS_perl-module-fcntl += "perl-module-xsloader" -RDEPENDS_perl-module-fields += "perl-module-base" -RDEPENDS_perl-module-fields += "perl-module-hash-util" -RDEPENDS_perl-module-fields += "perl-module-strict" -RDEPENDS_perl-module-file-basename += "perl-module-exporter" -RDEPENDS_perl-module-file-basename += "perl-module-re" -RDEPENDS_perl-module-file-basename += "perl-module-strict" -RDEPENDS_perl-module-file-basename += "perl-module-warnings" -RDEPENDS_perl-module-filecache += "perl-module-parent" -RDEPENDS_perl-module-filecache += "perl-module-strict" -RDEPENDS_perl-module-file-compare += "perl-module-exporter" -RDEPENDS_perl-module-file-compare += "perl-module-strict" -RDEPENDS_perl-module-file-compare += "perl-module-warnings" -RDEPENDS_perl-module-file-copy += "perl-module-config" -RDEPENDS_perl-module-file-copy += "perl-module-exporter" -RDEPENDS_perl-module-file-copy += "perl-module-file-basename" -RDEPENDS_perl-module-file-copy += "perl-module-strict" -RDEPENDS_perl-module-file-copy += "perl-module-warnings" -RDEPENDS_perl-module-file-dosglob += "perl-module-strict" -RDEPENDS_perl-module-file-dosglob += "perl-module-text-parsewords" -RDEPENDS_perl-module-file-dosglob += "perl-module-warnings" -RDEPENDS_perl-module-file-dosglob += "perl-module-xsloader" -RDEPENDS_perl-module-file-fetch += "perl-module-constant" -RDEPENDS_perl-module-file-fetch += "perl-module-cwd" -RDEPENDS_perl-module-file-fetch += "perl-module-file-basename" -RDEPENDS_perl-module-file-fetch += "perl-module-file-copy" -RDEPENDS_perl-module-file-fetch += "perl-module-filehandle" -RDEPENDS_perl-module-file-fetch += "perl-module-file-path" -RDEPENDS_perl-module-file-fetch += "perl-module-file-temp" -RDEPENDS_perl-module-file-fetch += "perl-module-ipc-cmd" -RDEPENDS_perl-module-file-fetch += "perl-module-locale-maketext-simple" -RDEPENDS_perl-module-file-fetch += "perl-module-load" -RDEPENDS_perl-module-file-fetch += "perl-module-params-check" -RDEPENDS_perl-module-file-fetch += "perl-module-strict" -RDEPENDS_perl-module-file-fetch += "perl-module-vars" -RDEPENDS_perl-module-file-find += "perl-module-config" -RDEPENDS_perl-module-file-find += "perl-module-cwd" -RDEPENDS_perl-module-file-find += "perl-module-exporter" -RDEPENDS_perl-module-file-find += "perl-module-file-basename" -RDEPENDS_perl-module-file-find += "perl-module-strict" -RDEPENDS_perl-module-file-find += "perl-module-warnings" -RDEPENDS_perl-module-file-find += "perl-module-warnings-register" -RDEPENDS_perl-module-file-globmapper += "perl-module-file-glob" -RDEPENDS_perl-module-file-globmapper += "perl-module-strict" -RDEPENDS_perl-module-file-globmapper += "perl-module-warnings" -RDEPENDS_perl-module-file-glob += "perl-module-exporter" -RDEPENDS_perl-module-file-glob += "perl-module-strict" -RDEPENDS_perl-module-file-glob += "perl-module-warnings" -RDEPENDS_perl-module-file-glob += "perl-module-xsloader" -RDEPENDS_perl-module-filehandle += "perl-module-exporter" -RDEPENDS_perl-module-filehandle += "perl-module-fcntl" -RDEPENDS_perl-module-filehandle += "perl-module-io-file" -RDEPENDS_perl-module-filehandle += "perl-module-strict" -RDEPENDS_perl-module-file-path += "perl-module-cwd" -RDEPENDS_perl-module-file-path += "perl-module-exporter" -RDEPENDS_perl-module-file-path += "perl-module-file-basename" -RDEPENDS_perl-module-file-path += "perl-module-strict" -RDEPENDS_perl-module-file-path += "perl-module-vars" -RDEPENDS_perl-module-file-spec += "perl-module-constant" -RDEPENDS_perl-module-file-spec += "perl-module-cwd" -RDEPENDS_perl-module-file-spec += "perl-module-strict" -RDEPENDS_perl-module-file-spec += "perl-module-file-spec-unix" -RDEPENDS_perl-module-file-stat += "perl-module-class-struct" -RDEPENDS_perl-module-file-stat += "perl-module-constant" -RDEPENDS_perl-module-file-stat += "perl-module-exporter" -RDEPENDS_perl-module-file-stat += "perl-module-fcntl" -RDEPENDS_perl-module-file-stat += "perl-module-overload " -RDEPENDS_perl-module-file-stat += "perl-module-strict" -RDEPENDS_perl-module-file-stat += "perl-module-warnings" -RDEPENDS_perl-module-file-stat += "perl-module-warnings-register" -RDEPENDS_perl-module-file-temp += "perl-module-carp" -RDEPENDS_perl-module-file-temp += "perl-module-constant" -RDEPENDS_perl-module-file-temp += "perl-module-cwd" -RDEPENDS_perl-module-file-temp += "perl-module-errno" -RDEPENDS_perl-module-file-temp += "perl-module-exporter" -RDEPENDS_perl-module-file-temp += "perl-module-fcntl" -RDEPENDS_perl-module-file-temp += "perl-module-file-path" -RDEPENDS_perl-module-file-temp += "perl-module-file-spec" -RDEPENDS_perl-module-file-temp += "perl-module-io-seekable" -RDEPENDS_perl-module-file-temp += "perl-module-overload" -RDEPENDS_perl-module-file-temp += "perl-module-parent" -RDEPENDS_perl-module-file-temp += "perl-module-posix" -RDEPENDS_perl-module-file-temp += "perl-module-scalar-util" -RDEPENDS_perl-module-file-temp += "perl-module-strict" -RDEPENDS_perl-module-file-temp += "perl-module-vars" -RDEPENDS_perl-module-filter-simple += "perl-module-filter-util-call" -RDEPENDS_perl-module-filter-simple += "perl-module-text-balanced" -RDEPENDS_perl-module-filter-util-call += "perl-module-exporter" -RDEPENDS_perl-module-filter-util-call += "perl-module-strict" -RDEPENDS_perl-module-filter-util-call += "perl-module-warnings" -RDEPENDS_perl-module-filter-util-call += "perl-module-xsloader" -RDEPENDS_perl-module-findbin += "perl-module-cwd" -RDEPENDS_perl-module-findbin += "perl-module-exporter" -RDEPENDS_perl-module-findbin += "perl-module-file-basename" -RDEPENDS_perl-module-getopt-long += "perl-module-constant" -RDEPENDS_perl-module-getopt-long += "perl-module-exporter" -RDEPENDS_perl-module-getopt-long += "perl-module-overload" -RDEPENDS_perl-module-getopt-long += "perl-module-pod-usage" -RDEPENDS_perl-module-getopt-long += "perl-module-strict" -RDEPENDS_perl-module-getopt-long += "perl-module-text-parsewords" -RDEPENDS_perl-module-getopt-long += "perl-module-vars" -RDEPENDS_perl-module-getopt-long += "perl-module-warnings" -RDEPENDS_perl-module-getopt-std += "perl-module-exporter" -RDEPENDS_perl-module-hash-util-fieldhash += "perl-module-exporter" -RDEPENDS_perl-module-hash-util-fieldhash += "perl-module-strict" -RDEPENDS_perl-module-hash-util-fieldhash += "perl-module-warnings" -RDEPENDS_perl-module-hash-util-fieldhash += "perl-module-xsloader" -RDEPENDS_perl-module-hash-util += "perl-module-exporter" -RDEPENDS_perl-module-hash-util += "perl-module-hash-util-fieldhash" -RDEPENDS_perl-module-hash-util += "perl-module-strict" -RDEPENDS_perl-module-hash-util += "perl-module-warnings" -RDEPENDS_perl-module-hash-util += "perl-module-warnings-register" -RDEPENDS_perl-module-hash-util += "perl-module-xsloader" -RDEPENDS_perl-module-i18n-collate += "perl-module-exporter" -RDEPENDS_perl-module-i18n-collate += "perl-module-overload" -RDEPENDS_perl-module-i18n-collate += "perl-module-posix" -RDEPENDS_perl-module-i18n-collate += "perl-module-strict" -RDEPENDS_perl-module-i18n-collate += "perl-module-warnings-register" -RDEPENDS_perl-module-i18n-langinfo += "perl-module-exporter" -RDEPENDS_perl-module-i18n-langinfo += "perl-module-strict" -RDEPENDS_perl-module-i18n-langinfo += "perl-module-warnings" -RDEPENDS_perl-module-i18n-langinfo += "perl-module-xsloader" -RDEPENDS_perl-module-i18n-langtags-detect += "perl-module-i18n-langtags" -RDEPENDS_perl-module-i18n-langtags-detect += "perl-module-strict" -RDEPENDS_perl-module-i18n-langtags-list += "perl-module-strict" -RDEPENDS_perl-module-i18n-langtags += "perl-module-exporter" -RDEPENDS_perl-module-i18n-langtags += "perl-module-strict" -RDEPENDS_perl-module-io-compress-adapter-bzip2 += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-adapter-bzip2 += "perl-module-compress-raw-bzip2" -RDEPENDS_perl-module-io-compress-adapter-bzip2 += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-adapter-bzip2 += "perl-module-strict" -RDEPENDS_perl-module-io-compress-adapter-bzip2 += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-exporter" -RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-strict" -RDEPENDS_perl-module-io-compress-adapter-deflate += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-adapter-identity += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-adapter-identity += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-adapter-identity += "perl-module-strict" -RDEPENDS_perl-module-io-compress-adapter-identity += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-constant" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-encode" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-exporter" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-file-globmapper" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-strict " -RDEPENDS_perl-module-io-compress-base-common += "perl-module-strict" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-utf8" -RDEPENDS_perl-module-io-compress-base-common += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-base += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-base += "perl-module-io-file" -RDEPENDS_perl-module-io-compress-base += "perl-module-io-handle " -RDEPENDS_perl-module-io-compress-base += "perl-module-strict " -RDEPENDS_perl-module-io-compress-base += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-exporter " -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-io-compress-adapter-bzip2" -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-io-compress-base" -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-strict " -RDEPENDS_perl-module-io-compress-bzip2 += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-deflate += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-deflate += "perl-module-exporter " -RDEPENDS_perl-module-io-compress-deflate += "perl-module-io-compress-adapter-deflate" -RDEPENDS_perl-module-io-compress-deflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-deflate += "perl-module-io-compress-rawdeflate" -RDEPENDS_perl-module-io-compress-deflate += "perl-module-io-compress-zlib-constants" -RDEPENDS_perl-module-io-compress-deflate += "perl-module-strict " -RDEPENDS_perl-module-io-compress-deflate += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-constant" -RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-exporter" -RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-strict " -RDEPENDS_perl-module-io-compress-gzip-constants += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-exporter " -RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-adapter-deflate" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-gzip-constants" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-rawdeflate" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-io-compress-zlib-extra" -RDEPENDS_perl-module-io-compress-gzip += "perl-module-strict " -RDEPENDS_perl-module-io-compress-gzip += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-exporter " -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-fcntl" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-io-compress-adapter-deflate" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-io-compress-base" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-strict " -RDEPENDS_perl-module-io-compress-rawdeflate += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-zip-constants += "perl-module-constant" -RDEPENDS_perl-module-io-compress-zip-constants += "perl-module-exporter" -RDEPENDS_perl-module-io-compress-zip-constants += "perl-module-strict " -RDEPENDS_perl-module-io-compress-zip-constants += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-zip += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-zip += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-compress-zip += "perl-module-config" -RDEPENDS_perl-module-io-compress-zip += "perl-module-exporter " -RDEPENDS_perl-module-io-compress-zip += "perl-module-fcntl" -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-adapter-deflate" -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-adapter-identity" -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-bzip2 " -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-rawdeflate" -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-zip-constants" -RDEPENDS_perl-module-io-compress-zip += "perl-module-io-compress-zlib-extra" -RDEPENDS_perl-module-io-compress-zip += "perl-module-strict " -RDEPENDS_perl-module-io-compress-zip += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-constant" -RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-exporter" -RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-strict " -RDEPENDS_perl-module-io-compress-zlib-constants += "perl-module-warnings" -RDEPENDS_perl-module-io-compress-zlib-extra += "perl-module-bytes" -RDEPENDS_perl-module-io-compress-zlib-extra += "perl-module-io-compress-gzip-constants" -RDEPENDS_perl-module-io-compress-zlib-extra += "perl-module-strict " -RDEPENDS_perl-module-io-compress-zlib-extra += "perl-module-warnings" -RDEPENDS_perl-module-io-dir += "perl-module-exporter" -RDEPENDS_perl-module-io-dir += "perl-module-file-stat" -RDEPENDS_perl-module-io-dir += "perl-module-io-file" -RDEPENDS_perl-module-io-dir += "perl-module-strict" -RDEPENDS_perl-module-io-dir += "perl-module-tie-hash" -RDEPENDS_perl-module-io-file += "perl-module-carp" -RDEPENDS_perl-module-io-file += "perl-module-exporter" -RDEPENDS_perl-module-io-file += "perl-module-fcntl" -RDEPENDS_perl-module-io-file += "perl-module-io-seekable" -RDEPENDS_perl-module-io-file += "perl-module-selectsaver" -RDEPENDS_perl-module-io-file += "perl-module-strict" -RDEPENDS_perl-module-io-file += "perl-module-symbol" -RDEPENDS_perl-module-io-handle += "perl-module-exporter" -RDEPENDS_perl-module-io-handle += "perl-module-io" -RDEPENDS_perl-module-io-handle += "perl-module-io-file" -RDEPENDS_perl-module-io-handle += "perl-module-selectsaver" -RDEPENDS_perl-module-io-handle += "perl-module-strict" -RDEPENDS_perl-module-io += "perl-module-strict" -RDEPENDS_perl-module-io += "perl-module-warnings" -RDEPENDS_perl-module-io += "perl-module-xsloader" -RDEPENDS_perl-module-io-pipe += "perl-module-fcntl" -RDEPENDS_perl-module-io-pipe += "perl-module-io-handle" -RDEPENDS_perl-module-io-pipe += "perl-module-strict" -RDEPENDS_perl-module-io-poll += "perl-module-exporter" -RDEPENDS_perl-module-io-poll += "perl-module-io-handle" -RDEPENDS_perl-module-io-poll += "perl-module-strict" -RDEPENDS_perl-module-io-seekable += "perl-module-exporter" -RDEPENDS_perl-module-io-seekable += "perl-module-fcntl" -RDEPENDS_perl-module-io-seekable += "perl-module-io-handle" -RDEPENDS_perl-module-io-seekable += "perl-module-strict" -RDEPENDS_perl-module-io-select += "perl-module-exporter" -RDEPENDS_perl-module-io-select += "perl-module-strict" -RDEPENDS_perl-module-io-select += "perl-module-warnings-register" -RDEPENDS_perl-module-io-socket-inet += "perl-module-errno" -RDEPENDS_perl-module-io-socket-inet += "perl-module-exporter" -RDEPENDS_perl-module-io-socket-inet += "perl-module-io-socket" -RDEPENDS_perl-module-io-socket-inet += "perl-module-socket" -RDEPENDS_perl-module-io-socket-inet += "perl-module-strict" -RDEPENDS_perl-module-io-socket-ip += "perl-module-base" -RDEPENDS_perl-module-io-socket-ip += "perl-module-constant" -RDEPENDS_perl-module-io-socket-ip += "perl-module-errno" -RDEPENDS_perl-module-io-socket-ip += "perl-module-posix" -RDEPENDS_perl-module-io-socket-ip += "perl-module-socket" -RDEPENDS_perl-module-io-socket-ip += "perl-module-strict" -RDEPENDS_perl-module-io-socket-ip += "perl-module-warnings" -RDEPENDS_perl-module-io-socket += "perl-module-errno" -RDEPENDS_perl-module-io-socket += "perl-module-exporter" -RDEPENDS_perl-module-io-socket += "perl-module-io-handle" -RDEPENDS_perl-module-io-socket += "perl-module-io-select" -RDEPENDS_perl-module-io-socket += "perl-module-io-socket-inet" -RDEPENDS_perl-module-io-socket += "perl-module-io-socket-unix" -RDEPENDS_perl-module-io-socket += "perl-module-socket" -RDEPENDS_perl-module-io-socket += "perl-module-strict" -RDEPENDS_perl-module-io-socket-unix += "perl-module-io-socket" -RDEPENDS_perl-module-io-socket-unix += "perl-module-strict" -RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-compress-raw-bzip2" -RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-strict" -RDEPENDS_perl-module-io-uncompress-adapter-bunzip2 += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-io-compress-zip-constants " -RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-strict" -RDEPENDS_perl-module-io-uncompress-adapter-identity += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-strict" -RDEPENDS_perl-module-io-uncompress-adapter-inflate += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-adapter-inflate" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-base" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-gunzip" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-inflate" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-rawinflate" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-io-uncompress-unzip" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-strict" -RDEPENDS_perl-module-io-uncompress-anyinflate += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-io-uncompress-base" -RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-strict" -RDEPENDS_perl-module-io-uncompress-anyuncompress += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-base += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-base += "perl-module-constant" -RDEPENDS_perl-module-io-uncompress-base += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-base += "perl-module-io-file " -RDEPENDS_perl-module-io-uncompress-base += "perl-module-list-util" -RDEPENDS_perl-module-io-uncompress-base += "perl-module-strict " -RDEPENDS_perl-module-io-uncompress-base += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-io-uncompress-adapter-bunzip2" -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-io-uncompress-base" -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-strict " -RDEPENDS_perl-module-io-uncompress-bunzip2 += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-io-compress-gzip-constants" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-io-compress-zlib-extra" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-io-uncompress-rawinflate" -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-strict " -RDEPENDS_perl-module-io-uncompress-gunzip += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-io-compress-zlib-constants" -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-io-uncompress-rawinflate" -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-strict " -RDEPENDS_perl-module-io-uncompress-inflate += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-io-uncompress-adapter-inflate" -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-io-uncompress-base" -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-strict " -RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-warnings" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-bytes" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-constant" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-exporter " -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-fcntl" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-compress-zip-constants" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-compress-zlib-extra" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-file" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-uncompress-adapter-identity" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-uncompress-adapter-inflate" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-uncompress-rawinflate" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-posix" -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-strict " -RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-warnings" -RDEPENDS_perl-module-io-zlib += "perl-module-fcntl" -RDEPENDS_perl-module-io-zlib += "perl-module-io-handle" -RDEPENDS_perl-module-io-zlib += "perl-module-strict" -RDEPENDS_perl-module-io-zlib += "perl-module-tie-handle" -RDEPENDS_perl-module-io-zlib += "perl-module-vars" -RDEPENDS_perl-module-ipc-cmd += "perl-module-constant" -RDEPENDS_perl-module-ipc-cmd += "perl-module-exporter" -RDEPENDS_perl-module-ipc-cmd += "perl-module-extutils-makemaker" -RDEPENDS_perl-module-ipc-cmd += "perl-module-filehandle" -RDEPENDS_perl-module-ipc-cmd += "perl-module-io-handle" -RDEPENDS_perl-module-ipc-cmd += "perl-module-io-select" -RDEPENDS_perl-module-ipc-cmd += "perl-module-ipc-open3" -RDEPENDS_perl-module-ipc-cmd += "perl-module-locale-maketext-simple" -RDEPENDS_perl-module-ipc-cmd += "perl-module-load" -RDEPENDS_perl-module-ipc-cmd += "perl-module-params-check" -RDEPENDS_perl-module-ipc-cmd += "perl-module-posix" -RDEPENDS_perl-module-ipc-cmd += "perl-module-socket" -RDEPENDS_perl-module-ipc-cmd += "perl-module-strict" -RDEPENDS_perl-module-ipc-cmd += "perl-module-text-parsewords" -RDEPENDS_perl-module-ipc-cmd += "perl-module-time-hires" -RDEPENDS_perl-module-ipc-cmd += "perl-module-vars" -RDEPENDS_perl-module-ipc-msg += "perl-module-class-struct" -RDEPENDS_perl-module-ipc-msg += "perl-module-ipc-sysv" -RDEPENDS_perl-module-ipc-msg += "perl-module-strict" -RDEPENDS_perl-module-ipc-msg += "perl-module-vars" -RDEPENDS_perl-module-ipc-open2 += "perl-module-exporter" -RDEPENDS_perl-module-ipc-open2 += "perl-module-ipc-open3" -RDEPENDS_perl-module-ipc-open2 += "perl-module-strict" -RDEPENDS_perl-module-ipc-open3 += "perl-module-constant" -RDEPENDS_perl-module-ipc-open3 += "perl-module-exporter" -RDEPENDS_perl-module-ipc-open3 += "perl-module-fcntl" -RDEPENDS_perl-module-ipc-open3 += "perl-module-io-pipe" -RDEPENDS_perl-module-ipc-open3 += "perl-module-posix" -RDEPENDS_perl-module-ipc-open3 += "perl-module-strict" -RDEPENDS_perl-module-ipc-semaphore += "perl-module-class-struct" -RDEPENDS_perl-module-ipc-semaphore += "perl-module-ipc-sysv" -RDEPENDS_perl-module-ipc-semaphore += "perl-module-strict" -RDEPENDS_perl-module-ipc-semaphore += "perl-module-vars" -RDEPENDS_perl-module-ipc-sharedmem += "perl-module-class-struct" -RDEPENDS_perl-module-ipc-sharedmem += "perl-module-ipc-sysv" -RDEPENDS_perl-module-ipc-sharedmem += "perl-module-strict" -RDEPENDS_perl-module-ipc-sharedmem += "perl-module-vars" -RDEPENDS_perl-module-ipc-sysv += "perl-module-config" -RDEPENDS_perl-module-ipc-sysv += "perl-module-dynaloader" -RDEPENDS_perl-module-ipc-sysv += "perl-module-exporter" -RDEPENDS_perl-module-ipc-sysv += "perl-module-strict" -RDEPENDS_perl-module-ipc-sysv += "perl-module-vars" -RDEPENDS_perl-module-json-pp-boolean += "perl-module-overload" -RDEPENDS_perl-module-json-pp-boolean += "perl-module-strict" -RDEPENDS_perl-module-json-pp += "perl-module-b" -RDEPENDS_perl-module-json-pp += "perl-module-bytes" -RDEPENDS_perl-module-json-pp += "perl-module-constant" -RDEPENDS_perl-module-json-pp += "perl-module-encode" -RDEPENDS_perl-module-json-pp += "perl-module-exporter" -RDEPENDS_perl-module-json-pp += "perl-module-json-pp-boolean" -RDEPENDS_perl-module-json-pp += "perl-module-math-bigfloat" -RDEPENDS_perl-module-json-pp += "perl-module-math-bigint" -RDEPENDS_perl-module-json-pp += "perl-module-overload" -RDEPENDS_perl-module-json-pp += "perl-module-strict" -RDEPENDS_perl-module-json-pp += "perl-module-subs" -RDEPENDS_perl-module-less += "perl-module-strict" -RDEPENDS_perl-module-less += "perl-module-warnings" -RDEPENDS_perl-module-lib += "perl-module-config" -RDEPENDS_perl-module-lib += "perl-module-strict" -RDEPENDS_perl-module-list-util += "perl-module-exporter" -RDEPENDS_perl-module-list-util += "perl-module-strict" -RDEPENDS_perl-module-list-util += "perl-module-warnings" -RDEPENDS_perl-module-list-util += "perl-module-xsloader" -RDEPENDS_perl-module-list-util-xs += "perl-module-list-util" -RDEPENDS_perl-module-list-util-xs += "perl-module-strict" -RDEPENDS_perl-module-list-util-xs += "perl-module-warnings" -RDEPENDS_perl-module-loaded += "perl-module-strict" -RDEPENDS_perl-module-loaded += "perl-module-vars" -RDEPENDS_perl-module-load += "perl-module-config" -RDEPENDS_perl-module-load += "perl-module-constant" -RDEPENDS_perl-module-load += "perl-module-exporter" -RDEPENDS_perl-module-load += "perl-module-filehandle" -RDEPENDS_perl-module-load += "perl-module-locale-maketext-simple" -RDEPENDS_perl-module-load += "perl-module-corelist" -RDEPENDS_perl-module-load += "perl-module-load" -RDEPENDS_perl-module-load += "perl-module-params-check" -RDEPENDS_perl-module-load += "perl-module-strict" -RDEPENDS_perl-module-load += "perl-module-vars" -RDEPENDS_perl-module-load += "perl-module-version" -RDEPENDS_perl-module-load += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-constant" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-country += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-country += "perl-module-if" -RDEPENDS_perl-module-locale-codes-country += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-country += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-country += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-country += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-if" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-if" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-if" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langfam-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langfam-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-language += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-language += "perl-module-if" -RDEPENDS_perl-module-locale-codes-language += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-language += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-language += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-language += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-if" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes += "perl-module-if" -RDEPENDS_perl-module-locale-codes += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-script += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-script += "perl-module-if" -RDEPENDS_perl-module-locale-codes-script += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-script += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-script += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-script += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-country += "perl-module-exporter" -RDEPENDS_perl-module-locale-country += "perl-module-if" -RDEPENDS_perl-module-locale-country += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-country += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-country += "perl-module-strict" -RDEPENDS_perl-module-locale-country += "perl-module-warnings" -RDEPENDS_perl-module-locale-currency += "perl-module-exporter" -RDEPENDS_perl-module-locale-currency += "perl-module-if" -RDEPENDS_perl-module-locale-currency += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-currency += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-currency += "perl-module-strict" -RDEPENDS_perl-module-locale-currency += "perl-module-warnings" -RDEPENDS_perl-module-locale-language += "perl-module-exporter" -RDEPENDS_perl-module-locale-language += "perl-module-if" -RDEPENDS_perl-module-locale-language += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-language += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-language += "perl-module-strict" -RDEPENDS_perl-module-locale-language += "perl-module-warnings" -RDEPENDS_perl-module-locale-maketext-gutsloader += "perl-module-locale-maketext" -RDEPENDS_perl-module-locale-maketext-guts += "perl-module-locale-maketext" -RDEPENDS_perl-module-locale-maketext += "perl-module-i18n-langtags" -RDEPENDS_perl-module-locale-maketext += "perl-module-i18n-langtags-detect" -RDEPENDS_perl-module-locale-maketext += "perl-module-integer" -RDEPENDS_perl-module-locale-maketext += "perl-module-strict" -RDEPENDS_perl-module-locale-maketext-simple += "perl-module-base" -RDEPENDS_perl-module-locale-maketext-simple += "perl-module-strict" -RDEPENDS_perl-module-locale += "perl-module-config" -RDEPENDS_perl-module-locale-script += "perl-module-exporter" -RDEPENDS_perl-module-locale-script += "perl-module-if" -RDEPENDS_perl-module-locale-script += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-script += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-script += "perl-module-strict" -RDEPENDS_perl-module-locale-script += "perl-module-warnings" -RDEPENDS_perl-module-math-bigfloat += "perl-module-exporter" -RDEPENDS_perl-module-math-bigfloat += "perl-module-math-bigint" -RDEPENDS_perl-module-math-bigfloat += "perl-module-math-complex" -RDEPENDS_perl-module-math-bigfloat += "perl-module-overload" -RDEPENDS_perl-module-math-bigfloat += "perl-module-strict" -RDEPENDS_perl-module-math-bigfloat += "perl-module-warnings" -RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-exporter" -RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-math-bigfloat" -RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-overload" -RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-strict" -RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint-calcemu += "perl-module-strict" -RDEPENDS_perl-module-math-bigint-calcemu += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint-calc += "perl-module-constant" -RDEPENDS_perl-module-math-bigint-calc += "perl-module-integer" -RDEPENDS_perl-module-math-bigint-calc += "perl-module-math-bigint-lib" -RDEPENDS_perl-module-math-bigint-calc += "perl-module-strict" -RDEPENDS_perl-module-math-bigint-calc += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint-fastcalc += "perl-module-math-bigint-calc" -RDEPENDS_perl-module-math-bigint-fastcalc += "perl-module-strict" -RDEPENDS_perl-module-math-bigint-fastcalc += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint-fastcalc += "perl-module-xsloader" -RDEPENDS_perl-module-math-bigint-lib += "perl-module-overload" -RDEPENDS_perl-module-math-bigint-lib += "perl-module-strict" -RDEPENDS_perl-module-math-bigint-lib += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint += "perl-module-exporter" -RDEPENDS_perl-module-math-bigint += "perl-module-math-bigfloat" -RDEPENDS_perl-module-math-bigint += "perl-module-math-complex" -RDEPENDS_perl-module-math-bigint += "perl-module-overload" -RDEPENDS_perl-module-math-bigint += "perl-module-strict" -RDEPENDS_perl-module-math-bigint += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint-trace += "perl-module-exporter" -RDEPENDS_perl-module-math-bigint-trace += "perl-module-math-bigint" -RDEPENDS_perl-module-math-bigint-trace += "perl-module-overload" -RDEPENDS_perl-module-math-bigint-trace += "perl-module-strict" -RDEPENDS_perl-module-math-bigint-trace += "perl-module-warnings" -RDEPENDS_perl-module-math-bigrat += "perl-module-math-bigfloat" -RDEPENDS_perl-module-math-bigrat += "perl-module-math-bigint" -RDEPENDS_perl-module-math-bigrat += "perl-module-overload" -RDEPENDS_perl-module-math-bigrat += "perl-module-strict" -RDEPENDS_perl-module-math-bigrat += "perl-module-warnings" -RDEPENDS_perl-module-math-complex += "perl-module-config" -RDEPENDS_perl-module-math-complex += "perl-module-exporter" -RDEPENDS_perl-module-math-complex += "perl-module-overload" -RDEPENDS_perl-module-math-complex += "perl-module-strict" -RDEPENDS_perl-module-math-complex += "perl-module-warnings" -RDEPENDS_perl-module-math-trig += "perl-module-exporter" -RDEPENDS_perl-module-math-trig += "perl-module-math-complex" -RDEPENDS_perl-module-math-trig += "perl-module-strict" -RDEPENDS_perl-module-metadata += "perl-module-version" -RDEPENDS_perl-module-memoize-anydbm-file += "perl-module-vars" -RDEPENDS_perl-module-memoize += "perl-module-config" -RDEPENDS_perl-module-memoize += "perl-module-exporter" -RDEPENDS_perl-module-memoize += "perl-module-strict" -RDEPENDS_perl-module-memoize += "perl-module-vars" -RDEPENDS_perl-module-memoize-sdbm-file += "perl-module-sdbm-file" -RDEPENDS_perl-module-memoize-storable += "perl-module-storable" -RDEPENDS_perl-module-mime-base64 += "perl-module-exporter" -RDEPENDS_perl-module-mime-base64 += "perl-module-strict" -RDEPENDS_perl-module-mime-base64 += "perl-module-vars" -RDEPENDS_perl-module-mime-base64 += "perl-module-xsloader" -RDEPENDS_perl-module-mime-quotedprint += "perl-module-exporter" -RDEPENDS_perl-module-mime-quotedprint += "perl-module-mime-base64" -RDEPENDS_perl-module-mime-quotedprint += "perl-module-strict" -RDEPENDS_perl-module-mime-quotedprint += "perl-module-vars" -RDEPENDS_perl-module-mro += "perl-module-strict" -RDEPENDS_perl-module-mro += "perl-module-warnings" -RDEPENDS_perl-module-mro += "perl-module-xsloader" -RDEPENDS_perl-module-net-cmd += "perl-module-constant" -RDEPENDS_perl-module-net-cmd += "perl-module-errno" -RDEPENDS_perl-module-net-cmd += "perl-module-exporter" -RDEPENDS_perl-module-net-cmd += "perl-module-strict" -RDEPENDS_perl-module-net-cmd += "perl-module-warnings" -RDEPENDS_perl-module-net-config += "perl-module-exporter" -RDEPENDS_perl-module-net-config += "perl-module-socket" -RDEPENDS_perl-module-net-config += "perl-module-strict" -RDEPENDS_perl-module-net-config += "perl-module-warnings" -RDEPENDS_perl-module-net-domain += "perl-module-exporter" -RDEPENDS_perl-module-net-domain += "perl-module-net-config" -RDEPENDS_perl-module-net-domain += "perl-module-posix" -RDEPENDS_perl-module-net-domain += "perl-module-socket" -RDEPENDS_perl-module-net-domain += "perl-module-strict" -RDEPENDS_perl-module-net-domain += "perl-module-warnings" -RDEPENDS_perl-module-net-ftp-a += "perl-module-net-ftp-dataconn" -RDEPENDS_perl-module-net-ftp-a += "perl-module-strict" -RDEPENDS_perl-module-net-ftp-a += "perl-module-warnings" -RDEPENDS_perl-module-net-ftp-dataconn += "perl-module-errno" -RDEPENDS_perl-module-net-ftp-dataconn += "perl-module-net-cmd" -RDEPENDS_perl-module-net-ftp-dataconn += "perl-module-strict" -RDEPENDS_perl-module-net-ftp-dataconn += "perl-module-warnings" -RDEPENDS_perl-module-net-ftp-e += "perl-module-net-ftp-i" -RDEPENDS_perl-module-net-ftp-e += "perl-module-strict" -RDEPENDS_perl-module-net-ftp-e += "perl-module-warnings" -RDEPENDS_perl-module-net-ftp-i += "perl-module-net-ftp-dataconn" -RDEPENDS_perl-module-net-ftp-i += "perl-module-strict" -RDEPENDS_perl-module-net-ftp-i += "perl-module-warnings" -RDEPENDS_perl-module-net-ftp-l += "perl-module-net-ftp-i" -RDEPENDS_perl-module-net-ftp-l += "perl-module-strict" -RDEPENDS_perl-module-net-ftp-l += "perl-module-warnings" -RDEPENDS_perl-module-net-ftp += "perl-module-constant" -RDEPENDS_perl-module-net-ftp += "perl-module-fcntl" -RDEPENDS_perl-module-net-ftp += "perl-module-file-basename" -RDEPENDS_perl-module-net-ftp += "perl-module-io-socket" -RDEPENDS_perl-module-net-ftp += "perl-module-io-socket-ip" -RDEPENDS_perl-module-net-ftp += "perl-module-net-cmd" -RDEPENDS_perl-module-net-ftp += "perl-module-net-config" -RDEPENDS_perl-module-net-ftp += "perl-module-net-ftp-a" -RDEPENDS_perl-module-net-ftp += "perl-module-net-netrc" -RDEPENDS_perl-module-net-ftp += "perl-module-socket" -RDEPENDS_perl-module-net-ftp += "perl-module-strict" -RDEPENDS_perl-module-net-ftp += "perl-module-time-local" -RDEPENDS_perl-module-net-ftp += "perl-module-warnings" -RDEPENDS_perl-module-net-hostent += "perl-module-class-struct" -RDEPENDS_perl-module-net-hostent += "perl-module-exporter" -RDEPENDS_perl-module-net-hostent += "perl-module-socket" -RDEPENDS_perl-module-net-hostent += "perl-module-strict" -RDEPENDS_perl-module-net-netent += "perl-module-class-struct" -RDEPENDS_perl-module-net-netent += "perl-module-exporter" -RDEPENDS_perl-module-net-netent += "perl-module-socket" -RDEPENDS_perl-module-net-netent += "perl-module-strict" -RDEPENDS_perl-module-net-netrc += "perl-module-filehandle" -RDEPENDS_perl-module-net-netrc += "perl-module-strict" -RDEPENDS_perl-module-net-netrc += "perl-module-warnings" -RDEPENDS_perl-module-net-nntp += "perl-module-io-socket" -RDEPENDS_perl-module-net-nntp += "perl-module-io-socket-ip" -RDEPENDS_perl-module-net-nntp += "perl-module-net-cmd" -RDEPENDS_perl-module-net-nntp += "perl-module-net-config" -RDEPENDS_perl-module-net-nntp += "perl-module-strict" -RDEPENDS_perl-module-net-nntp += "perl-module-time-local" -RDEPENDS_perl-module-net-nntp += "perl-module-warnings" -RDEPENDS_perl-module-net-ping += "perl-module-constant" -RDEPENDS_perl-module-net-ping += "perl-module-exporter" -RDEPENDS_perl-module-net-ping += "perl-module-fcntl" -RDEPENDS_perl-module-net-ping += "perl-module-filehandle" -RDEPENDS_perl-module-net-ping += "perl-module-io-socket-inet" -RDEPENDS_perl-module-net-ping += "perl-module-posix" -RDEPENDS_perl-module-net-ping += "perl-module-socket" -RDEPENDS_perl-module-net-ping += "perl-module-strict" -RDEPENDS_perl-module-net-ping += "perl-module-time-hires" -RDEPENDS_perl-module-net-pop3 += "perl-module-io-socket" -RDEPENDS_perl-module-net-pop3 += "perl-module-io-socket-ip" -RDEPENDS_perl-module-net-pop3 += "perl-module-mime-base64" -RDEPENDS_perl-module-net-pop3 += "perl-module-net-cmd" -RDEPENDS_perl-module-net-pop3 += "perl-module-net-config" -RDEPENDS_perl-module-net-pop3 += "perl-module-net-netrc" -RDEPENDS_perl-module-net-pop3 += "perl-module-strict" -RDEPENDS_perl-module-net-pop3 += "perl-module-warnings" -RDEPENDS_perl-module-net-protoent += "perl-module-class-struct" -RDEPENDS_perl-module-net-protoent += "perl-module-exporter" -RDEPENDS_perl-module-net-protoent += "perl-module-strict" -RDEPENDS_perl-module-net-servent += "perl-module-class-struct" -RDEPENDS_perl-module-net-servent += "perl-module-exporter" -RDEPENDS_perl-module-net-servent += "perl-module-strict" -RDEPENDS_perl-module-net-smtp += "perl-module-io-socket" -RDEPENDS_perl-module-net-smtp += "perl-module-io-socket-ip" -RDEPENDS_perl-module-net-smtp += "perl-module-mime-base64" -RDEPENDS_perl-module-net-smtp += "perl-module-net-cmd" -RDEPENDS_perl-module-net-smtp += "perl-module-net-config" -RDEPENDS_perl-module-net-smtp += "perl-module-socket" -RDEPENDS_perl-module-net-smtp += "perl-module-strict" -RDEPENDS_perl-module-net-smtp += "perl-module-warnings" -RDEPENDS_perl-module-net-time += "perl-module-exporter" -RDEPENDS_perl-module-net-time += "perl-module-io-select" -RDEPENDS_perl-module-net-time += "perl-module-io-socket" -RDEPENDS_perl-module-net-time += "perl-module-net-config" -RDEPENDS_perl-module-net-time += "perl-module-strict" -RDEPENDS_perl-module-net-time += "perl-module-warnings" -RDEPENDS_perl-module-next += "perl-module-overload" -RDEPENDS_perl-module-next += "perl-module-strict" -RDEPENDS_perl-module-next += "perl-module-warnings" -RDEPENDS_perl-module-ok += "perl-module-strict" -RDEPENDS_perl-module-ok += "perl-module-test-more" -RDEPENDS_perl-module-opcode += "perl-module-exporter" -RDEPENDS_perl-module-opcode += "perl-module-strict" -RDEPENDS_perl-module-opcode += "perl-module-subs" -RDEPENDS_perl-module-opcode += "perl-module-xsloader" -RDEPENDS_perl-module-open += "perl-module-encode" -RDEPENDS_perl-module-open += "perl-module-encoding" -RDEPENDS_perl-module-open += "perl-module-warnings" -RDEPENDS_perl-module-o += "perl-module-b" -RDEPENDS_perl-module-ops += "perl-module-opcode" -RDEPENDS_perl-module-overloading += "perl-module-overload-numbers" -RDEPENDS_perl-module-overloading += "perl-module-warnings" -RDEPENDS_perl-module-overload += "perl-module-mro" -RDEPENDS_perl-module-overload += "perl-module-warnings-register" -RDEPENDS_perl-module-overload += "perl-module-overloading" -RDEPENDS_perl-module-params-check += "perl-module-exporter" -RDEPENDS_perl-module-params-check += "perl-module-locale-maketext-simple" -RDEPENDS_perl-module-params-check += "perl-module-strict" -RDEPENDS_perl-module-params-check += "perl-module-vars" -RDEPENDS_perl-module-parent += "perl-module-strict" -RDEPENDS_perl-module-parent += "perl-module-vars" -RDEPENDS_perl-module-perlfaq += "perl-module-strict" -RDEPENDS_perl-module-perlfaq += "perl-module-warnings" -RDEPENDS_perl-module-perlio-encoding += "perl-module-strict" -RDEPENDS_perl-module-perlio-encoding += "perl-module-xsloader" -RDEPENDS_perl-module-perlio-mmap += "perl-module-strict" -RDEPENDS_perl-module-perlio-mmap += "perl-module-warnings" -RDEPENDS_perl-module-perlio-mmap += "perl-module-xsloader" -RDEPENDS_perl-module-perlio-scalar += "perl-module-xsloader" -RDEPENDS_perl-module-perlio-via += "perl-module-xsloader" -RDEPENDS_perl-module-perlio-via-quotedprint += "perl-module-mime-quotedprint" -RDEPENDS_perl-module-perlio-via-quotedprint += "perl-module-strict" -RDEPENDS_perl-module-pod-checker += "perl-module-base" -RDEPENDS_perl-module-pod-checker += "perl-module-exporter" -RDEPENDS_perl-module-pod-checker += "perl-module-strict" -RDEPENDS_perl-module-pod-checker += "perl-module-warnings" -RDEPENDS_perl-module-pod-escapes += "perl-module-exporter" -RDEPENDS_perl-module-pod-escapes += "perl-module-strict" -RDEPENDS_perl-module-pod-escapes += "perl-module-vars" -RDEPENDS_perl-module-pod-escapes += "perl-module-warnings" -RDEPENDS_perl-module-pod-find += "perl-module-config" -RDEPENDS_perl-module-pod-find += "perl-module-cwd" -RDEPENDS_perl-module-pod-find += "perl-module-exporter" -RDEPENDS_perl-module-pod-find += "perl-module-file-find" -RDEPENDS_perl-module-pod-find += "perl-module-strict" -RDEPENDS_perl-module-pod-find += "perl-module-vars" -RDEPENDS_perl-module-pod-functions += "perl-module-exporter" -RDEPENDS_perl-module-pod-functions += "perl-module-strict" -RDEPENDS_perl-module-pod-inputobjects += "perl-module-strict" -RDEPENDS_perl-module-pod-inputobjects += "perl-module-vars" -RDEPENDS_perl-module-pod-man += "perl-module-file-basename" -RDEPENDS_perl-module-pod-man += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-man += "perl-module-strict" -RDEPENDS_perl-module-pod-man += "perl-module-subs" -RDEPENDS_perl-module-pod-man += "perl-module-vars" -RDEPENDS_perl-module-pod-man += "perl-module-warnings" -RDEPENDS_perl-module-pod-parselink += "perl-module-exporter" -RDEPENDS_perl-module-pod-parselink += "perl-module-strict" -RDEPENDS_perl-module-pod-parselink += "perl-module-vars" -RDEPENDS_perl-module-pod-parselink += "perl-module-warnings" -RDEPENDS_perl-module-pod-parser += "perl-module-exporter" -RDEPENDS_perl-module-pod-parser += "perl-module-pod-inputobjects" -RDEPENDS_perl-module-pod-parser += "perl-module-strict" -RDEPENDS_perl-module-pod-parser += "perl-module-vars" -RDEPENDS_perl-module-pod-parseutils += "perl-module-strict" -RDEPENDS_perl-module-pod-parseutils += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-config" -RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-getoptsoo += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-getoptsoo += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc += "perl-module-config" -RDEPENDS_perl-module-pod-perldoc += "perl-module-encode" -RDEPENDS_perl-module-pod-perldoc += "perl-module-fcntl" -RDEPENDS_perl-module-pod-perldoc += "perl-module-file-basename" -RDEPENDS_perl-module-pod-perldoc += "perl-module-file-temp" -RDEPENDS_perl-module-pod-perldoc += "perl-module-pod-perldoc-getoptsoo" -RDEPENDS_perl-module-pod-perldoc += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc += "perl-module-text-parsewords" -RDEPENDS_perl-module-pod-perldoc += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-pod-text-color" -RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-toansi += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-tochecker += "perl-module-pod-checker" -RDEPENDS_perl-module-pod-perldoc-tochecker += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-tochecker += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-tochecker += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-encode" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-io-handle" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-io-select" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-ipc-open3" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-pod-man" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-pod-perldoc-topod" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-toman += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-pod-man" -RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-tonroff += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-topod += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-topod += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-topod += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-topod += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-tortf += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-tortf += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-tortf += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-tortf += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-pod-text-termcap" -RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-toterm += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-pod-text" -RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-totext += "perl-module-warnings" -RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-parent" -RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-strict" -RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-vars" -RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-warnings" -RDEPENDS_perl-module-pod-plaintext += "perl-module-pod-select" -RDEPENDS_perl-module-pod-plaintext += "perl-module-strict" -RDEPENDS_perl-module-pod-plaintext += "perl-module-vars" -RDEPENDS_perl-module-pod-select += "perl-module-pod-parser" -RDEPENDS_perl-module-pod-select += "perl-module-strict" -RDEPENDS_perl-module-pod-select += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-integer" -RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-pod-simple-transcode" -RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-checker += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-checker += "perl-module-pod-simple-methody" -RDEPENDS_perl-module-pod-simple-checker += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-checker += "perl-module-text-wrap" -RDEPENDS_perl-module-pod-simple-checker += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-debug += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-debug += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-debug += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-dumpastext += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-dumpastext += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-text-wrap" -RDEPENDS_perl-module-pod-simple-linksection += "perl-module-overload" -RDEPENDS_perl-module-pod-simple-linksection += "perl-module-pod-simple-blackbox" -RDEPENDS_perl-module-pod-simple-linksection += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-linksection += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-methody += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-methody += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-methody += "perl-module-vars" -RDEPENDS_perl-module-pod-simple += "perl-module-integer" -RDEPENDS_perl-module-pod-simple += "perl-module-pod-escapes" -RDEPENDS_perl-module-pod-simple += "perl-module-pod-simple-blackbox" -RDEPENDS_perl-module-pod-simple += "perl-module-pod-simple-linksection" -RDEPENDS_perl-module-pod-simple += "perl-module-pod-simple-tiedoutfh" -RDEPENDS_perl-module-pod-simple += "perl-module-strict" -RDEPENDS_perl-module-pod-simple += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-progress += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-pullparserendtoken += "perl-module-pod-simple-pullparsertoken" -RDEPENDS_perl-module-pod-simple-pullparserendtoken += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-pullparserendtoken += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-pod-simple-pullparserendtoken" -RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-pod-simple-pullparserstarttoken" -RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-pod-simple-pullparsertexttoken" -RDEPENDS_perl-module-pod-simple-pullparser += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-pullparserstarttoken += "perl-module-pod-simple-pullparsertoken" -RDEPENDS_perl-module-pod-simple-pullparserstarttoken += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-pullparserstarttoken += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-pod-simple-pullparsertoken" -RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-pullparsertoken += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-rtf += "perl-module-integer" -RDEPENDS_perl-module-pod-simple-rtf += "perl-module-pod-simple-pullparser" -RDEPENDS_perl-module-pod-simple-rtf += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-rtf += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-search += "perl-module-config" -RDEPENDS_perl-module-pod-simple-search += "perl-module-cwd" -RDEPENDS_perl-module-pod-simple-search += "perl-module-file-basename" -RDEPENDS_perl-module-pod-simple-search += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-search += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-simpletree += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-simpletree += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-simpletree += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-textcontent += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-textcontent += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-textcontent += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-text += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-text += "perl-module-pod-simple-methody" -RDEPENDS_perl-module-pod-simple-text += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-text += "perl-module-text-wrap" -RDEPENDS_perl-module-pod-simple-text += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-tiedoutfh += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-tiedoutfh += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-transcode += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-transcode += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-encode" -RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-vars" -RDEPENDS_perl-module-pod-simple-xmloutstream += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-simple-xmloutstream += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-xmloutstream += "perl-module-vars" -RDEPENDS_perl-module-pod-text-color += "perl-module-pod-text" -RDEPENDS_perl-module-pod-text-color += "perl-module-strict" -RDEPENDS_perl-module-pod-text-color += "perl-module-term-ansicolor" -RDEPENDS_perl-module-pod-text-color += "perl-module-vars" -RDEPENDS_perl-module-pod-text-color += "perl-module-warnings" -RDEPENDS_perl-module-pod-text-overstrike += "perl-module-pod-text" -RDEPENDS_perl-module-pod-text-overstrike += "perl-module-strict" -RDEPENDS_perl-module-pod-text-overstrike += "perl-module-vars" -RDEPENDS_perl-module-pod-text-overstrike += "perl-module-warnings" -RDEPENDS_perl-module-pod-text += "perl-module-encode" -RDEPENDS_perl-module-pod-text += "perl-module-exporter" -RDEPENDS_perl-module-pod-text += "perl-module-pod-simple" -RDEPENDS_perl-module-pod-text += "perl-module-strict" -RDEPENDS_perl-module-pod-text += "perl-module-vars" -RDEPENDS_perl-module-pod-text += "perl-module-warnings" -RDEPENDS_perl-module-pod-text-termcap += "perl-module-pod-text" -RDEPENDS_perl-module-pod-text-termcap += "perl-module-posix" -RDEPENDS_perl-module-pod-text-termcap += "perl-module-strict" -RDEPENDS_perl-module-pod-text-termcap += "perl-module-term-cap" -RDEPENDS_perl-module-pod-text-termcap += "perl-module-vars" -RDEPENDS_perl-module-pod-text-termcap += "perl-module-warnings" -RDEPENDS_perl-module-pod-usage += "perl-module-config" -RDEPENDS_perl-module-pod-usage += "perl-module-exporter" -RDEPENDS_perl-module-pod-usage += "perl-module-strict" -RDEPENDS_perl-module-pod-usage += "perl-module-vars" -RDEPENDS_perl-module-posix += "perl-module-exporter" -RDEPENDS_perl-module-posix += "perl-module-fcntl" -RDEPENDS_perl-module-posix += "perl-module-strict" -RDEPENDS_perl-module-posix += "perl-module-tie-hash" -RDEPENDS_perl-module-posix += "perl-module-warnings" -RDEPENDS_perl-module-posix += "perl-module-xsloader" -RDEPENDS_perl-module-re += "perl-module-exporter" -RDEPENDS_perl-module-re += "perl-module-strict" -RDEPENDS_perl-module-re += "perl-module-term-cap" -RDEPENDS_perl-module-re += "perl-module-warnings" -RDEPENDS_perl-module-re += "perl-module-xsloader" -RDEPENDS_perl-module-safe += "perl-module-b" -RDEPENDS_perl-module-safe += "perl-module-opcode" -RDEPENDS_perl-module-safe += "perl-module-strict" -RDEPENDS_perl-module-safe += "perl-module-utf8" -RDEPENDS_perl-module-scalar-util += "perl-module-carp" -RDEPENDS_perl-module-scalar-util += "perl-module-exporter" -RDEPENDS_perl-module-scalar-util += "perl-module-list-util" -RDEPENDS_perl-module-scalar-util += "perl-module-strict" -RDEPENDS_perl-module-scalar-util += "perl-module-warnings" -RDEPENDS_perl-module-sdbm-file += "perl-module-exporter" -RDEPENDS_perl-module-sdbm-file += "perl-module-strict" -RDEPENDS_perl-module-sdbm-file += "perl-module-tie-hash" -RDEPENDS_perl-module-sdbm-file += "perl-module-warnings" -RDEPENDS_perl-module-sdbm-file += "perl-module-xsloader" -RDEPENDS_perl-module-search-dict += "perl-module-exporter" -RDEPENDS_perl-module-search-dict += "perl-module-feature" -RDEPENDS_perl-module-search-dict += "perl-module-strict" -RDEPENDS_perl-module-selfloader += "perl-module-exporter" -RDEPENDS_perl-module-selfloader += "perl-module-io-handle" -RDEPENDS_perl-module-selfloader += "perl-module-strict" -RDEPENDS_perl-module-socket += "perl-module-exporter" -RDEPENDS_perl-module-socket += "perl-module-strict" -RDEPENDS_perl-module-socket += "perl-module-warnings-register" -RDEPENDS_perl-module-socket += "perl-module-xsloader" -RDEPENDS_perl-module-sort += "perl-module-strict" -RDEPENDS_perl-module-storable += "perl-module-exporter" -RDEPENDS_perl-module-storable += "perl-module-io-file" -RDEPENDS_perl-module-storable += "perl-module-xsloader" -RDEPENDS_perl-module-sub-util += "perl-module-exporter" -RDEPENDS_perl-module-sub-util += "perl-module-list-util" -RDEPENDS_perl-module-sub-util += "perl-module-strict" -RDEPENDS_perl-module-sub-util += "perl-module-warnings" -RDEPENDS_perl-module-sys-hostname += "perl-module-exporter" -RDEPENDS_perl-module-sys-hostname += "perl-module-posix" -RDEPENDS_perl-module-sys-hostname += "perl-module-strict" -RDEPENDS_perl-module-sys-hostname += "perl-module-warnings" -RDEPENDS_perl-module-sys-hostname += "perl-module-xsloader" -RDEPENDS_perl-module-sys-syslog += "perl-module-config" -RDEPENDS_perl-module-sys-syslog += "perl-module-constant" -RDEPENDS_perl-module-sys-syslog += "perl-module-dynaloader" -RDEPENDS_perl-module-sys-syslog += "perl-module-exporter" -RDEPENDS_perl-module-sys-syslog += "perl-module-fcntl" -RDEPENDS_perl-module-sys-syslog += "perl-module-file-basename" -RDEPENDS_perl-module-sys-syslog += "perl-module-posix" -RDEPENDS_perl-module-sys-syslog += "perl-module-socket" -RDEPENDS_perl-module-sys-syslog += "perl-module-strict" -RDEPENDS_perl-module-sys-syslog += "perl-module-sys-hostname" -RDEPENDS_perl-module-sys-syslog += "perl-module-vars" -RDEPENDS_perl-module-sys-syslog += "perl-module-warnings" -RDEPENDS_perl-module-sys-syslog += "perl-module-warnings-register" -RDEPENDS_perl-module-sys-syslog += "perl-module-xsloader" -RDEPENDS_perl-module-tap-base += "perl-module-base" -RDEPENDS_perl-module-tap-base += "perl-module-constant" -RDEPENDS_perl-module-tap-base += "perl-module-strict" -RDEPENDS_perl-module-tap-base += "perl-module-tap-object" -RDEPENDS_perl-module-tap-base += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-base += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-base += "perl-module-posix" -RDEPENDS_perl-module-tap-formatter-base += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-base += "perl-module-tap-formatter-color" -RDEPENDS_perl-module-tap-formatter-base += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-color += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-color += "perl-module-constant" -RDEPENDS_perl-module-tap-formatter-color += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-color += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-constant" -RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-file-path" -RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-console-parallelsession += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-console += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-console += "perl-module-posix" -RDEPENDS_perl-module-tap-formatter-console += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-console += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-console-session += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-console-session += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-console-session += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-posix" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-file-session" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-warnings" -RDEPENDS_perl-module-tap-formatter-session += "perl-module-base" -RDEPENDS_perl-module-tap-formatter-session += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-session += "perl-module-warnings" -RDEPENDS_perl-module-tap-harness-env += "perl-module-constant" -RDEPENDS_perl-module-tap-harness-env += "perl-module-strict" -RDEPENDS_perl-module-tap-harness-env += "perl-module-tap-object" -RDEPENDS_perl-module-tap-harness-env += "perl-module-text-parsewords" -RDEPENDS_perl-module-tap-harness-env += "perl-module-warnings" -RDEPENDS_perl-module-tap-harness += "perl-module-base" -RDEPENDS_perl-module-tap-harness += "perl-module-carp" -RDEPENDS_perl-module-tap-harness += "perl-module-file-path" -RDEPENDS_perl-module-tap-harness += "perl-module-file-spec" -RDEPENDS_perl-module-tap-harness += "perl-module-io-handle" -RDEPENDS_perl-module-tap-harness += "perl-module-strict" -RDEPENDS_perl-module-tap-harness += "perl-module-tap-base" -RDEPENDS_perl-module-tap-harness += "perl-module-warnings" -RDEPENDS_perl-module-tap-object += "perl-module-strict" -RDEPENDS_perl-module-tap-object += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-base" -RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-benchmark" -RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-aggregator += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-grammar += "perl-module-base" -RDEPENDS_perl-module-tap-parser-grammar += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-grammar += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-grammar += "perl-module-tap-parser-resultfactory" -RDEPENDS_perl-module-tap-parser-grammar += "perl-module-tap-parser-yamlish-reader" -RDEPENDS_perl-module-tap-parser-grammar += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-base" -RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-tap-parser-iterator" -RDEPENDS_perl-module-tap-parser-iterator-array += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-base" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-carp" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-file-basename" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-iteratorfactory += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-iterator += "perl-module-base" -RDEPENDS_perl-module-tap-parser-iterator += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-iterator += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-iterator += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-base" -RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-config" -RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-io-handle" -RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-tap-parser-iterator" -RDEPENDS_perl-module-tap-parser-iterator-process += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-base" -RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-tap-parser-iterator" -RDEPENDS_perl-module-tap-parser-iterator-stream += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-base" -RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-io-select" -RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-multiplexer += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser += "perl-module-base" -RDEPENDS_perl-module-tap-parser += "perl-module-carp" -RDEPENDS_perl-module-tap-parser += "perl-module-strict" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-grammar" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-iterator" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-iteratorfactory" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-resultfactory" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-source" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-executable" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-file" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-handle" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-perl" -RDEPENDS_perl-module-tap-parser += "perl-module-tap-parser-sourcehandler-rawtap" -RDEPENDS_perl-module-tap-parser += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-bailout += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-comment += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-base" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-bailout" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-comment" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-plan" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-pragma" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-test" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-unknown" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-version" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result-yaml" -RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-result += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-plan += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-pragma += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-test += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-test += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-test += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-test += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-unknown += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-version += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-version += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-version += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-version += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-base" -RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-tap-parser-result" -RDEPENDS_perl-module-tap-parser-result-yaml += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-scheduler-job += "perl-module-carp" -RDEPENDS_perl-module-tap-parser-scheduler-job += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-scheduler-job += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-carp" -RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-tap-parser-scheduler-job" -RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-tap-parser-scheduler-spinner" -RDEPENDS_perl-module-tap-parser-scheduler += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-scheduler-spinner += "perl-module-carp" -RDEPENDS_perl-module-tap-parser-scheduler-spinner += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-scheduler-spinner += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-base" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-tap-parser-iteratorfactory" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-tap-parser-iterator-process" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-tap-parser-sourcehandler" -RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-base" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-tap-parser-iteratorfactory" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-tap-parser-iterator-stream" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-tap-parser-sourcehandler" -RDEPENDS_perl-module-tap-parser-sourcehandler-file += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-base" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-tap-parser-iteratorfactory" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-tap-parser-iterator-stream" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-tap-parser-sourcehandler" -RDEPENDS_perl-module-tap-parser-sourcehandler-handle += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-base" -RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-tap-parser-iterator" -RDEPENDS_perl-module-tap-parser-sourcehandler += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-base" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-config" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iteratorfactory" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iterator-process" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-sourcehandler-executable" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-text-parsewords" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-base" -RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-tap-parser-iterator-array" -RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-tap-parser-iteratorfactory" -RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-tap-parser-sourcehandler" -RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-source += "perl-module-base" -RDEPENDS_perl-module-tap-parser-source += "perl-module-constant" -RDEPENDS_perl-module-tap-parser-source += "perl-module-file-basename" -RDEPENDS_perl-module-tap-parser-source += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-source += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-source += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-base" -RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-yamlish-reader += "perl-module-warnings" -RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-base" -RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-strict" -RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-tap-object" -RDEPENDS_perl-module-tap-parser-yamlish-writer += "perl-module-warnings" -RDEPENDS_perl-module-term-ansicolor += "perl-module-exporter" -RDEPENDS_perl-module-term-ansicolor += "perl-module-strict" -RDEPENDS_perl-module-term-ansicolor += "perl-module-warnings" -RDEPENDS_perl-module-term-cap += "perl-module-strict" -RDEPENDS_perl-module-term-cap += "perl-module-vars" -RDEPENDS_perl-module-term-complete += "perl-module-exporter" -RDEPENDS_perl-module-term-complete += "perl-module-strict" -RDEPENDS_perl-module-term-readline += "perl-module-strict" -RDEPENDS_perl-module-term-readline += "perl-module-term-cap" -RDEPENDS_perl-module-test-builder-formatter += "perl-module-strict" -RDEPENDS_perl-module-test-builder-formatter += "perl-module-warnings" -RDEPENDS_perl-module-test-builder-module += "perl-module-exporter" -RDEPENDS_perl-module-test-builder-module += "perl-module-strict" -RDEPENDS_perl-module-test-builder-module += "perl-module-test-builder" -RDEPENDS_perl-module-test-builder += "perl-module-data-dumper" -RDEPENDS_perl-module-test-builder += "perl-module-list-util" -RDEPENDS_perl-module-test-builder += "perl-module-overload" -RDEPENDS_perl-module-test-builder += "perl-module-strict" -RDEPENDS_perl-module-test-builder += "perl-module-scalar-util" -RDEPENDS_perl-module-test-builder += "perl-module-test-builder-formatter" -RDEPENDS_perl-module-test-builder += "perl-module-test-builder-tododiag" -RDEPENDS_perl-module-test-builder += "perl-module-test2-api" -RDEPENDS_perl-module-test-builder += "perl-module-test2-util" -RDEPENDS_perl-module-test-builder += "perl-module-warnings" -RDEPENDS_perl-module-test-builder-formatter += "perl-module-strict" -RDEPENDS_perl-module-test-builder-formatter += "perl-module-test2-formatter" -RDEPENDS_perl-module-test-builder-formatter += "perl-module-test2-formatter-tap" -RDEPENDS_perl-module-test-builder-formatter += "perl-module-test2-util-hashbase" -RDEPENDS_perl-module-test-builder-formatter += "perl-module-warnings" -RDEPENDS_perl-module-test-builder-tester-color += "perl-module-strict" -RDEPENDS_perl-module-test-builder-tester-color += "perl-module-test-builder-tester" -RDEPENDS_perl-module-test-builder-tester += "perl-module-exporter" -RDEPENDS_perl-module-test-builder-tester += "perl-module-strict" -RDEPENDS_perl-module-test-builder-tester += "perl-module-test-builder" -RDEPENDS_perl-module-test-builder-tododiag += "perl-module-strict" -RDEPENDS_perl-module-test-builder-tododiag += "perl-module-warnings" -RDEPENDS_perl-module-test-harness += "perl-module-base" -RDEPENDS_perl-module-test-harness += "perl-module-config" -RDEPENDS_perl-module-test-harness += "perl-module-constant" -RDEPENDS_perl-module-test-harness += "perl-module-strict" -RDEPENDS_perl-module-test-harness += "perl-module-tap-harness" -RDEPENDS_perl-module-test-harness += "perl-module-tap-parser-aggregator" -RDEPENDS_perl-module-test-harness += "perl-module-tap-parser-source" -RDEPENDS_perl-module-test-harness += "perl-module-tap-parser-sourcehandler-perl" -RDEPENDS_perl-module-test-harness += "perl-module-text-parsewords" -RDEPENDS_perl-module-test-harness += "perl-module-warnings" -RDEPENDS_perl-module-test-more += "perl-module-file-temp" -RDEPENDS_perl-module-test-more += "perl-module-strict" -RDEPENDS_perl-module-test-more += "perl-module-test-builder-module" -RDEPENDS_perl-module-test-more += "perl-module-warnings" -RDEPENDS_perl-module-test += "perl-module-exporter" -RDEPENDS_perl-module-test += "perl-module-file-temp" -RDEPENDS_perl-module-test += "perl-module-strict" -RDEPENDS_perl-module-test-simple += "perl-module-strict" -RDEPENDS_perl-module-test-simple += "perl-module-test-builder-module" -RDEPENDS_perl-module-test-tester-capture += "perl-module-config" -RDEPENDS_perl-module-test-tester-capture += "perl-module-strict" -RDEPENDS_perl-module-test-tester-capture += "perl-module-test-builder" -RDEPENDS_perl-module-test-tester-capture += "perl-module-threads-shared" -RDEPENDS_perl-module-test-tester-capture += "perl-module-vars" -RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-exporter" -RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-strict" -RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-test-tester-capture" -RDEPENDS_perl-module-test-tester-delegate += "perl-module-strict" -RDEPENDS_perl-module-test-tester-delegate += "perl-module-vars" -RDEPENDS_perl-module-test-tester-delegate += "perl-module-warnings" -RDEPENDS_perl-module-test-tester += "perl-module-exporter" -RDEPENDS_perl-module-test-tester += "perl-module-strict" -RDEPENDS_perl-module-test-tester += "perl-module-test-builder" -RDEPENDS_perl-module-test-tester += "perl-module-test-tester-capturerunner" -RDEPENDS_perl-module-test-tester += "perl-module-test-tester-delegate" -RDEPENDS_perl-module-test-tester += "perl-module-vars" -RDEPENDS_perl-module-test2-api += "perl-module-carp" -RDEPENDS_perl-module-test2-api += "perl-module-exporter" -RDEPENDS_perl-module-test2-api += "perl-module-scalar-util" -RDEPENDS_perl-module-test2-api += "perl-module-strict" -RDEPENDS_perl-module-test2-api += "perl-module-test2-api-context" -RDEPENDS_perl-module-test2-api += "perl-module-test2-api-instance" -RDEPENDS_perl-module-test2-api += "perl-module-test2-api-stack" -RDEPENDS_perl-module-test2-api += "perl-module-test2-event" -RDEPENDS_perl-module-test2-api += "perl-module-test2-event-bail" -RDEPENDS_perl-module-test2-api += "perl-module-test2-event-diag" -RDEPENDS_perl-module-test2-api += "perl-module-test2-event-exception" -RDEPENDS_perl-module-test2-api += "perl-module-test2-event-fail" -RDEPENDS_perl-module-test2-api += "perl-module-test2-event-note" -RDEPENDS_perl-module-test2-api += "perl-module-test2-event-ok" -RDEPENDS_perl-module-test2-api += "perl-module-test2-event-plan" -RDEPENDS_perl-module-test2-api += "perl-module-test2-event-skip" -RDEPENDS_perl-module-test2-api += "perl-module-test2-event-subtest" -RDEPENDS_perl-module-test2-api += "perl-module-test2-event-waiting" -RDEPENDS_perl-module-test2-api += "perl-module-test2-eventfacet-trace" -RDEPENDS_perl-module-test2-api += "perl-module-test2-hub" -RDEPENDS_perl-module-test2-api += "perl-module-test2-hub-interceptor" -RDEPENDS_perl-module-test2-api += "perl-module-test2-hub-interceptor-terminator" -RDEPENDS_perl-module-test2-api += "perl-module-test2-hub-subtest" -RDEPENDS_perl-module-test2-api += "perl-module-test2-util" -RDEPENDS_perl-module-test2-api += "perl-module-test2-util-trace" -RDEPENDS_perl-module-test2-api += "perl-module-warnings" -RDEPENDS_perl-module-test2-api-context += "perl-module-carp" -RDEPENDS_perl-module-test2-api-context += "perl-module-scalar-util" -RDEPENDS_perl-module-test2-api-context += "perl-module-strict" -RDEPENDS_perl-module-test2-api-context += "perl-module-test2-api" -RDEPENDS_perl-module-test2-api-context += "perl-module-test2-event-v2" -RDEPENDS_perl-module-test2-api-context += "perl-module-test2-eventfacet" -RDEPENDS_perl-module-test2-api-context += "perl-module-test2-eventfacet-trace" -RDEPENDS_perl-module-test2-api-context += "perl-module-test2-util" -RDEPENDS_perl-module-test2-api-context += "perl-module-test2-util-externalmeta" -RDEPENDS_perl-module-test2-api-context += "perl-module-test2-util-hashbase" -RDEPENDS_perl-module-test2-api-context += "perl-module-warnings" -RDEPENDS_perl-module-test2-event += "perl-module-carp" -RDEPENDS_perl-module-test2-event += "perl-module-scalar-util" -RDEPENDS_perl-module-test2-event += "perl-module-strict" -RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet" -RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-about" -RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-amnesty" -RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-assert" -RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-control" -RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-error" -RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-hub" -RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-info" -RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-meta" -RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-parent" -RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-plan" -RDEPENDS_perl-module-test2-event += "perl-module-test2-eventfacet-trace" -RDEPENDS_perl-module-test2-event += "perl-module-test2-util" -RDEPENDS_perl-module-test2-event += "perl-module-test2-util-externalmeta" -RDEPENDS_perl-module-test2-event += "perl-module-test2-util-hashbase" -RDEPENDS_perl-module-test2-event += "perl-module-test2-util-trace" -RDEPENDS_perl-module-test2-event += "perl-module-warnings" -RDEPENDS_perl-module-test2-event-v2 += "perl-module-carp" -RDEPENDS_perl-module-test2-event-v2 += "perl-module-scalar-util" -RDEPENDS_perl-module-test2-event-v2 += "perl-module-test2-util-facets2legacy" -RDEPENDS_perl-module-test2-event-v2 += "perl-module-test2-util-hashbase" -RDEPENDS_perl-module-test2-event-v2 += "perl-module-strict" -RDEPENDS_perl-module-test2-event-v2 += "perl-module-warnings" -RDEPENDS_perl-module-test2-eventfacet += "perl-module-carp" -RDEPENDS_perl-module-test2-eventfacet += "perl-module-test2-util" -RDEPENDS_perl-module-test2-eventfacet += "perl-module-test2-util-hashbase" -RDEPENDS_perl-module-test2-eventfacet += "perl-module-strict" -RDEPENDS_perl-module-test2-eventfacet += "perl-module-warnings" -RDEPENDS_perl-module-test2-hub += "perl-module-carp" -RDEPENDS_perl-module-test2-hub += "perl-module-list-util" -RDEPENDS_perl-module-test2-hub += "perl-module-scalar-util" -RDEPENDS_perl-module-test2-hub += "perl-module-strict" -RDEPENDS_perl-module-test2-hub += "perl-module-test2-event-ok" -RDEPENDS_perl-module-test2-hub += "perl-module-test2-event-pass" -RDEPENDS_perl-module-test2-hub += "perl-module-test2-event-plan" -RDEPENDS_perl-module-test2-hub += "perl-module-test2-util" -RDEPENDS_perl-module-test2-hub += "perl-module-test2-util-externalmeta" -RDEPENDS_perl-module-test2-hub += "perl-module-test2-util-hashbase" -RDEPENDS_perl-module-test2-hub += "perl-module-warnings" -RDEPENDS_perl-module-test2-util += "perl-module-carp" -RDEPENDS_perl-module-test2-util += "perl-module-config" -RDEPENDS_perl-module-test2-util += "perl-module-posix" -RDEPENDS_perl-module-test2-util += "perl-module-strict" -RDEPENDS_perl-module-test2-util += "perl-module-warnings" -RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-base" -RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-carp" -RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-exporter" -RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-scalar-util" -RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-strict" -RDEPENDS_perl-module-test2-util-facets2legacy += "perl-module-warnings" -RDEPENDS_perl-module-test2-util-hashbase += "perl-module-carp" -RDEPENDS_perl-module-test2-util-hashbase += "perl-module-mro" -RDEPENDS_perl-module-test2-util-hashbase += "perl-module-strict" -RDEPENDS_perl-module-test2-util-hashbase += "perl-module-warnings" -RDEPENDS_perl-module-text-abbrev += "perl-module-exporter" -RDEPENDS_perl-module-text-balanced += "perl-module-exporter" -RDEPENDS_perl-module-text-balanced += "perl-module-overload" -RDEPENDS_perl-module-text-balanced += "perl-module-selfloader" -RDEPENDS_perl-module-text-balanced += "perl-module-strict" -RDEPENDS_perl-module-text-balanced += "perl-module-vars" -RDEPENDS_perl-module-text-parsewords += "perl-module-exporter" -RDEPENDS_perl-module-text-parsewords += "perl-module-strict" -RDEPENDS_perl-module-text-tabs += "perl-module-exporter" -RDEPENDS_perl-module-text-tabs += "perl-module-strict" -RDEPENDS_perl-module-text-tabs += "perl-module-vars" -RDEPENDS_perl-module-text-wrap += "perl-module-exporter" -RDEPENDS_perl-module-text-wrap += "perl-module-re" -RDEPENDS_perl-module-text-wrap += "perl-module-strict" -RDEPENDS_perl-module-text-wrap += "perl-module-text-tabs" -RDEPENDS_perl-module-text-wrap += "perl-module-vars" -RDEPENDS_perl-module-text-wrap += "perl-module-warnings-register" -RDEPENDS_perl-module-thread += "perl-module-config" -RDEPENDS_perl-module-thread += "perl-module-exporter" -RDEPENDS_perl-module-thread += "perl-module-strict" -RDEPENDS_perl-module-thread += "perl-module-threads" -RDEPENDS_perl-module-thread += "perl-module-threads-shared" -RDEPENDS_perl-module-thread += "perl-module-warnings" -RDEPENDS_perl-module-thread-queue += "perl-module-strict" -RDEPENDS_perl-module-thread-queue += "perl-module-threads-shared" -RDEPENDS_perl-module-thread-queue += "perl-module-warnings" -RDEPENDS_perl-module-thread-semaphore += "perl-module-strict" -RDEPENDS_perl-module-thread-semaphore += "perl-module-threads-shared" -RDEPENDS_perl-module-thread-semaphore += "perl-module-warnings" -RDEPENDS_perl-module-threads += "perl-module-config" -RDEPENDS_perl-module-threads += "perl-module-overload" -RDEPENDS_perl-module-threads += "perl-module-strict" -RDEPENDS_perl-module-threads += "perl-module-warnings" -RDEPENDS_perl-module-threads += "perl-module-xsloader" -RDEPENDS_perl-module-threads-shared += "perl-module-strict" -RDEPENDS_perl-module-threads-shared += "perl-module-warnings" -RDEPENDS_perl-module-threads-shared += "perl-module-xsloader" -RDEPENDS_perl-module-tie-array += "perl-module-strict" -RDEPENDS_perl-module-tie-file += "perl-module-fcntl" -RDEPENDS_perl-module-tie-file += "perl-module-posix" -RDEPENDS_perl-module-tie-file += "perl-module-strict" -RDEPENDS_perl-module-tie-handle += "perl-module-tie-stdhandle" -RDEPENDS_perl-module-tie-handle += "perl-module-warnings-register" -RDEPENDS_perl-module-tie-hash-namedcapture += "perl-module-strict" -RDEPENDS_perl-module-tie-hash-namedcapture += "perl-module-xsloader" -RDEPENDS_perl-module-tie-hash += "perl-module-warnings-register" -RDEPENDS_perl-module-tie-hash += "perl-module-carp" -RDEPENDS_perl-module-tie-memoize += "perl-module-strict" -RDEPENDS_perl-module-tie-memoize += "perl-module-tie-hash" -RDEPENDS_perl-module-tie-refhash += "perl-module-config" -RDEPENDS_perl-module-tie-refhash += "perl-module-overload" -RDEPENDS_perl-module-tie-refhash += "perl-module-strict" -RDEPENDS_perl-module-tie-refhash += "perl-module-tie-hash" -RDEPENDS_perl-module-tie-refhash += "perl-module-vars" -RDEPENDS_perl-module-tie-scalar += "perl-module-warnings-register" -RDEPENDS_perl-module-tie-stdhandle += "perl-module-strict" -RDEPENDS_perl-module-tie-stdhandle += "perl-module-tie-handle" -RDEPENDS_perl-module-tie-substrhash += "perl-module-integer" -RDEPENDS_perl-module-time-gmtime += "perl-module-exporter" -RDEPENDS_perl-module-time-gmtime += "perl-module-strict" -RDEPENDS_perl-module-time-gmtime += "perl-module-time-tm" -RDEPENDS_perl-module-time-hires += "perl-module-exporter" -RDEPENDS_perl-module-time-hires += "perl-module-strict" -RDEPENDS_perl-module-time-hires += "perl-module-xsloader" -RDEPENDS_perl-module-time-local += "perl-module-config" -RDEPENDS_perl-module-time-local += "perl-module-constant" -RDEPENDS_perl-module-time-local += "perl-module-exporter" -RDEPENDS_perl-module-time-local += "perl-module-parent" -RDEPENDS_perl-module-time-local += "perl-module-strict" -RDEPENDS_perl-module-time-localtime += "perl-module-exporter" -RDEPENDS_perl-module-time-localtime += "perl-module-strict" -RDEPENDS_perl-module-time-localtime += "perl-module-time-tm" -RDEPENDS_perl-module-time-piece += "perl-module-constant" -RDEPENDS_perl-module-time-piece += "perl-module-exporter" -RDEPENDS_perl-module-time-piece += "perl-module-integer" -RDEPENDS_perl-module-time-piece += "perl-module-overload" -RDEPENDS_perl-module-time-piece += "perl-module-strict" -RDEPENDS_perl-module-time-piece += "perl-module-time-local" -RDEPENDS_perl-module-time-piece += "perl-module-time-seconds" -RDEPENDS_perl-module-time-piece += "perl-module-xsloader" -RDEPENDS_perl-module-time-seconds += "perl-module-constant" -RDEPENDS_perl-module-time-seconds += "perl-module-exporter" -RDEPENDS_perl-module-time-seconds += "perl-module-overload" -RDEPENDS_perl-module-time-seconds += "perl-module-strict" -RDEPENDS_perl-module-time-tm += "perl-module-class-struct" -RDEPENDS_perl-module-time-tm += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-big5 += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-big5 += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-cjk-gb2312 += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-gb2312 += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-cjk-jisx0208 += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-jisx0208 += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-cjk-korean += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-korean += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-cjk-pinyin += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-pinyin += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-cjk-stroke += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-stroke += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-cjk-zhuyin += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-cjk-zhuyin += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate-locale += "perl-module-base" -RDEPENDS_perl-module-unicode-collate-locale += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate-locale += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate += "perl-module-constant" -RDEPENDS_perl-module-unicode-collate += "perl-module-strict" -RDEPENDS_perl-module-unicode-collate += "perl-module-warnings" -RDEPENDS_perl-module-unicode-collate += "perl-module-xsloader" -RDEPENDS_perl-module-unicode-normalize += "perl-module-exporter" -RDEPENDS_perl-module-unicode-normalize += "perl-module-strict" -RDEPENDS_perl-module-unicode-normalize += "perl-module-warnings" -RDEPENDS_perl-module-unicode-normalize += "perl-module-xsloader" -RDEPENDS_perl-module-unicode-ucd += "perl-module-charnames" -RDEPENDS_perl-module-unicode-ucd += "perl-module-exporter" -RDEPENDS_perl-module-unicode-ucd += "perl-module-feature" -RDEPENDS_perl-module-unicode-ucd += "perl-module-if" -RDEPENDS_perl-module-unicode-ucd += "perl-module-integer" -RDEPENDS_perl-module-unicode-ucd += "perl-module-strict" -RDEPENDS_perl-module-unicode-ucd += "perl-module-unicode-normalize" -RDEPENDS_perl-module-unicode-ucd += "perl-module-utf8-heavy" -RDEPENDS_perl-module-unicode-ucd += "perl-module-warnings" -RDEPENDS_perl-module-user-grent += "perl-module-class-struct" -RDEPENDS_perl-module-user-grent += "perl-module-exporter" -RDEPENDS_perl-module-user-grent += "perl-module-strict" -RDEPENDS_perl-module-user-pwent += "perl-module-class-struct" -RDEPENDS_perl-module-user-pwent += "perl-module-config" -RDEPENDS_perl-module-user-pwent += "perl-module-exporter" -RDEPENDS_perl-module-user-pwent += "perl-module-strict" -RDEPENDS_perl-module-user-pwent += "perl-module-warnings" -RDEPENDS_perl-module-utf8 += "perl-module-utf8-heavy" -RDEPENDS_perl-module-version += "perl-module-strict" -RDEPENDS_perl-module-version += "perl-module-version-regex" -RDEPENDS_perl-module-version += "perl-module-warnings-register" -RDEPENDS_perl-module-version-regex += "perl-module-strict" -RDEPENDS_perl-module-xsloader += "perl-module-dynaloader" -RDEPENDS_perl-module-anydbm-file += "perl-module-strict" -RDEPENDS_perl-module-anydbm-file += "perl-module-warnings" -RDEPENDS_perl-module-app-cpan += "perl-module-config" -RDEPENDS_perl-module-app-cpan += "perl-module-constant" -RDEPENDS_perl-module-app-cpan += "perl-module-cpan" -RDEPENDS_perl-module-app-cpan += "perl-module-cwd" -RDEPENDS_perl-module-app-cpan += "perl-module-data-dumper" -RDEPENDS_perl-module-app-cpan += "perl-module-file-basename" -RDEPENDS_perl-module-app-cpan += "perl-module-file-find" -RDEPENDS_perl-module-app-cpan += "perl-module-getopt-std" -RDEPENDS_perl-module-app-cpan += "perl-module-if" -RDEPENDS_perl-module-app-cpan += "perl-module-net-ping" -RDEPENDS_perl-module-app-cpan += "perl-module-strict" -RDEPENDS_perl-module-app-cpan += "perl-module-user-pwent" -RDEPENDS_perl-module-app-cpan += "perl-module-vars" -RDEPENDS_perl-module-app-cpan += "perl-module-warnings" -RDEPENDS_perl-module-app-prove += "perl-module-app-prove-state" -RDEPENDS_perl-module-app-prove += "perl-module-base" -RDEPENDS_perl-module-app-prove += "perl-module-constant" -RDEPENDS_perl-module-app-prove += "perl-module-getopt-long" -RDEPENDS_perl-module-app-prove += "perl-module-strict" -RDEPENDS_perl-module-app-prove += "perl-module-tap-harness" -RDEPENDS_perl-module-app-prove += "perl-module-tap-harness-env" -RDEPENDS_perl-module-app-prove += "perl-module-text-parsewords" -RDEPENDS_perl-module-app-prove += "perl-module-warnings" -RDEPENDS_perl-module-app-prove-state += "perl-module-app-prove-state-result" -RDEPENDS_perl-module-app-prove-state += "perl-module-base" -RDEPENDS_perl-module-app-prove-state += "perl-module-constant" -RDEPENDS_perl-module-app-prove-state += "perl-module-file-find" -RDEPENDS_perl-module-app-prove-state += "perl-module-strict" -RDEPENDS_perl-module-app-prove-state += "perl-module-tap-parser-yamlish-reader" -RDEPENDS_perl-module-app-prove-state += "perl-module-tap-parser-yamlish-writer" -RDEPENDS_perl-module-app-prove-state += "perl-module-warnings" -RDEPENDS_perl-module-app-prove-state-result += "perl-module-app-prove-state-result-test" -RDEPENDS_perl-module-app-prove-state-result += "perl-module-constant" -RDEPENDS_perl-module-app-prove-state-result += "perl-module-strict" -RDEPENDS_perl-module-app-prove-state-result += "perl-module-warnings" -RDEPENDS_perl-module-app-prove-state-result-test += "perl-module-strict" -RDEPENDS_perl-module-app-prove-state-result-test += "perl-module-warnings" -RDEPENDS_perl-module-archive-tar-constant += "perl-module-constant" -RDEPENDS_perl-module-archive-tar-constant += "perl-module-exporter" -RDEPENDS_perl-module-archive-tar-constant += "perl-module-io-compress-bzip2" -RDEPENDS_perl-module-archive-tar-constant += "perl-module-strict" -RDEPENDS_perl-module-archive-tar-constant += "perl-module-time-local" -RDEPENDS_perl-module-archive-tar-constant += "perl-module-warnings" -RDEPENDS_perl-module-archive-tar-file += "perl-module-archive-tar" -RDEPENDS_perl-module-archive-tar-file += "perl-module-archive-tar-constant" -RDEPENDS_perl-module-archive-tar-file += "perl-module-file-basename" -RDEPENDS_perl-module-archive-tar-file += "perl-module-io-file" -RDEPENDS_perl-module-archive-tar-file += "perl-module-strict" -RDEPENDS_perl-module-archive-tar-file += "perl-module-vars" -RDEPENDS_perl-module-archive-tar += "perl-module-archive-tar-constant" -RDEPENDS_perl-module-archive-tar += "perl-module-archive-tar-file" -RDEPENDS_perl-module-archive-tar += "perl-module-config" -RDEPENDS_perl-module-archive-tar += "perl-module-cwd" -RDEPENDS_perl-module-archive-tar += "perl-module-exporter" -RDEPENDS_perl-module-archive-tar += "perl-module-file-path" -RDEPENDS_perl-module-archive-tar += "perl-module-io-file" -RDEPENDS_perl-module-archive-tar += "perl-module-io-zlib" -RDEPENDS_perl-module-archive-tar += "perl-module-strict" -RDEPENDS_perl-module-archive-tar += "perl-module-vars" -RDEPENDS_perl-module-arybase += "perl-module-xsloader" -RDEPENDS_perl-module-attribute-handlers += "perl-module-strict" -RDEPENDS_perl-module-attribute-handlers += "perl-module-warnings" -RDEPENDS_perl-module-attributes += "perl-module-exporter" -RDEPENDS_perl-module-attributes += "perl-module-strict" -RDEPENDS_perl-module-attributes += "perl-module-warnings" -RDEPENDS_perl-module-attributes += "perl-module-xsloader" -RDEPENDS_perl-module-autodie-exception += "perl-module-constant" -RDEPENDS_perl-module-autodie-exception += "perl-module-fatal" -RDEPENDS_perl-module-autodie-exception += "perl-module-fcntl" -RDEPENDS_perl-module-autodie-exception += "perl-module-overload" -RDEPENDS_perl-module-autodie-exception += "perl-module-strict" -RDEPENDS_perl-module-autodie-exception += "perl-module-warnings" -RDEPENDS_perl-module-autodie-exception-system += "perl-module-parent" -RDEPENDS_perl-module-autodie-exception-system += "perl-module-strict" -RDEPENDS_perl-module-autodie-exception-system += "perl-module-warnings" -RDEPENDS_perl-module-autodie-hints += "perl-module-b" -RDEPENDS_perl-module-autodie-hints += "perl-module-constant" -RDEPENDS_perl-module-autodie-hints += "perl-module-strict" -RDEPENDS_perl-module-autodie-hints += "perl-module-warnings" -RDEPENDS_perl-module-autodie += "perl-module-constant" -RDEPENDS_perl-module-autodie += "perl-module-lib" -RDEPENDS_perl-module-autodie += "perl-module-parent" -RDEPENDS_perl-module-autodie += "perl-module-strict" -RDEPENDS_perl-module-autodie += "perl-module-warnings" -RDEPENDS_perl-module-autodie-scope-guard += "perl-module-strict" -RDEPENDS_perl-module-autodie-scope-guard += "perl-module-warnings" -RDEPENDS_perl-module-autodie-scope-guardstack += "perl-module-autodie-scope-guard" -RDEPENDS_perl-module-autodie-scope-guardstack += "perl-module-strict" -RDEPENDS_perl-module-autodie-scope-guardstack += "perl-module-warnings" -RDEPENDS_perl-module-autodie-skip += "perl-module-strict" -RDEPENDS_perl-module-autodie-skip += "perl-module-warnings" -RDEPENDS_perl-module-autodie-util += "perl-module-autodie-scope-guardstack" -RDEPENDS_perl-module-autodie-util += "perl-module-exporter" -RDEPENDS_perl-module-autodie-util += "perl-module-strict" -RDEPENDS_perl-module-autodie-util += "perl-module-warnings" -RDEPENDS_perl-module-autoloader += "perl-module-strict" -RDEPENDS_perl-module-autosplit += "perl-module-config" -RDEPENDS_perl-module-autosplit += "perl-module-exporter" -RDEPENDS_perl-module-autosplit += "perl-module-file-basename" -RDEPENDS_perl-module-autosplit += "perl-module-file-path" -RDEPENDS_perl-module-autosplit += "perl-module-strict" -RDEPENDS_perl-module-base += "perl-module-strict" -RDEPENDS_perl-module-b-concise += "perl-module-b" -RDEPENDS_perl-module-b-concise += "perl-module-b-op-private" -RDEPENDS_perl-module-b-concise += "perl-module-config" -RDEPENDS_perl-module-b-concise += "perl-module-exporter" -RDEPENDS_perl-module-b-concise += "perl-module-feature" -RDEPENDS_perl-module-b-concise += "perl-module-strict" -RDEPENDS_perl-module-b-concise += "perl-module-warnings" -RDEPENDS_perl-module-b-debug += "perl-module-b" -RDEPENDS_perl-module-b-debug += "perl-module-config" -RDEPENDS_perl-module-b-debug += "perl-module-strict" -RDEPENDS_perl-module-benchmark += "perl-module-exporter" -RDEPENDS_perl-module-benchmark += "perl-module-strict" -RDEPENDS_perl-module-bigint += "perl-module-constant" -RDEPENDS_perl-module-bigint += "perl-module-exporter" -RDEPENDS_perl-module-bigint += "perl-module-math-bigint" -RDEPENDS_perl-module-bigint += "perl-module-math-bigint-trace" -RDEPENDS_perl-module-bigint += "perl-module-overload" -RDEPENDS_perl-module-bigint += "perl-module-strict" -RDEPENDS_perl-module-bigint += "perl-module-warnings" -RDEPENDS_perl-module-bignum += "perl-module-bigint" -RDEPENDS_perl-module-bignum += "perl-module-exporter" -RDEPENDS_perl-module-bignum += "perl-module-math-bigfloat" -RDEPENDS_perl-module-bignum += "perl-module-math-bigfloat-trace" -RDEPENDS_perl-module-bignum += "perl-module-math-bigint" -RDEPENDS_perl-module-bignum += "perl-module-math-bigint-trace" -RDEPENDS_perl-module-bignum += "perl-module-overload" -RDEPENDS_perl-module-bignum += "perl-module-strict" -RDEPENDS_perl-module-bignum += "perl-module-warnings" -RDEPENDS_perl-module-bigrat += "perl-module-bigint" -RDEPENDS_perl-module-bigrat += "perl-module-exporter" -RDEPENDS_perl-module-bigrat += "perl-module-math-bigfloat" -RDEPENDS_perl-module-bigrat += "perl-module-math-bigint" -RDEPENDS_perl-module-bigrat += "perl-module-math-bigint-trace" -RDEPENDS_perl-module-bigrat += "perl-module-math-bigrat" -RDEPENDS_perl-module-bigrat += "perl-module-overload" -RDEPENDS_perl-module-bigrat += "perl-module-strict" -RDEPENDS_perl-module-bigrat += "perl-module-warnings" -RDEPENDS_perl-module-blib += "perl-module-cwd" -RDEPENDS_perl-module-b += "perl-module-exporter" -RDEPENDS_perl-module-b += "perl-module-xsloader" -RDEPENDS_perl-module-b-showlex += "perl-module-b" -RDEPENDS_perl-module-b-showlex += "perl-module-b-concise" -RDEPENDS_perl-module-b-showlex += "perl-module-b-terse" -RDEPENDS_perl-module-b-showlex += "perl-module-strict" -RDEPENDS_perl-module-b-terse += "perl-module-b" -RDEPENDS_perl-module-b-terse += "perl-module-b-concise" -RDEPENDS_perl-module-b-terse += "perl-module-strict" -RDEPENDS_perl-module-b-xref += "perl-module-b" -RDEPENDS_perl-module-b-xref += "perl-module-config" -RDEPENDS_perl-module-b-xref += "perl-module-strict" -RDEPENDS_perl-module-bytes += "perl-module-bytes-heavy" -RDEPENDS_perl-module--charnames += "perl-module-bytes" -RDEPENDS_perl-module-charnames += "perl-module-bytes" -RDEPENDS_perl-module-charnames += "perl-module--charnames" -RDEPENDS_perl-module--charnames += "perl-module-re" -RDEPENDS_perl-module-charnames += "perl-module-re" -RDEPENDS_perl-module--charnames += "perl-module-strict" -RDEPENDS_perl-module-charnames += "perl-module-strict" -RDEPENDS_perl-module--charnames += "perl-module-warnings" -RDEPENDS_perl-module-charnames += "perl-module-warnings" -RDEPENDS_perl-module-class-struct += "perl-module-exporter" -RDEPENDS_perl-module-class-struct += "perl-module-strict" -RDEPENDS_perl-module-class-struct += "perl-module-warnings-register" -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-bytes " -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-constant" -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-dynaloader" -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-exporter" -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-strict " -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-warnings " -RDEPENDS_perl-module-compress-raw-bzip2 += "perl-module-xsloader" -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-bytes " -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-constant" -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-dynaloader" -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-exporter" -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-strict " -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-warnings " -RDEPENDS_perl-module-compress-raw-zlib += "perl-module-xsloader" -RDEPENDS_perl-module-compress-zlib += "perl-module-bytes " -RDEPENDS_perl-module-compress-zlib += "perl-module-compress-raw-zlib" -RDEPENDS_perl-module-compress-zlib += "perl-module-constant" -RDEPENDS_perl-module-compress-zlib += "perl-module-exporter" -RDEPENDS_perl-module-compress-zlib += "perl-module-io-compress-base-common" -RDEPENDS_perl-module-compress-zlib += "perl-module-io-compress-gzip" -RDEPENDS_perl-module-compress-zlib += "perl-module-io-compress-gzip-constants" -RDEPENDS_perl-module-compress-zlib += "perl-module-io-handle " -RDEPENDS_perl-module-compress-zlib += "perl-module-io-uncompress-gunzip" -RDEPENDS_perl-module-compress-zlib += "perl-module-strict " -RDEPENDS_perl-module-compress-zlib += "perl-module-warnings " -RDEPENDS_perl-module-config-extensions += "perl-module-config" -RDEPENDS_perl-module-config-extensions += "perl-module-exporter" -RDEPENDS_perl-module-config-extensions += "perl-module-strict" -RDEPENDS_perl-module-config += "perl-module-strict" -RDEPENDS_perl-module-config += "perl-module-warnings" RDEPENDS_perl-module-config-perl-v += "perl-module-config" RDEPENDS_perl-module-config-perl-v += "perl-module-exporter" RDEPENDS_perl-module-config-perl-v += "perl-module-strict" @@ -2534,7 +220,6 @@ RDEPENDS_perl-module-cpan += "perl-module-json-pp" RDEPENDS_perl-module-cpan += "perl-module-lib" RDEPENDS_perl-module-cpan += "perl-module-net-ping" RDEPENDS_perl-module-cpan += "perl-module-overload" -RDEPENDS_perl-module-cpan += "perl-module-parse-cpan-meta" RDEPENDS_perl-module-cpan += "perl-module-posix" RDEPENDS_perl-module-cpan += "perl-module-safe" RDEPENDS_perl-module-cpan += "perl-module-strict" @@ -2553,6 +238,13 @@ RDEPENDS_perl-module-data-dumper += "perl-module-config" RDEPENDS_perl-module-data-dumper += "perl-module-constant" RDEPENDS_perl-module-data-dumper += "perl-module-exporter" RDEPENDS_perl-module-data-dumper += "perl-module-xsloader" +RDEPENDS_perl-module-db-file += "perl-module-dynaloader" +RDEPENDS_perl-module-db-file += "perl-module-exporter" +RDEPENDS_perl-module-db-file += "perl-module-fcntl" +RDEPENDS_perl-module-db-file += "perl-module-strict " +RDEPENDS_perl-module-db-file += "perl-module-strict" +RDEPENDS_perl-module-db-file += "perl-module-tie-hash" +RDEPENDS_perl-module-db-file += "perl-module-warnings" RDEPENDS_perl-module-dbm-filter-compress += "perl-module-strict" RDEPENDS_perl-module-dbm-filter-compress += "perl-module-warnings" RDEPENDS_perl-module-dbm-filter-encode += "perl-module-strict" @@ -2699,7 +391,6 @@ RDEPENDS_perl-module-encode += "perl-module-constant" RDEPENDS_perl-module-encode += "perl-module-encode-alias" RDEPENDS_perl-module-encode += "perl-module-encode-config" RDEPENDS_perl-module-encode += "perl-module-encode-configlocal-pm" -RDEPENDS_perl-module-encode += "perl-module-encode-encoding" RDEPENDS_perl-module-encode += "perl-module-encode-mime-name" RDEPENDS_perl-module-encode += "perl-module-exporter" RDEPENDS_perl-module-encode += "perl-module-parent" @@ -2886,7 +577,6 @@ RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-makemaker-confi RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-makemaker-version" RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-manifest" RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-mm" -RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-mm-unix" RDEPENDS_perl-module-extutils-makemaker += "perl-module-extutils-my" RDEPENDS_perl-module-extutils-makemaker += "perl-module-file-path" RDEPENDS_perl-module-extutils-makemaker += "perl-module-strict" @@ -3082,7 +772,6 @@ RDEPENDS_perl-module-file-fetch += "perl-module-load" RDEPENDS_perl-module-file-fetch += "perl-module-params-check" RDEPENDS_perl-module-file-fetch += "perl-module-strict" RDEPENDS_perl-module-file-fetch += "perl-module-vars" -RDEPENDS_perl-module-file-find += "perl-module-config" RDEPENDS_perl-module-file-find += "perl-module-cwd" RDEPENDS_perl-module-file-find += "perl-module-exporter" RDEPENDS_perl-module-file-find += "perl-module-file-basename" @@ -3094,7 +783,6 @@ RDEPENDS_perl-module-file-globmapper += "perl-module-strict" RDEPENDS_perl-module-file-globmapper += "perl-module-warnings" RDEPENDS_perl-module-file-glob += "perl-module-exporter" RDEPENDS_perl-module-file-glob += "perl-module-strict" -RDEPENDS_perl-module-file-glob += "perl-module-warnings" RDEPENDS_perl-module-file-glob += "perl-module-xsloader" RDEPENDS_perl-module-filehandle += "perl-module-exporter" RDEPENDS_perl-module-filehandle += "perl-module-fcntl" @@ -3123,9 +811,7 @@ RDEPENDS_perl-module-file-temp += "perl-module-io-seekable" RDEPENDS_perl-module-file-temp += "perl-module-overload" RDEPENDS_perl-module-file-temp += "perl-module-parent" RDEPENDS_perl-module-file-temp += "perl-module-posix" -RDEPENDS_perl-module-file-temp += "perl-module-file-spec" RDEPENDS_perl-module-file-temp += "perl-module-strict" -RDEPENDS_perl-module-file-temp += "perl-module-vars" RDEPENDS_perl-module-filter-simple += "perl-module-filter-util-call" RDEPENDS_perl-module-filter-simple += "perl-module-text-balanced" RDEPENDS_perl-module-filter-util-call += "perl-module-exporter" @@ -3135,6 +821,11 @@ RDEPENDS_perl-module-filter-util-call += "perl-module-xsloader" RDEPENDS_perl-module-findbin += "perl-module-cwd" RDEPENDS_perl-module-findbin += "perl-module-exporter" RDEPENDS_perl-module-findbin += "perl-module-file-basename" +RDEPENDS_perl-module-gdbm-file += "perl-module-exporter" +RDEPENDS_perl-module-gdbm-file += "perl-module-strict" +RDEPENDS_perl-module-gdbm-file += "perl-module-tie-hash" +RDEPENDS_perl-module-gdbm-file += "perl-module-warnings" +RDEPENDS_perl-module-gdbm-file += "perl-module-xsloader" RDEPENDS_perl-module-getopt-long += "perl-module-constant" RDEPENDS_perl-module-getopt-long += "perl-module-exporter" RDEPENDS_perl-module-getopt-long += "perl-module-overload" @@ -3389,6 +1080,7 @@ RDEPENDS_perl-module-io-uncompress-rawinflate += "perl-module-warnings" RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-bytes" RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-compress-raw-zlib" RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-constant" +RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-encode" RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-exporter " RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-fcntl" RDEPENDS_perl-module-io-uncompress-unzip += "perl-module-io-compress-base-common" @@ -3486,116 +1178,6 @@ RDEPENDS_perl-module-load += "perl-module-strict" RDEPENDS_perl-module-load += "perl-module-vars" RDEPENDS_perl-module-load += "perl-module-version" RDEPENDS_perl-module-load += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-constant" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-constants += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-country-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-country += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-country += "perl-module-if" -RDEPENDS_perl-module-locale-codes-country += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-country += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-country += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-country += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-country-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-currency-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-if" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-currency += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-currency-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langext-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-if" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langext += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langext-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langfam-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-if" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langfam += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langfam-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langfam-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-language-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-language += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-language += "perl-module-if" -RDEPENDS_perl-module-locale-codes-language += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-language += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-language += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-language += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-language-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langvar-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-if" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langvar += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-langvar-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes += "perl-module-if" -RDEPENDS_perl-module-locale-codes += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-script-codes += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-script += "perl-module-exporter" -RDEPENDS_perl-module-locale-codes-script += "perl-module-if" -RDEPENDS_perl-module-locale-codes-script += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-codes-script += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-codes-script += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-script += "perl-module-warnings" -RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-strict" -RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-utf8" -RDEPENDS_perl-module-locale-codes-script-retired += "perl-module-warnings" -RDEPENDS_perl-module-locale-country += "perl-module-exporter" -RDEPENDS_perl-module-locale-country += "perl-module-if" -RDEPENDS_perl-module-locale-country += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-country += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-country += "perl-module-strict" -RDEPENDS_perl-module-locale-country += "perl-module-warnings" -RDEPENDS_perl-module-locale-currency += "perl-module-exporter" -RDEPENDS_perl-module-locale-currency += "perl-module-if" -RDEPENDS_perl-module-locale-currency += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-currency += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-currency += "perl-module-strict" -RDEPENDS_perl-module-locale-currency += "perl-module-warnings" -RDEPENDS_perl-module-locale-language += "perl-module-exporter" -RDEPENDS_perl-module-locale-language += "perl-module-if" -RDEPENDS_perl-module-locale-language += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-language += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-language += "perl-module-strict" -RDEPENDS_perl-module-locale-language += "perl-module-warnings" RDEPENDS_perl-module-locale-maketext-gutsloader += "perl-module-locale-maketext" RDEPENDS_perl-module-locale-maketext-guts += "perl-module-locale-maketext" RDEPENDS_perl-module-locale-maketext += "perl-module-i18n-langtags" @@ -3605,12 +1187,6 @@ RDEPENDS_perl-module-locale-maketext += "perl-module-strict" RDEPENDS_perl-module-locale-maketext-simple += "perl-module-base" RDEPENDS_perl-module-locale-maketext-simple += "perl-module-strict" RDEPENDS_perl-module-locale += "perl-module-config" -RDEPENDS_perl-module-locale-script += "perl-module-exporter" -RDEPENDS_perl-module-locale-script += "perl-module-if" -RDEPENDS_perl-module-locale-script += "perl-module-locale-codes" -RDEPENDS_perl-module-locale-script += "perl-module-locale-codes-constants" -RDEPENDS_perl-module-locale-script += "perl-module-strict" -RDEPENDS_perl-module-locale-script += "perl-module-warnings" RDEPENDS_perl-module-math-bigfloat += "perl-module-exporter" RDEPENDS_perl-module-math-bigfloat += "perl-module-math-bigint" RDEPENDS_perl-module-math-bigfloat += "perl-module-math-complex" @@ -3622,8 +1198,6 @@ RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-math-bigfloat" RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-overload" RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-strict" RDEPENDS_perl-module-math-bigfloat-trace += "perl-module-warnings" -RDEPENDS_perl-module-math-bigint-calcemu += "perl-module-strict" -RDEPENDS_perl-module-math-bigint-calcemu += "perl-module-warnings" RDEPENDS_perl-module-math-bigint-calc += "perl-module-constant" RDEPENDS_perl-module-math-bigint-calc += "perl-module-integer" RDEPENDS_perl-module-math-bigint-calc += "perl-module-math-bigint-lib" @@ -3800,7 +1374,6 @@ RDEPENDS_perl-module-params-check += "perl-module-locale-maketext-simple" RDEPENDS_perl-module-params-check += "perl-module-strict" RDEPENDS_perl-module-params-check += "perl-module-vars" RDEPENDS_perl-module-parent += "perl-module-strict" -RDEPENDS_perl-module-parent += "perl-module-vars" RDEPENDS_perl-module-perlfaq += "perl-module-strict" RDEPENDS_perl-module-perlfaq += "perl-module-warnings" RDEPENDS_perl-module-perlio-encoding += "perl-module-strict" @@ -3820,16 +1393,8 @@ RDEPENDS_perl-module-pod-escapes += "perl-module-exporter" RDEPENDS_perl-module-pod-escapes += "perl-module-strict" RDEPENDS_perl-module-pod-escapes += "perl-module-vars" RDEPENDS_perl-module-pod-escapes += "perl-module-warnings" -RDEPENDS_perl-module-pod-find += "perl-module-config" -RDEPENDS_perl-module-pod-find += "perl-module-cwd" -RDEPENDS_perl-module-pod-find += "perl-module-exporter" -RDEPENDS_perl-module-pod-find += "perl-module-file-find" -RDEPENDS_perl-module-pod-find += "perl-module-strict" -RDEPENDS_perl-module-pod-find += "perl-module-vars" RDEPENDS_perl-module-pod-functions += "perl-module-exporter" RDEPENDS_perl-module-pod-functions += "perl-module-strict" -RDEPENDS_perl-module-pod-inputobjects += "perl-module-strict" -RDEPENDS_perl-module-pod-inputobjects += "perl-module-vars" RDEPENDS_perl-module-pod-man += "perl-module-file-basename" RDEPENDS_perl-module-pod-man += "perl-module-pod-simple" RDEPENDS_perl-module-pod-man += "perl-module-strict" @@ -3840,12 +1405,6 @@ RDEPENDS_perl-module-pod-parselink += "perl-module-exporter" RDEPENDS_perl-module-pod-parselink += "perl-module-strict" RDEPENDS_perl-module-pod-parselink += "perl-module-vars" RDEPENDS_perl-module-pod-parselink += "perl-module-warnings" -RDEPENDS_perl-module-pod-parser += "perl-module-exporter" -RDEPENDS_perl-module-pod-parser += "perl-module-pod-inputobjects" -RDEPENDS_perl-module-pod-parser += "perl-module-strict" -RDEPENDS_perl-module-pod-parser += "perl-module-vars" -RDEPENDS_perl-module-pod-parseutils += "perl-module-strict" -RDEPENDS_perl-module-pod-parseutils += "perl-module-vars" RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-config" RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-strict" RDEPENDS_perl-module-pod-perldoc-baseto += "perl-module-vars" @@ -3908,12 +1467,7 @@ RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-parent" RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-strict" RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-vars" RDEPENDS_perl-module-pod-perldoc-toxml += "perl-module-warnings" -RDEPENDS_perl-module-pod-plaintext += "perl-module-pod-select" -RDEPENDS_perl-module-pod-plaintext += "perl-module-strict" -RDEPENDS_perl-module-pod-plaintext += "perl-module-vars" -RDEPENDS_perl-module-pod-select += "perl-module-pod-parser" -RDEPENDS_perl-module-pod-select += "perl-module-strict" -RDEPENDS_perl-module-pod-select += "perl-module-vars" +RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-if" RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-integer" RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-pod-simple" RDEPENDS_perl-module-pod-simple-blackbox += "perl-module-pod-simple-transcode" @@ -3932,6 +1486,9 @@ RDEPENDS_perl-module-pod-simple-dumpastext += "perl-module-strict" RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-pod-simple" RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-strict" RDEPENDS_perl-module-pod-simple-dumpasxml += "perl-module-text-wrap" +RDEPENDS_perl-module-pod-simple-justpod += "perl-module-pod-simple-methody" +RDEPENDS_perl-module-pod-simple-justpod += "perl-module-strict" +RDEPENDS_perl-module-pod-simple-justpod += "perl-module-warnings" RDEPENDS_perl-module-pod-simple-linksection += "perl-module-overload" RDEPENDS_perl-module-pod-simple-linksection += "perl-module-pod-simple-blackbox" RDEPENDS_perl-module-pod-simple-linksection += "perl-module-strict" @@ -3962,6 +1519,7 @@ RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-pod-simple-p RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-strict" RDEPENDS_perl-module-pod-simple-pullparsertexttoken += "perl-module-vars" RDEPENDS_perl-module-pod-simple-pullparsertoken += "perl-module-strict" +RDEPENDS_perl-module-pod-simple-rtf += "perl-module-if" RDEPENDS_perl-module-pod-simple-rtf += "perl-module-integer" RDEPENDS_perl-module-pod-simple-rtf += "perl-module-pod-simple-pullparser" RDEPENDS_perl-module-pod-simple-rtf += "perl-module-strict" @@ -3987,8 +1545,6 @@ RDEPENDS_perl-module-pod-simple-tiedoutfh += "perl-module-vars" RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-strict" RDEPENDS_perl-module-pod-simple-transcodedumb += "perl-module-vars" RDEPENDS_perl-module-pod-simple-transcode += "perl-module-strict" -RDEPENDS_perl-module-pod-simple-transcode += "perl-module-pod-simple-transcodedumb" -RDEPENDS_perl-module-pod-simple-transcode += "perl-module-pod-simple-transcodesmart" RDEPENDS_perl-module-pod-simple-transcode += "perl-module-vars" RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-encode" RDEPENDS_perl-module-pod-simple-transcodesmart += "perl-module-pod-simple" @@ -4055,7 +1611,6 @@ RDEPENDS_perl-module-socket += "perl-module-xsloader" RDEPENDS_perl-module-sort += "perl-module-strict" RDEPENDS_perl-module-storable += "perl-module-exporter" RDEPENDS_perl-module-storable += "perl-module-io-file" -RDEPENDS_perl-module-storable += "perl-module-xsloader" RDEPENDS_perl-module-sub-util += "perl-module-exporter" RDEPENDS_perl-module-sub-util += "perl-module-list-util" RDEPENDS_perl-module-sub-util += "perl-module-strict" @@ -4082,7 +1637,6 @@ RDEPENDS_perl-module-sys-syslog += "perl-module-xsloader" RDEPENDS_perl-module-tap-base += "perl-module-base" RDEPENDS_perl-module-tap-base += "perl-module-constant" RDEPENDS_perl-module-tap-base += "perl-module-strict" -RDEPENDS_perl-module-tap-base += "perl-module-tap-object" RDEPENDS_perl-module-tap-base += "perl-module-warnings" RDEPENDS_perl-module-tap-formatter-base += "perl-module-base" RDEPENDS_perl-module-tap-formatter-base += "perl-module-posix" @@ -4108,9 +1662,7 @@ RDEPENDS_perl-module-tap-formatter-console-session += "perl-module-warnings" RDEPENDS_perl-module-tap-formatter-file += "perl-module-base" RDEPENDS_perl-module-tap-formatter-file += "perl-module-posix" RDEPENDS_perl-module-tap-formatter-file += "perl-module-strict" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-base" RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-file-session" -RDEPENDS_perl-module-tap-formatter-file += "perl-module-tap-formatter-session" RDEPENDS_perl-module-tap-formatter-file += "perl-module-warnings" RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-base" RDEPENDS_perl-module-tap-formatter-file-session += "perl-module-strict" @@ -4127,7 +1679,6 @@ RDEPENDS_perl-module-tap-harness += "perl-module-base" RDEPENDS_perl-module-tap-harness += "perl-module-file-path" RDEPENDS_perl-module-tap-harness += "perl-module-io-handle" RDEPENDS_perl-module-tap-harness += "perl-module-strict" -RDEPENDS_perl-module-tap-harness += "perl-module-tap-formatter-file" RDEPENDS_perl-module-tap-harness += "perl-module-warnings" RDEPENDS_perl-module-tap-object += "perl-module-strict" RDEPENDS_perl-module-tap-object += "perl-module-warnings" @@ -4252,7 +1803,6 @@ RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-constant" RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-strict" RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iteratorfactory" RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-iterator-process" -RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-tap-parser-sourcehandler-executable" RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-text-parsewords" RDEPENDS_perl-module-tap-parser-sourcehandler-perl += "perl-module-warnings" RDEPENDS_perl-module-tap-parser-sourcehandler-rawtap += "perl-module-base" @@ -4319,7 +1869,6 @@ RDEPENDS_perl-module-test-simple += "perl-module-test-builder-module" RDEPENDS_perl-module-test-tester-capture += "perl-module-config" RDEPENDS_perl-module-test-tester-capture += "perl-module-strict" RDEPENDS_perl-module-test-tester-capture += "perl-module-test-builder" -RDEPENDS_perl-module-test-tester-capture += "perl-module-threads-shared" RDEPENDS_perl-module-test-tester-capture += "perl-module-vars" RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-exporter" RDEPENDS_perl-module-test-tester-capturerunner += "perl-module-strict" @@ -4367,6 +1916,7 @@ RDEPENDS_perl-module-threads += "perl-module-overload" RDEPENDS_perl-module-threads += "perl-module-strict" RDEPENDS_perl-module-threads += "perl-module-warnings" RDEPENDS_perl-module-threads += "perl-module-xsloader" +RDEPENDS_perl-module-threads-shared += "perl-module-config" RDEPENDS_perl-module-threads-shared += "perl-module-strict" RDEPENDS_perl-module-threads-shared += "perl-module-warnings" RDEPENDS_perl-module-threads-shared += "perl-module-xsloader" @@ -4374,10 +1924,10 @@ RDEPENDS_perl-module-tie-array += "perl-module-strict" RDEPENDS_perl-module-tie-file += "perl-module-fcntl" RDEPENDS_perl-module-tie-file += "perl-module-posix" RDEPENDS_perl-module-tie-file += "perl-module-strict" +RDEPENDS_perl-module-tie-file += "perl-module-warnings" RDEPENDS_perl-module-tie-handle += "perl-module-tie-stdhandle" RDEPENDS_perl-module-tie-handle += "perl-module-warnings-register" RDEPENDS_perl-module-tie-hash-namedcapture += "perl-module-strict" -RDEPENDS_perl-module-tie-hash-namedcapture += "perl-module-xsloader" RDEPENDS_perl-module-tie-hash += "perl-module-warnings-register" RDEPENDS_perl-module-tie-memoize += "perl-module-strict" RDEPENDS_perl-module-tie-memoize += "perl-module-tie-hash" @@ -4448,9 +1998,9 @@ RDEPENDS_perl-module-unicode-ucd += "perl-module-exporter" RDEPENDS_perl-module-unicode-ucd += "perl-module-feature" RDEPENDS_perl-module-unicode-ucd += "perl-module-if" RDEPENDS_perl-module-unicode-ucd += "perl-module-integer" +RDEPENDS_perl-module-unicode-ucd += "perl-module-re" RDEPENDS_perl-module-unicode-ucd += "perl-module-strict" RDEPENDS_perl-module-unicode-ucd += "perl-module-unicode-normalize" -RDEPENDS_perl-module-unicode-ucd += "perl-module-utf8-heavy" RDEPENDS_perl-module-unicode-ucd += "perl-module-warnings" RDEPENDS_perl-module-user-grent += "perl-module-class-struct" RDEPENDS_perl-module-user-grent += "perl-module-exporter" @@ -4460,7 +2010,6 @@ RDEPENDS_perl-module-user-pwent += "perl-module-config" RDEPENDS_perl-module-user-pwent += "perl-module-exporter" RDEPENDS_perl-module-user-pwent += "perl-module-strict" RDEPENDS_perl-module-user-pwent += "perl-module-warnings" -RDEPENDS_perl-module-utf8 += "perl-module-utf8-heavy" RDEPENDS_perl-module-version += "perl-module-strict" RDEPENDS_perl-module-version += "perl-module-version-regex" RDEPENDS_perl-module-version += "perl-module-warnings-register" diff --git a/poky/meta/recipes-devtools/perl/perl_5.30.2.bb b/poky/meta/recipes-devtools/perl/perl_5.30.2.bb deleted file mode 100644 index 88a1c9665..000000000 --- a/poky/meta/recipes-devtools/perl/perl_5.30.2.bb +++ /dev/null @@ -1,387 +0,0 @@ -SUMMARY = "Perl scripting language" -HOMEPAGE = "http://www.perl.org/" -SECTION = "devel" -LICENSE = "Artistic-1.0 | GPL-1.0+" -LIC_FILES_CHKSUM = "file://Copying;md5=5b122a36d0f6dc55279a0ebc69f3c60b \ - file://Artistic;md5=71a4d5d9acc18c0952a6df2218bb68da \ - " - - -SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \ - https://github.com/arsv/perl-cross/releases/download/1.3.2/perl-cross-1.3.2.tar.gz;name=perl-cross \ - file://perl-rdepends.txt \ - file://0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch \ - file://0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch \ - file://0001-Somehow-this-module-breaks-through-the-perl-wrapper-.patch \ - file://errno_ver.diff \ - file://native-perlinc.patch \ - file://0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch \ - file://perl-dynloader.patch \ - file://0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch \ - file://0001-enc2xs-Add-environment-variable-to-suppress-comments.patch \ - file://0002-Constant-Fix-up-shebang.patch \ - file://0001-PATCH-perl-134117-Close-DATA-in-loc_tools.pl.patch \ - file://determinism.patch \ - " -SRC_URI_append_class-native = " \ - file://perl-configpm-switch.patch \ -" -SRC_URI_append_class-target = " \ - file://encodefix.patch \ -" - -SRC_URI[perl.sha256sum] = "66db7df8a91979eb576fac91743644da878244cf8ee152f02cd6f5cd7a731689" -SRC_URI[perl-cross.sha256sum] = "defa12f0ad7be0b6c48b4f76e2fb5b37c1b37fbeb6e9ebe938279cd539a0c20c" - -S = "${WORKDIR}/perl-${PV}" - -inherit upstream-version-is-even update-alternatives - -DEPENDS += "zlib virtual/crypt" - -PERL_LIB_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}.0" - -PACKAGECONFIG ??= "bdb gdbm" -PACKAGECONFIG[bdb] = ",-Ui_db,db" -PACKAGECONFIG[gdbm] = ",-Ui_gdbm,gdbm" - -# Don't generate comments in enc2xs output files. They are not reproducible -export ENC2XS_NO_COMMENTS = "1" - -do_unpack_append() { - bb.build.exec_func('do_copy_perlcross', d) -} - -do_copy_perlcross() { - cp -rfp ${WORKDIR}/perl-cross*/* ${S} -} - -do_configure_class-target() { - ./configure --prefix=${prefix} --libdir=${libdir} \ - --target=${TARGET_SYS} \ - -Duseshrplib \ - -Dsoname=libperl.so.5 \ - -Dvendorprefix=${prefix} \ - -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \ - ${PACKAGECONFIG_CONFARGS} - - #perl.c uses an ARCHLIB_EXP define to generate compile-time code that - #adds the archlibexp path to @INC during run-time initialization of a - #new perl interpreter. - - #Because we've changed this value in a temporary way to make it - #possible to use ExtUtils::Embed in the target build (the temporary - #value in config.sh gets re-stripped out during packaging), the - #ARCHLIB_EXP value that gets generated still uses the temporary version - #instead of the original expected version (i.e. becauses it's in the - #generated config.h, it doesn't get stripped out during packaging like - #the others in config.sh). - - sed -i -e "s,${STAGING_LIBDIR},${libdir},g" config.h -} - -do_configure_class-nativesdk() { - ./configure --prefix=${prefix} \ - --target=${TARGET_SYS} \ - -Duseshrplib \ - -Dsoname=libperl.so.5 \ - -Dvendorprefix=${prefix} \ - -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \ - ${PACKAGECONFIG_CONFARGS} - - # See the comment above - sed -i -e "s,${STAGING_LIBDIR},${libdir},g" config.h -} - -do_configure_class-native() { - ./configure --prefix=${prefix} \ - -Dbin=${bindir}/perl-native \ - -Duseshrplib \ - -Dsoname=libperl.so.5 \ - -Dvendorprefix=${prefix} \ - -Ui_xlocale \ - ${PACKAGECONFIG_CONFARGS} -} - -do_configure_append() { - if [ -n "$SOURCE_DATE_EPOCH" ]; then - PERL_BUILD_DATE="$(${PYTHON} -c "\ -from datetime import datetime, timezone; \ -print(datetime.fromtimestamp($SOURCE_DATE_EPOCH, timezone.utc).strftime('%a %b %d %H:%M:%S %Y')) \ - ")" - echo "#define PERL_BUILD_DATE \"$PERL_BUILD_DATE\"" >> config.h - fi -} - -do_compile() { - oe_runmake - # This isn't generated reliably so delete and re-generate. - # https://github.com/arsv/perl-cross/issues/86 - - if [ -e pod/perltoc.pod ]; then - bbnote Rebuilding perltoc.pod - rm -f pod/perltoc.pod - oe_runmake pod/perltoc.pod - fi -} - -do_install() { - oe_runmake 'DESTDIR=${D}' install - - install -d ${D}${libdir}/perl5 - install -d ${D}${libdir}/perl5/${PV}/ - install -d ${D}${libdir}/perl5/${PV}/ExtUtils/ - - # Save native config - install config.sh ${D}${libdir}/perl5 - install lib/Config.pm ${D}${libdir}/perl5/${PV}/ - install lib/ExtUtils/typemap ${D}${libdir}/perl5/${PV}/ExtUtils/ - - # Fix up shared library - rm ${D}/${libdir}/perl5/${PV}/*/CORE/libperl.so - ln -sf ../../../../libperl.so.${PERL_LIB_VER} $(echo ${D}/${libdir}/perl5/${PV}/*/CORE)/libperl.so -} - -do_install_append_class-target() { - # This is used to substitute target configuration when running native perl via perl-configpm-switch.patch - ln -s Config_heavy.pl ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy-target.pl - - # This contains host-specific information used for building miniperl (a helper executable built with host compiler) - # and therefore isn't reproducible. I believe the file isn't actually needed on target. - rm ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/xconfig.h -} - -do_install_append_class-nativesdk() { - # This is used to substitute target configuration when running native perl via perl-configpm-switch.patch - ln -s Config_heavy.pl ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy-target.pl - - create_wrapper ${D}${bindir}/perl \ - PERL5LIB='$PERL5LIB:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/site_perl/${PV}:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/vendor_perl/${PV}:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/${PV}' -} - -do_install_append_class-native () { - # Those wrappers mean that perl installed from sstate (which may change - # path location) works and that in the nativesdk case, the SDK can be - # installed to a different location from the one it was built for. - create_wrapper ${D}${bindir}/perl-native/perl PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl5/site_perl/${PV}:${STAGING_LIBDIR}/perl5/vendor_perl/${PV}:${STAGING_LIBDIR}/perl5/${PV}' - - # Use /usr/bin/env nativeperl for the perl script. - for f in `grep -Il '#! *${bindir}/perl' ${D}/${bindir}/*`; do - sed -i -e 's|${bindir}/perl|/usr/bin/env nativeperl|' $f - done -} - -PACKAGE_PREPROCESS_FUNCS += "perl_package_preprocess" - -perl_package_preprocess () { - # Fix up installed configuration - sed -i -e "s,${D},,g" \ - -e "s,${DEBUG_PREFIX_MAP},,g" \ - -e "s,--sysroot=${STAGING_DIR_HOST},,g" \ - -e "s,-isystem${STAGING_INCDIR} ,,g" \ - -e "s,${STAGING_LIBDIR},${libdir},g" \ - -e "s,${STAGING_BINDIR},${bindir},g" \ - -e "s,${STAGING_INCDIR},${includedir},g" \ - -e "s,${STAGING_BINDIR_NATIVE}/perl-native/,${bindir}/,g" \ - -e "s,${STAGING_BINDIR_NATIVE}/,,g" \ - -e "s,${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX},${bindir},g" \ - -e 's:${RECIPE_SYSROOT}::g' \ - ${PKGD}${bindir}/h2xs.perl \ - ${PKGD}${bindir}/h2ph.perl \ - ${PKGD}${bindir}/pod2man.perl \ - ${PKGD}${bindir}/pod2text.perl \ - ${PKGD}${bindir}/pod2usage.perl \ - ${PKGD}${bindir}/podchecker.perl \ - ${PKGD}${bindir}/podselect.perl \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/config.h \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/perl.h \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/pp.h \ - ${PKGD}${libdir}/perl5/${PV}/Config.pm \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pm \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pod \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_git.pl \ - ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy.pl \ - ${PKGD}${libdir}/perl5/${PV}/ExtUtils/Liblist/Kid.pm \ - ${PKGD}${libdir}/perl5/${PV}/FileCache.pm \ - ${PKGD}${libdir}/perl5/${PV}/pod/*.pod \ - ${PKGD}${libdir}/perl5/config.sh -} - -inherit update-alternatives - -ALTERNATIVE_PRIORITY = "100" - -ALTERNATIVE_${PN}-misc = "corelist cpan enc2xs encguess h2ph h2xs instmodsh json_pp libnetcfg \ - piconv pl2pm pod2html pod2man pod2text pod2usage podchecker podselect \ - prove ptar ptardiff ptargrep shasum splain xsubpp zipdetails" -ALTERNATIVE_LINK_NAME[corelist] = "${bindir}/corelist" -ALTERNATIVE_LINK_NAME[cpan] = "${bindir}/cpan" -ALTERNATIVE_LINK_NAME[enc2xs] = "${bindir}/enc2xs" -ALTERNATIVE_LINK_NAME[encguess] = "${bindir}/encguess" -ALTERNATIVE_LINK_NAME[h2ph] = "${bindir}/h2ph" -ALTERNATIVE_LINK_NAME[h2xs] = "${bindir}/h2xs" -ALTERNATIVE_LINK_NAME[instmodsh] = "${bindir}/instmodsh" -ALTERNATIVE_LINK_NAME[json_pp] = "${bindir}/json_pp" -ALTERNATIVE_LINK_NAME[libnetcfg] = "${bindir}/libnetcfg" -ALTERNATIVE_LINK_NAME[piconv] = "${bindir}/piconv" -ALTERNATIVE_LINK_NAME[pl2pm] = "${bindir}/pl2pm" -ALTERNATIVE_LINK_NAME[pod2html] = "${bindir}/pod2html" -ALTERNATIVE_LINK_NAME[pod2man] = "${bindir}/pod2man" -ALTERNATIVE_LINK_NAME[pod2text] = "${bindir}/pod2text" -ALTERNATIVE_LINK_NAME[pod2usage] = "${bindir}/pod2usage" -ALTERNATIVE_LINK_NAME[podchecker] = "${bindir}/podchecker" -ALTERNATIVE_LINK_NAME[podselect] = "${bindir}/podselect" -ALTERNATIVE_LINK_NAME[prove] = "${bindir}/prove" -ALTERNATIVE_LINK_NAME[ptar] = "${bindir}/ptar" -ALTERNATIVE_LINK_NAME[ptardiff] = "${bindir}/ptardiff" -ALTERNATIVE_LINK_NAME[ptargrep] = "${bindir}/ptargrep" -ALTERNATIVE_LINK_NAME[shasum] = "${bindir}/shasum" -ALTERNATIVE_LINK_NAME[splain] = "${bindir}/splain" -ALTERNATIVE_LINK_NAME[xsubpp] = "${bindir}/xsubpp" -ALTERNATIVE_LINK_NAME[zipdetails] = "${bindir}/zipdetails" - -require perl-ptest.inc - -FILES_${PN} = "${bindir}/perl ${bindir}/perl.real ${bindir}/perl${PV} ${libdir}/libperl.so* \ - ${libdir}/perl5/site_perl \ - ${libdir}/perl5/${PV}/Config.pm \ - ${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pm \ - ${libdir}/perl5/${PV}/*/Config_git.pl \ - ${libdir}/perl5/${PV}/*/Config_heavy-target.pl \ - ${libdir}/perl5/config.sh \ - ${libdir}/perl5/${PV}/strict.pm \ - ${libdir}/perl5/${PV}/warnings.pm \ - ${libdir}/perl5/${PV}/warnings \ - ${libdir}/perl5/${PV}/vars.pm \ - ${libdir}/perl5/site_perl \ - ${libdir}/perl5/${PV}/ExtUtils/MANIFEST.SKIP \ - ${libdir}/perl5/${PV}/ExtUtils/xsubpp \ - ${libdir}/perl5/${PV}/ExtUtils/typemap \ - " -RPROVIDES_${PN} += "perl-module-strict perl-module-vars perl-module-config perl-module-warnings \ - perl-module-warnings-register" - -FILES_${PN}-staticdev_append = " ${libdir}/perl5/${PV}/*/CORE/libperl.a" - -FILES_${PN}-dev_append = " ${libdir}/perl5/${PV}/*/CORE" - -FILES_${PN}-doc_append = " ${libdir}/perl5/${PV}/Unicode/Collate/*.txt \ - ${libdir}/perl5/${PV}/*/.packlist \ - ${libdir}/perl5/${PV}/Encode/encode.h \ - " -PACKAGES += "${PN}-misc" - -FILES_${PN}-misc = "${bindir}/*" - -PACKAGES += "${PN}-pod" - -FILES_${PN}-pod = "${libdir}/perl5/${PV}/pod \ - ${libdir}/perl5/${PV}/*.pod \ - ${libdir}/perl5/${PV}/*/*.pod \ - ${libdir}/perl5/${PV}/*/*/*.pod \ - ${libdir}/perl5/${PV}/*/*/*/*.pod \ - " - -PACKAGES += "${PN}-module-cpan ${PN}-module-unicore" - -FILES_${PN}-module-cpan += "${libdir}/perl5/${PV}/CPAN \ - " -FILES_${PN}-module-unicore += "${libdir}/perl5/${PV}/unicore" - -ALTERNATIVE_PRIORITY = "40" -ALTERNATIVE_${PN}-doc = "Thread.3" -ALTERNATIVE_LINK_NAME[Thread.3] = "${mandir}/man3/Thread.3" - -# Create a perl-modules package recommending all the other perl -# packages (actually the non modules packages and not created too) -ALLOW_EMPTY_${PN}-modules = "1" -PACKAGES += "${PN}-modules " - -PACKAGESPLITFUNCS_prepend = "split_perl_packages " - -python split_perl_packages () { - libdir = d.expand('${libdir}/perl5/${PV}') - do_split_packages(d, libdir, r'.*/auto/([^.]*)/[^/]*\.(so|ld|ix|al)', '${PN}-module-%s', 'perl module %s', recursive=True, match_path=True, prepend=False) - do_split_packages(d, libdir, r'.*linux/([^\/]*)\.pm', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) - do_split_packages(d, libdir, r'Module/([^\/]*)\.pm', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) - do_split_packages(d, libdir, r'Module/([^\/]*)/.*', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) - do_split_packages(d, libdir, r'.*linux/([^\/].*)\.(pm|pl|e2x)', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) - do_split_packages(d, libdir, r'(^(?!(CPAN\/|CPANPLUS\/|Module\/|unicore\/|.*linux\/)[^\/]).*)\.(pm|pl|e2x)', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) - - # perl-modules should recommend every perl module, and only the - # modules. Don't attempt to use the result of do_split_packages() as some - # modules are manually split (eg. perl-module-unicore). - packages = filter(lambda p: 'perl-module-' in p, d.getVar('PACKAGES').split()) - d.setVar(d.expand("RRECOMMENDS_${PN}-modules"), ' '.join(packages)) - - # Read the pre-generated dependency file, and use it to set module dependecies - for line in open(d.expand("${WORKDIR}") + '/perl-rdepends.txt').readlines(): - splitline = line.split() - if bb.data.inherits_class('native', d): - module = splitline[0] + '-native' - depends = "perl-native" - else: - module = splitline[0].replace("RDEPENDS_perl", "RDEPENDS_${PN}") - depends = splitline[2].strip('"').replace("perl-module", "${PN}-module") - d.appendVar(d.expand(module), " " + depends) -} - -python() { - if d.getVar('CLASSOVERRIDE') == "class-target": - d.setVar("PACKAGES_DYNAMIC", "^${MLPREFIX}perl-module-.*(? ${WORKDIR}/perl-rdepends.inc - -# Some additional dependencies that the above doesn't manage to figure out -RDEPENDS_${PN}-module-file-spec += "${PN}-module-file-spec-unix" -RDEPENDS_${PN}-module-math-bigint += "${PN}-module-math-bigint-calc" -RDEPENDS_${PN}-module-thread-queue += "${PN}-module-attributes" -RDEPENDS_${PN}-module-overload += "${PN}-module-overloading" - -# Generated depends list beyond this line -EOPREAMBLE - test -e packages-split.new && rm -rf packages-split.new - cp -r packages-split packages-split.new && cd packages-split.new - find . -name \*.pm | xargs sed -i '/^=head/,/^=cut/d' - egrep -r "^\s*(\ */+= \"perl-module-/g;s/CPANPLUS::.*/cpanplus/g;s/CPAN::.*/cpan/g;s/::/-/g;s/ [^+\"].*//g;s/_/-/g;s/\.pl\"$/\"/;s/\"\?\$/\"/;s/(//;" | tr [:upper:] [:lower:] | \ - awk '{if ($3 != "\x22"$1"\x22"){ print $0}}'| \ - grep -v -e "\-vms\-" -e module-5 -e "^$" -e "\\$" -e your -e tk -e autoperl -e html -e http -e parse-cpan -e perl-ostype -e ndbm-file -e module-mac -e fcgi -e lwp -e dbd -e dbix | \ - sort -u | \ - sed 's/^/RDEPENDS_/;s/perl-module-/${PN}-module-/g;s/module-\(module-\)/\1/g;s/\(module-load\)-conditional/\1/g;s/encode-configlocal/&-pm/;' | \ - egrep -wv '=>|module-a|module-apache.?|module-apr|module-authen-sasl|module-b-asmdata|module-convert-ebcdic|module-devel-size|module-digest-perl-md5|module-dumpvalue|module-extutils-constant-aaargh56hash|module-extutils-xssymset|module-file-bsdglob|module-for|module-it|module-io-socket-inet6|module-io-socket-ssl|module-io-string|module-ipc-system-simple|module-lexical|module-local-lib|metadata|module-modperl-util|module-pluggable-object|module-test-builder-io-scalar|module-test2|module-text-unidecode|module-unicore|module-win32|objects\sload|syscall.ph|systeminfo.ph|%s' | \ - egrep -wv '=>|module-algorithm-diff|module-carp|module-c|module-encode-hanextra|module-extutils-makemaker-version-regex|module-file-spec|module-io-compress-lzma|module-locale-maketext-lexicon|module-log-agent|module-meta-notation|module-net-localcfg|module-net-ping-external|module-b-deparse|module-scalar-util|module-some-module|module-symbol|module-uri|module-win32api-file' >> ${WORKDIR}/perl-rdepends.generated - cp ${WORKDIR}/perl-rdepends.generated ${THISDIR}/files/perl-rdepends.txt -} - -# bitbake perl -c create_rdepends_inc -addtask do_create_rdepends_inc - -SYSROOT_PREPROCESS_FUNCS += "perl_sysroot_create_wrapper" - -perl_sysroot_create_wrapper () { - mkdir -p ${SYSROOT_DESTDIR}${bindir} - # Create a wrapper that /usr/bin/env perl will use to get perl-native. - # This MUST live in the normal bindir. - cat > ${SYSROOT_DESTDIR}${bindir}/nativeperl << EOF -#!/bin/sh -realpath=\`readlink -fn \$0\` -exec \`dirname \$realpath\`/perl-native/perl "\$@" -EOF - chmod 0755 ${SYSROOT_DESTDIR}${bindir}/nativeperl - cat ${SYSROOT_DESTDIR}${bindir}/nativeperl -} diff --git a/poky/meta/recipes-devtools/perl/perl_5.32.0.bb b/poky/meta/recipes-devtools/perl/perl_5.32.0.bb new file mode 100644 index 000000000..1adfd90e7 --- /dev/null +++ b/poky/meta/recipes-devtools/perl/perl_5.32.0.bb @@ -0,0 +1,383 @@ +SUMMARY = "Perl scripting language" +HOMEPAGE = "http://www.perl.org/" +SECTION = "devel" +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://Copying;md5=5b122a36d0f6dc55279a0ebc69f3c60b \ + file://Artistic;md5=71a4d5d9acc18c0952a6df2218bb68da \ + " + + +SRC_URI = "https://www.cpan.org/src/5.0/perl-${PV}.tar.gz;name=perl \ + https://github.com/arsv/perl-cross/releases/download/1.3.4/perl-cross-1.3.4.tar.gz;name=perl-cross \ + file://perl-rdepends.txt \ + file://0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch \ + file://0001-ExtUtils-MakeMaker-add-LDFLAGS-when-linking-binary-m.patch \ + file://0001-Somehow-this-module-breaks-through-the-perl-wrapper-.patch \ + file://errno_ver.diff \ + file://native-perlinc.patch \ + file://0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch \ + file://perl-dynloader.patch \ + file://0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch \ + file://0002-Constant-Fix-up-shebang.patch \ + file://determinism.patch \ + " +SRC_URI_append_class-native = " \ + file://perl-configpm-switch.patch \ +" +SRC_URI_append_class-target = " \ + file://encodefix.patch \ +" + +SRC_URI[perl.sha256sum] = "efeb1ce1f10824190ad1cadbcccf6fdb8a5d37007d0100d2d9ae5f2b5900c0b4" +SRC_URI[perl-cross.sha256sum] = "755aa0ca8141a942188a269564f86c3c82349f82c346ed5c992495d7f35138ba" + +S = "${WORKDIR}/perl-${PV}" + +inherit upstream-version-is-even update-alternatives + +DEPENDS += "zlib virtual/crypt" + +PERL_LIB_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}.0" + +PACKAGECONFIG ??= "bdb gdbm" +PACKAGECONFIG[bdb] = ",-Ui_db,db" +PACKAGECONFIG[gdbm] = ",-Ui_gdbm,gdbm" + +# Don't generate comments in enc2xs output files. They are not reproducible +export ENC2XS_NO_COMMENTS = "1" + +do_unpack_append() { + bb.build.exec_func('do_copy_perlcross', d) +} + +do_copy_perlcross() { + cp -rfp ${WORKDIR}/perl-cross*/* ${S} +} + +do_configure_class-target() { + ./configure --prefix=${prefix} --libdir=${libdir} \ + --target=${TARGET_SYS} \ + -Duseshrplib \ + -Dsoname=libperl.so.5 \ + -Dvendorprefix=${prefix} \ + -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \ + ${PACKAGECONFIG_CONFARGS} + + #perl.c uses an ARCHLIB_EXP define to generate compile-time code that + #adds the archlibexp path to @INC during run-time initialization of a + #new perl interpreter. + + #Because we've changed this value in a temporary way to make it + #possible to use ExtUtils::Embed in the target build (the temporary + #value in config.sh gets re-stripped out during packaging), the + #ARCHLIB_EXP value that gets generated still uses the temporary version + #instead of the original expected version (i.e. becauses it's in the + #generated config.h, it doesn't get stripped out during packaging like + #the others in config.sh). + + sed -i -e "s,${STAGING_LIBDIR},${libdir},g" config.h +} + +do_configure_class-nativesdk() { + ./configure --prefix=${prefix} \ + --target=${TARGET_SYS} \ + -Duseshrplib \ + -Dsoname=libperl.so.5 \ + -Dvendorprefix=${prefix} \ + -Darchlibexp=${STAGING_LIBDIR}/perl5/${PV}/${TARGET_ARCH}-linux \ + ${PACKAGECONFIG_CONFARGS} + + # See the comment above + sed -i -e "s,${STAGING_LIBDIR},${libdir},g" config.h +} + +do_configure_class-native() { + ./configure --prefix=${prefix} \ + -Dbin=${bindir}/perl-native \ + -Duseshrplib \ + -Dsoname=libperl.so.5 \ + -Dvendorprefix=${prefix} \ + -Ui_xlocale \ + ${PACKAGECONFIG_CONFARGS} +} + +do_configure_append() { + if [ -n "$SOURCE_DATE_EPOCH" ]; then + PERL_BUILD_DATE="$(${PYTHON} -c "\ +from datetime import datetime, timezone; \ +print(datetime.fromtimestamp($SOURCE_DATE_EPOCH, timezone.utc).strftime('%a %b %d %H:%M:%S %Y')) \ + ")" + echo "#define PERL_BUILD_DATE \"$PERL_BUILD_DATE\"" >> config.h + fi +} + +do_compile() { + oe_runmake + # This isn't generated reliably so delete and re-generate. + # https://github.com/arsv/perl-cross/issues/86 + + if [ -e pod/perltoc.pod ]; then + bbnote Rebuilding perltoc.pod + rm -f pod/perltoc.pod + oe_runmake pod/perltoc.pod + fi +} + +do_install() { + oe_runmake 'DESTDIR=${D}' install + + install -d ${D}${libdir}/perl5 + install -d ${D}${libdir}/perl5/${PV}/ + install -d ${D}${libdir}/perl5/${PV}/ExtUtils/ + + # Save native config + install config.sh ${D}${libdir}/perl5 + install lib/Config.pm ${D}${libdir}/perl5/${PV}/ + install lib/ExtUtils/typemap ${D}${libdir}/perl5/${PV}/ExtUtils/ + + # Fix up shared library + rm ${D}/${libdir}/perl5/${PV}/*/CORE/libperl.so + ln -sf ../../../../libperl.so.${PERL_LIB_VER} $(echo ${D}/${libdir}/perl5/${PV}/*/CORE)/libperl.so +} + +do_install_append_class-target() { + # This is used to substitute target configuration when running native perl via perl-configpm-switch.patch + ln -s Config_heavy.pl ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy-target.pl + + # This contains host-specific information used for building miniperl (a helper executable built with host compiler) + # and therefore isn't reproducible. I believe the file isn't actually needed on target. + rm ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/xconfig.h +} + +do_install_append_class-nativesdk() { + # This is used to substitute target configuration when running native perl via perl-configpm-switch.patch + ln -s Config_heavy.pl ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy-target.pl + + create_wrapper ${D}${bindir}/perl \ + PERL5LIB='$PERL5LIB:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/site_perl/${PV}:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/vendor_perl/${PV}:${SDKPATHNATIVE}/${libdir_nativesdk}/perl5/${PV}' +} + +do_install_append_class-native () { + # Those wrappers mean that perl installed from sstate (which may change + # path location) works and that in the nativesdk case, the SDK can be + # installed to a different location from the one it was built for. + create_wrapper ${D}${bindir}/perl-native/perl PERL5LIB='$PERL5LIB:${STAGING_LIBDIR}/perl5/site_perl/${PV}:${STAGING_LIBDIR}/perl5/vendor_perl/${PV}:${STAGING_LIBDIR}/perl5/${PV}' + + # Use /usr/bin/env nativeperl for the perl script. + for f in `grep -Il '#! *${bindir}/perl' ${D}/${bindir}/*`; do + sed -i -e 's|${bindir}/perl|/usr/bin/env nativeperl|' $f + done +} + +PACKAGE_PREPROCESS_FUNCS += "perl_package_preprocess" + +perl_package_preprocess () { + # Fix up installed configuration + sed -i -e "s,${D},,g" \ + -e "s,${DEBUG_PREFIX_MAP},,g" \ + -e "s,--sysroot=${STAGING_DIR_HOST},,g" \ + -e "s,-isystem${STAGING_INCDIR} ,,g" \ + -e "s,${STAGING_LIBDIR},${libdir},g" \ + -e "s,${STAGING_BINDIR},${bindir},g" \ + -e "s,${STAGING_INCDIR},${includedir},g" \ + -e "s,${STAGING_BINDIR_NATIVE}/perl-native/,${bindir}/,g" \ + -e "s,${STAGING_BINDIR_NATIVE}/,,g" \ + -e "s,${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX},${bindir},g" \ + -e 's:${RECIPE_SYSROOT}::g' \ + ${PKGD}${bindir}/h2xs.perl \ + ${PKGD}${bindir}/h2ph.perl \ + ${PKGD}${bindir}/pod2man.perl \ + ${PKGD}${bindir}/pod2text.perl \ + ${PKGD}${bindir}/pod2usage.perl \ + ${PKGD}${bindir}/podchecker.perl \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/config.h \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/perl.h \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/pp.h \ + ${PKGD}${libdir}/perl5/${PV}/Config.pm \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pm \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pod \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_git.pl \ + ${PKGD}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config_heavy.pl \ + ${PKGD}${libdir}/perl5/${PV}/ExtUtils/Liblist/Kid.pm \ + ${PKGD}${libdir}/perl5/${PV}/FileCache.pm \ + ${PKGD}${libdir}/perl5/${PV}/pod/*.pod \ + ${PKGD}${libdir}/perl5/config.sh +} + +inherit update-alternatives + +ALTERNATIVE_PRIORITY = "100" + +ALTERNATIVE_${PN}-misc = "corelist cpan enc2xs encguess h2ph h2xs instmodsh json_pp libnetcfg \ + piconv pl2pm pod2html pod2man pod2text pod2usage podchecker \ + prove ptar ptardiff ptargrep shasum splain xsubpp zipdetails" +ALTERNATIVE_LINK_NAME[corelist] = "${bindir}/corelist" +ALTERNATIVE_LINK_NAME[cpan] = "${bindir}/cpan" +ALTERNATIVE_LINK_NAME[enc2xs] = "${bindir}/enc2xs" +ALTERNATIVE_LINK_NAME[encguess] = "${bindir}/encguess" +ALTERNATIVE_LINK_NAME[h2ph] = "${bindir}/h2ph" +ALTERNATIVE_LINK_NAME[h2xs] = "${bindir}/h2xs" +ALTERNATIVE_LINK_NAME[instmodsh] = "${bindir}/instmodsh" +ALTERNATIVE_LINK_NAME[json_pp] = "${bindir}/json_pp" +ALTERNATIVE_LINK_NAME[libnetcfg] = "${bindir}/libnetcfg" +ALTERNATIVE_LINK_NAME[piconv] = "${bindir}/piconv" +ALTERNATIVE_LINK_NAME[pl2pm] = "${bindir}/pl2pm" +ALTERNATIVE_LINK_NAME[pod2html] = "${bindir}/pod2html" +ALTERNATIVE_LINK_NAME[pod2man] = "${bindir}/pod2man" +ALTERNATIVE_LINK_NAME[pod2text] = "${bindir}/pod2text" +ALTERNATIVE_LINK_NAME[pod2usage] = "${bindir}/pod2usage" +ALTERNATIVE_LINK_NAME[podchecker] = "${bindir}/podchecker" +ALTERNATIVE_LINK_NAME[prove] = "${bindir}/prove" +ALTERNATIVE_LINK_NAME[ptar] = "${bindir}/ptar" +ALTERNATIVE_LINK_NAME[ptardiff] = "${bindir}/ptardiff" +ALTERNATIVE_LINK_NAME[ptargrep] = "${bindir}/ptargrep" +ALTERNATIVE_LINK_NAME[shasum] = "${bindir}/shasum" +ALTERNATIVE_LINK_NAME[splain] = "${bindir}/splain" +ALTERNATIVE_LINK_NAME[xsubpp] = "${bindir}/xsubpp" +ALTERNATIVE_LINK_NAME[zipdetails] = "${bindir}/zipdetails" + +require perl-ptest.inc + +FILES_${PN} = "${bindir}/perl ${bindir}/perl.real ${bindir}/perl${PV} ${libdir}/libperl.so* \ + ${libdir}/perl5/site_perl \ + ${libdir}/perl5/${PV}/Config.pm \ + ${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/Config.pm \ + ${libdir}/perl5/${PV}/*/Config_git.pl \ + ${libdir}/perl5/${PV}/*/Config_heavy-target.pl \ + ${libdir}/perl5/config.sh \ + ${libdir}/perl5/${PV}/strict.pm \ + ${libdir}/perl5/${PV}/warnings.pm \ + ${libdir}/perl5/${PV}/warnings \ + ${libdir}/perl5/${PV}/vars.pm \ + ${libdir}/perl5/site_perl \ + ${libdir}/perl5/${PV}/ExtUtils/MANIFEST.SKIP \ + ${libdir}/perl5/${PV}/ExtUtils/xsubpp \ + ${libdir}/perl5/${PV}/ExtUtils/typemap \ + " +RPROVIDES_${PN} += "perl-module-strict perl-module-vars perl-module-config perl-module-warnings \ + perl-module-warnings-register" + +FILES_${PN}-staticdev_append = " ${libdir}/perl5/${PV}/*/CORE/libperl.a" + +FILES_${PN}-dev_append = " ${libdir}/perl5/${PV}/*/CORE" + +FILES_${PN}-doc_append = " ${libdir}/perl5/${PV}/Unicode/Collate/*.txt \ + ${libdir}/perl5/${PV}/*/.packlist \ + ${libdir}/perl5/${PV}/Encode/encode.h \ + " +PACKAGES += "${PN}-misc" + +FILES_${PN}-misc = "${bindir}/*" + +PACKAGES += "${PN}-pod" + +FILES_${PN}-pod = "${libdir}/perl5/${PV}/pod \ + ${libdir}/perl5/${PV}/*.pod \ + ${libdir}/perl5/${PV}/*/*.pod \ + ${libdir}/perl5/${PV}/*/*/*.pod \ + ${libdir}/perl5/${PV}/*/*/*/*.pod \ + " + +PACKAGES += "${PN}-module-cpan ${PN}-module-unicore" + +FILES_${PN}-module-cpan += "${libdir}/perl5/${PV}/CPAN \ + " +FILES_${PN}-module-unicore += "${libdir}/perl5/${PV}/unicore" + +ALTERNATIVE_PRIORITY = "40" +ALTERNATIVE_${PN}-doc = "Thread.3" +ALTERNATIVE_LINK_NAME[Thread.3] = "${mandir}/man3/Thread.3" + +# Create a perl-modules package recommending all the other perl +# packages (actually the non modules packages and not created too) +ALLOW_EMPTY_${PN}-modules = "1" +PACKAGES += "${PN}-modules " + +PACKAGESPLITFUNCS_prepend = "split_perl_packages " + +python split_perl_packages () { + libdir = d.expand('${libdir}/perl5/${PV}') + do_split_packages(d, libdir, r'.*/auto/([^.]*)/[^/]*\.(so|ld|ix|al)', '${PN}-module-%s', 'perl module %s', recursive=True, match_path=True, prepend=False) + do_split_packages(d, libdir, r'.*linux/([^\/]*)\.pm', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) + do_split_packages(d, libdir, r'Module/([^\/]*)\.pm', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) + do_split_packages(d, libdir, r'Module/([^\/]*)/.*', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) + do_split_packages(d, libdir, r'.*linux/([^\/].*)\.(pm|pl|e2x)', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) + do_split_packages(d, libdir, r'(^(?!(CPAN\/|CPANPLUS\/|Module\/|unicore\/|.*linux\/)[^\/]).*)\.(pm|pl|e2x)', '${PN}-module-%s', 'perl module %s', recursive=True, allow_dirs=False, match_path=True, prepend=False) + + # perl-modules should recommend every perl module, and only the + # modules. Don't attempt to use the result of do_split_packages() as some + # modules are manually split (eg. perl-module-unicore). + packages = filter(lambda p: 'perl-module-' in p, d.getVar('PACKAGES').split()) + d.setVar(d.expand("RRECOMMENDS_${PN}-modules"), ' '.join(packages)) + + # Read the pre-generated dependency file, and use it to set module dependecies + for line in open(d.expand("${WORKDIR}") + '/perl-rdepends.txt').readlines(): + splitline = line.split() + if bb.data.inherits_class('native', d): + module = splitline[0] + '-native' + depends = "perl-native" + else: + module = splitline[0].replace("RDEPENDS_perl", "RDEPENDS_${PN}") + depends = splitline[2].strip('"').replace("perl-module", "${PN}-module") + d.appendVar(d.expand(module), " " + depends) +} + +python() { + if d.getVar('CLASSOVERRIDE') == "class-target": + d.setVar("PACKAGES_DYNAMIC", "^${MLPREFIX}perl-module-.*(? ${WORKDIR}/perl-rdepends.inc + +# Some additional dependencies that the above doesn't manage to figure out +RDEPENDS_${PN}-module-file-spec += "${PN}-module-file-spec-unix" +RDEPENDS_${PN}-module-math-bigint += "${PN}-module-math-bigint-calc" +RDEPENDS_${PN}-module-thread-queue += "${PN}-module-attributes" +RDEPENDS_${PN}-module-overload += "${PN}-module-overloading" + +# Generated depends list beyond this line +EOPREAMBLE + test -e packages-split.new && rm -rf packages-split.new + cp -r packages-split packages-split.new && cd packages-split.new + find . -name \*.pm | xargs sed -i '/^=head/,/^=cut/d' + egrep -r "^\s*(\ */+= \"perl-module-/g;s/CPANPLUS::.*/cpanplus/g;s/CPAN::.*/cpan/g;s/::/-/g;s/ [^+\"].*//g;s/_/-/g;s/\.pl\"$/\"/;s/\"\?\$/\"/;s/(//;" | tr [:upper:] [:lower:] | \ + awk '{if ($3 != "\x22"$1"\x22"){ print $0}}'| \ + grep -v -e "\-vms\-" -e module-5 -e "^$" -e "\\$" -e your -e tk -e autoperl -e html -e http -e parse-cpan -e perl-ostype -e ndbm-file -e module-mac -e fcgi -e lwp -e dbd -e dbix | \ + sort -u | \ + sed 's/^/RDEPENDS_/;s/perl-module-/${PN}-module-/g;s/module-\(module-\)/\1/g;s/\(module-load\)-conditional/\1/g;s/encode-configlocal/&-pm/;' | \ + egrep -wv '=>|module-a|module-apache.?|module-apr|module-authen-sasl|module-b-asmdata|module-convert-ebcdic|module-devel-size|module-digest-perl-md5|module-dumpvalue|module-extutils-constant-aaargh56hash|module-extutils-xssymset|module-file-bsdglob|module-for|module-it|module-io-socket-inet6|module-io-socket-ssl|module-io-string|module-ipc-system-simple|module-lexical|module-local-lib|metadata|module-modperl-util|module-pluggable-object|module-test-builder-io-scalar|module-test2|module-text-unidecode|module-unicore|module-win32|objects\sload|syscall.ph|systeminfo.ph|%s' | \ + egrep -wv '=>|module-algorithm-diff|module-carp|module-c|module-encode-hanextra|module-extutils-makemaker-version-regex|module-file-spec|module-io-compress-lzma|module-locale-maketext-lexicon|module-log-agent|module-meta-notation|module-net-localcfg|module-net-ping-external|module-b-deparse|module-scalar-util|module-some-module|module-symbol|module-uri|module-win32api-file' >> ${WORKDIR}/perl-rdepends.generated + cp ${WORKDIR}/perl-rdepends.generated ${THISDIR}/files/perl-rdepends.txt +} + +# bitbake perl -c create_rdepends_inc +addtask do_create_rdepends_inc + +SYSROOT_PREPROCESS_FUNCS += "perl_sysroot_create_wrapper" + +perl_sysroot_create_wrapper () { + mkdir -p ${SYSROOT_DESTDIR}${bindir} + # Create a wrapper that /usr/bin/env perl will use to get perl-native. + # This MUST live in the normal bindir. + cat > ${SYSROOT_DESTDIR}${bindir}/nativeperl << EOF +#!/bin/sh +realpath=\`readlink -fn \$0\` +exec \`dirname \$realpath\`/perl-native/perl "\$@" +EOF + chmod 0755 ${SYSROOT_DESTDIR}${bindir}/nativeperl + cat ${SYSROOT_DESTDIR}${bindir}/nativeperl +} diff --git a/poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch b/poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch deleted file mode 100644 index f01e699de..000000000 --- a/poky/meta/recipes-devtools/pseudo/files/0001-Add-statx.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 4e41a05de1f34ba00a68ca4f20fb49c4d1cbd2d0 Mon Sep 17 00:00:00 2001 -From: Richard Purdie -Date: Wed, 6 Nov 2019 12:17:46 +0000 -Subject: [PATCH] Add statx glibc/syscall support - -Modern distros (e.g. fedora30) are starting to use the new statx() syscall through -the newly exposed glibc wrapper function in software like coreutils (e.g. the ls -command). Add support to intercept this to pseudo. - -Signed-off-by: Richard Purdie -Upstream-Status: Submitted [Emailed to seebs] ---- - ports/linux/guts/statx.c | 48 ++++++++++++++++++++++++++++++++++++++++ - ports/linux/portdefs.h | 1 + - ports/linux/wrapfuncs.in | 1 + - 3 files changed, 50 insertions(+) - create mode 100644 ports/linux/guts/statx.c - -diff --git a/ports/linux/statx/guts/statx.c b/ports/linux/statx/guts/statx.c -new file mode 100644 -index 0000000..a3259c4 ---- /dev/null -+++ b/ports/linux/statx/guts/statx.c -@@ -0,0 +1,42 @@ -+/* -+ * Copyright (c) 2019 Linux Foundation -+ * Author: Richard Purdie -+ * -+ * SPDX-License-Identifier: LGPL-2.1-only -+ * -+ * int -+ * statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf) { -+ * int rc = -1; -+ */ -+ pseudo_msg_t *msg; -+ PSEUDO_STATBUF buf; -+ int save_errno; -+ -+ rc = real_statx(dirfd, pathname, flags, mask, statxbuf); -+ save_errno = errno; -+ if (rc == -1) { -+ return rc; -+ } -+ -+ buf.st_uid = statxbuf->stx_uid; -+ buf.st_gid = statxbuf->stx_gid; -+ buf.st_dev = makedev(statxbuf->stx_dev_major, statxbuf->stx_dev_minor); -+ buf.st_ino = statxbuf->stx_ino; -+ buf.st_mode = statxbuf->stx_mode; -+ buf.st_rdev = makedev(statxbuf->stx_rdev_major, statxbuf->stx_rdev_minor); -+ buf.st_nlink = statxbuf->stx_nlink; -+ msg = pseudo_client_op(OP_STAT, 0, -1, dirfd, pathname, &buf); -+ if (msg && msg->result == RESULT_SUCCEED) { -+ pseudo_debug(PDBGF_FILE, "statx(path %s), flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid); -+ statxbuf->stx_uid = msg->uid; -+ statxbuf->stx_gid = msg->gid; -+ statxbuf->stx_mode = msg->mode; -+ statxbuf->stx_rdev_major = major(msg->rdev); -+ statxbuf->stx_rdev_minor = minor(msg->rdev); -+ } else { -+ pseudo_debug(PDBGF_FILE, "statx(path %s) failed, flags %o, stat rc %d, stat uid %o\n", pathname, flags, rc, statxbuf->stx_uid); -+ } -+ errno = save_errno; -+/* return rc; -+ * } -+ */ -diff --git a/ports/linux/statx/portdefs.h b/ports/linux/statx/portdefs.h -new file mode 100644 -index 0000000..bf934dc ---- /dev/null -+++ b/ports/linux/statx/portdefs.h -@@ -0,0 +1,6 @@ -+/* -+ * SPDX-License-Identifier: LGPL-2.1-only -+ * -+ */ -+#include -+#include -diff --git a/ports/linux/statx/wrapfuncs.in b/ports/linux/statx/wrapfuncs.in -new file mode 100644 -index 0000000..c9cd4c3 ---- /dev/null -+++ b/ports/linux/statx/wrapfuncs.in -@@ -0,0 +1 @@ -+int statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf); -diff --git a/ports/linux/subports b/ports/linux/subports -index a29044a..49081bf 100755 ---- a/ports/linux/subports -+++ b/ports/linux/subports -@@ -54,3 +54,13 @@ else - fi - rm -f dummy.c dummy.o - -+cat > dummy.c < -+struct statx x; -+EOF -+if ${CC} -c -o dummy.o dummy.c >/dev/null 2>&1; then -+ echo "linux/statx" -+fi -+rm -f dummy.c dummy.o -+ --- -2.17.1 - diff --git a/poky/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch b/poky/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch deleted file mode 100644 index b2dbdad27..000000000 --- a/poky/meta/recipes-devtools/pseudo/files/0001-maketables-wrappers-use-Python-3.patch +++ /dev/null @@ -1,34 +0,0 @@ -From dbd34b1b2af8fbf44a0d5c37abe3448405819823 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Wed, 28 Aug 2019 19:20:29 +0200 -Subject: [PATCH] maketables/wrappers: use Python 3 - -Changelog indicates they should be compatible. - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin ---- - maketables | 2 +- - makewrappers | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/maketables b/maketables -index a211772..52285e2 100755 ---- a/maketables -+++ b/maketables -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # - # Copyright (c) 2008-2010, 2013 Wind River Systems, Inc. - # -diff --git a/makewrappers b/makewrappers -index e84607d..b34f7eb 100755 ---- a/makewrappers -+++ b/makewrappers -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # - # Copyright (c) 2008-2011,2013 Wind River Systems, Inc. - # diff --git a/poky/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch b/poky/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch deleted file mode 100644 index 9c49e33b0..000000000 --- a/poky/meta/recipes-devtools/pseudo/files/0001-pseudo-On-a-DB-fixup-remove-files-that-do-not-exist-.patch +++ /dev/null @@ -1,49 +0,0 @@ -From b0902e36108b49e6bc88d6b251cc2f8cffcd5a13 Mon Sep 17 00:00:00 2001 -From: Ricardo Ribalda -Date: Sun, 5 Apr 2020 11:40:30 +0000 -Subject: [PATCH] pseudo: On a DB fixup remove files that do not exist anymore - -If the user decides to fix a database, remove the files that do not -exist anymore. -If only DB test is selected do not change the behaviour (return error). - -Signed-off-by: Ricardo Ribalda -Upstream-Status: Submitted [https://lists.openembedded.org/g/openembedded-core/message/137045] ---- - pseudo.c | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git a/pseudo.c b/pseudo.c -index 0f5850e..98e5b0c 100644 ---- a/pseudo.c -+++ b/pseudo.c -@@ -1087,9 +1087,15 @@ pseudo_db_check(int fix) { - int fixup_needed = 0; - pseudo_debug(PDBGF_DB, "Checking <%s>\n", m->path); - if (lstat(m->path, &buf)) { -- errors = EXIT_FAILURE; -- pseudo_diag("can't stat <%s>\n", m->path); -- continue; -+ if (!fix) { -+ pseudo_diag("can't stat <%s>\n", m->path); -+ errors = EXIT_FAILURE; -+ continue; -+ } else { -+ pseudo_debug(PDBGF_DB, "can't stat <%s>\n", m->path); -+ fixup_needed = 2; -+ goto do_fixup; -+ } - } - /* can't check for device type mismatches, uid/gid, or - * permissions, because those are the very things we -@@ -1125,6 +1131,7 @@ pseudo_db_check(int fix) { - S_ISDIR(m->mode)); - fixup_needed = 2; - } -+ do_fixup: - if (fixup_needed) { - /* in fixup mode, either delete (mismatches) or - * correct (dev/ino). --- -2.21.1 - diff --git a/poky/meta/recipes-devtools/pseudo/files/0001-pseudo_ipc.h-Fix-enum-typedef.patch b/poky/meta/recipes-devtools/pseudo/files/0001-pseudo_ipc.h-Fix-enum-typedef.patch deleted file mode 100644 index 33d4ef3b2..000000000 --- a/poky/meta/recipes-devtools/pseudo/files/0001-pseudo_ipc.h-Fix-enum-typedef.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a491aececfedf7313d29b80d626e0964fb533548 Mon Sep 17 00:00:00 2001 -From: Jacob Kroon -Date: Sun, 3 May 2020 06:24:03 +0200 -Subject: [PATCH] pseudo_ipc.h: Fix enum typedef - -'pseudo_access_t' is a type, so use typedef. - -Fixes building pseudo with gcc 10 where -fno-common is the default. - -Signed-off-by: Jacob Kroon -Upstream-Status: Submitted [https://lists.openembedded.org/g/openembedded-core/message/137758] ---- - pseudo_ipc.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pseudo_ipc.h b/pseudo_ipc.h -index caeae5c..d945257 100644 ---- a/pseudo_ipc.h -+++ b/pseudo_ipc.h -@@ -29,7 +29,7 @@ typedef struct { - char path[]; - } pseudo_msg_t; - --enum { -+typedef enum { - PSA_EXEC = 1, - PSA_WRITE = (PSA_EXEC << 1), - PSA_READ = (PSA_WRITE << 1), --- -2.26.2 - diff --git a/poky/meta/recipes-devtools/pseudo/files/0001-realpath.c-Remove-trailing-slashes.patch b/poky/meta/recipes-devtools/pseudo/files/0001-realpath.c-Remove-trailing-slashes.patch deleted file mode 100644 index 17829ef3a..000000000 --- a/poky/meta/recipes-devtools/pseudo/files/0001-realpath.c-Remove-trailing-slashes.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 86c9a5610e3333ad6aaadb1ac1e8b5a2c948d119 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Mon, 25 Nov 2019 18:46:45 +0800 -Subject: [PATCH] realpath.c: Remove trailing slashes - -Linux system's realpath() remove trailing slashes, but pseudo's doesn't, need -make them identical. - -E.g., the following code (rel.c) prints '/tmp' with system's realpath, but -pseudo's realpath prints '/tmp/': - - #include - #include - #include - - int main() { - char out[PATH_MAX]; - printf("%s\n", realpath("/tmp/", out)); - return 0; - } - -$ bitbake base-passwd -cdevshell # For pseudo env -$ gcc rel.c -$ ./a.out -/tmp/ (but should be /tmp) - -This patch fixes the problem. - -Upstream-Status: Submitted [https://lists.yoctoproject.org/g/poky/message/11879] - -Signed-off-by: Robert Yang ---- - ports/unix/guts/realpath.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/ports/unix/guts/realpath.c b/ports/unix/guts/realpath.c ---- a/ports/unix/guts/realpath.c -+++ b/ports/unix/guts/realpath.c -@@ -14,7 +14,14 @@ - errno = ENAMETOOLONG; - return NULL; - } -- if ((len = strlen(rname)) >= pseudo_sys_path_max()) { -+ len = strlen(rname); -+ char *ep = rname + len - 1; -+ while (ep > rname && *ep == '/') { -+ --len; -+ *(ep--) = '\0'; -+ } -+ -+ if (len >= pseudo_sys_path_max()) { - errno = ENAMETOOLONG; - return NULL; - } --- -2.7.4 - diff --git a/poky/meta/recipes-devtools/pseudo/files/0006-xattr-adjust-for-attr-2.4.48-release.patch b/poky/meta/recipes-devtools/pseudo/files/0006-xattr-adjust-for-attr-2.4.48-release.patch deleted file mode 100644 index 161357d55..000000000 --- a/poky/meta/recipes-devtools/pseudo/files/0006-xattr-adjust-for-attr-2.4.48-release.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 93d95ed2eaedcca110c214e1fe3f8896b1f6f853 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Tue, 17 Dec 2019 20:24:27 +0100 -Subject: [PATCH] xattr: adjust for attr 2.4.48 release - -Latest versions of attr have removed the xattr.h header, -with the rationale that libc is providing the same wrappers. - -attr/attributes.h is providing the ENOATTR definition. - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin ---- - ports/linux/subports | 5 +++-- - ports/linux/xattr/portdefs.h | 3 ++- - 2 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/ports/linux/subports b/ports/linux/subports -index 2c43ac9..740ec83 100755 ---- a/ports/linux/subports -+++ b/ports/linux/subports -@@ -29,11 +29,12 @@ fi - if $port_xattr; then - cat > dummy.c < --#include -+#include -+#include - int i; - EOF - if ! ${CC} -c -o dummy.o dummy.c >/dev/null 2>&1; then -- echo >&2 "Warning: Can't compile trivial program using ". -+ echo >&2 "Warning: Can't compile trivial program using ". - echo >&2 " xattr support will require that header." - fi - echo "linux/xattr" -diff --git a/ports/linux/xattr/portdefs.h b/ports/linux/xattr/portdefs.h -index 56cd3ca..068d39a 100644 ---- a/ports/linux/xattr/portdefs.h -+++ b/ports/linux/xattr/portdefs.h -@@ -2,5 +2,6 @@ - * SPDX-License-Identifier: LGPL-2.1-only - * - */ --#include -+#include -+#include - #include diff --git a/poky/meta/recipes-devtools/pseudo/files/moreretries.patch b/poky/meta/recipes-devtools/pseudo/files/moreretries.patch deleted file mode 100644 index adea2665b..000000000 --- a/poky/meta/recipes-devtools/pseudo/files/moreretries.patch +++ /dev/null @@ -1,19 +0,0 @@ -Increase the number of retries in pseudo due to occasional slow -server shutdowns. - -Upstream-Status: Pending -RP 2016/2/28 - -Index: git/pseudo_client.c -=================================================================== ---- git.orig/pseudo_client.c -+++ git/pseudo_client.c -@@ -1282,7 +1282,7 @@ pseudo_client_setup(void) { - } - } - --#define PSEUDO_RETRIES 20 -+#define PSEUDO_RETRIES 250 - static pseudo_msg_t * - pseudo_client_request(pseudo_msg_t *msg, size_t len, const char *path) { - pseudo_msg_t *response = 0; diff --git a/poky/meta/recipes-devtools/pseudo/files/seccomp.patch b/poky/meta/recipes-devtools/pseudo/files/seccomp.patch deleted file mode 100644 index 283f99794..000000000 --- a/poky/meta/recipes-devtools/pseudo/files/seccomp.patch +++ /dev/null @@ -1,137 +0,0 @@ -Pseudo changes the syscall access patterns which makes it incompatible with -seccomp. Therefore intercept the seccomp syscall and alter it, pretending that -seccomp was setup when in fact we do nothing. If we error as unsupported, -utilities like file will exit with errors so we can't just disable it. - -Upstream-Status: Pending -RP 2020/4/3 -Signed-off-by: Richard Purdie - -It fails to compile pseudo-native on centos 7: - -| ports/linux/pseudo_wrappers.c: In function ‘prctl’: -| ports/linux/pseudo_wrappers.c:129:14: error: ‘SECCOMP_SET_MODE_FILTER’ undeclared (first use in this function) -| if (cmd == SECCOMP_SET_MODE_FILTER) { -| ^ - -Add macro guard for seccomp to avoid the failure. - -Signed-off-by: Kai Kang - -Index: git/ports/linux/pseudo_wrappers.c -=================================================================== ---- git.orig/ports/linux/pseudo_wrappers.c -+++ git/ports/linux/pseudo_wrappers.c -@@ -57,6 +57,7 @@ int pseudo_capset(cap_user_header_t hdrp - long - syscall(long number, ...) { - long rc = -1; -+ va_list ap; - - if (!pseudo_check_wrappers() || !real_syscall) { - /* rc was initialized to the "failure" value */ -@@ -77,6 +78,20 @@ syscall(long number, ...) { - (void) number; - #endif - -+#ifdef SYS_seccomp -+ /* pseudo and seccomp are incompatible as pseudo uses different syscalls -+ * so pretend to enable seccomp but really do nothing */ -+ if (number == SYS_seccomp) { -+ unsigned long cmd; -+ va_start(ap, number); -+ cmd = va_arg(ap, unsigned long); -+ va_end(ap); -+ if (cmd == SECCOMP_SET_MODE_FILTER) { -+ return 0; -+ } -+ } -+#endif -+ - /* gcc magic to attempt to just pass these args to syscall. we have to - * guess about the number of args; the docs discuss calling conventions - * up to 7, so let's try that? -@@ -92,3 +108,44 @@ static long wrap_syscall(long nr, va_lis - (void) ap; - return -1; - } -+ -+int -+prctl(int option, ...) { -+ int rc = -1; -+ va_list ap; -+ -+ if (!pseudo_check_wrappers() || !real_prctl) { -+ /* rc was initialized to the "failure" value */ -+ pseudo_enosys("prctl"); -+ return rc; -+ } -+ -+#ifdef SECCOMP_SET_MODE_FILTER -+ /* pseudo and seccomp are incompatible as pseudo uses different syscalls -+ * so pretend to enable seccomp but really do nothing */ -+ if (option == PR_SET_SECCOMP) { -+ unsigned long cmd; -+ va_start(ap, option); -+ cmd = va_arg(ap, unsigned long); -+ va_end(ap); -+ if (cmd == SECCOMP_SET_MODE_FILTER) { -+ return 0; -+ } -+ } -+#endif -+ -+ /* gcc magic to attempt to just pass these args to prctl. we have to -+ * guess about the number of args; the docs discuss calling conventions -+ * up to 5, so let's try that? -+ */ -+ void *res = __builtin_apply((void (*)()) real_prctl, __builtin_apply_args(), sizeof(long) * 5); -+ __builtin_return(res); -+} -+ -+/* unused. -+ */ -+static int wrap_prctl(int option, va_list ap) { -+ (void) option; -+ (void) ap; -+ return -1; -+} -Index: git/ports/linux/guts/prctl.c -=================================================================== ---- /dev/null -+++ git/ports/linux/guts/prctl.c -@@ -0,0 +1,15 @@ -+/* -+ * Copyright (c) 2020 Richard Purdie -+ * -+ * SPDX-License-Identifier: LGPL-2.1-only -+ * -+ * int prctl(int option, ...) -+ * int rc = -1; -+ */ -+ -+ /* we should never get here, prctl is hand-wrapped */ -+ rc = -1; -+ -+/* return rc; -+ * } -+ */ -Index: git/ports/linux/portdefs.h -=================================================================== ---- git.orig/ports/linux/portdefs.h -+++ git/ports/linux/portdefs.h -@@ -32,3 +32,5 @@ GLIBC_COMPAT_SYMBOL(memcpy,2.0); - - #include - #include -+#include -+#include -Index: git/ports/linux/wrapfuncs.in -=================================================================== ---- git.orig/ports/linux/wrapfuncs.in -+++ git/ports/linux/wrapfuncs.in -@@ -56,3 +56,4 @@ int getgrent_r(struct group *gbuf, char - int capset(cap_user_header_t hdrp, const cap_user_data_t datap); /* real_func=pseudo_capset */ - long syscall(long nr, ...); /* hand_wrapped=1 */ - int renameat2(int olddirfd, const char *oldpath, int newdirfd, const char *newpath, unsigned int flags); /* flags=AT_SYMLINK_NOFOLLOW */ -+int prctl(int option, ...); /* hand_wrapped=1 */ diff --git a/poky/meta/recipes-devtools/pseudo/files/toomanyfiles.patch b/poky/meta/recipes-devtools/pseudo/files/toomanyfiles.patch deleted file mode 100644 index bda7e4b20..000000000 --- a/poky/meta/recipes-devtools/pseudo/files/toomanyfiles.patch +++ /dev/null @@ -1,71 +0,0 @@ -From b0b25fbc041a148d1de09f5a6503cd95973ec77c Mon Sep 17 00:00:00 2001 -From: Richard Purdie -Date: Tue, 25 Apr 2017 15:25:54 +0100 -Subject: [PATCH 3/3] pseudo: Handle too many files deadlock - -Currently if we max out the maximum number of files, pseudo can deadlock, unable to -accept new connections yet unable to move forward and unblock the other processes -waiting either. - -Rather than hang, when this happens, close out inactive connections, allowing us -to accept the new ones. The disconnected clients will simply reconnect. There is -a small risk of data loss here sadly but its better than hanging. - -RP -2017/4/25 - -Upstream-Status: Submitted [Peter is aware of the issue] - ---- - pseudo_server.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/pseudo_server.c b/pseudo_server.c -index dac3258..15a3e8f 100644 ---- a/pseudo_server.c -+++ b/pseudo_server.c -@@ -802,6 +802,7 @@ pseudo_server_loop(void) { - struct sigaction eat_usr2 = { - .sa_handler = set_do_list_clients - }; -+ int hitmaxfiles; - - clients = malloc(16 * sizeof(*clients)); - -@@ -820,6 +821,7 @@ pseudo_server_loop(void) { - active_clients = 1; - max_clients = 16; - highest_client = 0; -+ hitmaxfiles = 0; - - pseudo_debug(PDBGF_SERVER, "server loop started.\n"); - if (listen_fd < 0) { -@@ -878,10 +880,15 @@ pseudo_server_loop(void) { - } else { - serve_client(i); - } -+ } else if (hitmaxfiles) { -+ /* Only close one per loop iteration in the interests of caution */ -+ close_client(i); -+ hitmaxfiles = 0; - } - if (die_forcefully) - break; - } -+ hitmaxfiles = 0; - if (!die_forcefully && - (FD_ISSET(clients[0].fd, &events) || - FD_ISSET(clients[0].fd, &reads))) { -@@ -903,6 +910,9 @@ pseudo_server_loop(void) { - */ - pseudo_server_timeout = DEFAULT_PSEUDO_SERVER_TIMEOUT; - die_peacefully = 0; -+ } else if (errno == EMFILE) { -+ hitmaxfiles = 1; -+ pseudo_debug(PDBGF_SERVER, "Hit max open files, dropping a client.\n"); - } - } - pseudo_debug(PDBGF_SERVER, "server loop complete [%d clients left]\n", active_clients); --- -2.15.1 - diff --git a/poky/meta/recipes-devtools/pseudo/files/xattr_version.patch b/poky/meta/recipes-devtools/pseudo/files/xattr_version.patch deleted file mode 100644 index a8b14bdd6..000000000 --- a/poky/meta/recipes-devtools/pseudo/files/xattr_version.patch +++ /dev/null @@ -1,54 +0,0 @@ -On a tumbleweed system, "install X Y" was showing the error: - -pseudo: ENOSYS for 'fsetxattr'. - -which was being caused by dlsym() for that function returning NULL. This -appears to be due to it finding an unresolved symbol in libacl for this -symbol in libattr. It hasn't been resolved so its NULL. dlerror() returns -nothing since this is a valid symbol entry, its just not the one we want. - -We can add the glibc version string for the symbol we actually want so we get -that version rather than the libattr/libacl one. - -To quote libattr: -""" - These dumb wrappers are for backwards compatibility only. - Actual syscall wrappers are long gone to libc. -""" -and they are simply wrappers around the libc version so our attaching -to the libc versions should intercept any accesses via these too. - -RP 2020/06/22 -Signed-off-by: Richard Purdie Date: Thu, 10 Dec 2015 13:20:30 +0200 Subject: [PATCH] Don't search /usr and so on for libraries by default to @@ -14,11 +14,11 @@ Signed-off-by: Alexander Kanavin 1 file changed, 5 insertions(+), 37 deletions(-) diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py -index ba2b1f4..f94dce1 100644 +index 3a6a7b2..6c2c3da 100644 --- a/numpy/distutils/system_info.py +++ b/numpy/distutils/system_info.py -@@ -278,45 +278,13 @@ if sys.platform == 'win32': - add_system_root(os.path.join(conda_dir, 'Library')) +@@ -309,45 +309,13 @@ if sys.platform == 'win32': + add_system_root(os.path.join(conda_dir, 'Library')) else: - default_lib_dirs = libpaths(['/usr/local/lib', '/opt/lib', '/usr/lib', @@ -68,3 +68,6 @@ index ba2b1f4..f94dce1 100644 if os.path.join(sys.prefix, 'lib') not in default_lib_dirs: default_lib_dirs.insert(0, os.path.join(sys.prefix, 'lib')) +-- +2.17.1 + diff --git a/poky/meta/recipes-devtools/python-numpy/files/0001-convert-shebang-from-python-to-python3.patch b/poky/meta/recipes-devtools/python-numpy/files/0001-convert-shebang-from-python-to-python3.patch deleted file mode 100644 index a41624442..000000000 --- a/poky/meta/recipes-devtools/python-numpy/files/0001-convert-shebang-from-python-to-python3.patch +++ /dev/null @@ -1,555 +0,0 @@ -From 00848d760fa3999e2bed759b585452b35d65d6ec Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Thu, 5 Mar 2020 12:02:35 +0800 -Subject: [PATCH] convert shebang from python to python3 - -Upstream-Status: Backport -[https://github.com/numpy/numpy/commit/583901a074dc65145d3d6136ba7dcd02634d680b] - -Signed-off-by: Changqing Li - ---- - doc/DISTUTILS.rst.txt | 2 +- - doc/cdoc/numpyfilter.py | 2 +- - doc/postprocess.py | 2 +- - doc/summarize.py | 2 +- - numpy/distutils/conv_template.py | 2 +- - numpy/distutils/cpuinfo.py | 2 +- - numpy/distutils/from_template.py | 2 +- - numpy/distutils/setup.py | 2 +- - numpy/distutils/system_info.py | 2 +- - numpy/f2py/__init__.py | 2 +- - numpy/f2py/auxfuncs.py | 2 +- - numpy/f2py/capi_maps.py | 2 +- - numpy/f2py/cb_rules.py | 2 +- - numpy/f2py/cfuncs.py | 2 +- - numpy/f2py/common_rules.py | 2 +- - numpy/f2py/crackfortran.py | 2 +- - numpy/f2py/diagnose.py | 2 +- - numpy/f2py/f2py2e.py | 2 +- - numpy/f2py/f90mod_rules.py | 2 +- - numpy/f2py/func2subr.py | 2 +- - numpy/f2py/rules.py | 2 +- - numpy/f2py/setup.py | 2 +- - numpy/f2py/use_rules.py | 2 +- - numpy/linalg/lapack_lite/clapack_scrub.py | 2 +- - numpy/linalg/lapack_lite/make_lite.py | 2 +- - numpy/ma/bench.py | 2 +- - numpy/ma/setup.py | 2 +- - numpy/matrixlib/setup.py | 2 +- - numpy/random/_examples/cython/extending.pyx | 2 +- - numpy/random/_examples/cython/extending_distributions.pyx | 2 +- - numpy/setup.py | 2 +- - numpy/testing/print_coercion_tables.py | 2 +- - numpy/testing/setup.py | 2 +- - runtests.py | 2 +- - setup.py | 2 +- - tools/c_coverage/c_coverage_report.py | 2 +- - tools/changelog.py | 2 +- - tools/ci/push_docs_to_repo.py | 2 +- - tools/find_deprecated_escaped_characters.py | 2 +- - tools/refguide_check.py | 2 +- - tools/swig/test/setup.py | 2 +- - tools/swig/test/testArray.py | 2 +- - tools/swig/test/testFarray.py | 2 +- - tools/swig/test/testFlat.py | 2 +- - tools/swig/test/testFortran.py | 2 +- - tools/swig/test/testMatrix.py | 2 +- - tools/swig/test/testSuperTensor.py | 2 +- - tools/swig/test/testTensor.py | 2 +- - tools/swig/test/testVector.py | 2 +- - 49 files changed, 49 insertions(+), 49 deletions(-) - -diff --git a/doc/DISTUTILS.rst.txt b/doc/DISTUTILS.rst.txt -index bcef825..bc1700f 100644 ---- a/doc/DISTUTILS.rst.txt -+++ b/doc/DISTUTILS.rst.txt -@@ -59,7 +59,7 @@ SciPy pure Python package example - - Below is an example of a minimal ``setup.py`` file for a pure SciPy package:: - -- #!/usr/bin/env python -+ #!/usr/bin/env python3 - def configuration(parent_package='',top_path=None): - from numpy.distutils.misc_util import Configuration - config = Configuration('mypackage',parent_package,top_path) -diff --git a/doc/cdoc/numpyfilter.py b/doc/cdoc/numpyfilter.py -index 0ec5069..067bd36 100755 ---- a/doc/cdoc/numpyfilter.py -+++ b/doc/cdoc/numpyfilter.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - numpyfilter.py INPUTFILE - -diff --git a/doc/postprocess.py b/doc/postprocess.py -index 2e50c11..1be6f39 100755 ---- a/doc/postprocess.py -+++ b/doc/postprocess.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - %prog MODE FILES... - -diff --git a/doc/summarize.py b/doc/summarize.py -index cfce271..563af02 100755 ---- a/doc/summarize.py -+++ b/doc/summarize.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - summarize.py - -diff --git a/numpy/distutils/conv_template.py b/numpy/distutils/conv_template.py -index 3bcb7b8..88432c8 100644 ---- a/numpy/distutils/conv_template.py -+++ b/numpy/distutils/conv_template.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - takes templated file .xxx.src and produces .xxx file where .xxx is - .i or .c or .h, using the following template rules -diff --git a/numpy/distutils/cpuinfo.py b/numpy/distutils/cpuinfo.py -index bc97283..87502a9 100644 ---- a/numpy/distutils/cpuinfo.py -+++ b/numpy/distutils/cpuinfo.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - cpuinfo - -diff --git a/numpy/distutils/from_template.py b/numpy/distutils/from_template.py -index c5c1163..af75971 100644 ---- a/numpy/distutils/from_template.py -+++ b/numpy/distutils/from_template.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - process_file(filename) -diff --git a/numpy/distutils/setup.py b/numpy/distutils/setup.py -index 82a53bd..646921b 100644 ---- a/numpy/distutils/setup.py -+++ b/numpy/distutils/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - def configuration(parent_package='',top_path=None): -diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py -index 4f340b6..189081d 100644 ---- a/numpy/distutils/system_info.py -+++ b/numpy/distutils/system_info.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - This file defines a set of system_info classes for getting - information about various resources (libraries, library directories, -diff --git a/numpy/f2py/__init__.py b/numpy/f2py/__init__.py -index 42e3632..09a3657 100644 ---- a/numpy/f2py/__init__.py -+++ b/numpy/f2py/__init__.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """Fortran to Python Interface Generator. - - """ -diff --git a/numpy/f2py/auxfuncs.py b/numpy/f2py/auxfuncs.py -index 404bdbd..d23d959 100644 ---- a/numpy/f2py/auxfuncs.py -+++ b/numpy/f2py/auxfuncs.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Auxiliary functions for f2py2e. -diff --git a/numpy/f2py/capi_maps.py b/numpy/f2py/capi_maps.py -index ce79f68..e5d3fd2 100644 ---- a/numpy/f2py/capi_maps.py -+++ b/numpy/f2py/capi_maps.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Copyright 1999,2000 Pearu Peterson all rights reserved, -diff --git a/numpy/f2py/cb_rules.py b/numpy/f2py/cb_rules.py -index 183d7c2..93e93fe 100644 ---- a/numpy/f2py/cb_rules.py -+++ b/numpy/f2py/cb_rules.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Build call-back mechanism for f2py2e. -diff --git a/numpy/f2py/cfuncs.py b/numpy/f2py/cfuncs.py -index ccb7b3a..cdb783d 100644 ---- a/numpy/f2py/cfuncs.py -+++ b/numpy/f2py/cfuncs.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - C declarations, CPP macros, and C functions for f2py2e. -diff --git a/numpy/f2py/common_rules.py b/numpy/f2py/common_rules.py -index f61d881..fe510bf 100644 ---- a/numpy/f2py/common_rules.py -+++ b/numpy/f2py/common_rules.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Build common block mechanism for f2py2e. -diff --git a/numpy/f2py/crackfortran.py b/numpy/f2py/crackfortran.py -index 2aaf5d7..fb5ef2f 100755 ---- a/numpy/f2py/crackfortran.py -+++ b/numpy/f2py/crackfortran.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - crackfortran --- read fortran (77,90) code and extract declaration information. - -diff --git a/numpy/f2py/diagnose.py b/numpy/f2py/diagnose.py -index 0241fed..6c0304c 100644 ---- a/numpy/f2py/diagnose.py -+++ b/numpy/f2py/diagnose.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - import os -diff --git a/numpy/f2py/f2py2e.py b/numpy/f2py/f2py2e.py -index d03eff9..c17bfd9 100755 ---- a/numpy/f2py/f2py2e.py -+++ b/numpy/f2py/f2py2e.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - f2py2e - Fortran to Python C/API generator. 2nd Edition. -diff --git a/numpy/f2py/f90mod_rules.py b/numpy/f2py/f90mod_rules.py -index 85eae80..70be128 100644 ---- a/numpy/f2py/f90mod_rules.py -+++ b/numpy/f2py/f90mod_rules.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Build F90 module support for f2py2e. -diff --git a/numpy/f2py/func2subr.py b/numpy/f2py/func2subr.py -index 6010d5a..fdea0c2 100644 ---- a/numpy/f2py/func2subr.py -+++ b/numpy/f2py/func2subr.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Rules for building C/API module with f2py2e. -diff --git a/numpy/f2py/rules.py b/numpy/f2py/rules.py -index f2f713b..f87b03c 100755 ---- a/numpy/f2py/rules.py -+++ b/numpy/f2py/rules.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Rules for building C/API module with f2py2e. -diff --git a/numpy/f2py/setup.py b/numpy/f2py/setup.py -index a8c1401..2e7a517 100644 ---- a/numpy/f2py/setup.py -+++ b/numpy/f2py/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - setup.py for installing F2PY - -diff --git a/numpy/f2py/use_rules.py b/numpy/f2py/use_rules.py -index 6f44f16..8214f42 100644 ---- a/numpy/f2py/use_rules.py -+++ b/numpy/f2py/use_rules.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - - Build 'use others module data' mechanism for f2py2e. -diff --git a/numpy/linalg/lapack_lite/clapack_scrub.py b/numpy/linalg/lapack_lite/clapack_scrub.py -index 4345861..91e66e7 100644 ---- a/numpy/linalg/lapack_lite/clapack_scrub.py -+++ b/numpy/linalg/lapack_lite/clapack_scrub.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - import sys, os -diff --git a/numpy/linalg/lapack_lite/make_lite.py b/numpy/linalg/lapack_lite/make_lite.py -index 61102d6..0211f4e 100755 ---- a/numpy/linalg/lapack_lite/make_lite.py -+++ b/numpy/linalg/lapack_lite/make_lite.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - Usage: make_lite.py - -diff --git a/numpy/ma/bench.py b/numpy/ma/bench.py -index a9ba42d..a377436 100644 ---- a/numpy/ma/bench.py -+++ b/numpy/ma/bench.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - # -*- coding: utf-8 -*- - - from __future__ import division, print_function -diff --git a/numpy/ma/setup.py b/numpy/ma/setup.py -index d1d6c89..a04b79b 100644 ---- a/numpy/ma/setup.py -+++ b/numpy/ma/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - def configuration(parent_package='',top_path=None): -diff --git a/numpy/matrixlib/setup.py b/numpy/matrixlib/setup.py -index d0981d6..57534d1 100644 ---- a/numpy/matrixlib/setup.py -+++ b/numpy/matrixlib/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - def configuration(parent_package='', top_path=None): -diff --git a/numpy/random/_examples/cython/extending.pyx b/numpy/random/_examples/cython/extending.pyx -index 7a0dfe0..3a7f81a 100644 ---- a/numpy/random/_examples/cython/extending.pyx -+++ b/numpy/random/_examples/cython/extending.pyx -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - #cython: language_level=3 - - from libc.stdint cimport uint32_t -diff --git a/numpy/random/_examples/cython/extending_distributions.pyx b/numpy/random/_examples/cython/extending_distributions.pyx -index 1bef506..4da6a4b 100644 ---- a/numpy/random/_examples/cython/extending_distributions.pyx -+++ b/numpy/random/_examples/cython/extending_distributions.pyx -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - #cython: language_level=3 - """ - This file shows how the to use a BitGenerator to create a distribution. -diff --git a/numpy/setup.py b/numpy/setup.py -index 4ccdaee..db06c82 100644 ---- a/numpy/setup.py -+++ b/numpy/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - -diff --git a/numpy/testing/print_coercion_tables.py b/numpy/testing/print_coercion_tables.py -index 72b22ce..1e9a301 100755 ---- a/numpy/testing/print_coercion_tables.py -+++ b/numpy/testing/print_coercion_tables.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """Prints type-coercion tables for the built-in NumPy types - - """ -diff --git a/numpy/testing/setup.py b/numpy/testing/setup.py -index 7c3f2fb..bd315ee 100755 ---- a/numpy/testing/setup.py -+++ b/numpy/testing/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - -diff --git a/runtests.py b/runtests.py -index a38054f..383ddaa 100755 ---- a/runtests.py -+++ b/runtests.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - runtests.py [OPTIONS] [-- ARGS] - -diff --git a/setup.py b/setup.py -index d7f807b..705ea5d 100755 ---- a/setup.py -+++ b/setup.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ NumPy is the fundamental package for array computing with Python. - - It provides: -diff --git a/tools/c_coverage/c_coverage_report.py b/tools/c_coverage/c_coverage_report.py -index 327f6dc..8837684 100755 ---- a/tools/c_coverage/c_coverage_report.py -+++ b/tools/c_coverage/c_coverage_report.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - A script to create C code-coverage reports based on the output of - valgrind's callgrind tool. -diff --git a/tools/changelog.py b/tools/changelog.py -index b135b14..5d8b33c 100755 ---- a/tools/changelog.py -+++ b/tools/changelog.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # -*- encoding:utf-8 -*- - """ - Script to generate contributor and pull request lists -diff --git a/tools/ci/push_docs_to_repo.py b/tools/ci/push_docs_to_repo.py -index a989668..ae53054 100755 ---- a/tools/ci/push_docs_to_repo.py -+++ b/tools/ci/push_docs_to_repo.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - - import argparse - import subprocess -diff --git a/tools/find_deprecated_escaped_characters.py b/tools/find_deprecated_escaped_characters.py -index 6f90001..10e0378 100644 ---- a/tools/find_deprecated_escaped_characters.py -+++ b/tools/find_deprecated_escaped_characters.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - r""" - Look for escape sequences deprecated in Python 3.6. - -diff --git a/tools/refguide_check.py b/tools/refguide_check.py -index 2c62809..a19a29e 100644 ---- a/tools/refguide_check.py -+++ b/tools/refguide_check.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - """ - refguide_check.py [OPTIONS] [-- ARGS] - -diff --git a/tools/swig/test/setup.py b/tools/swig/test/setup.py -index 4ff870e..f8f05e6 100755 ---- a/tools/swig/test/setup.py -+++ b/tools/swig/test/setup.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - # System imports -diff --git a/tools/swig/test/testArray.py b/tools/swig/test/testArray.py -index 8d9c797..54ffe71 100755 ---- a/tools/swig/test/testArray.py -+++ b/tools/swig/test/testArray.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports -diff --git a/tools/swig/test/testFarray.py b/tools/swig/test/testFarray.py -index e8bf711..b377f7c 100755 ---- a/tools/swig/test/testFarray.py -+++ b/tools/swig/test/testFarray.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports -diff --git a/tools/swig/test/testFlat.py b/tools/swig/test/testFlat.py -index 71be277..55034bf 100755 ---- a/tools/swig/test/testFlat.py -+++ b/tools/swig/test/testFlat.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports -diff --git a/tools/swig/test/testFortran.py b/tools/swig/test/testFortran.py -index 426e894..0f7d0e6 100644 ---- a/tools/swig/test/testFortran.py -+++ b/tools/swig/test/testFortran.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports -diff --git a/tools/swig/test/testMatrix.py b/tools/swig/test/testMatrix.py -index 065be0d..854a23c 100755 ---- a/tools/swig/test/testMatrix.py -+++ b/tools/swig/test/testMatrix.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports -diff --git a/tools/swig/test/testSuperTensor.py b/tools/swig/test/testSuperTensor.py -index 97fe80c..31b63d0 100644 ---- a/tools/swig/test/testSuperTensor.py -+++ b/tools/swig/test/testSuperTensor.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, print_function - - # System imports -diff --git a/tools/swig/test/testTensor.py b/tools/swig/test/testTensor.py -index ac1b749..f47d9e8 100755 ---- a/tools/swig/test/testTensor.py -+++ b/tools/swig/test/testTensor.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports -diff --git a/tools/swig/test/testVector.py b/tools/swig/test/testVector.py -index 45e763b..067b922 100755 ---- a/tools/swig/test/testVector.py -+++ b/tools/swig/test/testVector.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python -+#!/usr/bin/env python3 - from __future__ import division, absolute_import, print_function - - # System imports diff --git a/poky/meta/recipes-devtools/python-numpy/python-numpy.inc b/poky/meta/recipes-devtools/python-numpy/python-numpy.inc index 75309e308..e37ab399e 100644 --- a/poky/meta/recipes-devtools/python-numpy/python-numpy.inc +++ b/poky/meta/recipes-devtools/python-numpy/python-numpy.inc @@ -1,15 +1,14 @@ SUMMARY = "A sophisticated Numeric Processing Package for Python" SECTION = "devel/python" LICENSE = "BSD-3-Clause & BSD-2-Clause & PSF & Apache-2.0 & BSD & MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1a32aba007a415aa8a1c708a0e2b86a1" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=643d4e90100b7abe468c4db88127b895" SRCNAME = "numpy" SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/v${PV}/${SRCNAME}-${PV}.tar.gz \ file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \ - file://0001-convert-shebang-from-python-to-python3.patch \ " -SRC_URI[sha256sum] = "2c095bd1c5290966cceee8b6ef5cd66f13cd0e9d6d0e8d6fc8961abd64a8e51f" +SRC_URI[sha256sum] = "153cf8b0176e57a611931981acfe093d2f7fef623b48f91176efa199798a6b90" UPSTREAM_CHECK_URI = "https://github.com/numpy/numpy/releases" UPSTREAM_CHECK_REGEX = "(?P\d+(\.\d+)+)\.tar" @@ -20,7 +19,7 @@ S = "${WORKDIR}/numpy-${PV}" CLEANBROKEN = "1" -FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a" +FILES_${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a ${PYTHON_SITEPACKAGES_DIR}/numpy/random/lib/*.a" # install what is needed for numpy.test() RDEPENDS_${PN} = "${PYTHON_PN}-unittest \ diff --git a/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.18.5.bb b/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.18.5.bb deleted file mode 100644 index d388e88d2..000000000 --- a/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.18.5.bb +++ /dev/null @@ -1,3 +0,0 @@ -inherit setuptools3 -require python-numpy.inc - diff --git a/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.19.0.bb b/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.19.0.bb new file mode 100644 index 000000000..d388e88d2 --- /dev/null +++ b/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.19.0.bb @@ -0,0 +1,3 @@ +inherit setuptools3 +require python-numpy.inc + diff --git a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch index 5f99cd251..201e3570d 100644 --- a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch +++ b/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch @@ -1,4 +1,4 @@ -From a8f871c9ebc4fcb99d4163b226aabeef26567099 Mon Sep 17 00:00:00 2001 +From 234c3da52da09b28db5b2c4d33ebe9c800c461ac Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Tue, 17 Jul 2018 10:13:38 +0800 Subject: [PATCH] conditionally do not fetch code by easy_install @@ -15,10 +15,10 @@ Signed-off-by: Hongxu Jia 1 file changed, 5 insertions(+) diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py -index 426301d..55c8062 100644 +index 5a9576f..f5961cb 100644 --- a/setuptools/command/easy_install.py +++ b/setuptools/command/easy_install.py -@@ -649,6 +649,11 @@ class easy_install(Command): +@@ -656,6 +656,11 @@ class easy_install(Command): os.path.exists(tmpdir) and rmtree(rmtree_safe(tmpdir)) def easy_install(self, spec, deps=False): diff --git a/poky/meta/recipes-devtools/python/python-cython.inc b/poky/meta/recipes-devtools/python/python-cython.inc index eee567ed2..a0cd2a5fb 100644 --- a/poky/meta/recipes-devtools/python/python-cython.inc +++ b/poky/meta/recipes-devtools/python/python-cython.inc @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa" PYPI_PACKAGE = "Cython" BBCLASSEXTEND = "native nativesdk" -SRC_URI[sha256sum] = "97f98a7dc0d58ea833dc1f8f8b3ce07adf4c0f030d1886c5399a2135ed415258" +SRC_URI[sha256sum] = "22d91af5fc2253f717a1b80b8bb45acb655f643611983fd6f782b9423f8171c7" UPSTREAM_CHECK_REGEX = "Cython-(?P.*)\.tar" inherit pypi diff --git a/poky/meta/recipes-devtools/python/python-setuptools.inc b/poky/meta/recipes-devtools/python/python-setuptools.inc index 3222de707..ecf120575 100644 --- a/poky/meta/recipes-devtools/python/python-setuptools.inc +++ b/poky/meta/recipes-devtools/python/python-setuptools.inc @@ -10,12 +10,9 @@ inherit pypi SRC_URI_append_class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch" -SRC_URI += "file://0001-change-shebang-to-python3.patch \ - file://0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch \ - " +SRC_URI += "file://0001-change-shebang-to-python3.patch" -SRC_URI[md5sum] = "6e9de90b242fdd60ef59f497424ce13a" -SRC_URI[sha256sum] = "145fa62b9d7bb544fce16e9b5a9bf4ab2032d2f758b7cd674af09a92736aff74" +SRC_URI[sha256sum] = "843037738d1e34e8b326b5e061f474aca6ef9d7ece41329afbc8aac6195a3920" DEPENDS += "${PYTHON_PN}" diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.19.bb b/poky/meta/recipes-devtools/python/python3-cython_0.29.19.bb deleted file mode 100644 index 2ce6bdbd6..000000000 --- a/poky/meta/recipes-devtools/python/python3-cython_0.29.19.bb +++ /dev/null @@ -1,18 +0,0 @@ -inherit setuptools3 -require python-cython.inc - -RDEPENDS_${PN} += "\ - python3-setuptools \ -" - -# running build_ext a second time during install fails, because Python -# would then attempt to import cythonized modules built for the target -# architecture. -DISTUTILS_INSTALL_ARGS += "--skip-build" - -do_install_append() { - # rename scripts that would conflict with the Python 2 build of Cython - mv ${D}${bindir}/cython ${D}${bindir}/cython3 - mv ${D}${bindir}/cythonize ${D}${bindir}/cythonize3 - mv ${D}${bindir}/cygdb ${D}${bindir}/cygdb3 -} diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.20.bb b/poky/meta/recipes-devtools/python/python3-cython_0.29.20.bb new file mode 100644 index 000000000..2ce6bdbd6 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-cython_0.29.20.bb @@ -0,0 +1,18 @@ +inherit setuptools3 +require python-cython.inc + +RDEPENDS_${PN} += "\ + python3-setuptools \ +" + +# running build_ext a second time during install fails, because Python +# would then attempt to import cythonized modules built for the target +# architecture. +DISTUTILS_INSTALL_ARGS += "--skip-build" + +do_install_append() { + # rename scripts that would conflict with the Python 2 build of Cython + mv ${D}${bindir}/cython ${D}${bindir}/cython3 + mv ${D}${bindir}/cythonize ${D}${bindir}/cythonize3 + mv ${D}${bindir}/cygdb ${D}${bindir}/cygdb3 +} diff --git a/poky/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb b/poky/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb index 4983ae527..3a2d8733e 100644 --- a/poky/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb +++ b/poky/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb @@ -12,6 +12,10 @@ inherit pypi setuptools3 SRC_URI[md5sum] = "083bd2cb0043c1e22a52cb9a05e31532" SRC_URI[sha256sum] = "9919344cec203f5db6596a29b5bc26b07ba9662925a05e24980b84709232ef60" -RDEPENDS_${PN} += "libarchive" +RDEPENDS_${PN} += "\ + libarchive \ + ${PYTHON_PN}-ctypes \ + ${PYTHON_PN}-mmap \ +" BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-devtools/python/python3-setuptools/0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch b/poky/meta/recipes-devtools/python/python3-setuptools/0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch deleted file mode 100644 index 7e931c845..000000000 --- a/poky/meta/recipes-devtools/python/python3-setuptools/0001-ScriptWriter-create-more-efficient-usr-bin-wrappers-signoff-included.patch +++ /dev/null @@ -1,62 +0,0 @@ -From aae8cd3de3f289cea3db01212579913c925191e8 Mon Sep 17 00:00:00 2001 -From: Lauri Tirkkonen -Date: Thu, 26 Mar 2020 14:24:25 +0000 -Subject: [PATCH] ScriptWriter: create more efficient /usr/bin wrappers - -Upstream setuptools writes scripts to /usr/bin that do insanely much -stuff at runtime. https://github.com/pypa/setuptools/issues/510 - -Since the script entry points are already known at build time, we can -just write those directly into the /usr/bin wrapper, avoiding the -expensive 'pkg_resources' import at runtime. The idea is from -https://github.com/ninjaaron/fast-entry_points but patched directly into -the native build of setuptools here, so that all Python modules under -bitbake automatically use it without needing additional build time -dependencies. - -Upstream-Status: Pending - -Signed-off-by: Lauri Tirkkonen -Signed-off-by: Trevor Gamblin ---- - setuptools/command/easy_install.py | 14 ++++++-------- - 1 file changed, 6 insertions(+), 8 deletions(-) - -diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py -index 8fba7b41..03a72714 100755 ---- a/setuptools/command/easy_install.py -+++ b/setuptools/command/easy_install.py -@@ -2023,17 +2023,12 @@ class ScriptWriter(object): - """ - - template = textwrap.dedent(r""" -- # EASY-INSTALL-ENTRY-SCRIPT: %(spec)r,%(group)r,%(name)r -- __requires__ = %(spec)r -- import re - import sys -- from pkg_resources import load_entry_point -+ -+ from %(module)s import %(ep0)s - - if __name__ == '__main__': -- sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) -- sys.exit( -- load_entry_point(%(spec)r, %(group)r, %(name)r)() -- ) -+ sys.exit(%(entrypoint)s()) - """).lstrip() - - command_spec_class = CommandSpec -@@ -2068,6 +2063,9 @@ class ScriptWriter(object): - for type_ in 'console', 'gui': - group = type_ + '_scripts' - for name, ep in dist.get_entry_map(group).items(): -+ module = ep.module_name -+ ep0 = ep.attrs[0] -+ entrypoint = '.'.join(ep.attrs) - cls._ensure_safe_name(name) - script_text = cls.template % locals() - args = cls._get_script_args(type_, name, header, script_text) --- -2.24.1 - diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_47.1.1.bb b/poky/meta/recipes-devtools/python/python3-setuptools_47.1.1.bb deleted file mode 100644 index 0dc1ed862..000000000 --- a/poky/meta/recipes-devtools/python/python3-setuptools_47.1.1.bb +++ /dev/null @@ -1,6 +0,0 @@ -require python-setuptools.inc -inherit setuptools3 - -do_install_append() { - mv ${D}${bindir}/easy_install ${D}${bindir}/easy3_install -} diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_47.3.1.bb b/poky/meta/recipes-devtools/python/python3-setuptools_47.3.1.bb new file mode 100644 index 000000000..0dc1ed862 --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3-setuptools_47.3.1.bb @@ -0,0 +1,6 @@ +require python-setuptools.inc +inherit setuptools3 + +do_install_append() { + mv ${D}${bindir}/easy_install ${D}${bindir}/easy3_install +} diff --git a/poky/meta/recipes-devtools/python/python3_3.8.3.bb b/poky/meta/recipes-devtools/python/python3_3.8.3.bb index 2eb2a422e..a7cfbad5c 100644 --- a/poky/meta/recipes-devtools/python/python3_3.8.3.bb +++ b/poky/meta/recipes-devtools/python/python3_3.8.3.bb @@ -350,6 +350,7 @@ FILES_${PN}-man = "${datadir}/man" # See https://bugs.python.org/issue18748 and https://bugs.python.org/issue37395 RDEPENDS_libpython3_append_libc-glibc = " libgcc" +RDEPENDS_${PN}-ctypes_append_libc-glibc = " ${MLPREFIX}ldconfig" RDEPENDS_${PN}-ptest = "${PN}-modules ${PN}-tests unzip bzip2 libgcc tzdata-europe coreutils sed" RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-tr-tr.iso-8859-9" RDEPENDS_${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', 'tk tk-lib', '', d)}" diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc index 8b6157e69..d41cc8f20 100644 --- a/poky/meta/recipes-devtools/qemu/qemu.inc +++ b/poky/meta/recipes-devtools/qemu/qemu.inc @@ -31,6 +31,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \ file://0001-qemu-Do-not-include-file-if-not-exists.patch \ file://CVE-2020-13361.patch \ file://find_datadir.patch \ + file://CVE-2020-10761.patch \ " UPSTREAM_CHECK_REGEX = "qemu-(?P\d+(\.\d+)+)\.tar" @@ -139,7 +140,7 @@ PACKAGECONFIG_remove_darwin = "kvm virglrenderer glx gtk+" PACKAGECONFIG_remove_mingw32 = "kvm virglrenderer glx gtk+" PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl2" -PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr,--disable-virtfs,libcap attr," +PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr,--disable-virtfs,libcap-ng attr," PACKAGECONFIG[aio] = "--enable-linux-aio,--disable-linux-aio,libaio," PACKAGECONFIG[xfs] = "--enable-xfsctl,--disable-xfsctl,xfsprogs," PACKAGECONFIG[xen] = "--enable-xen,--disable-xen,xen-tools,xen-tools-libxenstore xen-tools-libxenctrl xen-tools-libxenguest" diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-10761.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-10761.patch new file mode 100644 index 000000000..19f26ae5b --- /dev/null +++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-10761.patch @@ -0,0 +1,151 @@ +From 5c4fe018c025740fef4a0a4421e8162db0c3eefd Mon Sep 17 00:00:00 2001 +From: Eric Blake +Date: Mon, 8 Jun 2020 13:26:37 -0500 +Subject: [PATCH] nbd/server: Avoid long error message assertions + CVE-2020-10761 + +Ever since commit 36683283 (v2.8), the server code asserts that error +strings sent to the client are well-formed per the protocol by not +exceeding the maximum string length of 4096. At the time the server +first started sending error messages, the assertion could not be +triggered, because messages were completely under our control. +However, over the years, we have added latent scenarios where a client +could trigger the server to attempt an error message that would +include the client's information if it passed other checks first: + +- requesting NBD_OPT_INFO/GO on an export name that is not present + (commit 0cfae925 in v2.12 echoes the name) + +- requesting NBD_OPT_LIST/SET_META_CONTEXT on an export name that is + not present (commit e7b1948d in v2.12 echoes the name) + +At the time, those were still safe because we flagged names larger +than 256 bytes with a different message; but that changed in commit +93676c88 (v4.2) when we raised the name limit to 4096 to match the NBD +string limit. (That commit also failed to change the magic number +4096 in nbd_negotiate_send_rep_err to the just-introduced named +constant.) So with that commit, long client names appended to server +text can now trigger the assertion, and thus be used as a denial of +service attack against a server. As a mitigating factor, if the +server requires TLS, the client cannot trigger the problematic paths +unless it first supplies TLS credentials, and such trusted clients are +less likely to try to intentionally crash the server. + +We may later want to further sanitize the user-supplied strings we +place into our error messages, such as scrubbing out control +characters, but that is less important to the CVE fix, so it can be a +later patch to the new nbd_sanitize_name. + +Consideration was given to changing the assertion in +nbd_negotiate_send_rep_verr to instead merely log a server error and +truncate the message, to avoid leaving a latent path that could +trigger a future CVE DoS on any new error message. However, this +merely complicates the code for something that is already (correctly) +flagging coding errors, and now that we are aware of the long message +pitfall, we are less likely to introduce such errors in the future, +which would make such error handling dead code. + +Reported-by: Xueqiang Wei +CC: qemu-stable@nongnu.org +Fixes: https://bugzilla.redhat.com/1843684 CVE-2020-10761 +Fixes: 93676c88d7 +Signed-off-by: Eric Blake +Message-Id: <20200610163741.3745251-2-eblake@redhat.com> +Reviewed-by: Vladimir Sementsov-Ogievskiy + +Upstream-Status: Backport [https://github.com/qemu/qemu/commit/5c4fe018c025740fef4a0a4421e8162db0c3eefd] +CVE: CVE-2020-10761 +Signed-off-by: Chee Yang Lee + +--- + nbd/server.c | 23 ++++++++++++++++++++--- + tests/qemu-iotests/143 | 4 ++++ + tests/qemu-iotests/143.out | 2 ++ + 3 files changed, 26 insertions(+), 3 deletions(-) + +diff --git a/nbd/server.c b/nbd/server.c +index 02b1ed08014..20754e9ebc3 100644 +--- a/nbd/server.c ++++ b/nbd/server.c +@@ -217,7 +217,7 @@ nbd_negotiate_send_rep_verr(NBDClient *client, uint32_t type, + + msg = g_strdup_vprintf(fmt, va); + len = strlen(msg); +- assert(len < 4096); ++ assert(len < NBD_MAX_STRING_SIZE); + trace_nbd_negotiate_send_rep_err(msg); + ret = nbd_negotiate_send_rep_len(client, type, len, errp); + if (ret < 0) { +@@ -231,6 +231,19 @@ nbd_negotiate_send_rep_verr(NBDClient *client, uint32_t type, + return 0; + } + ++/* ++ * Return a malloc'd copy of @name suitable for use in an error reply. ++ */ ++static char * ++nbd_sanitize_name(const char *name) ++{ ++ if (strnlen(name, 80) < 80) { ++ return g_strdup(name); ++ } ++ /* XXX Should we also try to sanitize any control characters? */ ++ return g_strdup_printf("%.80s...", name); ++} ++ + /* Send an error reply. + * Return -errno on error, 0 on success. */ + static int GCC_FMT_ATTR(4, 5) +@@ -595,9 +608,11 @@ static int nbd_negotiate_handle_info(NBDClient *client, Error **errp) + + exp = nbd_export_find(name); + if (!exp) { ++ g_autofree char *sane_name = nbd_sanitize_name(name); ++ + return nbd_negotiate_send_rep_err(client, NBD_REP_ERR_UNKNOWN, + errp, "export '%s' not present", +- name); ++ sane_name); + } + + /* Don't bother sending NBD_INFO_NAME unless client requested it */ +@@ -995,8 +1010,10 @@ static int nbd_negotiate_meta_queries(NBDClient *client, + + meta->exp = nbd_export_find(export_name); + if (meta->exp == NULL) { ++ g_autofree char *sane_name = nbd_sanitize_name(export_name); ++ + return nbd_opt_drop(client, NBD_REP_ERR_UNKNOWN, errp, +- "export '%s' not present", export_name); ++ "export '%s' not present", sane_name); + } + + ret = nbd_opt_read(client, &nb_queries, sizeof(nb_queries), errp); +diff --git a/tests/qemu-iotests/143 b/tests/qemu-iotests/143 +index f649b361950..d2349903b1b 100755 +--- a/tests/qemu-iotests/143 ++++ b/tests/qemu-iotests/143 +@@ -58,6 +58,10 @@ _send_qemu_cmd $QEMU_HANDLE \ + $QEMU_IO_PROG -f raw -c quit \ + "nbd+unix:///no_such_export?socket=$SOCK_DIR/nbd" 2>&1 \ + | _filter_qemu_io | _filter_nbd ++# Likewise, with longest possible name permitted in NBD protocol ++$QEMU_IO_PROG -f raw -c quit \ ++ "nbd+unix:///$(printf %4096d 1 | tr ' ' a)?socket=$SOCK_DIR/nbd" 2>&1 \ ++ | _filter_qemu_io | _filter_nbd | sed 's/aaaa*aa/aa--aa/' + + _send_qemu_cmd $QEMU_HANDLE \ + "{ 'execute': 'quit' }" \ +diff --git a/tests/qemu-iotests/143.out b/tests/qemu-iotests/143.out +index 1f4001c6013..fc9c0a761fa 100644 +--- a/tests/qemu-iotests/143.out ++++ b/tests/qemu-iotests/143.out +@@ -5,6 +5,8 @@ QA output created by 143 + {"return": {}} + qemu-io: can't open device nbd+unix:///no_such_export?socket=SOCK_DIR/nbd: Requested export not available + server reported: export 'no_such_export' not present ++qemu-io: can't open device nbd+unix:///aa--aa1?socket=SOCK_DIR/nbd: Requested export not available ++server reported: export 'aa--aa...' not present + { 'execute': 'quit' } + {"return": {}} + {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} diff --git a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch b/poky/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch deleted file mode 100644 index 758188779..000000000 --- a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9840.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 6a043145ca6e9c55184013841a67b2fef87e44c0 Mon Sep 17 00:00:00 2001 -From: Mark Adler -Date: Wed, 21 Sep 2016 23:35:50 -0700 -Subject: [PATCH] Remove offset pointer optimization in inftrees.c. - -inftrees.c was subtracting an offset from a pointer to an array, -in order to provide a pointer that allowed indexing starting at -the offset. This is not compliant with the C standard, for which -the behavior of a pointer decremented before its allocated memory -is undefined. Per the recommendation of a security audit of the -zlib code by Trail of Bits and TrustInSoft, in support of the -Mozilla Foundation, this tiny optimization was removed, in order -to avoid the possibility of undefined behavior. - -CVE: CVE-2016-9840 -Upstream-Status: Backport -Signed-off-by: Anuj Mittal ---- - inftrees.c | 18 ++++++++---------- - 1 file changed, 8 insertions(+), 10 deletions(-) - -diff --git a/zlib/inftrees.c b/zlib/inftrees.c -index 22fcd666..0d2670d5 100644 ---- a/zlib/inftrees.c -+++ b/zlib/inftrees.c -@@ -54,7 +54,7 @@ unsigned short FAR *work; - code FAR *next; /* next available space in table */ - const unsigned short FAR *base; /* base value table to use */ - const unsigned short FAR *extra; /* extra bits table to use */ -- int end; /* use base and extra for symbol > end */ -+ unsigned match; /* use base and extra for symbol >= match */ - unsigned short count[MAXBITS+1]; /* number of codes of each length */ - unsigned short offs[MAXBITS+1]; /* offsets in table for each length */ - static const unsigned short lbase[31] = { /* Length codes 257..285 base */ -@@ -181,19 +181,17 @@ unsigned short FAR *work; - switch (type) { - case CODES: - base = extra = work; /* dummy value--not used */ -- end = 19; -+ match = 20; - break; - case LENS: - base = lbase; -- base -= 257; - extra = lext; -- extra -= 257; -- end = 256; -+ match = 257; - break; - default: /* DISTS */ - base = dbase; - extra = dext; -- end = -1; -+ match = 0; - } - - /* initialize state for loop */ -@@ -216,13 +214,13 @@ unsigned short FAR *work; - for (;;) { - /* create table entry */ - here.bits = (unsigned char)(len - drop); -- if ((int)(work[sym]) < end) { -+ if (work[sym] + 1 < match) { - here.op = (unsigned char)0; - here.val = work[sym]; - } -- else if ((int)(work[sym]) > end) { -- here.op = (unsigned char)(extra[work[sym]]); -- here.val = base[work[sym]]; -+ else if (work[sym] >= match) { -+ here.op = (unsigned char)(extra[work[sym] - match]); -+ here.val = base[work[sym] - match]; - } - else { - here.op = (unsigned char)(32 + 64); /* end of block */ diff --git a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch b/poky/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch deleted file mode 100644 index 3942176de..000000000 --- a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9841.patch +++ /dev/null @@ -1,228 +0,0 @@ -From 9aaec95e82117c1cb0f9624264c3618fc380cecb Mon Sep 17 00:00:00 2001 -From: Mark Adler -Date: Wed, 21 Sep 2016 22:25:21 -0700 -Subject: [PATCH] Use post-increment only in inffast.c. - -An old inffast.c optimization turns out to not be optimal anymore -with modern compilers, and furthermore was not compliant with the -C standard, for which decrementing a pointer before its allocated -memory is undefined. Per the recommendation of a security audit of -the zlib code by Trail of Bits and TrustInSoft, in support of the -Mozilla Foundation, this "optimization" was removed, in order to -avoid the possibility of undefined behavior. - -CVE: CVE-2016-9841 -Upstream-Status: Backport -Signed-off-by: Anuj Mittal ---- - zlib/inffast.c | 81 +++++++++++++++++++++---------------------------------- - 1 file changed, 31 insertions(+), 50 deletions(-) - -diff --git a/zlib/inffast.c b/zlib/inffast.c -index bda59ceb..f0d163db 100644 ---- a/zlib/inffast.c -+++ b/zlib/inffast.c -@@ -10,25 +10,6 @@ - - #ifndef ASMINF - --/* Allow machine dependent optimization for post-increment or pre-increment. -- Based on testing to date, -- Pre-increment preferred for: -- - PowerPC G3 (Adler) -- - MIPS R5000 (Randers-Pehrson) -- Post-increment preferred for: -- - none -- No measurable difference: -- - Pentium III (Anderson) -- - M68060 (Nikl) -- */ --#ifdef POSTINC --# define OFF 0 --# define PUP(a) *(a)++ --#else --# define OFF 1 --# define PUP(a) *++(a) --#endif -- - /* - Decode literal, length, and distance codes and write out the resulting - literal and match bytes until either not enough input or output is -@@ -96,9 +77,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - - /* copy state to local variables */ - state = (struct inflate_state FAR *)strm->state; -- in = strm->next_in - OFF; -+ in = strm->next_in; - last = in + (strm->avail_in - 5); -- out = strm->next_out - OFF; -+ out = strm->next_out; - beg = out - (start - strm->avail_out); - end = out + (strm->avail_out - 257); - #ifdef INFLATE_STRICT -@@ -119,9 +100,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - input data or output space */ - do { - if (bits < 15) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - } - here = lcode[hold & lmask]; -@@ -134,14 +115,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); -- PUP(out) = (unsigned char)(here.val); -+ *out++ = (unsigned char)(here.val); - } - else if (op & 16) { /* length base */ - len = (unsigned)(here.val); - op &= 15; /* number of extra bits */ - if (op) { - if (bits < op) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - } - len += (unsigned)hold & ((1U << op) - 1); -@@ -150,9 +131,9 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - } - Tracevv((stderr, "inflate: length %u\n", len)); - if (bits < 15) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - } - here = dcode[hold & dmask]; -@@ -165,10 +146,10 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - dist = (unsigned)(here.val); - op &= 15; /* number of extra bits */ - if (bits < op) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - if (bits < op) { -- hold += (unsigned long)(PUP(in)) << bits; -+ hold += (unsigned long)(*in++) << bits; - bits += 8; - } - } -@@ -196,30 +177,30 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR - if (len <= op - whave) { - do { -- PUP(out) = 0; -+ *out++ = 0; - } while (--len); - continue; - } - len -= op - whave; - do { -- PUP(out) = 0; -+ *out++ = 0; - } while (--op > whave); - if (op == 0) { - from = out - dist; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--len); - continue; - } - #endif - } -- from = window - OFF; -+ from = window; - if (wnext == 0) { /* very common case */ - from += wsize - op; - if (op < len) { /* some from window */ - len -= op; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--op); - from = out - dist; /* rest from output */ - } -@@ -230,14 +211,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - if (op < len) { /* some from end of window */ - len -= op; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--op); -- from = window - OFF; -+ from = window; - if (wnext < len) { /* some from start of window */ - op = wnext; - len -= op; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--op); - from = out - dist; /* rest from output */ - } -@@ -248,35 +229,35 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - if (op < len) { /* some from window */ - len -= op; - do { -- PUP(out) = PUP(from); -+ *out++ = *from++; - } while (--op); - from = out - dist; /* rest from output */ - } - } - while (len > 2) { -- PUP(out) = PUP(from); -- PUP(out) = PUP(from); -- PUP(out) = PUP(from); -+ *out++ = *from++; -+ *out++ = *from++; -+ *out++ = *from++; - len -= 3; - } - if (len) { -- PUP(out) = PUP(from); -+ *out++ = *from++; - if (len > 1) -- PUP(out) = PUP(from); -+ *out++ = *from++; - } - } - else { - from = out - dist; /* copy direct from output */ - do { /* minimum length is three */ -- PUP(out) = PUP(from); -- PUP(out) = PUP(from); -- PUP(out) = PUP(from); -+ *out++ = *from++; -+ *out++ = *from++; -+ *out++ = *from++; - len -= 3; - } while (len > 2); - if (len) { -- PUP(out) = PUP(from); -+ *out++ = *from++; - if (len > 1) -- PUP(out) = PUP(from); -+ *out++ = *from++; - } - } - } -@@ -313,8 +294,8 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ - hold &= (1U << bits) - 1; - - /* update state and return */ -- strm->next_in = in + OFF; -- strm->next_out = out + OFF; -+ strm->next_in = in; -+ strm->next_out = out; - strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last)); - strm->avail_out = (unsigned)(out < end ? - 257 + (end - out) : 257 - (out - end)); diff --git a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch b/poky/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch deleted file mode 100644 index 810d8a3fd..000000000 --- a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9842.patch +++ /dev/null @@ -1,33 +0,0 @@ -From e54e1299404101a5a9d0cf5e45512b543967f958 Mon Sep 17 00:00:00 2001 -From: Mark Adler -Date: Sat, 5 Sep 2015 17:45:55 -0700 -Subject: [PATCH] Avoid shifts of negative values inflateMark(). - -The C standard says that bit shifts of negative integers is -undefined. This casts to unsigned values to assure a known -result. - -CVE: CVE-2016-9842 -Upstream-Status: Backport -Signed-off-by: Anuj Mittal ---- - inflate.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/zlib/inflate.c b/zlib/inflate.c -index 2889e3a0..a7184167 100644 ---- a/zlib/inflate.c -+++ b/zlib/inflate.c -@@ -1506,9 +1506,10 @@ z_streamp strm; - { - struct inflate_state FAR *state; - -- if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16; -+ if (strm == Z_NULL || strm->state == Z_NULL) -+ return (long)(((unsigned long)0 - 1) << 16); - state = (struct inflate_state FAR *)strm->state; -- return ((long)(state->back) << 16) + -+ return (long)(((unsigned long)((long)state->back)) << 16) + - (state->mode == COPY ? state->length : - (state->mode == MATCH ? state->was - state->length : 0)); - } diff --git a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch b/poky/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch deleted file mode 100644 index ea2e42fe7..000000000 --- a/poky/meta/recipes-devtools/rsync/files/CVE-2016-9843.patch +++ /dev/null @@ -1,53 +0,0 @@ -From d1d577490c15a0c6862473d7576352a9f18ef811 Mon Sep 17 00:00:00 2001 -From: Mark Adler -Date: Wed, 28 Sep 2016 20:20:25 -0700 -Subject: [PATCH] Avoid pre-decrement of pointer in big-endian CRC calculation. - -There was a small optimization for PowerPCs to pre-increment a -pointer when accessing a word, instead of post-incrementing. This -required prefacing the loop with a decrement of the pointer, -possibly pointing before the object passed. This is not compliant -with the C standard, for which decrementing a pointer before its -allocated memory is undefined. When tested on a modern PowerPC -with a modern compiler, the optimization no longer has any effect. -Due to all that, and per the recommendation of a security audit of -the zlib code by Trail of Bits and TrustInSoft, in support of the -Mozilla Foundation, this "optimization" was removed, in order to -avoid the possibility of undefined behavior. - -CVE: CVE-2016-9843 -Upstream-Status: Backport -Signed-off-by: Anuj Mittal ---- - crc32.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/zlib/crc32.c b/zlib/crc32.c -index 979a7190..05733f4e 100644 ---- a/zlib/crc32.c -+++ b/zlib/crc32.c -@@ -278,7 +278,7 @@ local unsigned long crc32_little(crc, buf, len) - } - - /* ========================================================================= */ --#define DOBIG4 c ^= *++buf4; \ -+#define DOBIG4 c ^= *buf4++; \ - c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ - crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] - #define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 -@@ -300,7 +300,6 @@ local unsigned long crc32_big(crc, buf, len) - } - - buf4 = (const z_crc_t FAR *)(const void FAR *)buf; -- buf4--; - while (len >= 32) { - DOBIG32; - len -= 32; -@@ -309,7 +308,6 @@ local unsigned long crc32_big(crc, buf, len) - DOBIG4; - len -= 4; - } -- buf4++; - buf = (const unsigned char FAR *)buf4; - - if (len) do { diff --git a/poky/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch b/poky/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch index 3d27fe72c..038a67209 100644 --- a/poky/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch +++ b/poky/meta/recipes-devtools/rsync/files/makefile-no-rebuild.patch @@ -1,20 +1,26 @@ +From 5ae38baadd40a996da3d19a147f37e7f1f3355bf Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Tue, 12 Apr 2016 15:51:54 +0100 +Subject: [PATCH] rsync: remove upstream's rebuild logic + Remove the Makefile rules to reinvoke autoconf, they're not out-of-tree safe and generally overcomplicated, and we ensure that autoreconf is invoked if required. Upstream-Status: Inappropriate Signed-off-by: Ross Burton +--- + Makefile.in | 50 -------------------------------------------------- + 1 file changed, 50 deletions(-) + diff --git a/Makefile.in b/Makefile.in -index 151247d..8f3fdb6 100644 +index 31ddc43..41c9a93 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -141,58 +141,6 @@ gen: conf proto.h man +@@ -167,56 +167,6 @@ gen: conf proto.h man gensend: gen - rsync -aivzc $(GENFILES) $${SAMBA_HOST-samba.org}:/home/ftp/pub/rsync/generated-files/ + rsync -aic $(GENFILES) $${SAMBA_HOST-samba.org}:/home/ftp/pub/rsync/generated-files/ --conf: -- cd $(srcdir) && $(MAKE) -f prepare-source.mak conf -- -aclocal.m4: $(srcdir)/m4/*.m4 - aclocal -I $(srcdir)/m4 - @@ -45,6 +51,7 @@ index 151247d..8f3fdb6 100644 - fi \ - fi - +-.PHONY: reconfigure -reconfigure: configure.sh - ./config.status --recheck - ./config.status @@ -64,6 +71,6 @@ index 151247d..8f3fdb6 100644 - fi \ - fi - - rsync-ssl: $(srcdir)/rsync-ssl.in Makefile - sed 's;\@bindir\@;$(bindir);g' <$(srcdir)/rsync-ssl.in >rsync-ssl - @chmod +x rsync-ssl + stunnel-rsyncd.conf: $(srcdir)/stunnel-rsyncd.conf.in Makefile + sed 's;\@bindir\@;$(bindir);g' <$(srcdir)/stunnel-rsyncd.conf.in >stunnel-rsyncd.conf + diff --git a/poky/meta/recipes-devtools/rsync/rsync_3.1.3.bb b/poky/meta/recipes-devtools/rsync/rsync_3.1.3.bb deleted file mode 100644 index 152ff02a2..000000000 --- a/poky/meta/recipes-devtools/rsync/rsync_3.1.3.bb +++ /dev/null @@ -1,57 +0,0 @@ -SUMMARY = "File synchronization tool" -HOMEPAGE = "http://rsync.samba.org/" -BUGTRACKER = "http://rsync.samba.org/bugzilla.html" -SECTION = "console/network" -# GPLv2+ (<< 3.0.0), GPLv3+ (>= 3.0.0) -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS = "popt" - -SRC_URI = "https://download.samba.org/pub/${BPN}/src/${BP}.tar.gz \ - file://rsyncd.conf \ - file://makefile-no-rebuild.patch \ - file://CVE-2016-9840.patch \ - file://CVE-2016-9841.patch \ - file://CVE-2016-9842.patch \ - file://CVE-2016-9843.patch \ -" - -SRC_URI[md5sum] = "1581a588fde9d89f6bc6201e8129afaf" -SRC_URI[sha256sum] = "55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0" - -# -16548 required for v3.1.3pre1. Already in v3.1.3. -CVE_CHECK_WHITELIST += " CVE-2017-16548 " - -inherit autotools - -PACKAGECONFIG ??= "acl attr \ - ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ -" - -PACKAGECONFIG[acl] = "--enable-acl-support,--disable-acl-support,acl," -PACKAGECONFIG[attr] = "--enable-xattr-support,--disable-xattr-support,attr," -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," - -# By default, if crosscompiling, rsync disables a number of -# capabilities, hardlinking symlinks and special files (i.e. devices) -CACHED_CONFIGUREVARS += "rsync_cv_can_hardlink_special=yes rsync_cv_can_hardlink_symlink=yes" - -EXTRA_OEMAKE = 'STRIP=""' - -# rsync 3.0 uses configure.sh instead of configure, and -# makefile checks the existence of configure.sh -do_configure_prepend () { - rm -f ${S}/configure ${S}/configure.sh -} - -do_configure_append () { - cp -f ${S}/configure ${S}/configure.sh -} - -do_install_append() { - install -d ${D}${sysconfdir} - install -m 0644 ${WORKDIR}/rsyncd.conf ${D}${sysconfdir} -} - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-devtools/rsync/rsync_3.2.1.bb b/poky/meta/recipes-devtools/rsync/rsync_3.2.1.bb new file mode 100644 index 000000000..ea6b1ce38 --- /dev/null +++ b/poky/meta/recipes-devtools/rsync/rsync_3.2.1.bb @@ -0,0 +1,58 @@ +SUMMARY = "File synchronization tool" +HOMEPAGE = "http://rsync.samba.org/" +BUGTRACKER = "http://rsync.samba.org/bugzilla.html" +SECTION = "console/network" +# GPLv2+ (<< 3.0.0), GPLv3+ (>= 3.0.0) +# Includes opennsh and xxhash dynamic link exception +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=9e5a4f9b3a253d51520617aa54f8eb26" + +DEPENDS = "popt" + +SRC_URI = "https://download.samba.org/pub/${BPN}/src/${BP}.tar.gz \ + file://rsyncd.conf \ + file://makefile-no-rebuild.patch \ + " + +SRC_URI[sha256sum] = "95f2dd62979b500a99b34c1a6453a0787ada0330e4bec7fcffad37b9062d58d3" + +# -16548 required for v3.1.3pre1. Already in v3.1.3. +CVE_CHECK_WHITELIST += " CVE-2017-16548 " + +inherit autotools-brokensep + +PACKAGECONFIG ??= "acl attr \ + ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ +" + +PACKAGECONFIG[acl] = "--enable-acl-support,--disable-acl-support,acl," +PACKAGECONFIG[attr] = "--enable-xattr-support,--disable-xattr-support,attr," +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" +PACKAGECONFIG[xxhash] = "--enable-xxhash,--disable-xxhash,xxhash" +PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd" + +# By default, if crosscompiling, rsync disables a number of +# capabilities, hardlinking symlinks and special files (i.e. devices) +CACHED_CONFIGUREVARS += "rsync_cv_can_hardlink_special=yes rsync_cv_can_hardlink_symlink=yes" + +EXTRA_OEMAKE = 'STRIP=""' +EXTRA_OECONF = "--disable-simd --disable-md2man --disable-asm" + +# rsync 3.0 uses configure.sh instead of configure, and +# makefile checks the existence of configure.sh +do_configure_prepend () { + rm -f ${S}/configure ${S}/configure.sh +} + +do_configure_append () { + cp -f ${S}/configure ${S}/configure.sh +} + +do_install_append() { + install -d ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/rsyncd.conf ${D}${sysconfdir} +} + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am b/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am index dcf64584d..d4498947e 100644 --- a/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am +++ b/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am @@ -46,6 +46,7 @@ runtest: else echo "FAIL: sample2 decompress"; fi @if cmp sample3.tst sample3.ref; then echo "PASS: sample3 decompress";\ else echo "FAIL: sample3 decompress"; fi + ./bzip2-tests/run-tests.sh --tests-dir="$(PWD)/bzip2-tests" install-ptest: sed -n '/^runtest:/,/^install-ptest:/{/^install-ptest:/!p}' \ diff --git a/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb b/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb index d58f553a4..70eb67f1f 100644 --- a/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb +++ b/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb @@ -4,10 +4,25 @@ Huffman coding. Compression is generally considerably better than that achieved LZ77/LZ78-based compressors, and approaches the performance of the PPM family of statistical compressors." HOMEPAGE = "https://sourceware.org/bzip2/" SECTION = "console/utils" -LICENSE = "bzip2-1.0.6" -LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664" +LICENSE = "bzip2-1.0.6 & GPLv3+ & Apache-2.0 & MS-PL & BSD-3-Clause & Zlib" +LICENSE_${PN} = "bzip2-1.0.6" +LICENSE_${PN}-dev = "bzip2-1.0.6" +LICENSE_${PN}-dbg = "bzip2-1.0.6" +LICENSE_${PN}-doc = "bzip2-1.0.6" +LICENSE_${PN}-src = "bzip2-1.0.6" +LICENSE_libbz2 = "bzip2-1.0.6" +LICENSE_${PN}-ptest = "bzip2-1.0.6 & GPLv3+ & Apache-2.0 & MS-PL & BSD-3-Clause & Zlib" + +LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 \ + file://${WORKDIR}/git/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 \ + file://${WORKDIR}/git/dotnetzip/License.txt;md5=9cb56871eed4e748c3bc7e8ff352a54f \ + file://${WORKDIR}/git/dotnetzip/License.zlib.txt;md5=cc421ccd22eeb2e5db6b79e6de0a029f \ + file://${WORKDIR}/git/go/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707 \ + file://${WORKDIR}/git/lbzip2/COPYING;md5=d32239bcb673463ab874e80d47fae504 \ +" SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \ + git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests \ file://configure.ac;subdir=${BP} \ file://Makefile.am;subdir=${BP} \ file://run-ptest \ @@ -15,6 +30,8 @@ SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \ SRC_URI[md5sum] = "67e051268d0c475ea773822f7500d0e5" SRC_URI[sha256sum] = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" +SRCREV_bzip2-tests = "f9061c030a25de5b6829e1abf373057309c734c0" + UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/" PACKAGES =+ "libbz2" @@ -34,12 +51,20 @@ do_configure_prepend () { } do_install_ptest () { + install -d ${D}${PTEST_PATH}/bzip2-tests + cp -r ${WORKDIR}/git/commons-compress ${D}${PTEST_PATH}/bzip2-tests/commons-compress + cp -r ${WORKDIR}/git/dotnetzip ${D}${PTEST_PATH}/bzip2-tests/dotnetzip + cp -r ${WORKDIR}/git/go ${D}${PTEST_PATH}/bzip2-tests/go + cp -r ${WORKDIR}/git/lbzip2 ${D}${PTEST_PATH}/bzip2-tests/lbzip2 + cp -r ${WORKDIR}/git/pyflate ${D}${PTEST_PATH}/bzip2-tests/pyflate + cp ${WORKDIR}/git/README ${D}${PTEST_PATH}/bzip2-tests/ + cp ${WORKDIR}/git/run-tests.sh ${D}${PTEST_PATH}/bzip2-tests/ sed -i -e "s|^Makefile:|_Makefile:|" ${D}${PTEST_PATH}/Makefile } FILES_libbz2 = "${libdir}/lib*${SOLIBS}" -RDEPENDS_${PN}-ptest += "make" +RDEPENDS_${PN}-ptest += "make bash" PROVIDES_append_class-native = " bzip2-replacement-native" BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/cpio/cpio_2.13.bb b/poky/meta/recipes-extended/cpio/cpio_2.13.bb index 9e35a80f8..94d86100c 100644 --- a/poky/meta/recipes-extended/cpio/cpio_2.13.bb +++ b/poky/meta/recipes-extended/cpio/cpio_2.13.bb @@ -23,7 +23,9 @@ do_install () { if [ "${base_bindir}" != "${bindir}" ]; then install -d ${D}${base_bindir}/ mv "${D}${bindir}/cpio" "${D}${base_bindir}/cpio" - rmdir ${D}${bindir}/ + if [ "${sbindir}" != "${bindir}" ]; then + rmdir ${D}${bindir}/ + fi fi # Avoid conflicts with the version from tar @@ -46,4 +48,4 @@ ALTERNATIVE_LINK_NAME[cpio] = "${base_bindir}/cpio" ALTERNATIVE_PRIORITY[rmt] = "50" ALTERNATIVE_LINK_NAME[rmt] = "${sbindir}/rmt" -BBCLASSEXTEND = "native" +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch b/poky/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch index 877f4f062..dba4494b9 100644 --- a/poky/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch +++ b/poky/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch @@ -1,4 +1,7 @@ -Define daddr_t if __DADDR_T_TYPE is not defined +From 55e11765af2bdc8adfac87dab1fb2682f7e6c236 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 9 Jun 2020 22:10:28 -0700 +Subject: [PATCH] Define daddr_t if __DADDR_T_TYPE is not defined glibc defined daddr_t but musl does not, ideally it should not be used and simple int type is enough. However, its better to leave glibc behavior @@ -7,9 +10,16 @@ as it is and only define it to int if daddr_t is not provided by libc Upstream-Status: Pending Signed-off-by: Khem Raj + +--- + stress-ng.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/stress-ng.h b/stress-ng.h +index 1a66293..802dc25 100644 --- a/stress-ng.h +++ b/stress-ng.h -@@ -3750,6 +3750,10 @@ struct shim_statx { +@@ -3763,6 +3763,10 @@ struct shim_statx { uint64_t __spare2[14]; }; @@ -19,4 +29,4 @@ Signed-off-by: Khem Raj + /* old ustat struct */ struct shim_ustat { - daddr_t f_tfree; + #if defined(HAVE_DADDR_T) diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.12.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.12.bb deleted file mode 100644 index c00086c09..000000000 --- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.12.bb +++ /dev/null @@ -1,26 +0,0 @@ -SUMMARY = "System load testing utility" -DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \ -imposes a configurable amount of CPU, memory, I/O, and disk stress on the system." -HOMEPAGE = "https://kernel.ubuntu.com/~cking/stress-ng/" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \ - file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \ - file://no_daddr_t.patch \ - " -SRC_URI[sha256sum] = "0ccf437ca1876a3e8a55986c6481697045203a17f5994cb2f5096cd461d18031" - -DEPENDS = "coreutils-native" - -PROVIDES = "stress" -RPROVIDES_${PN} = "stress" -RREPLACES_${PN} = "stress" -RCONFLICTS_${PN} = "stress" - -inherit bash-completion - -do_install() { - oe_runmake DESTDIR=${D} install -} - diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.14.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.14.bb new file mode 100644 index 000000000..f1d91da2b --- /dev/null +++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.14.bb @@ -0,0 +1,26 @@ +SUMMARY = "System load testing utility" +DESCRIPTION = "Deliberately simple workload generator for POSIX systems. It \ +imposes a configurable amount of CPU, memory, I/O, and disk stress on the system." +HOMEPAGE = "https://kernel.ubuntu.com/~cking/stress-ng/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \ + file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \ + file://no_daddr_t.patch \ + " +SRC_URI[sha256sum] = "b21436fdbd9dc482a3fd95ae27cccf0097d0f226361ea3785215f7a4ad50136b" + +DEPENDS = "coreutils-native" + +PROVIDES = "stress" +RPROVIDES_${PN} = "stress" +RREPLACES_${PN} = "stress" +RCONFLICTS_${PN} = "stress" + +inherit bash-completion + +do_install() { + oe_runmake DESTDIR=${D} install +} + diff --git a/poky/meta/recipes-extended/sudo/sudo/0001-Include-sys-types.h-for-id_t-definition.patch b/poky/meta/recipes-extended/sudo/sudo/0001-Include-sys-types.h-for-id_t-definition.patch deleted file mode 100644 index eb36cd49b..000000000 --- a/poky/meta/recipes-extended/sudo/sudo/0001-Include-sys-types.h-for-id_t-definition.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 386e2c2fa2ab2e02ef71c268a57205139be329ab Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 31 Aug 2015 07:07:49 +0000 -Subject: [PATCH] Include sys/types.h for id_t definition - -/sudo_util.h:219:14: error: unknown type name 'id_t' - __dso_public id_t sudo_strtoid_v1(const char *str, const char *sep, - char **endp, const char **errstr); - ^ - make[1]: *** [preserve_fds.o] Error 1 - -Signed-off-by: Khem Raj ---- -Upstream-Status: Pending - - include/sudo_util.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/include/sudo_util.h b/include/sudo_util.h -index 89c9f89..ac0855a 100644 ---- a/include/sudo_util.h -+++ b/include/sudo_util.h -@@ -17,6 +17,8 @@ - #ifndef SUDO_UTIL_H - #define SUDO_UTIL_H - -+#include -+ - #ifdef HAVE_STDBOOL_H - # include - #else --- -2.5.1 - diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.0.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.0.bb deleted file mode 100644 index 76266537b..000000000 --- a/poky/meta/recipes-extended/sudo/sudo_1.9.0.bb +++ /dev/null @@ -1,48 +0,0 @@ -require sudo.inc - -SRC_URI = "https://www.sudo.ws/dist/sudo-${PV}.tar.gz \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ - file://0001-Include-sys-types.h-for-id_t-definition.patch \ - " - -PAM_SRC_URI = "file://sudo.pam" - -SRC_URI[md5sum] = "060b91a6b171cb7ce587222664549b2c" -SRC_URI[sha256sum] = "ab231439c5dfdf4ecbef74f10d5f7e9686c2255c2f3887085b5c5e13281bf95c" - -DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" -RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}" - -CACHED_CONFIGUREVARS = " \ - ac_cv_type_rsize_t=no \ - ac_cv_path_MVPROG=${base_bindir}/mv \ - ac_cv_path_BSHELLPROG=${base_bindir}/sh \ - ac_cv_path_SENDMAILPROG=${sbindir}/sendmail \ - ac_cv_path_VIPROG=${base_bindir}/vi \ - " - -EXTRA_OECONF += " \ - ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${nonarch_libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \ - --with-vardir=/var/lib/sudo \ - " - -do_install_append () { - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then - install -D -m 644 ${WORKDIR}/sudo.pam ${D}/${sysconfdir}/pam.d/sudo - if ${@bb.utils.contains('PACKAGECONFIG', 'pam-wheel', 'true', 'false', d)} ; then - echo 'auth required pam_wheel.so use_uid' >>${D}${sysconfdir}/pam.d/sudo - sed -i 's/# \(%wheel ALL=(ALL) ALL\)/\1/' ${D}${sysconfdir}/sudoers - fi - fi - - chmod 4111 ${D}${bindir}/sudo - chmod 0440 ${D}${sysconfdir}/sudoers - - # Explicitly remove the /run directory to avoid QA error - rmdir -p --ignore-fail-on-non-empty ${D}/run/sudo -} - -FILES_${PN} += "${nonarch_libdir}/tmpfiles.d" -FILES_${PN}-dev += "${libexecdir}/${BPN}/lib*${SOLIBSDEV} ${libexecdir}/${BPN}/*.la \ - ${libexecdir}/lib*${SOLIBSDEV} ${libexecdir}/*.la" diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb new file mode 100644 index 000000000..aac505af6 --- /dev/null +++ b/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb @@ -0,0 +1,46 @@ +require sudo.inc + +SRC_URI = "https://www.sudo.ws/dist/sudo-${PV}.tar.gz \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ + " + +PAM_SRC_URI = "file://sudo.pam" + +SRC_URI[sha256sum] = "294116cefe10a02773917fc7440d8384b925955bc96a6e0eaa1977c83b34adff" + +DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" +RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}" + +CACHED_CONFIGUREVARS = " \ + ac_cv_type_rsize_t=no \ + ac_cv_path_MVPROG=${base_bindir}/mv \ + ac_cv_path_BSHELLPROG=${base_bindir}/sh \ + ac_cv_path_SENDMAILPROG=${sbindir}/sendmail \ + ac_cv_path_VIPROG=${base_bindir}/vi \ + " + +EXTRA_OECONF += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${nonarch_libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \ + --with-vardir=/var/lib/sudo \ + " + +do_install_append () { + if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then + install -D -m 644 ${WORKDIR}/sudo.pam ${D}/${sysconfdir}/pam.d/sudo + if ${@bb.utils.contains('PACKAGECONFIG', 'pam-wheel', 'true', 'false', d)} ; then + echo 'auth required pam_wheel.so use_uid' >>${D}${sysconfdir}/pam.d/sudo + sed -i 's/# \(%wheel ALL=(ALL) ALL\)/\1/' ${D}${sysconfdir}/sudoers + fi + fi + + chmod 4111 ${D}${bindir}/sudo + chmod 0440 ${D}${sysconfdir}/sudoers + + # Explicitly remove the /sudo directory to avoid QA error + rmdir -p --ignore-fail-on-non-empty ${D}/sudo +} + +FILES_${PN} += "${nonarch_libdir}/tmpfiles.d" +FILES_${PN}-dev += "${libexecdir}/${BPN}/lib*${SOLIBSDEV} ${libexecdir}/${BPN}/*.la \ + ${libexecdir}/lib*${SOLIBSDEV} ${libexecdir}/*.la" diff --git a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.36.1.bb b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.36.1.bb index 473e1fc0b..2d78bea2c 100644 --- a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.36.1.bb +++ b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.36.1.bb @@ -4,7 +4,9 @@ BUGTRACKER = "https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues" SECTION = "x11/gnome" LICENSE = "LGPL-3.0 | CC-BY-SA-3.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c" +LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c \ + file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \ + file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02" inherit allarch autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3.inc b/poky/meta/recipes-gnome/gtk+/gtk+3.inc index e1ecf504a..8d5edb7ee 100644 --- a/poky/meta/recipes-gnome/gtk+/gtk+3.inc +++ b/poky/meta/recipes-gnome/gtk+/gtk+3.inc @@ -1,3 +1,4 @@ + SUMMARY = "Multi-platform toolkit for creating GUIs" DESCRIPTION = "GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \ set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites." @@ -31,6 +32,13 @@ do_configure_prepend() { ln -s ${TARGET_PREFIX}libtool libtool #delete a file that will get confused with generated one in ${B} rm -f ${S}/gtk/gtktypefuncs.c + + # These files are generated by wayland-scanner but will race over modification + # time between the copies in the sysroot from wayland-protocols and the copy + # in the source tree. Solve the race by deleting so they need to be regenerated. + # 3.24.22 will not be shipping these files so this can be deleted then: + # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2183 + rm -f ${S}/modules/input/text-input-unstable-v3*.[ch] } EXTRA_OECONF += " \ diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.20.bb b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.20.bb deleted file mode 100644 index e5744a4b0..000000000 --- a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.20.bb +++ /dev/null @@ -1,19 +0,0 @@ -require gtk+3.inc - -MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" - -SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ - file://0001-Hardcoded-libtool.patch \ - file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \ - file://0003-Add-disable-opengl-configure-option.patch \ - file://link_fribidi.patch \ - " -SRC_URI[md5sum] = "b302acc0a4b42e2980ef18628f9ce951" -SRC_URI[sha256sum] = "2dac69f716e8d04ba7a95091589e2baaec95dcace932cb15839163db479b1df3" - -S = "${WORKDIR}/gtk+-${PV}" - -LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ - file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ - file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ - file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1" diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.21.bb b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.21.bb new file mode 100644 index 000000000..70c0e66db --- /dev/null +++ b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.21.bb @@ -0,0 +1,19 @@ +require gtk+3.inc + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ + file://0001-Hardcoded-libtool.patch \ + file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \ + file://0003-Add-disable-opengl-configure-option.patch \ + file://link_fribidi.patch \ + " +SRC_URI[md5sum] = "95afed6c860d27de827db66434d681da" +SRC_URI[sha256sum] = "aeea6ae7cd35e83dfc7699be716519faefca346c62e784dd1a37d9df94c08f52" + +S = "${WORKDIR}/gtk+-${PV}" + +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ + file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ + file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ + file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1" diff --git a/poky/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch b/poky/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch new file mode 100644 index 000000000..328984a63 --- /dev/null +++ b/poky/meta/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch @@ -0,0 +1,92 @@ +From bb9765a926588ebfe1eb324fbbe8fc22d419eebe Mon Sep 17 00:00:00 2001 +From: Max Krummenacher +Date: Thu, 25 Jun 2020 11:27:40 +0000 +Subject: [PATCH] configure.ac: don't require eglmesaext.h + +E.g. the Vivante EGL implementation does not provide eglmesaext.h. + +The commit moves the check for header file existence outside of the +check for existence of a egl packageconfig and makes the existence +of eglmesaext.h optional. + +fixes commit fb1acfec ("Fix building against libglvnd-provided EGL headers") +Signed-off-by: Max Krummenacher + +Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/28] +Signed-off-by: Max Krummenacher +--- + configure.ac | 51 ++++++++++++++++++++++++++++++++------------------- + 1 file changed, 32 insertions(+), 19 deletions(-) + +diff --git a/configure.ac b/configure.ac +index b7ba95d..0d1d8de 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1212,22 +1212,6 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"], + PKG_CHECK_EXISTS([egl], + [COGL_PKG_REQUIRES="$COGL_PKG_REQUIRES egl"], + [ +- AC_CHECK_HEADERS( +- [EGL/egl.h], +- [], +- [AC_MSG_ERROR([Unable to locate required EGL headers])]) +- AC_CHECK_HEADERS( +- [EGL/eglext.h], +- [], +- [AC_MSG_ERROR([Unable to locate required EGL headers])], +- [#include ]) +- AC_CHECK_HEADERS( +- [EGL/eglmesaext.h], +- [], +- [AC_MSG_ERROR([Unable to locate required EGL headers])], +- [#include +-#include ]) +- + AC_CHECK_LIB(EGL, [eglInitialize], + [COGL_EXTRA_LDFLAGS="$COGL_EXTRA_LDFLAGS -lEGL"], + [AC_MSG_ERROR([Unable to locate required EGL library])]) +@@ -1236,9 +1220,38 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"], + ] + ) + +- COGL_EGL_INCLUDES="#include +-#include +-#include " ++dnl Test for the existence of egl headers. ++dnl egl*.h includes eglplatform.h which on __unix__ defaults to a X11 platform. ++dnl In that case AC_CHECK_HEADERS failes if X11 headers are not available. ++dnl Set the usual include guard define and, if the EGL implementation doesn't ++dnl use that guard fall back to USE_OZONE and EGL_NO_X11 platforms which don't ++dnl require additional headers. ++ AC_CHECK_HEADERS( ++ [EGL/egl.h], ++ [COGL_EGL_INCLUDES="#include "], ++ [AC_MSG_ERROR([Unable to locate required EGL headers])], ++ [#define __egl_h_ ++ #define USE_OZONE ++ #define EGL_NO_X11]) ++ AC_CHECK_HEADERS( ++ [EGL/eglext.h], ++ [COGL_EGL_INCLUDES="$COGL_EGL_INCLUDES ++#include "], ++ [AC_MSG_ERROR([Unable to locate required EGL headers])], ++ [#define __eglext_h_ ++ #define USE_OZONE ++ #define EGL_NO_X11 ++$COGL_EGL_INCLUDES]) ++ AC_CHECK_HEADERS( ++ [EGL/eglmesaext.h], ++ [COGL_EGL_INCLUDES="$COGL_EGL_INCLUDES ++#include "], ++ [], ++ [#define __eglmesaext_h_ ++#define USE_OZONE ++#define EGL_NO_X11 ++$COGL_EGL_INCLUDES]) ++ + AC_SUBST([COGL_EGL_INCLUDES]) + ]) + +-- +2.20.1 + diff --git a/poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb b/poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb index 78f6b0e7a..b9446fab3 100644 --- a/poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb +++ b/poky/meta/recipes-graphics/cogl/cogl-1.0_1.22.8.bb @@ -1,5 +1,6 @@ require cogl-1.0.inc +SRC_URI += "file://0001-configure.ac-don-t-require-eglmesaext.h.patch" SRC_URI[archive.sha256sum] = "a805b2b019184710ff53d0496f9f0ce6dcca420c141a0f4f6fcc02131581d759" LIC_FILES_CHKSUM = "file://COPYING;md5=1b1a508d91d25ca607c83f92f3e31c84" diff --git a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb deleted file mode 100644 index 62ad50427..000000000 --- a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb +++ /dev/null @@ -1,59 +0,0 @@ -SUMMARY = "Hardware accelerated JPEG compression/decompression library" -DESCRIPTION = "libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression" -HOMEPAGE = "http://libjpeg-turbo.org/" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=13;md5=8184bcc7c4ac7b9edc6a7bc00f231d0b \ - file://jpeglib.h;endline=16;md5=7ea97dc83b0f59052ee837e61ef0e08f \ - file://djpeg.c;endline=11;md5=c59e19811c006cb38f82d6477134d314 \ -" -DEPENDS_append_x86-64_class-target = " nasm-native" -DEPENDS_append_x86_class-target = " nasm-native" - -SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ - file://0001-libjpeg-turbo-fix-package_qa-error.patch \ - " - -SRC_URI[md5sum] = "d01d9e0c28c27bc0de9f4e2e8ff49855" -SRC_URI[sha256sum] = "33dd8547efd5543639e890efbf2ef52d5a21df81faf41bb940657af916a23406" -UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/" -UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P(\d+[\.\-_]*)+)/" - -PE = "1" - -# Drop-in replacement for jpeg -PROVIDES = "jpeg" -RPROVIDES_${PN} += "jpeg" -RREPLACES_${PN} += "jpeg" -RCONFLICTS_${PN} += "jpeg" - -inherit cmake pkgconfig - -export NASMENV = "--debug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}" - -# Add nasm-native dependency consistently for all build arches is hard -EXTRA_OECMAKE_append_class-native = " -DWITH_SIMD=False" -EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_SIMD=False" - -# Work around missing x32 ABI support -EXTRA_OECMAKE_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", "-DWITH_SIMD=False", "", d)}" - -# Work around missing non-floating point ABI support in MIPS -EXTRA_OECMAKE_append_class-target = " ${@bb.utils.contains("MIPSPKGSFX_FPU", "-nf", "-DWITH_SIMD=False", "", d)}" - -# Provide a workaround if Altivec unit is not present in PPC -EXTRA_OECMAKE_append_class-target_powerpc = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" -EXTRA_OECMAKE_append_class-target_powerpc64 = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" - -DEBUG_OPTIMIZATION_append_armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" -DEBUG_OPTIMIZATION_append_armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" - -PACKAGES =+ "jpeg-tools libturbojpeg" - -DESCRIPTION_jpeg-tools = "The jpeg-tools package includes client programs to access libjpeg functionality. These tools allow for the compression, decompression, transformation and display of JPEG files and benchmarking of the libjpeg library." -FILES_jpeg-tools = "${bindir}/*" - -DESCRIPTION_libturbojpeg = "A SIMD-accelerated JPEG codec which provides only TurboJPEG APIs" -FILES_libturbojpeg = "${libdir}/libturbojpeg.so.*" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.5.bb b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.5.bb new file mode 100644 index 000000000..9729fb5dd --- /dev/null +++ b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.5.bb @@ -0,0 +1,59 @@ +SUMMARY = "Hardware accelerated JPEG compression/decompression library" +DESCRIPTION = "libjpeg-turbo is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression" +HOMEPAGE = "http://libjpeg-turbo.org/" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://cdjpeg.h;endline=13;md5=8184bcc7c4ac7b9edc6a7bc00f231d0b \ + file://jpeglib.h;endline=16;md5=7ea97dc83b0f59052ee837e61ef0e08f \ + file://djpeg.c;endline=11;md5=c59e19811c006cb38f82d6477134d314 \ +" +DEPENDS_append_x86-64_class-target = " nasm-native" +DEPENDS_append_x86_class-target = " nasm-native" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ + file://0001-libjpeg-turbo-fix-package_qa-error.patch \ + " + +SRC_URI[md5sum] = "3a7dc293918775fc933f81e2bce36464" +SRC_URI[sha256sum] = "16f8f6f2715b3a38ab562a84357c793dd56ae9899ce130563c72cd93d8357b5d" +UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/" +UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P(\d+[\.\-_]*)+)/" + +PE = "1" + +# Drop-in replacement for jpeg +PROVIDES = "jpeg" +RPROVIDES_${PN} += "jpeg" +RREPLACES_${PN} += "jpeg" +RCONFLICTS_${PN} += "jpeg" + +inherit cmake pkgconfig + +export NASMENV = "--debug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}" + +# Add nasm-native dependency consistently for all build arches is hard +EXTRA_OECMAKE_append_class-native = " -DWITH_SIMD=False" +EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_SIMD=False" + +# Work around missing x32 ABI support +EXTRA_OECMAKE_append_class-target = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", "-DWITH_SIMD=False", "", d)}" + +# Work around missing non-floating point ABI support in MIPS +EXTRA_OECMAKE_append_class-target = " ${@bb.utils.contains("MIPSPKGSFX_FPU", "-nf", "-DWITH_SIMD=False", "", d)}" + +# Provide a workaround if Altivec unit is not present in PPC +EXTRA_OECMAKE_append_class-target_powerpc = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" +EXTRA_OECMAKE_append_class-target_powerpc64 = " ${@bb.utils.contains("TUNE_FEATURES", "altivec", "", "-DWITH_SIMD=False", d)}" + +DEBUG_OPTIMIZATION_append_armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" +DEBUG_OPTIMIZATION_append_armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}" + +PACKAGES =+ "jpeg-tools libturbojpeg" + +DESCRIPTION_jpeg-tools = "The jpeg-tools package includes client programs to access libjpeg functionality. These tools allow for the compression, decompression, transformation and display of JPEG files and benchmarking of the libjpeg library." +FILES_jpeg-tools = "${bindir}/*" + +DESCRIPTION_libturbojpeg = "A SIMD-accelerated JPEG codec which provides only TurboJPEG APIs" +FILES_libturbojpeg = "${libdir}/libturbojpeg.so.*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch index cd35a1f85..91e59d14e 100644 --- a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch +++ b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch @@ -1,4 +1,4 @@ -From df835389699b32bb6610b39972502e323f8e09e5 Mon Sep 17 00:00:00 2001 +From dd1d15c75f6ff8ee96cf1e7b74e582bff3183ef6 Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Thu, 14 Nov 2019 13:08:31 -0800 Subject: [PATCH] meson.build: make TLS ELF optional @@ -15,10 +15,10 @@ Signed-off-by: Alistair Francis 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build -index 09e3759..a954118 100644 +index 261b588..311436e 100644 --- a/meson.build +++ b/meson.build -@@ -387,7 +387,7 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat +@@ -392,7 +392,7 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat endif # Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS. @@ -28,10 +28,10 @@ index 09e3759..a954118 100644 endif diff --git a/meson_options.txt b/meson_options.txt -index 626baf3..637ff14 100644 +index ab43150..d7b1555 100644 --- a/meson_options.txt +++ b/meson_options.txt -@@ -341,6 +341,12 @@ option( +@@ -355,6 +355,12 @@ option( value : true, description : 'Enable direct rendering in GLX and EGL for DRI', ) @@ -42,5 +42,5 @@ index 626baf3..637ff14 100644 + description : 'Enable TLS support in ELF', +) option( - 'I-love-half-baked-turnips', + 'prefer-iris', type : 'boolean', diff --git a/poky/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch b/poky/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch index 901feca55..dacb1ea1c 100644 --- a/poky/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch +++ b/poky/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch @@ -1,4 +1,4 @@ -From 38a313474e127d61e749866423e708fc86ed9ec5 Mon Sep 17 00:00:00 2001 +From 281a636353666bfdd373c62591e744087e750e89 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 4 Dec 2019 14:15:28 -0800 Subject: [PATCH] vc4: use intmax_t for formatted output of timespec members @@ -13,13 +13,14 @@ error: format specifies type 'long' but the argument has type 'time_t' (aka 'lon Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2966] Signed-off-by: Khem Raj + --- src/gallium/drivers/v3d/v3d_bufmgr.c | 4 ++-- src/gallium/drivers/vc4/vc4_bufmgr.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/v3d/v3d_bufmgr.c b/src/gallium/drivers/v3d/v3d_bufmgr.c -index b3e4d053cc0..c514bf00bf0 100644 +index 31a0803..cc2e2af 100644 --- a/src/gallium/drivers/v3d/v3d_bufmgr.c +++ b/src/gallium/drivers/v3d/v3d_bufmgr.c @@ -80,8 +80,8 @@ v3d_bo_dump_stats(struct v3d_screen *screen) @@ -27,27 +28,24 @@ index b3e4d053cc0..c514bf00bf0 100644 struct timespec time; clock_gettime(CLOCK_MONOTONIC, &time); - fprintf(stderr, " now: %ld\n", -- time.tv_sec); +- (long)time.tv_sec); + fprintf(stderr, " now: %jd\n", + (intmax_t)time.tv_sec); } } diff --git a/src/gallium/drivers/vc4/vc4_bufmgr.c b/src/gallium/drivers/vc4/vc4_bufmgr.c -index 5ec360934c0..bf05f6cadd6 100644 +index a786e8e..975d49e 100644 --- a/src/gallium/drivers/vc4/vc4_bufmgr.c +++ b/src/gallium/drivers/vc4/vc4_bufmgr.c -@@ -107,8 +107,8 @@ vc4_bo_dump_stats(struct vc4_screen *screen) +@@ -99,8 +99,8 @@ vc4_bo_dump_stats(struct vc4_screen *screen) struct timespec time; clock_gettime(CLOCK_MONOTONIC, &time); - fprintf(stderr, " now: %ld\n", -- time.tv_sec); +- (long)time.tv_sec); + fprintf(stderr, " now: %jd\n", + (intmax_t)time.tv_sec); } } --- -2.24.0 - diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_20.0.7.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_20.0.7.bb deleted file mode 100644 index e50782be1..000000000 --- a/poky/meta/recipes-graphics/mesa/mesa-gl_20.0.7.bb +++ /dev/null @@ -1,15 +0,0 @@ -require mesa.inc - -SUMMARY += " (OpenGL only, no EGL/GLES)" - -PROVIDES = "virtual/libgl virtual/mesa" - -S = "${WORKDIR}/mesa-${PV}" - -# At least one DRI rendering engine is required to build mesa. -# When no X11 is available, use osmesa for the rendering engine. -PACKAGECONFIG ??= "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" -PACKAGECONFIG_class-target = "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" - -# When NOT using X11, we need to make sure we have swrast available. -DRIDRIVERS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', ',swrast', d)}" diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.2.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.2.bb new file mode 100644 index 000000000..e50782be1 --- /dev/null +++ b/poky/meta/recipes-graphics/mesa/mesa-gl_20.1.2.bb @@ -0,0 +1,15 @@ +require mesa.inc + +SUMMARY += " (OpenGL only, no EGL/GLES)" + +PROVIDES = "virtual/libgl virtual/mesa" + +S = "${WORKDIR}/mesa-${PV}" + +# At least one DRI rendering engine is required to build mesa. +# When no X11 is available, use osmesa for the rendering engine. +PACKAGECONFIG ??= "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" +PACKAGECONFIG_class-target = "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}" + +# When NOT using X11, we need to make sure we have swrast available. +DRIDRIVERS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', ',swrast', d)}" diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc index 965e12d17..4fe5f025e 100644 --- a/poky/meta/recipes-graphics/mesa/mesa.inc +++ b/poky/meta/recipes-graphics/mesa/mesa.inc @@ -23,8 +23,7 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ " -SRC_URI[md5sum] = "609cb7664204e031d4c65c602c652a28" -SRC_URI[sha256sum] = "fe6e258fe772c3cd2ac01741bf7408058c3ac02d66acff9a6e669bd72e3ea178" +SRC_URI[sha256sum] = "283dff72814c8a80ce1ff8271e3f055895d26f4da3f4362acc49193e635780cb" UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P\d+(\.\d+)+)" diff --git a/poky/meta/recipes-graphics/mesa/mesa_20.0.7.bb b/poky/meta/recipes-graphics/mesa/mesa_20.0.7.bb deleted file mode 100644 index d17d9eb04..000000000 --- a/poky/meta/recipes-graphics/mesa/mesa_20.0.7.bb +++ /dev/null @@ -1 +0,0 @@ -require ${BPN}.inc diff --git a/poky/meta/recipes-graphics/mesa/mesa_20.1.2.bb b/poky/meta/recipes-graphics/mesa/mesa_20.1.2.bb new file mode 100644 index 000000000..96e8aa38d --- /dev/null +++ b/poky/meta/recipes-graphics/mesa/mesa_20.1.2.bb @@ -0,0 +1,2 @@ +require ${BPN}.inc + diff --git a/poky/meta/recipes-graphics/piglit/piglit_git.bb b/poky/meta/recipes-graphics/piglit/piglit_git.bb index 47950c863..e531ffc40 100644 --- a/poky/meta/recipes-graphics/piglit/piglit_git.bb +++ b/poky/meta/recipes-graphics/piglit/piglit_git.bb @@ -10,7 +10,7 @@ SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https \ " UPSTREAM_CHECK_COMMITS = "1" -SRCREV = "5cc4fd749375f37e8e8725a86072d8cff7173b98" +SRCREV = "7d76fca56e8ca72ab6809f6f0234b5971af5690a" # (when PV goes above 1.0 remove the trailing r) PV = "1.0+gitr${SRCPV}" diff --git a/poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb b/poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb index c9e28d9bb..301ea1c24 100644 --- a/poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb +++ b/poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb @@ -19,4 +19,7 @@ SRC_URI[sha256sum] = "de9b8f617b68a70f6caf87da01fcf0ebd2b75690cdcba9c921d0ef54fa EXTRA_OECONF = "ac_cv_path_MCOOKIE=${bindir}/mcookie" +PACKAGECONFIG ??= "rxvt" +PACKAGECONFIG[rxvt] = "--with-xterm=rxvt,,,rxvt-unicode" + RDEPENDS_${PN} += "util-linux-mcookie" diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200519.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200519.bb deleted file mode 100644 index 18f44bcca..000000000 --- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200519.bb +++ /dev/null @@ -1,946 +0,0 @@ -SUMMARY = "Firmware files for use with Linux kernel" -SECTION = "kernel" - -LICENSE = "\ - Firmware-Abilis \ - & Firmware-adsp_sst \ - & Firmware-agere \ - & Firmware-amdgpu \ - & Firmware-amd-ucode \ - & Firmware-amlogic_vdec \ - & Firmware-atheros_firmware \ - & Firmware-atmel \ - & Firmware-broadcom_bcm43xx \ - & Firmware-ca0132 \ - & Firmware-cavium \ - & Firmware-chelsio_firmware \ - & Firmware-cw1200 \ - & Firmware-cypress \ - & Firmware-dib0700 \ - & Firmware-e100 \ - & Firmware-ene_firmware \ - & Firmware-fw_sst_0f28 \ - & Firmware-go7007 \ - & Firmware-GPLv2 \ - & Firmware-hfi1_firmware \ - & Firmware-i2400m \ - & Firmware-i915 \ - & Firmware-ibt_firmware \ - & Firmware-ice \ - & Firmware-it913x \ - & Firmware-iwlwifi_firmware \ - & Firmware-IntcSST2 \ - & Firmware-kaweth \ - & Firmware-Marvell \ - & Firmware-moxa \ - & Firmware-myri10ge_firmware \ - & Firmware-netronome \ - & Firmware-nvidia \ - & Firmware-OLPC \ - & Firmware-ath9k-htc \ - & Firmware-phanfw \ - & Firmware-qat \ - & Firmware-qcom \ - & Firmware-qla1280 \ - & Firmware-qla2xxx \ - & Firmware-qualcommAthos_ar3k \ - & Firmware-qualcommAthos_ath10k \ - & Firmware-r8a779x_usb3 \ - & Firmware-radeon \ - & Firmware-ralink_a_mediatek_company_firmware \ - & Firmware-ralink-firmware \ - & Firmware-rtlwifi_firmware \ - & Firmware-imx-sdma_firmware \ - & Firmware-siano \ - & Firmware-tda7706-firmware \ - & Firmware-ti-connectivity \ - & Firmware-ti-keystone \ - & Firmware-ueagle-atm4-firmware \ - & Firmware-via_vt6656 \ - & Firmware-wl1251 \ - & Firmware-xc4000 \ - & Firmware-xc5000 \ - & Firmware-xc5000c \ - & WHENCE \ -" - -LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ - file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \ - file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \ - file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \ - file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f \ - file://LICENSE.amlogic_vdec;md5=dc44f59bf64a81643e500ad3f39a468a \ - file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \ - file://LICENSE.atmel;md5=aa74ac0c60595dee4d4e239107ea77a3 \ - file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \ - file://LICENCE.ca0132;md5=209b33e66ee5be0461f13d31da392198 \ - file://LICENCE.cadence;md5=009f46816f6956cfb75ede13d3e1cee0 \ - file://LICENCE.cavium;md5=c37aaffb1ebe5939b2580d073a95daea \ - file://LICENCE.chelsio_firmware;md5=819aa8c3fa453f1b258ed8d168a9d903 \ - file://LICENCE.cw1200;md5=f0f770864e7a8444a5c5aa9d12a3a7ed \ - file://LICENCE.cypress;md5=48cd9436c763bf873961f9ed7b5c147b \ - file://LICENSE.dib0700;md5=f7411825c8a555a1a3e5eab9ca773431 \ - file://LICENCE.e100;md5=ec0f84136766df159a3ae6d02acdf5a8 \ - file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \ - file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \ - file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \ - file://GPL-2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \ - file://LICENCE.i2400m;md5=14b901969e23c41881327c0d9e4b7d36 \ - file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \ - file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \ - file://LICENSE.ice;md5=742ab4850f2670792940e6d15c974b2f \ - file://LICENCE.IntcSST2;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ - file://LICENCE.it913x;md5=1fbf727bfb6a949810c4dbfa7e6ce4f8 \ - file://LICENCE.iwlwifi_firmware;md5=3fd842911ea93c29cd32679aa23e1c88 \ - file://LICENCE.kaweth;md5=b1d876e562f4b3b8d391ad8395dfe03f \ - file://LICENCE.Marvell;md5=28b6ed8bd04ba105af6e4dcd6e997772 \ - file://LICENCE.mediatek;md5=7c1976b63217d76ce47d0a11d8a79cf2 \ - file://LICENCE.moxa;md5=1086614767d8ccf744a923289d3d4261 \ - file://LICENCE.myri10ge_firmware;md5=42e32fb89f6b959ca222e25ac8df8fed \ - file://LICENCE.Netronome;md5=4add08f2577086d44447996503cddf5f \ - file://LICENCE.nvidia;md5=4428a922ed3ba2ceec95f076a488ce07 \ - file://LICENCE.NXP;md5=58bb8ba632cd729b9ba6183bc6aed36f \ - file://LICENCE.OLPC;md5=5b917f9d8c061991be4f6f5f108719cd \ - file://LICENCE.open-ath9k-htc-firmware;md5=1b33c9f4d17bc4d457bdb23727046837 \ - file://LICENCE.phanfw;md5=954dcec0e051f9409812b561ea743bfa \ - file://LICENCE.qat_firmware;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ - file://LICENSE.qcom;md5=164e3362a538eb11d3ac51e8e134294b \ - file://LICENCE.qla1280;md5=d6895732e622d950609093223a2c4f5d \ - file://LICENCE.qla2xxx;md5=505855e921b75f1be4a437ad9b79dff0 \ - file://LICENSE.QualcommAtheros_ar3k;md5=b5fe244fb2b532311de1472a3bc06da5 \ - file://LICENSE.QualcommAtheros_ath10k;md5=cb42b686ee5f5cb890275e4321db60a8 \ - file://LICENCE.r8a779x_usb3;md5=4c1671656153025d7076105a5da7e498 \ - file://LICENSE.radeon;md5=68ec28bacb3613200bca44f404c69b16 \ - file://LICENCE.ralink_a_mediatek_company_firmware;md5=728f1a85fd53fd67fa8d7afb080bc435 \ - file://LICENCE.ralink-firmware.txt;md5=ab2c269277c45476fb449673911a2dfd \ - file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \ - file://LICENSE.sdma_firmware;md5=51e8c19ecc2270f4b8ea30341ad63ce9 \ - file://LICENCE.siano;md5=4556c1bf830067f12ca151ad953ec2a5 \ - file://LICENCE.tda7706-firmware.txt;md5=835997cf5e3c131d0dddd695c7d9103e \ - file://LICENCE.ti-connectivity;md5=c5e02be633f1499c109d1652514d85ec \ - file://LICENCE.ti-keystone;md5=3a86335d32864b0bef996bee26cc0f2c \ - file://LICENCE.ueagle-atm4-firmware;md5=4ed7ea6b507ccc583b9d594417714118 \ - file://LICENCE.via_vt6656;md5=e4159694cba42d4377a912e78a6e850f \ - file://LICENCE.wl1251;md5=ad3f81922bb9e197014bb187289d3b5b \ - file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ - file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ - file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ - file://WHENCE;md5=c15cee50b1a59d27106a37c2929d5291 \ - " - -# These are not common licenses, set NO_GENERIC_LICENSE for them -# so that the license files will be copied from fetched source -NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENCE.Abilis" -NO_GENERIC_LICENSE[Firmware-adsp_sst] = "LICENCE.adsp_sst" -NO_GENERIC_LICENSE[Firmware-agere] = "LICENCE.agere" -NO_GENERIC_LICENSE[Firmware-amdgpu] = "LICENSE.amdgpu" -NO_GENERIC_LICENSE[Firmware-amd-ucode] = "LICENSE.amd-ucode" -NO_GENERIC_LICENSE[Firmware-amlogic_vdec] = "LICENSE.amlogic_vdec" -NO_GENERIC_LICENSE[Firmware-atheros_firmware] = "LICENCE.atheros_firmware" -NO_GENERIC_LICENSE[Firmware-atmel] = "LICENSE.atmel" -NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx] = "LICENCE.broadcom_bcm43xx" -NO_GENERIC_LICENSE[Firmware-ca0132] = "LICENCE.ca0132" -NO_GENERIC_LICENSE[Firmware-cadence] = "LICENCE.cadence" -NO_GENERIC_LICENSE[Firmware-cavium] = "LICENCE.cavium" -NO_GENERIC_LICENSE[Firmware-chelsio_firmware] = "LICENCE.chelsio_firmware" -NO_GENERIC_LICENSE[Firmware-cw1200] = "LICENCE.cw1200" -NO_GENERIC_LICENSE[Firmware-cypress] = "LICENCE.cypress" -NO_GENERIC_LICENSE[Firmware-dib0700] = "LICENSE.dib0700" -NO_GENERIC_LICENSE[Firmware-e100] = "LICENCE.e100" -NO_GENERIC_LICENSE[Firmware-ene_firmware] = "LICENCE.ene_firmware" -NO_GENERIC_LICENSE[Firmware-fw_sst_0f28] = "LICENCE.fw_sst_0f28" -NO_GENERIC_LICENSE[Firmware-go7007] = "LICENCE.go7007" -NO_GENERIC_LICENSE[Firmware-GPLv2] = "GPL-2" -NO_GENERIC_LICENSE[Firmware-hfi1_firmware] = "LICENSE.hfi1_firmware" -NO_GENERIC_LICENSE[Firmware-i2400m] = "LICENCE.i2400m" -NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915" -NO_GENERIC_LICENSE[Firmware-ibt_firmware] = "LICENCE.ibt_firmware" -NO_GENERIC_LICENSE[Firmware-ice] = "LICENSE.ice" -NO_GENERIC_LICENSE[Firmware-IntcSST2] = "LICENCE.IntcSST2" -NO_GENERIC_LICENSE[Firmware-it913x] = "LICENCE.it913x" -NO_GENERIC_LICENSE[Firmware-iwlwifi_firmware] = "LICENCE.iwlwifi_firmware" -NO_GENERIC_LICENSE[Firmware-kaweth] = "LICENCE.kaweth" -NO_GENERIC_LICENSE[Firmware-Marvell] = "LICENCE.Marvell" -NO_GENERIC_LICENSE[Firmware-mediatek] = "LICENCE.mediatek" -NO_GENERIC_LICENSE[Firmware-moxa] = "LICENCE.moxa" -NO_GENERIC_LICENSE[Firmware-myri10ge_firmware] = "LICENCE.myri10ge_firmware" -NO_GENERIC_LICENSE[Firmware-netronome] = "LICENCE.Netronome" -NO_GENERIC_LICENSE[Firmware-nvidia] = "LICENCE.nvidia" -NO_GENERIC_LICENSE[Firmware-OLPC] = "LICENCE.OLPC" -NO_GENERIC_LICENSE[Firmware-ath9k-htc] = "LICENCE.open-ath9k-htc-firmware" -NO_GENERIC_LICENSE[Firmware-phanfw] = "LICENCE.phanfw" -NO_GENERIC_LICENSE[Firmware-qat] = "LICENCE.qat_firmware" -NO_GENERIC_LICENSE[Firmware-qcom] = "LICENSE.qcom" -NO_GENERIC_LICENSE[Firmware-qla1280] = "LICENCE.qla1280" -NO_GENERIC_LICENSE[Firmware-qla2xxx] = "LICENCE.qla2xxx" -NO_GENERIC_LICENSE[Firmware-qualcommAthos_ar3k] = "LICENSE.QualcommAtheros_ar3k" -NO_GENERIC_LICENSE[Firmware-qualcommAthos_ath10k] = "LICENSE.QualcommAtheros_ath10k" -NO_GENERIC_LICENSE[Firmware-r8a779x_usb3] = "LICENCE.r8a779x_usb3" -NO_GENERIC_LICENSE[Firmware-radeon] = "LICENSE.radeon" -NO_GENERIC_LICENSE[Firmware-ralink_a_mediatek_company_firmware] = "LICENCE.ralink_a_mediatek_company_firmware" -NO_GENERIC_LICENSE[Firmware-ralink-firmware] = "LICENCE.ralink-firmware.txt" -NO_GENERIC_LICENSE[Firmware-rtlwifi_firmware] = "LICENCE.rtlwifi_firmware.txt" -NO_GENERIC_LICENSE[Firmware-siano] = "LICENCE.siano" -NO_GENERIC_LICENSE[Firmware-imx-sdma_firmware] = "LICENSE.sdma_firmware" -NO_GENERIC_LICENSE[Firmware-tda7706-firmware] = "LICENCE.tda7706-firmware.txt" -NO_GENERIC_LICENSE[Firmware-ti-connectivity] = "LICENCE.ti-connectivity" -NO_GENERIC_LICENSE[Firmware-ti-keystone] = "LICENCE.ti-keystone" -NO_GENERIC_LICENSE[Firmware-ueagle-atm4-firmware] = "LICENCE.ueagle-atm4-firmware" -NO_GENERIC_LICENSE[Firmware-via_vt6656] = "LICENCE.via_vt6656" -NO_GENERIC_LICENSE[Firmware-wl1251] = "LICENCE.wl1251" -NO_GENERIC_LICENSE[Firmware-xc4000] = "LICENCE.xc4000" -NO_GENERIC_LICENSE[Firmware-xc5000] = "LICENCE.xc5000" -NO_GENERIC_LICENSE[Firmware-xc5000c] = "LICENCE.xc5000c" -NO_GENERIC_LICENSE[WHENCE] = "WHENCE" - -PE = "1" - -SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz" - -SRC_URI[sha256sum] = "584c49c58291136b966ceffb0a456a672c23d4d759bab8bf86cbbe28061e415e" - -inherit allarch - -CLEANBROKEN = "1" - -do_compile() { - : -} - -do_install() { - oe_runmake 'DESTDIR=${D}' 'FIRMWAREDIR=${nonarch_base_libdir}/firmware' install - cp GPL-2 LICEN[CS]E.* WHENCE ${D}${nonarch_base_libdir}/firmware/ -} - - -PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ - ${PN}-mt7601u-license ${PN}-mt7601u \ - ${PN}-radeon-license ${PN}-radeon \ - ${PN}-marvell-license ${PN}-pcie8897 ${PN}-pcie8997 \ - ${PN}-sd8686 ${PN}-sd8688 ${PN}-sd8787 ${PN}-sd8797 ${PN}-sd8801 ${PN}-sd8887 ${PN}-sd8897 \ - ${PN}-usb8997 \ - ${PN}-ti-connectivity-license ${PN}-wlcommon ${PN}-wl12xx ${PN}-wl18xx \ - ${PN}-vt6656-license ${PN}-vt6656 \ - ${PN}-rtl-license ${PN}-rtl8188 ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su ${PN}-rtl8723 ${PN}-rtl8821 \ - ${PN}-rtl8168 \ - ${PN}-cypress-license \ - ${PN}-broadcom-license \ - ${PN}-bcm-0bb4-0306 \ - ${PN}-bcm43143 \ - ${PN}-bcm43236b \ - ${PN}-bcm43241b0 \ - ${PN}-bcm43241b4 \ - ${PN}-bcm43241b5 \ - ${PN}-bcm43242a \ - ${PN}-bcm4329 \ - ${PN}-bcm4329-fullmac \ - ${PN}-bcm4330 \ - ${PN}-bcm4334 \ - ${PN}-bcm43340 \ - ${PN}-bcm4335 \ - ${PN}-bcm43362 \ - ${PN}-bcm4339 \ - ${PN}-bcm43430 \ - ${PN}-bcm43430a0 \ - ${PN}-bcm43455 \ - ${PN}-bcm4350 \ - ${PN}-bcm4350c2 \ - ${PN}-bcm4354 \ - ${PN}-bcm4356 \ - ${PN}-bcm4356-pcie \ - ${PN}-bcm43569 \ - ${PN}-bcm43570 \ - ${PN}-bcm4358 \ - ${PN}-bcm43602 \ - ${PN}-bcm4366b \ - ${PN}-bcm4366c \ - ${PN}-bcm4371 \ - ${PN}-bcm4373 \ - ${PN}-bcm43xx \ - ${PN}-bcm43xx-hdr \ - ${PN}-atheros-license ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k \ - ${PN}-gplv2-license ${PN}-carl9170 \ - ${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k ${PN}-qca \ - \ - ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \ - \ - ${PN}-iwlwifi-license ${PN}-iwlwifi \ - ${PN}-iwlwifi-135-6 \ - ${PN}-iwlwifi-3160-7 ${PN}-iwlwifi-3160-8 ${PN}-iwlwifi-3160-9 \ - ${PN}-iwlwifi-3160-10 ${PN}-iwlwifi-3160-12 ${PN}-iwlwifi-3160-13 \ - ${PN}-iwlwifi-3160-16 ${PN}-iwlwifi-3160-17 \ - ${PN}-iwlwifi-6000-4 ${PN}-iwlwifi-6000g2a-5 ${PN}-iwlwifi-6000g2a-6 \ - ${PN}-iwlwifi-6000g2b-5 ${PN}-iwlwifi-6000g2b-6 \ - ${PN}-iwlwifi-6050-4 ${PN}-iwlwifi-6050-5 \ - ${PN}-iwlwifi-7260 \ - ${PN}-iwlwifi-7265 \ - ${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \ - ${PN}-iwlwifi-9000 \ - ${PN}-iwlwifi-misc \ - ${PN}-ibt-license ${PN}-ibt ${PN}-ibt-misc \ - ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \ - ${PN}-ibt-17 \ - ${PN}-i915-license ${PN}-i915 \ - ${PN}-ice-license ${PN}-ice \ - ${PN}-adsp-sst-license ${PN}-adsp-sst \ - ${PN}-bnx2-mips \ - ${PN}-liquidio \ - ${PN}-netronome-license ${PN}-netronome \ - ${PN}-qat ${PN}-qat-license \ - ${PN}-qcom-license \ - ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 \ - ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a530 ${PN}-qcom-adreno-a630 \ - ${PN}-qcom-sdm845-audio ${PN}-qcom-sdm845-compute ${PN}-qcom-sdm845-modem \ - ${PN}-whence-license \ - ${PN}-license \ - " - -# For atheros -LICENSE_${PN}-ar9170 = "Firmware-atheros_firmware" -LICENSE_${PN}-ath6k = "Firmware-atheros_firmware" -LICENSE_${PN}-ath9k = "Firmware-atheros_firmware" -LICENSE_${PN}-atheros-license = "Firmware-atheros_firmware" - -FILES_${PN}-atheros-license = "${nonarch_base_libdir}/firmware/LICENCE.atheros_firmware" -FILES_${PN}-ar9170 = " \ - ${nonarch_base_libdir}/firmware/ar9170*.fw \ -" -FILES_${PN}-ath6k = " \ - ${nonarch_base_libdir}/firmware/ath6k \ -" -FILES_${PN}-ath9k = " \ - ${nonarch_base_libdir}/firmware/ar9271.fw \ - ${nonarch_base_libdir}/firmware/ar7010*.fw \ - ${nonarch_base_libdir}/firmware/htc_9271.fw \ - ${nonarch_base_libdir}/firmware/htc_7010.fw \ - ${nonarch_base_libdir}/firmware/ath9k_htc/htc_7010-1.4.0.fw \ - ${nonarch_base_libdir}/firmware/ath9k_htc/htc_9271-1.4.0.fw \ -" - -RDEPENDS_${PN}-ar9170 += "${PN}-atheros-license" -RDEPENDS_${PN}-ath6k += "${PN}-atheros-license" -RDEPENDS_${PN}-ath9k += "${PN}-atheros-license" - -# For carl9170 -LICENSE_${PN}-carl9170 = "Firmware-GPLv2" -LICENSE_${PN}-gplv2-license = "Firmware-GPLv2" - -FILES_${PN}-gplv2-license = "${nonarch_base_libdir}/firmware/GPL-2" -FILES_${PN}-carl9170 = " \ - ${nonarch_base_libdir}/firmware/carl9170*.fw \ -" - -RDEPENDS_${PN}-carl9170 += "${PN}-gplv2-license" - -# For QualCommAthos -LICENSE_${PN}-ar3k = "Firmware-qualcommAthos_ar3k" -LICENSE_${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k" -LICENSE_${PN}-ath10k = "Firmware-qualcommAthos_ath10k" -LICENSE_${PN}-ath10k-license = "Firmware-qualcommAthos_ath10k" -LICENSE_${PN}-qca = "Firmware-qualcommAthos_ath10k" - -FILES_${PN}-ar3k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ar3k" -FILES_${PN}-ar3k = " \ - ${nonarch_base_libdir}/firmware/ar3k \ -" - -FILES_${PN}-ath10k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ath10k" -FILES_${PN}-ath10k = " \ - ${nonarch_base_libdir}/firmware/ath10k \ -" - -FILES_${PN}-qca = " \ - ${nonarch_base_libdir}/firmware/qca \ -" - -RDEPENDS_${PN}-ar3k += "${PN}-ar3k-license" -RDEPENDS_${PN}-ath10k += "${PN}-ath10k-license" -RDEPENDS_${PN}-qca += "${PN}-ath10k-license" - -# For ralink -LICENSE_${PN}-ralink = "Firmware-ralink-firmware" -LICENSE_${PN}-ralink-license = "Firmware-ralink-firmware" - -FILES_${PN}-ralink-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink-firmware.txt" -FILES_${PN}-ralink = " \ - ${nonarch_base_libdir}/firmware/rt*.bin \ -" - -RDEPENDS_${PN}-ralink += "${PN}-ralink-license" - -# For mediatek MT7601U -LICENSE_${PN}-mt7601u = "Firmware-ralink_a_mediatek_company_firmware" -LICENSE_${PN}-mt7601u-license = "Firmware-ralink_a_mediatek_company_firmware" - -FILES_${PN}-mt7601u-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink_a_mediatek_company_firmware" -FILES_${PN}-mt7601u = " \ - ${nonarch_base_libdir}/firmware/mt7601u.bin \ -" - -RDEPENDS_${PN}-mt7601u += "${PN}-mt7601u-license" - -# For radeon -LICENSE_${PN}-radeon = "Firmware-radeon" -LICENSE_${PN}-radeon-license = "Firmware-radeon" - -FILES_${PN}-radeon-license = "${nonarch_base_libdir}/firmware/LICENSE.radeon" -FILES_${PN}-radeon = " \ - ${nonarch_base_libdir}/firmware/radeon \ -" - -RDEPENDS_${PN}-radeon += "${PN}-radeon-license" - -# For marvell -LICENSE_${PN}-pcie8897 = "Firmware-Marvell" -LICENSE_${PN}-pcie8997 = "Firmware-Marvell" -LICENSE_${PN}-sd8686 = "Firmware-Marvell" -LICENSE_${PN}-sd8688 = "Firmware-Marvell" -LICENSE_${PN}-sd8787 = "Firmware-Marvell" -LICENSE_${PN}-sd8797 = "Firmware-Marvell" -LICENSE_${PN}-sd8801 = "Firmware-Marvell" -LICENSE_${PN}-sd8887 = "Firmware-Marvell" -LICENSE_${PN}-sd8897 = "Firmware-Marvell" -LICENSE_${PN}-usb8997 = "Firmware-Marvell" -LICENSE_${PN}-marvell-license = "Firmware-Marvell" - -FILES_${PN}-marvell-license = "${nonarch_base_libdir}/firmware/LICENCE.Marvell" -FILES_${PN}-pcie8897 = " \ - ${nonarch_base_libdir}/firmware/mrvl/pcie8897_uapsta.bin \ -" -FILES_${PN}-pcie8997 = " \ - ${nonarch_base_libdir}/firmware/mrvl/pcie8997_wlan_v4.bin \ - ${nonarch_base_libdir}/firmware/mrvl/pcieuart8997_combo_v4.bin \ - ${nonarch_base_libdir}/firmware/mrvl/pcieusb8997_combo_v4.bin \ -" -FILES_${PN}-sd8686 = " \ - ${nonarch_base_libdir}/firmware/libertas/sd8686_v9* \ - ${nonarch_base_libdir}/firmware/sd8686* \ -" -FILES_${PN}-sd8688 = " \ - ${nonarch_base_libdir}/firmware/libertas/sd8688* \ - ${nonarch_base_libdir}/firmware/mrvl/sd8688* \ -" -FILES_${PN}-sd8787 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8787_uapsta.bin \ -" -FILES_${PN}-sd8797 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8797_uapsta.bin \ -" -FILES_${PN}-sd8801 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8801_uapsta.bin \ -" -FILES_${PN}-sd8887 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8887_uapsta.bin \ -" -FILES_${PN}-sd8897 = " \ - ${nonarch_base_libdir}/firmware/mrvl/sd8897_uapsta.bin \ -" -FILES_${PN}-usb8997 = " \ - ${nonarch_base_libdir}/firmware/mrvl/usbusb8997_combo_v4.bin \ -" - -RDEPENDS_${PN}-sd8686 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8688 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8787 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8797 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8801 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8887 += "${PN}-marvell-license" -RDEPENDS_${PN}-sd8897 += "${PN}-marvell-license" -RDEPENDS_${PN}-usb8997 += "${PN}-marvell-license" - -# For netronome -LICENSE_${PN}-netronome = "Firmware-netronome" - -FILES_${PN}-netronome-license = " \ - ${nonarch_base_libdir}/firmware/LICENCE.Netronome \ -" -FILES_${PN}-netronome = " \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0081*.nffw \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0096*.nffw \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0097*.nffw \ - ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0099*.nffw \ -" - -RDEPENDS_${PN}-netronome += "${PN}-netronome-license" - -# For rtl -LICENSE_${PN}-rtl8188 = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8192cu = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8192ce = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8192su = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8723 = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8821 = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl-license = "Firmware-rtlwifi_firmware" -LICENSE_${PN}-rtl8168 = "WHENCE" - -FILES_${PN}-rtl-license = " \ - ${nonarch_base_libdir}/firmware/LICENCE.rtlwifi_firmware.txt \ -" -FILES_${PN}-rtl8188 = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8188*.bin \ -" -FILES_${PN}-rtl8192cu = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cufw*.bin \ -" -FILES_${PN}-rtl8192ce = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cfw*.bin \ -" -FILES_${PN}-rtl8192su = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8712u.bin \ -" -FILES_${PN}-rtl8723 = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8723*.bin \ -" -FILES_${PN}-rtl8821 = " \ - ${nonarch_base_libdir}/firmware/rtlwifi/rtl8821*.bin \ -" -FILES_${PN}-rtl8168 = " \ - ${nonarch_base_libdir}/firmware/rtl_nic/rtl8168*.fw \ -" - -RDEPENDS_${PN}-rtl8188 += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8192ce += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8192cu += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8192su = "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8723 += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8821 += "${PN}-rtl-license" -RDEPENDS_${PN}-rtl8168 += "${PN}-whence-license" - -# For ti-connectivity -LICENSE_${PN}-wlcommon = "Firmware-ti-connectivity" -LICENSE_${PN}-wl12xx = "Firmware-ti-connectivity" -LICENSE_${PN}-wl18xx = "Firmware-ti-connectivity" -LICENSE_${PN}-ti-connectivity-license = "Firmware-ti-connectivity" - -FILES_${PN}-ti-connectivity-license = "${nonarch_base_libdir}/firmware/LICENCE.ti-connectivity" -# wl18xx optionally needs wl1271-nvs.bin (which itself is a symlink to -# wl127x-nvs.bin) - see linux/drivers/net/wireless/ti/wlcore/sdio.c -# and drivers/net/wireless/ti/wlcore/spi.c. -# While they're optional and actually only used to override the MAC -# address on wl18xx, driver loading will delay (by udev timout - 60s) -# if not there. So let's make it available always. Because it's a -# symlink, both need to go to wlcommon. -FILES_${PN}-wlcommon = " \ - ${nonarch_base_libdir}/firmware/ti-connectivity/TI* \ - ${nonarch_base_libdir}/firmware/ti-connectivity/wl127x-nvs.bin \ - ${nonarch_base_libdir}/firmware/ti-connectivity/wl1271-nvs.bin \ -" -FILES_${PN}-wl12xx = " \ - ${nonarch_base_libdir}/firmware/ti-connectivity/wl12* \ -" -FILES_${PN}-wl18xx = " \ - ${nonarch_base_libdir}/firmware/ti-connectivity/wl18* \ -" - -RDEPENDS_${PN}-wl12xx = "${PN}-ti-connectivity-license ${PN}-wlcommon" -RDEPENDS_${PN}-wl18xx = "${PN}-ti-connectivity-license ${PN}-wlcommon" - -# For vt6656 -LICENSE_${PN}-vt6656 = "Firmware-via_vt6656" -LICENSE_${PN}-vt6656-license = "Firmware-via_vt6656" - -FILES_${PN}-vt6656-license = "${nonarch_base_libdir}/firmware/LICENCE.via_vt6656" -FILES_${PN}-vt6656 = " \ - ${nonarch_base_libdir}/firmware/vntwusb.fw \ -" - -RDEPENDS_${PN}-vt6656 = "${PN}-vt6656-license" - -# For broadcom - -# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e " \${PN}-$pkg \\"; done | sort -u - -LICENSE_${PN}-broadcom-license = "Firmware-broadcom_bcm43xx" -FILES_${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx" - -# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo "$i - $pkg"; echo -e "FILES_\${PN}-$pkg = \"\${nonarch_base_libdir}/firmware/brcm/$i\""; done | grep ^FILES - -FILES_${PN}-bcm43xx = "${nonarch_base_libdir}/firmware/brcm/bcm43xx-0.fw" -FILES_${PN}-bcm43xx-hdr = "${nonarch_base_libdir}/firmware/brcm/bcm43xx_hdr-0.fw" -FILES_${PN}-bcm4329-fullmac = "${nonarch_base_libdir}/firmware/brcm/bcm4329-fullmac-4.bin" -FILES_${PN}-bcm43236b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43236b.bin" -FILES_${PN}-bcm4329 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4329-sdio.bin" -FILES_${PN}-bcm4330 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.*" -FILES_${PN}-bcm4334 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4334-sdio.bin" -FILES_${PN}-bcm4335 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4335-sdio.bin" -FILES_${PN}-bcm4339 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4339-sdio.bin" -FILES_${PN}-bcm43241b0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b0-sdio.bin" -FILES_${PN}-bcm43241b4 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b4-sdio.bin" -FILES_${PN}-bcm43241b5 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b5-sdio.bin" -FILES_${PN}-bcm43242a = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43242a.bin" -FILES_${PN}-bcm43143 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43143.bin \ - ${nonarch_base_libdir}/firmware/brcm/brcmfmac43143-sdio.bin \ -" -FILES_${PN}-bcm43430a0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430a0-sdio.*" -FILES_${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.*" -FILES_${PN}-bcm4350c2 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350c2-pcie.bin" -FILES_${PN}-bcm4350 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350-pcie.bin" -FILES_${PN}-bcm4356 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-sdio.bin" -FILES_${PN}-bcm43569 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43569.bin" -FILES_${PN}-bcm43570 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43570-pcie.bin" -FILES_${PN}-bcm4358 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4358-pcie.bin" -FILES_${PN}-bcm43602 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.bin \ - ${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.ap.bin \ -" -FILES_${PN}-bcm4366b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366b-pcie.bin" -FILES_${PN}-bcm4366c = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366c-pcie.bin" -FILES_${PN}-bcm4371 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4371-pcie.bin" - -# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e "LICENSE_\${PN}-$pkg = \"Firmware-broadcom_bcm43xx\"\nRDEPENDS_\${PN}-$pkg += \"\${PN}-broadcom-license\""; done -# Currently 1st one and last 6 have cypress LICENSE - -LICENSE_${PN}-bcm43xx = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43xx += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43xx-hdr = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43xx-hdr += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4329-fullmac = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4329-fullmac += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43236b = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43236b += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4329 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4329 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4330 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4330 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4334 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4334 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4335 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4335 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4339 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4339 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43241b0 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43241b0 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43241b4 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43241b4 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43241b5 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43241b5 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43242a = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43242a += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43143 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43143 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43430a0 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43430a0 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4350c2 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4350c2 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4350 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4350 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4356 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4356 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43569 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43569 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43570 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43570 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4358 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4358 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm43602 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm43602 += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4366b = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4366b += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4366c = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4366c += "${PN}-broadcom-license" -LICENSE_${PN}-bcm4371 = "Firmware-broadcom_bcm43xx" -RDEPENDS_${PN}-bcm4371 += "${PN}-broadcom-license" - -# For broadcom cypress - -LICENSE_${PN}-cypress-license = "Firmware-cypress" -FILES_${PN}-cypress-license = "${nonarch_base_libdir}/firmware/LICENCE.cypress" - -FILES_${PN}-bcm-0bb4-0306 = "${nonarch_base_libdir}/firmware/brcm/BCM-0bb4-0306.hcd" -FILES_${PN}-bcm43340 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.*" -FILES_${PN}-bcm43362 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43362-sdio.*" -FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.*" -FILES_${PN}-bcm4354 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4354-sdio.bin" -FILES_${PN}-bcm4356-pcie = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-pcie.*" -FILES_${PN}-bcm4373 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4373-sdio.bin \ - ${nonarch_base_libdir}/firmware/brcm/brcmfmac4373.bin \ -" - -LICENSE_${PN}-bcm-0bb4-0306 = "Firmware-cypress" -RDEPENDS_${PN}-bcm-0bb4-0306 += "${PN}-cypress-license" -LICENSE_${PN}-bcm43340 = "Firmware-cypress" -RDEPENDS_${PN}-bcm43340 += "${PN}-cypress-license" -LICENSE_${PN}-bcm43362 = "Firmware-cypress" -RDEPENDS_${PN}-bcm43362 += "${PN}-cypress-license" -LICENSE_${PN}-bcm43430 = "Firmware-cypress" -RDEPENDS_${PN}-bcm43430 += "${PN}-cypress-license" -LICENSE_${PN}-bcm4354 = "Firmware-cypress" -RDEPENDS_${PN}-bcm4354 += "${PN}-cypress-license" -LICENSE_${PN}-bcm4356-pcie = "Firmware-cypress" -RDEPENDS_${PN}-bcm4356-pcie += "${PN}-cypress-license" -LICENSE_${PN}-bcm4373 = "Firmware-cypress" -RDEPENDS_${PN}-bcm4373 += "${PN}-cypress-license" - -# For Broadcom bnx2-mips -# -# which is a separate case to the other Broadcom firmwares since its -# license is contained in the shared WHENCE file. - -LICENSE_${PN}-bnx2-mips = "WHENCE" -LICENSE_${PN}-whence-license = "WHENCE" - -FILES_${PN}-bnx2-mips = "${nonarch_base_libdir}/firmware/bnx2/bnx2-mips-09-6.2.1b.fw" -FILES_${PN}-whence-license = "${nonarch_base_libdir}/firmware/WHENCE" - -RDEPENDS_${PN}-bnx2-mips += "${PN}-whence-license" - -# For imx-sdma -LICENSE_${PN}-imx-sdma-imx6q = "Firmware-imx-sdma_firmware" -LICENSE_${PN}-imx-sdma-imx7d = "Firmware-imx-sdma_firmware" -LICENSE_${PN}-imx-sdma-license = "Firmware-imx-sdma_firmware" - -FILES_${PN}-imx-sdma-imx6q = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx6q.bin" - -RPROVIDES_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" -RREPLACES_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" -RCONFLICTS_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" - -FILES_${PN}-imx-sdma-imx7d = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx7d.bin" - -FILES_${PN}-imx-sdma-license = "${nonarch_base_libdir}/firmware/LICENSE.sdma_firmware" - -RDEPENDS_${PN}-imx-sdma-imx6q += "${PN}-imx-sdma-license" -RDEPENDS_${PN}-imx-sdma-imx7d += "${PN}-imx-sdma-license" - -# For iwlwifi -LICENSE_${PN}-iwlwifi = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-135-6 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-7 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-8 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-9 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-10 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-12 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-13 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-16 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-3160-17 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000-4 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000g2a-5 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000g2a-6 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000g2b-5 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6000g2b-6 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6050-4 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-6050-5 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-7260 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-7265 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-7265d = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-8000c = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-8265 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-9000 = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-misc = "Firmware-iwlwifi_firmware" -LICENSE_${PN}-iwlwifi-license = "Firmware-iwlwifi_firmware" - - -FILES_${PN}-iwlwifi-license = "${nonarch_base_libdir}/firmware/LICENCE.iwlwifi_firmware" -FILES_${PN}-iwlwifi-135-6 = "${nonarch_base_libdir}/firmware/iwlwifi-135-6.ucode" -FILES_${PN}-iwlwifi-3160-7 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-7.ucode" -FILES_${PN}-iwlwifi-3160-8 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-8.ucode" -FILES_${PN}-iwlwifi-3160-9 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-9.ucode" -FILES_${PN}-iwlwifi-3160-10 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-10.ucode" -FILES_${PN}-iwlwifi-3160-12 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-12.ucode" -FILES_${PN}-iwlwifi-3160-13 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-13.ucode" -FILES_${PN}-iwlwifi-3160-16 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-16.ucode" -FILES_${PN}-iwlwifi-3160-17 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-17.ucode" -FILES_${PN}-iwlwifi-6000-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6000-4.ucode" -FILES_${PN}-iwlwifi-6000g2a-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-5.ucode" -FILES_${PN}-iwlwifi-6000g2a-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-6.ucode" -FILES_${PN}-iwlwifi-6000g2b-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-5.ucode" -FILES_${PN}-iwlwifi-6000g2b-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-6.ucode" -FILES_${PN}-iwlwifi-6050-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-4.ucode" -FILES_${PN}-iwlwifi-6050-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-5.ucode" -FILES_${PN}-iwlwifi-7260 = "${nonarch_base_libdir}/firmware/iwlwifi-7260-*.ucode" -FILES_${PN}-iwlwifi-7265 = "${nonarch_base_libdir}/firmware/iwlwifi-7265-*.ucode" -FILES_${PN}-iwlwifi-7265d = "${nonarch_base_libdir}/firmware/iwlwifi-7265D-*.ucode" -FILES_${PN}-iwlwifi-8000c = "${nonarch_base_libdir}/firmware/iwlwifi-8000C-*.ucode" -FILES_${PN}-iwlwifi-8265 = "${nonarch_base_libdir}/firmware/iwlwifi-8265-*.ucode" -FILES_${PN}-iwlwifi-9000 = "${nonarch_base_libdir}/firmware/iwlwifi-9000-*.ucode" -FILES_${PN}-iwlwifi-misc = "${nonarch_base_libdir}/firmware/iwlwifi-*.ucode" - -RDEPENDS_${PN}-iwlwifi-135-6 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-7 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-8 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-9 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-10 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-12 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-13 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-16 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-3160-17 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000-4 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000g2a-5 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000g2a-6 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000g2b-5 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6000g2b-6 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6050-4 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-6050-5 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-7265d = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-8000c = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-8265 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-9000 = "${PN}-iwlwifi-license" -RDEPENDS_${PN}-iwlwifi-misc = "${PN}-iwlwifi-license" - -# -iwlwifi-misc is a "catch all" package that includes all the iwlwifi -# firmwares that are not already included in other -iwlwifi- packages. -# -iwlwifi is a virtual package that depends upon all iwlwifi packages. -# These are distinct in order to allow the -misc firmwares to be installed -# without pulling in every other iwlwifi package. -ALLOW_EMPTY_${PN}-iwlwifi = "1" -ALLOW_EMPTY_${PN}-iwlwifi-misc = "1" - -# Handle package updating for the newly merged iwlwifi groupings -RPROVIDES_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" -RREPLACES_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" -RCONFLICTS_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" - -RPROVIDES_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" -RREPLACES_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" -RCONFLICTS_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" - -# For ibt -LICENSE_${PN}-ibt-license = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-hw-37-7 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-hw-37-8 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-11-5 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-12-16 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-17 = "Firmware-ibt_firmware" -LICENSE_${PN}-ibt-misc = "Firmware-ibt_firmware" - -FILES_${PN}-ibt-license = "${nonarch_base_libdir}/firmware/LICENCE.ibt_firmware" -FILES_${PN}-ibt-hw-37-7 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.7*.bseq" -FILES_${PN}-ibt-hw-37-8 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.8*.bseq" -FILES_${PN}-ibt-11-5 = "${nonarch_base_libdir}/firmware/intel/ibt-11-5.sfi ${nonarch_base_libdir}/firmware/intel/ibt-11-5.ddc" -FILES_${PN}-ibt-12-16 = "${nonarch_base_libdir}/firmware/intel/ibt-12-16.sfi ${nonarch_base_libdir}/firmware/intel/ibt-12-16.ddc" -FILES_${PN}-ibt-17 = "${nonarch_base_libdir}/firmware/intel/ibt-17-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-17-*.ddc" -FILES_${PN}-ibt-misc = "${nonarch_base_libdir}/firmware/ibt-*" - -RDEPENDS_${PN}-ibt-hw-37-7 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-hw-37.8 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-11-5 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-12-16 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-17 = "${PN}-ibt-license" -RDEPENDS_${PN}-ibt-misc = "${PN}-ibt-license" - -ALLOW_EMPTY_${PN}-ibt= "1" -ALLOW_EMPTY_${PN}-ibt-misc = "1" - -LICENSE_${PN}-i915 = "Firmware-i915" -LICENSE_${PN}-i915-license = "Firmware-i915" -FILES_${PN}-i915-license = "${nonarch_base_libdir}/firmware/LICENSE.i915" -FILES_${PN}-i915 = "${nonarch_base_libdir}/firmware/i915" -RDEPENDS_${PN}-i915 = "${PN}-i915-license" - -LICENSE_${PN}-ice = "Firmware-ice" -LICENSE_${PN}-ice-license = "Firmware-ice" -FILES_${PN}-ice-license = "${nonarch_base_libdir}/firmware/LICENSE.ice" -FILES_${PN}-ice = "${nonarch_base_libdir}/firmware/intel/ice" -RDEPENDS_${PN}-ice = "${PN}-ice-license" - -FILES_${PN}-adsp-sst-license = "${nonarch_base_libdir}/firmware/LICENCE.adsp_sst" -LICENSE_${PN}-adsp-sst = "Firmware-adsp_sst" -LICENSE_${PN}-adsp-sst-license = "Firmware-adsp_sst" -FILES_${PN}-adsp-sst = "${nonarch_base_libdir}/firmware/intel/dsp_fw*" -RDEPENDS_${PN}-adsp-sst = "${PN}-adsp-sst-license" - -# For QAT -LICENSE_${PN}-qat = "Firmware-qat" -LICENSE_${PN}-qat-license = "Firmware-qat" -FILES_${PN}-qat-license = "${nonarch_base_libdir}/firmware/LICENCE.qat_firmware" -FILES_${PN}-qat = "${nonarch_base_libdir}/firmware/qat*.bin" -RDEPENDS_${PN}-qat = "${PN}-qat-license" - -# For QCOM VPU/GPU and SDM845 -LICENSE_${PN}-qcom-license = "Firmware-qcom" -FILES_${PN}-qcom-license = "${nonarch_base_libdir}/firmware/LICENSE.qcom ${nonarch_base_libdir}/firmware/qcom/NOTICE.txt" -FILES_${PN}-qcom-venus-1.8 = "${nonarch_base_libdir}/firmware/qcom/venus-1.8/*" -FILES_${PN}-qcom-venus-4.2 = "${nonarch_base_libdir}/firmware/qcom/venus-4.2/*" -FILES_${PN}-qcom-adreno-a3xx = "${nonarch_base_libdir}/firmware/qcom/a300_*.fw ${nonarch_base_libdir}/firmware/a300_*.fw" -FILES_${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.*" -FILES_${PN}-qcom-adreno-a630 = "${nonarch_base_libdir}/firmware/qcom/a630*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/a630*.*" -FILES_${PN}-qcom-sdm845-audio = "${nonarch_base_libdir}/firmware/qcom/sdm845/adsp*.*" -FILES_${PN}-qcom-sdm845-compute = "${nonarch_base_libdir}/firmware/qcom/sdm845/cdsp*.*" -FILES_${PN}-qcom-sdm845-modem = "${nonarch_base_libdir}/firmware/qcom/sdm845/mba.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/modem*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/wlanmdsp.mbn" -RDEPENDS_${PN}-qcom-venus-1.8 = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-venus-4.2 = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-adreno-a3xx = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-adreno-a530 = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-adreno-a630 = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-sdm845-audio = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-sdm845-compute = "${PN}-qcom-license" -RDEPENDS_${PN}-qcom-sdm845-modem = "${PN}-qcom-license" - -FILES_${PN}-liquidio = "${nonarch_base_libdir}/firmware/liquidio" - -# For other firmwares -# Maybe split out to separate packages when needed. -LICENSE_${PN} = "\ - Firmware-Abilis \ - & Firmware-agere \ - & Firmware-amdgpu \ - & Firmware-amd-ucode \ - & Firmware-atmel \ - & Firmware-ca0132 \ - & Firmware-cavium \ - & Firmware-chelsio_firmware \ - & Firmware-cw1200 \ - & Firmware-dib0700 \ - & Firmware-e100 \ - & Firmware-ene_firmware \ - & Firmware-fw_sst_0f28 \ - & Firmware-go7007 \ - & Firmware-hfi1_firmware \ - & Firmware-i2400m \ - & Firmware-ibt_firmware \ - & Firmware-it913x \ - & Firmware-IntcSST2 \ - & Firmware-kaweth \ - & Firmware-moxa \ - & Firmware-myri10ge_firmware \ - & Firmware-nvidia \ - & Firmware-OLPC \ - & Firmware-ath9k-htc \ - & Firmware-phanfw \ - & Firmware-qat \ - & Firmware-qcom \ - & Firmware-qla1280 \ - & Firmware-qla2xxx \ - & Firmware-r8a779x_usb3 \ - & Firmware-radeon \ - & Firmware-ralink_a_mediatek_company_firmware \ - & Firmware-ralink-firmware \ - & Firmware-imx-sdma_firmware \ - & Firmware-siano \ - & Firmware-tda7706-firmware \ - & Firmware-ti-connectivity \ - & Firmware-ti-keystone \ - & Firmware-ueagle-atm4-firmware \ - & Firmware-wl1251 \ - & Firmware-xc4000 \ - & Firmware-xc5000 \ - & Firmware-xc5000c \ - & WHENCE \ -" - -FILES_${PN}-license += "${nonarch_base_libdir}/firmware/LICEN*" -FILES_${PN} += "${nonarch_base_libdir}/firmware/*" -RDEPENDS_${PN} += "${PN}-license" -RDEPENDS_${PN} += "${PN}-whence-license" - -# Make linux-firmware depend on all of the split-out packages. -# Make linux-firmware-iwlwifi depend on all of the split-out iwlwifi packages. -# Make linux-firmware-ibt depend on all of the split-out ibt packages. -python populate_packages_prepend () { - firmware_pkgs = oe.utils.packages_filter_out_system(d) - d.appendVar('RRECOMMENDS_linux-firmware', ' ' + ' '.join(firmware_pkgs)) - - iwlwifi_pkgs = filter(lambda x: x.find('-iwlwifi-') != -1, firmware_pkgs) - d.appendVar('RRECOMMENDS_linux-firmware-iwlwifi', ' ' + ' '.join(iwlwifi_pkgs)) - - ibt_pkgs = filter(lambda x: x.find('-ibt-') != -1, firmware_pkgs) - d.appendVar('RRECOMMENDS_linux-firmware-ibt', ' ' + ' '.join(ibt_pkgs)) -} - -# Firmware files are generally not ran on the CPU, so they can be -# allarch despite being architecture specific -INSANE_SKIP = "arch" diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb new file mode 100644 index 000000000..392e03a10 --- /dev/null +++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb @@ -0,0 +1,946 @@ +SUMMARY = "Firmware files for use with Linux kernel" +SECTION = "kernel" + +LICENSE = "\ + Firmware-Abilis \ + & Firmware-adsp_sst \ + & Firmware-agere \ + & Firmware-amdgpu \ + & Firmware-amd-ucode \ + & Firmware-amlogic_vdec \ + & Firmware-atheros_firmware \ + & Firmware-atmel \ + & Firmware-broadcom_bcm43xx \ + & Firmware-ca0132 \ + & Firmware-cavium \ + & Firmware-chelsio_firmware \ + & Firmware-cw1200 \ + & Firmware-cypress \ + & Firmware-dib0700 \ + & Firmware-e100 \ + & Firmware-ene_firmware \ + & Firmware-fw_sst_0f28 \ + & Firmware-go7007 \ + & Firmware-GPLv2 \ + & Firmware-hfi1_firmware \ + & Firmware-i2400m \ + & Firmware-i915 \ + & Firmware-ibt_firmware \ + & Firmware-ice \ + & Firmware-it913x \ + & Firmware-iwlwifi_firmware \ + & Firmware-IntcSST2 \ + & Firmware-kaweth \ + & Firmware-Marvell \ + & Firmware-moxa \ + & Firmware-myri10ge_firmware \ + & Firmware-netronome \ + & Firmware-nvidia \ + & Firmware-OLPC \ + & Firmware-ath9k-htc \ + & Firmware-phanfw \ + & Firmware-qat \ + & Firmware-qcom \ + & Firmware-qla1280 \ + & Firmware-qla2xxx \ + & Firmware-qualcommAthos_ar3k \ + & Firmware-qualcommAthos_ath10k \ + & Firmware-r8a779x_usb3 \ + & Firmware-radeon \ + & Firmware-ralink_a_mediatek_company_firmware \ + & Firmware-ralink-firmware \ + & Firmware-rtlwifi_firmware \ + & Firmware-imx-sdma_firmware \ + & Firmware-siano \ + & Firmware-tda7706-firmware \ + & Firmware-ti-connectivity \ + & Firmware-ti-keystone \ + & Firmware-ueagle-atm4-firmware \ + & Firmware-via_vt6656 \ + & Firmware-wl1251 \ + & Firmware-xc4000 \ + & Firmware-xc5000 \ + & Firmware-xc5000c \ + & WHENCE \ +" + +LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \ + file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \ + file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \ + file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \ + file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f \ + file://LICENSE.amlogic_vdec;md5=dc44f59bf64a81643e500ad3f39a468a \ + file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \ + file://LICENSE.atmel;md5=aa74ac0c60595dee4d4e239107ea77a3 \ + file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \ + file://LICENCE.ca0132;md5=209b33e66ee5be0461f13d31da392198 \ + file://LICENCE.cadence;md5=009f46816f6956cfb75ede13d3e1cee0 \ + file://LICENCE.cavium;md5=c37aaffb1ebe5939b2580d073a95daea \ + file://LICENCE.chelsio_firmware;md5=819aa8c3fa453f1b258ed8d168a9d903 \ + file://LICENCE.cw1200;md5=f0f770864e7a8444a5c5aa9d12a3a7ed \ + file://LICENCE.cypress;md5=48cd9436c763bf873961f9ed7b5c147b \ + file://LICENSE.dib0700;md5=f7411825c8a555a1a3e5eab9ca773431 \ + file://LICENCE.e100;md5=ec0f84136766df159a3ae6d02acdf5a8 \ + file://LICENCE.ene_firmware;md5=ed67f0f62f8f798130c296720b7d3921 \ + file://LICENCE.fw_sst_0f28;md5=6353931c988ad52818ae733ac61cd293 \ + file://LICENCE.go7007;md5=c0bb9f6aaaba55b0529ee9b30aa66beb \ + file://GPL-2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://LICENSE.hfi1_firmware;md5=5e7b6e586ce7339d12689e49931ad444 \ + file://LICENCE.i2400m;md5=14b901969e23c41881327c0d9e4b7d36 \ + file://LICENSE.i915;md5=2b0b2e0d20984affd4490ba2cba02570 \ + file://LICENCE.ibt_firmware;md5=fdbee1ddfe0fb7ab0b2fcd6b454a366b \ + file://LICENSE.ice;md5=742ab4850f2670792940e6d15c974b2f \ + file://LICENCE.IntcSST2;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ + file://LICENCE.it913x;md5=1fbf727bfb6a949810c4dbfa7e6ce4f8 \ + file://LICENCE.iwlwifi_firmware;md5=3fd842911ea93c29cd32679aa23e1c88 \ + file://LICENCE.kaweth;md5=b1d876e562f4b3b8d391ad8395dfe03f \ + file://LICENCE.Marvell;md5=28b6ed8bd04ba105af6e4dcd6e997772 \ + file://LICENCE.mediatek;md5=7c1976b63217d76ce47d0a11d8a79cf2 \ + file://LICENCE.moxa;md5=1086614767d8ccf744a923289d3d4261 \ + file://LICENCE.myri10ge_firmware;md5=42e32fb89f6b959ca222e25ac8df8fed \ + file://LICENCE.Netronome;md5=4add08f2577086d44447996503cddf5f \ + file://LICENCE.nvidia;md5=4428a922ed3ba2ceec95f076a488ce07 \ + file://LICENCE.NXP;md5=58bb8ba632cd729b9ba6183bc6aed36f \ + file://LICENCE.OLPC;md5=5b917f9d8c061991be4f6f5f108719cd \ + file://LICENCE.open-ath9k-htc-firmware;md5=1b33c9f4d17bc4d457bdb23727046837 \ + file://LICENCE.phanfw;md5=954dcec0e051f9409812b561ea743bfa \ + file://LICENCE.qat_firmware;md5=9e7d8bea77612d7cc7d9e9b54b623062 \ + file://LICENSE.qcom;md5=164e3362a538eb11d3ac51e8e134294b \ + file://LICENCE.qla1280;md5=d6895732e622d950609093223a2c4f5d \ + file://LICENCE.qla2xxx;md5=505855e921b75f1be4a437ad9b79dff0 \ + file://LICENSE.QualcommAtheros_ar3k;md5=b5fe244fb2b532311de1472a3bc06da5 \ + file://LICENSE.QualcommAtheros_ath10k;md5=cb42b686ee5f5cb890275e4321db60a8 \ + file://LICENCE.r8a779x_usb3;md5=4c1671656153025d7076105a5da7e498 \ + file://LICENSE.radeon;md5=68ec28bacb3613200bca44f404c69b16 \ + file://LICENCE.ralink_a_mediatek_company_firmware;md5=728f1a85fd53fd67fa8d7afb080bc435 \ + file://LICENCE.ralink-firmware.txt;md5=ab2c269277c45476fb449673911a2dfd \ + file://LICENCE.rtlwifi_firmware.txt;md5=00d06cfd3eddd5a2698948ead2ad54a5 \ + file://LICENSE.sdma_firmware;md5=51e8c19ecc2270f4b8ea30341ad63ce9 \ + file://LICENCE.siano;md5=4556c1bf830067f12ca151ad953ec2a5 \ + file://LICENCE.tda7706-firmware.txt;md5=835997cf5e3c131d0dddd695c7d9103e \ + file://LICENCE.ti-connectivity;md5=c5e02be633f1499c109d1652514d85ec \ + file://LICENCE.ti-keystone;md5=3a86335d32864b0bef996bee26cc0f2c \ + file://LICENCE.ueagle-atm4-firmware;md5=4ed7ea6b507ccc583b9d594417714118 \ + file://LICENCE.via_vt6656;md5=e4159694cba42d4377a912e78a6e850f \ + file://LICENCE.wl1251;md5=ad3f81922bb9e197014bb187289d3b5b \ + file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \ + file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \ + file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \ + file://WHENCE;md5=d373d30188c38dabffec0d3cc87abbfd \ + " + +# These are not common licenses, set NO_GENERIC_LICENSE for them +# so that the license files will be copied from fetched source +NO_GENERIC_LICENSE[Firmware-Abilis] = "LICENCE.Abilis" +NO_GENERIC_LICENSE[Firmware-adsp_sst] = "LICENCE.adsp_sst" +NO_GENERIC_LICENSE[Firmware-agere] = "LICENCE.agere" +NO_GENERIC_LICENSE[Firmware-amdgpu] = "LICENSE.amdgpu" +NO_GENERIC_LICENSE[Firmware-amd-ucode] = "LICENSE.amd-ucode" +NO_GENERIC_LICENSE[Firmware-amlogic_vdec] = "LICENSE.amlogic_vdec" +NO_GENERIC_LICENSE[Firmware-atheros_firmware] = "LICENCE.atheros_firmware" +NO_GENERIC_LICENSE[Firmware-atmel] = "LICENSE.atmel" +NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx] = "LICENCE.broadcom_bcm43xx" +NO_GENERIC_LICENSE[Firmware-ca0132] = "LICENCE.ca0132" +NO_GENERIC_LICENSE[Firmware-cadence] = "LICENCE.cadence" +NO_GENERIC_LICENSE[Firmware-cavium] = "LICENCE.cavium" +NO_GENERIC_LICENSE[Firmware-chelsio_firmware] = "LICENCE.chelsio_firmware" +NO_GENERIC_LICENSE[Firmware-cw1200] = "LICENCE.cw1200" +NO_GENERIC_LICENSE[Firmware-cypress] = "LICENCE.cypress" +NO_GENERIC_LICENSE[Firmware-dib0700] = "LICENSE.dib0700" +NO_GENERIC_LICENSE[Firmware-e100] = "LICENCE.e100" +NO_GENERIC_LICENSE[Firmware-ene_firmware] = "LICENCE.ene_firmware" +NO_GENERIC_LICENSE[Firmware-fw_sst_0f28] = "LICENCE.fw_sst_0f28" +NO_GENERIC_LICENSE[Firmware-go7007] = "LICENCE.go7007" +NO_GENERIC_LICENSE[Firmware-GPLv2] = "GPL-2" +NO_GENERIC_LICENSE[Firmware-hfi1_firmware] = "LICENSE.hfi1_firmware" +NO_GENERIC_LICENSE[Firmware-i2400m] = "LICENCE.i2400m" +NO_GENERIC_LICENSE[Firmware-i915] = "LICENSE.i915" +NO_GENERIC_LICENSE[Firmware-ibt_firmware] = "LICENCE.ibt_firmware" +NO_GENERIC_LICENSE[Firmware-ice] = "LICENSE.ice" +NO_GENERIC_LICENSE[Firmware-IntcSST2] = "LICENCE.IntcSST2" +NO_GENERIC_LICENSE[Firmware-it913x] = "LICENCE.it913x" +NO_GENERIC_LICENSE[Firmware-iwlwifi_firmware] = "LICENCE.iwlwifi_firmware" +NO_GENERIC_LICENSE[Firmware-kaweth] = "LICENCE.kaweth" +NO_GENERIC_LICENSE[Firmware-Marvell] = "LICENCE.Marvell" +NO_GENERIC_LICENSE[Firmware-mediatek] = "LICENCE.mediatek" +NO_GENERIC_LICENSE[Firmware-moxa] = "LICENCE.moxa" +NO_GENERIC_LICENSE[Firmware-myri10ge_firmware] = "LICENCE.myri10ge_firmware" +NO_GENERIC_LICENSE[Firmware-netronome] = "LICENCE.Netronome" +NO_GENERIC_LICENSE[Firmware-nvidia] = "LICENCE.nvidia" +NO_GENERIC_LICENSE[Firmware-OLPC] = "LICENCE.OLPC" +NO_GENERIC_LICENSE[Firmware-ath9k-htc] = "LICENCE.open-ath9k-htc-firmware" +NO_GENERIC_LICENSE[Firmware-phanfw] = "LICENCE.phanfw" +NO_GENERIC_LICENSE[Firmware-qat] = "LICENCE.qat_firmware" +NO_GENERIC_LICENSE[Firmware-qcom] = "LICENSE.qcom" +NO_GENERIC_LICENSE[Firmware-qla1280] = "LICENCE.qla1280" +NO_GENERIC_LICENSE[Firmware-qla2xxx] = "LICENCE.qla2xxx" +NO_GENERIC_LICENSE[Firmware-qualcommAthos_ar3k] = "LICENSE.QualcommAtheros_ar3k" +NO_GENERIC_LICENSE[Firmware-qualcommAthos_ath10k] = "LICENSE.QualcommAtheros_ath10k" +NO_GENERIC_LICENSE[Firmware-r8a779x_usb3] = "LICENCE.r8a779x_usb3" +NO_GENERIC_LICENSE[Firmware-radeon] = "LICENSE.radeon" +NO_GENERIC_LICENSE[Firmware-ralink_a_mediatek_company_firmware] = "LICENCE.ralink_a_mediatek_company_firmware" +NO_GENERIC_LICENSE[Firmware-ralink-firmware] = "LICENCE.ralink-firmware.txt" +NO_GENERIC_LICENSE[Firmware-rtlwifi_firmware] = "LICENCE.rtlwifi_firmware.txt" +NO_GENERIC_LICENSE[Firmware-siano] = "LICENCE.siano" +NO_GENERIC_LICENSE[Firmware-imx-sdma_firmware] = "LICENSE.sdma_firmware" +NO_GENERIC_LICENSE[Firmware-tda7706-firmware] = "LICENCE.tda7706-firmware.txt" +NO_GENERIC_LICENSE[Firmware-ti-connectivity] = "LICENCE.ti-connectivity" +NO_GENERIC_LICENSE[Firmware-ti-keystone] = "LICENCE.ti-keystone" +NO_GENERIC_LICENSE[Firmware-ueagle-atm4-firmware] = "LICENCE.ueagle-atm4-firmware" +NO_GENERIC_LICENSE[Firmware-via_vt6656] = "LICENCE.via_vt6656" +NO_GENERIC_LICENSE[Firmware-wl1251] = "LICENCE.wl1251" +NO_GENERIC_LICENSE[Firmware-xc4000] = "LICENCE.xc4000" +NO_GENERIC_LICENSE[Firmware-xc5000] = "LICENCE.xc5000" +NO_GENERIC_LICENSE[Firmware-xc5000c] = "LICENCE.xc5000c" +NO_GENERIC_LICENSE[WHENCE] = "WHENCE" + +PE = "1" + +SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz" + +SRC_URI[sha256sum] = "962d3ae197d226c8259f9cc7746f7ef12a9d23787cd56bd27302021ba6339722" + +inherit allarch + +CLEANBROKEN = "1" + +do_compile() { + : +} + +do_install() { + oe_runmake 'DESTDIR=${D}' 'FIRMWAREDIR=${nonarch_base_libdir}/firmware' install + cp GPL-2 LICEN[CS]E.* WHENCE ${D}${nonarch_base_libdir}/firmware/ +} + + +PACKAGES =+ "${PN}-ralink-license ${PN}-ralink \ + ${PN}-mt7601u-license ${PN}-mt7601u \ + ${PN}-radeon-license ${PN}-radeon \ + ${PN}-marvell-license ${PN}-pcie8897 ${PN}-pcie8997 \ + ${PN}-sd8686 ${PN}-sd8688 ${PN}-sd8787 ${PN}-sd8797 ${PN}-sd8801 ${PN}-sd8887 ${PN}-sd8897 \ + ${PN}-usb8997 \ + ${PN}-ti-connectivity-license ${PN}-wlcommon ${PN}-wl12xx ${PN}-wl18xx \ + ${PN}-vt6656-license ${PN}-vt6656 \ + ${PN}-rtl-license ${PN}-rtl8188 ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su ${PN}-rtl8723 ${PN}-rtl8821 \ + ${PN}-rtl8168 \ + ${PN}-cypress-license \ + ${PN}-broadcom-license \ + ${PN}-bcm-0bb4-0306 \ + ${PN}-bcm43143 \ + ${PN}-bcm43236b \ + ${PN}-bcm43241b0 \ + ${PN}-bcm43241b4 \ + ${PN}-bcm43241b5 \ + ${PN}-bcm43242a \ + ${PN}-bcm4329 \ + ${PN}-bcm4329-fullmac \ + ${PN}-bcm4330 \ + ${PN}-bcm4334 \ + ${PN}-bcm43340 \ + ${PN}-bcm4335 \ + ${PN}-bcm43362 \ + ${PN}-bcm4339 \ + ${PN}-bcm43430 \ + ${PN}-bcm43430a0 \ + ${PN}-bcm43455 \ + ${PN}-bcm4350 \ + ${PN}-bcm4350c2 \ + ${PN}-bcm4354 \ + ${PN}-bcm4356 \ + ${PN}-bcm4356-pcie \ + ${PN}-bcm43569 \ + ${PN}-bcm43570 \ + ${PN}-bcm4358 \ + ${PN}-bcm43602 \ + ${PN}-bcm4366b \ + ${PN}-bcm4366c \ + ${PN}-bcm4371 \ + ${PN}-bcm4373 \ + ${PN}-bcm43xx \ + ${PN}-bcm43xx-hdr \ + ${PN}-atheros-license ${PN}-ar9170 ${PN}-ath6k ${PN}-ath9k \ + ${PN}-gplv2-license ${PN}-carl9170 \ + ${PN}-ar3k-license ${PN}-ar3k ${PN}-ath10k-license ${PN}-ath10k ${PN}-qca \ + \ + ${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d \ + \ + ${PN}-iwlwifi-license ${PN}-iwlwifi \ + ${PN}-iwlwifi-135-6 \ + ${PN}-iwlwifi-3160-7 ${PN}-iwlwifi-3160-8 ${PN}-iwlwifi-3160-9 \ + ${PN}-iwlwifi-3160-10 ${PN}-iwlwifi-3160-12 ${PN}-iwlwifi-3160-13 \ + ${PN}-iwlwifi-3160-16 ${PN}-iwlwifi-3160-17 \ + ${PN}-iwlwifi-6000-4 ${PN}-iwlwifi-6000g2a-5 ${PN}-iwlwifi-6000g2a-6 \ + ${PN}-iwlwifi-6000g2b-5 ${PN}-iwlwifi-6000g2b-6 \ + ${PN}-iwlwifi-6050-4 ${PN}-iwlwifi-6050-5 \ + ${PN}-iwlwifi-7260 \ + ${PN}-iwlwifi-7265 \ + ${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \ + ${PN}-iwlwifi-9000 \ + ${PN}-iwlwifi-misc \ + ${PN}-ibt-license ${PN}-ibt ${PN}-ibt-misc \ + ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \ + ${PN}-ibt-17 \ + ${PN}-i915-license ${PN}-i915 \ + ${PN}-ice-license ${PN}-ice \ + ${PN}-adsp-sst-license ${PN}-adsp-sst \ + ${PN}-bnx2-mips \ + ${PN}-liquidio \ + ${PN}-netronome-license ${PN}-netronome \ + ${PN}-qat ${PN}-qat-license \ + ${PN}-qcom-license \ + ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 \ + ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a530 ${PN}-qcom-adreno-a630 \ + ${PN}-qcom-sdm845-audio ${PN}-qcom-sdm845-compute ${PN}-qcom-sdm845-modem \ + ${PN}-whence-license \ + ${PN}-license \ + " + +# For atheros +LICENSE_${PN}-ar9170 = "Firmware-atheros_firmware" +LICENSE_${PN}-ath6k = "Firmware-atheros_firmware" +LICENSE_${PN}-ath9k = "Firmware-atheros_firmware" +LICENSE_${PN}-atheros-license = "Firmware-atheros_firmware" + +FILES_${PN}-atheros-license = "${nonarch_base_libdir}/firmware/LICENCE.atheros_firmware" +FILES_${PN}-ar9170 = " \ + ${nonarch_base_libdir}/firmware/ar9170*.fw \ +" +FILES_${PN}-ath6k = " \ + ${nonarch_base_libdir}/firmware/ath6k \ +" +FILES_${PN}-ath9k = " \ + ${nonarch_base_libdir}/firmware/ar9271.fw \ + ${nonarch_base_libdir}/firmware/ar7010*.fw \ + ${nonarch_base_libdir}/firmware/htc_9271.fw \ + ${nonarch_base_libdir}/firmware/htc_7010.fw \ + ${nonarch_base_libdir}/firmware/ath9k_htc/htc_7010-1.4.0.fw \ + ${nonarch_base_libdir}/firmware/ath9k_htc/htc_9271-1.4.0.fw \ +" + +RDEPENDS_${PN}-ar9170 += "${PN}-atheros-license" +RDEPENDS_${PN}-ath6k += "${PN}-atheros-license" +RDEPENDS_${PN}-ath9k += "${PN}-atheros-license" + +# For carl9170 +LICENSE_${PN}-carl9170 = "Firmware-GPLv2" +LICENSE_${PN}-gplv2-license = "Firmware-GPLv2" + +FILES_${PN}-gplv2-license = "${nonarch_base_libdir}/firmware/GPL-2" +FILES_${PN}-carl9170 = " \ + ${nonarch_base_libdir}/firmware/carl9170*.fw \ +" + +RDEPENDS_${PN}-carl9170 += "${PN}-gplv2-license" + +# For QualCommAthos +LICENSE_${PN}-ar3k = "Firmware-qualcommAthos_ar3k" +LICENSE_${PN}-ar3k-license = "Firmware-qualcommAthos_ar3k" +LICENSE_${PN}-ath10k = "Firmware-qualcommAthos_ath10k" +LICENSE_${PN}-ath10k-license = "Firmware-qualcommAthos_ath10k" +LICENSE_${PN}-qca = "Firmware-qualcommAthos_ath10k" + +FILES_${PN}-ar3k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ar3k" +FILES_${PN}-ar3k = " \ + ${nonarch_base_libdir}/firmware/ar3k \ +" + +FILES_${PN}-ath10k-license = "${nonarch_base_libdir}/firmware/LICENSE.QualcommAtheros_ath10k" +FILES_${PN}-ath10k = " \ + ${nonarch_base_libdir}/firmware/ath10k \ +" + +FILES_${PN}-qca = " \ + ${nonarch_base_libdir}/firmware/qca \ +" + +RDEPENDS_${PN}-ar3k += "${PN}-ar3k-license" +RDEPENDS_${PN}-ath10k += "${PN}-ath10k-license" +RDEPENDS_${PN}-qca += "${PN}-ath10k-license" + +# For ralink +LICENSE_${PN}-ralink = "Firmware-ralink-firmware" +LICENSE_${PN}-ralink-license = "Firmware-ralink-firmware" + +FILES_${PN}-ralink-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink-firmware.txt" +FILES_${PN}-ralink = " \ + ${nonarch_base_libdir}/firmware/rt*.bin \ +" + +RDEPENDS_${PN}-ralink += "${PN}-ralink-license" + +# For mediatek MT7601U +LICENSE_${PN}-mt7601u = "Firmware-ralink_a_mediatek_company_firmware" +LICENSE_${PN}-mt7601u-license = "Firmware-ralink_a_mediatek_company_firmware" + +FILES_${PN}-mt7601u-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink_a_mediatek_company_firmware" +FILES_${PN}-mt7601u = " \ + ${nonarch_base_libdir}/firmware/mt7601u.bin \ +" + +RDEPENDS_${PN}-mt7601u += "${PN}-mt7601u-license" + +# For radeon +LICENSE_${PN}-radeon = "Firmware-radeon" +LICENSE_${PN}-radeon-license = "Firmware-radeon" + +FILES_${PN}-radeon-license = "${nonarch_base_libdir}/firmware/LICENSE.radeon" +FILES_${PN}-radeon = " \ + ${nonarch_base_libdir}/firmware/radeon \ +" + +RDEPENDS_${PN}-radeon += "${PN}-radeon-license" + +# For marvell +LICENSE_${PN}-pcie8897 = "Firmware-Marvell" +LICENSE_${PN}-pcie8997 = "Firmware-Marvell" +LICENSE_${PN}-sd8686 = "Firmware-Marvell" +LICENSE_${PN}-sd8688 = "Firmware-Marvell" +LICENSE_${PN}-sd8787 = "Firmware-Marvell" +LICENSE_${PN}-sd8797 = "Firmware-Marvell" +LICENSE_${PN}-sd8801 = "Firmware-Marvell" +LICENSE_${PN}-sd8887 = "Firmware-Marvell" +LICENSE_${PN}-sd8897 = "Firmware-Marvell" +LICENSE_${PN}-usb8997 = "Firmware-Marvell" +LICENSE_${PN}-marvell-license = "Firmware-Marvell" + +FILES_${PN}-marvell-license = "${nonarch_base_libdir}/firmware/LICENCE.Marvell" +FILES_${PN}-pcie8897 = " \ + ${nonarch_base_libdir}/firmware/mrvl/pcie8897_uapsta.bin \ +" +FILES_${PN}-pcie8997 = " \ + ${nonarch_base_libdir}/firmware/mrvl/pcie8997_wlan_v4.bin \ + ${nonarch_base_libdir}/firmware/mrvl/pcieuart8997_combo_v4.bin \ + ${nonarch_base_libdir}/firmware/mrvl/pcieusb8997_combo_v4.bin \ +" +FILES_${PN}-sd8686 = " \ + ${nonarch_base_libdir}/firmware/libertas/sd8686_v9* \ + ${nonarch_base_libdir}/firmware/sd8686* \ +" +FILES_${PN}-sd8688 = " \ + ${nonarch_base_libdir}/firmware/libertas/sd8688* \ + ${nonarch_base_libdir}/firmware/mrvl/sd8688* \ +" +FILES_${PN}-sd8787 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8787_uapsta.bin \ +" +FILES_${PN}-sd8797 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8797_uapsta.bin \ +" +FILES_${PN}-sd8801 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8801_uapsta.bin \ +" +FILES_${PN}-sd8887 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8887_uapsta.bin \ +" +FILES_${PN}-sd8897 = " \ + ${nonarch_base_libdir}/firmware/mrvl/sd8897_uapsta.bin \ +" +FILES_${PN}-usb8997 = " \ + ${nonarch_base_libdir}/firmware/mrvl/usbusb8997_combo_v4.bin \ +" + +RDEPENDS_${PN}-sd8686 += "${PN}-marvell-license" +RDEPENDS_${PN}-sd8688 += "${PN}-marvell-license" +RDEPENDS_${PN}-sd8787 += "${PN}-marvell-license" +RDEPENDS_${PN}-sd8797 += "${PN}-marvell-license" +RDEPENDS_${PN}-sd8801 += "${PN}-marvell-license" +RDEPENDS_${PN}-sd8887 += "${PN}-marvell-license" +RDEPENDS_${PN}-sd8897 += "${PN}-marvell-license" +RDEPENDS_${PN}-usb8997 += "${PN}-marvell-license" + +# For netronome +LICENSE_${PN}-netronome = "Firmware-netronome" + +FILES_${PN}-netronome-license = " \ + ${nonarch_base_libdir}/firmware/LICENCE.Netronome \ +" +FILES_${PN}-netronome = " \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0081*.nffw \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0096*.nffw \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0097*.nffw \ + ${nonarch_base_libdir}/firmware/netronome/nic_AMDA0099*.nffw \ +" + +RDEPENDS_${PN}-netronome += "${PN}-netronome-license" + +# For rtl +LICENSE_${PN}-rtl8188 = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl8192cu = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl8192ce = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl8192su = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl8723 = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl8821 = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl-license = "Firmware-rtlwifi_firmware" +LICENSE_${PN}-rtl8168 = "WHENCE" + +FILES_${PN}-rtl-license = " \ + ${nonarch_base_libdir}/firmware/LICENCE.rtlwifi_firmware.txt \ +" +FILES_${PN}-rtl8188 = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8188*.bin \ +" +FILES_${PN}-rtl8192cu = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cufw*.bin \ +" +FILES_${PN}-rtl8192ce = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8192cfw*.bin \ +" +FILES_${PN}-rtl8192su = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8712u.bin \ +" +FILES_${PN}-rtl8723 = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8723*.bin \ +" +FILES_${PN}-rtl8821 = " \ + ${nonarch_base_libdir}/firmware/rtlwifi/rtl8821*.bin \ +" +FILES_${PN}-rtl8168 = " \ + ${nonarch_base_libdir}/firmware/rtl_nic/rtl8168*.fw \ +" + +RDEPENDS_${PN}-rtl8188 += "${PN}-rtl-license" +RDEPENDS_${PN}-rtl8192ce += "${PN}-rtl-license" +RDEPENDS_${PN}-rtl8192cu += "${PN}-rtl-license" +RDEPENDS_${PN}-rtl8192su = "${PN}-rtl-license" +RDEPENDS_${PN}-rtl8723 += "${PN}-rtl-license" +RDEPENDS_${PN}-rtl8821 += "${PN}-rtl-license" +RDEPENDS_${PN}-rtl8168 += "${PN}-whence-license" + +# For ti-connectivity +LICENSE_${PN}-wlcommon = "Firmware-ti-connectivity" +LICENSE_${PN}-wl12xx = "Firmware-ti-connectivity" +LICENSE_${PN}-wl18xx = "Firmware-ti-connectivity" +LICENSE_${PN}-ti-connectivity-license = "Firmware-ti-connectivity" + +FILES_${PN}-ti-connectivity-license = "${nonarch_base_libdir}/firmware/LICENCE.ti-connectivity" +# wl18xx optionally needs wl1271-nvs.bin (which itself is a symlink to +# wl127x-nvs.bin) - see linux/drivers/net/wireless/ti/wlcore/sdio.c +# and drivers/net/wireless/ti/wlcore/spi.c. +# While they're optional and actually only used to override the MAC +# address on wl18xx, driver loading will delay (by udev timout - 60s) +# if not there. So let's make it available always. Because it's a +# symlink, both need to go to wlcommon. +FILES_${PN}-wlcommon = " \ + ${nonarch_base_libdir}/firmware/ti-connectivity/TI* \ + ${nonarch_base_libdir}/firmware/ti-connectivity/wl127x-nvs.bin \ + ${nonarch_base_libdir}/firmware/ti-connectivity/wl1271-nvs.bin \ +" +FILES_${PN}-wl12xx = " \ + ${nonarch_base_libdir}/firmware/ti-connectivity/wl12* \ +" +FILES_${PN}-wl18xx = " \ + ${nonarch_base_libdir}/firmware/ti-connectivity/wl18* \ +" + +RDEPENDS_${PN}-wl12xx = "${PN}-ti-connectivity-license ${PN}-wlcommon" +RDEPENDS_${PN}-wl18xx = "${PN}-ti-connectivity-license ${PN}-wlcommon" + +# For vt6656 +LICENSE_${PN}-vt6656 = "Firmware-via_vt6656" +LICENSE_${PN}-vt6656-license = "Firmware-via_vt6656" + +FILES_${PN}-vt6656-license = "${nonarch_base_libdir}/firmware/LICENCE.via_vt6656" +FILES_${PN}-vt6656 = " \ + ${nonarch_base_libdir}/firmware/vntwusb.fw \ +" + +RDEPENDS_${PN}-vt6656 = "${PN}-vt6656-license" + +# For broadcom + +# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e " \${PN}-$pkg \\"; done | sort -u + +LICENSE_${PN}-broadcom-license = "Firmware-broadcom_bcm43xx" +FILES_${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx" + +# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo "$i - $pkg"; echo -e "FILES_\${PN}-$pkg = \"\${nonarch_base_libdir}/firmware/brcm/$i\""; done | grep ^FILES + +FILES_${PN}-bcm43xx = "${nonarch_base_libdir}/firmware/brcm/bcm43xx-0.fw" +FILES_${PN}-bcm43xx-hdr = "${nonarch_base_libdir}/firmware/brcm/bcm43xx_hdr-0.fw" +FILES_${PN}-bcm4329-fullmac = "${nonarch_base_libdir}/firmware/brcm/bcm4329-fullmac-4.bin" +FILES_${PN}-bcm43236b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43236b.bin" +FILES_${PN}-bcm4329 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4329-sdio.bin" +FILES_${PN}-bcm4330 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4330-sdio.*" +FILES_${PN}-bcm4334 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4334-sdio.bin" +FILES_${PN}-bcm4335 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4335-sdio.bin" +FILES_${PN}-bcm4339 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4339-sdio.bin" +FILES_${PN}-bcm43241b0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b0-sdio.bin" +FILES_${PN}-bcm43241b4 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b4-sdio.bin" +FILES_${PN}-bcm43241b5 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43241b5-sdio.bin" +FILES_${PN}-bcm43242a = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43242a.bin" +FILES_${PN}-bcm43143 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43143.bin \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac43143-sdio.bin \ +" +FILES_${PN}-bcm43430a0 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430a0-sdio.*" +FILES_${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.*" +FILES_${PN}-bcm4350c2 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350c2-pcie.bin" +FILES_${PN}-bcm4350 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350-pcie.bin" +FILES_${PN}-bcm4356 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-sdio.bin" +FILES_${PN}-bcm43569 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43569.bin" +FILES_${PN}-bcm43570 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43570-pcie.bin" +FILES_${PN}-bcm4358 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4358-pcie.bin" +FILES_${PN}-bcm43602 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.bin \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac43602-pcie.ap.bin \ +" +FILES_${PN}-bcm4366b = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366b-pcie.bin" +FILES_${PN}-bcm4366c = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4366c-pcie.bin" +FILES_${PN}-bcm4371 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4371-pcie.bin" + +# for i in `grep brcm WHENCE | grep ^File | sed 's/File: brcm.//g'`; do pkg=`echo $i | sed 's/-[sp40].*//g; s/\.bin//g; s/brcmfmac/bcm/g; s/_hdr/-hdr/g; s/BCM/bcm-0bb4-0306/g'`; echo -e "LICENSE_\${PN}-$pkg = \"Firmware-broadcom_bcm43xx\"\nRDEPENDS_\${PN}-$pkg += \"\${PN}-broadcom-license\""; done +# Currently 1st one and last 6 have cypress LICENSE + +LICENSE_${PN}-bcm43xx = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43xx += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43xx-hdr = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43xx-hdr += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4329-fullmac = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4329-fullmac += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43236b = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43236b += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4329 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4329 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4330 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4330 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4334 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4334 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4335 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4335 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4339 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4339 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43241b0 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43241b0 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43241b4 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43241b4 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43241b5 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43241b5 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43242a = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43242a += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43143 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43143 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43430a0 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43430a0 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4350c2 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4350c2 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4350 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4350 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4356 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4356 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43569 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43569 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43570 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43570 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4358 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4358 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm43602 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm43602 += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4366b = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4366b += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4366c = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4366c += "${PN}-broadcom-license" +LICENSE_${PN}-bcm4371 = "Firmware-broadcom_bcm43xx" +RDEPENDS_${PN}-bcm4371 += "${PN}-broadcom-license" + +# For broadcom cypress + +LICENSE_${PN}-cypress-license = "Firmware-cypress" +FILES_${PN}-cypress-license = "${nonarch_base_libdir}/firmware/LICENCE.cypress" + +FILES_${PN}-bcm-0bb4-0306 = "${nonarch_base_libdir}/firmware/brcm/BCM-0bb4-0306.hcd" +FILES_${PN}-bcm43340 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43340-sdio.*" +FILES_${PN}-bcm43362 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43362-sdio.*" +FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.*" +FILES_${PN}-bcm4354 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4354-sdio.bin" +FILES_${PN}-bcm4356-pcie = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-pcie.*" +FILES_${PN}-bcm4373 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4373-sdio.bin \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac4373.bin \ +" + +LICENSE_${PN}-bcm-0bb4-0306 = "Firmware-cypress" +RDEPENDS_${PN}-bcm-0bb4-0306 += "${PN}-cypress-license" +LICENSE_${PN}-bcm43340 = "Firmware-cypress" +RDEPENDS_${PN}-bcm43340 += "${PN}-cypress-license" +LICENSE_${PN}-bcm43362 = "Firmware-cypress" +RDEPENDS_${PN}-bcm43362 += "${PN}-cypress-license" +LICENSE_${PN}-bcm43430 = "Firmware-cypress" +RDEPENDS_${PN}-bcm43430 += "${PN}-cypress-license" +LICENSE_${PN}-bcm4354 = "Firmware-cypress" +RDEPENDS_${PN}-bcm4354 += "${PN}-cypress-license" +LICENSE_${PN}-bcm4356-pcie = "Firmware-cypress" +RDEPENDS_${PN}-bcm4356-pcie += "${PN}-cypress-license" +LICENSE_${PN}-bcm4373 = "Firmware-cypress" +RDEPENDS_${PN}-bcm4373 += "${PN}-cypress-license" + +# For Broadcom bnx2-mips +# +# which is a separate case to the other Broadcom firmwares since its +# license is contained in the shared WHENCE file. + +LICENSE_${PN}-bnx2-mips = "WHENCE" +LICENSE_${PN}-whence-license = "WHENCE" + +FILES_${PN}-bnx2-mips = "${nonarch_base_libdir}/firmware/bnx2/bnx2-mips-09-6.2.1b.fw" +FILES_${PN}-whence-license = "${nonarch_base_libdir}/firmware/WHENCE" + +RDEPENDS_${PN}-bnx2-mips += "${PN}-whence-license" + +# For imx-sdma +LICENSE_${PN}-imx-sdma-imx6q = "Firmware-imx-sdma_firmware" +LICENSE_${PN}-imx-sdma-imx7d = "Firmware-imx-sdma_firmware" +LICENSE_${PN}-imx-sdma-license = "Firmware-imx-sdma_firmware" + +FILES_${PN}-imx-sdma-imx6q = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx6q.bin" + +RPROVIDES_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" +RREPLACES_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" +RCONFLICTS_${PN}-imx-sdma-imx6q = "firmware-imx-sdma-imx6q" + +FILES_${PN}-imx-sdma-imx7d = "${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx7d.bin" + +FILES_${PN}-imx-sdma-license = "${nonarch_base_libdir}/firmware/LICENSE.sdma_firmware" + +RDEPENDS_${PN}-imx-sdma-imx6q += "${PN}-imx-sdma-license" +RDEPENDS_${PN}-imx-sdma-imx7d += "${PN}-imx-sdma-license" + +# For iwlwifi +LICENSE_${PN}-iwlwifi = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-135-6 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-7 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-8 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-9 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-10 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-12 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-13 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-16 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-3160-17 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6000-4 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6000g2a-5 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6000g2a-6 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6000g2b-5 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6000g2b-6 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6050-4 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-6050-5 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-7260 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-7265 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-7265d = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-8000c = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-8265 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-9000 = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-misc = "Firmware-iwlwifi_firmware" +LICENSE_${PN}-iwlwifi-license = "Firmware-iwlwifi_firmware" + + +FILES_${PN}-iwlwifi-license = "${nonarch_base_libdir}/firmware/LICENCE.iwlwifi_firmware" +FILES_${PN}-iwlwifi-135-6 = "${nonarch_base_libdir}/firmware/iwlwifi-135-6.ucode" +FILES_${PN}-iwlwifi-3160-7 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-7.ucode" +FILES_${PN}-iwlwifi-3160-8 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-8.ucode" +FILES_${PN}-iwlwifi-3160-9 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-9.ucode" +FILES_${PN}-iwlwifi-3160-10 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-10.ucode" +FILES_${PN}-iwlwifi-3160-12 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-12.ucode" +FILES_${PN}-iwlwifi-3160-13 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-13.ucode" +FILES_${PN}-iwlwifi-3160-16 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-16.ucode" +FILES_${PN}-iwlwifi-3160-17 = "${nonarch_base_libdir}/firmware/iwlwifi-3160-17.ucode" +FILES_${PN}-iwlwifi-6000-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6000-4.ucode" +FILES_${PN}-iwlwifi-6000g2a-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-5.ucode" +FILES_${PN}-iwlwifi-6000g2a-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2a-6.ucode" +FILES_${PN}-iwlwifi-6000g2b-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-5.ucode" +FILES_${PN}-iwlwifi-6000g2b-6 = "${nonarch_base_libdir}/firmware/iwlwifi-6000g2b-6.ucode" +FILES_${PN}-iwlwifi-6050-4 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-4.ucode" +FILES_${PN}-iwlwifi-6050-5 = "${nonarch_base_libdir}/firmware/iwlwifi-6050-5.ucode" +FILES_${PN}-iwlwifi-7260 = "${nonarch_base_libdir}/firmware/iwlwifi-7260-*.ucode" +FILES_${PN}-iwlwifi-7265 = "${nonarch_base_libdir}/firmware/iwlwifi-7265-*.ucode" +FILES_${PN}-iwlwifi-7265d = "${nonarch_base_libdir}/firmware/iwlwifi-7265D-*.ucode" +FILES_${PN}-iwlwifi-8000c = "${nonarch_base_libdir}/firmware/iwlwifi-8000C-*.ucode" +FILES_${PN}-iwlwifi-8265 = "${nonarch_base_libdir}/firmware/iwlwifi-8265-*.ucode" +FILES_${PN}-iwlwifi-9000 = "${nonarch_base_libdir}/firmware/iwlwifi-9000-*.ucode" +FILES_${PN}-iwlwifi-misc = "${nonarch_base_libdir}/firmware/iwlwifi-*.ucode" + +RDEPENDS_${PN}-iwlwifi-135-6 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-7 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-8 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-9 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-10 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-12 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-13 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-16 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-3160-17 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6000-4 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6000g2a-5 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6000g2a-6 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6000g2b-5 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6000g2b-6 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6050-4 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-6050-5 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-7265d = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-8000c = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-8265 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-9000 = "${PN}-iwlwifi-license" +RDEPENDS_${PN}-iwlwifi-misc = "${PN}-iwlwifi-license" + +# -iwlwifi-misc is a "catch all" package that includes all the iwlwifi +# firmwares that are not already included in other -iwlwifi- packages. +# -iwlwifi is a virtual package that depends upon all iwlwifi packages. +# These are distinct in order to allow the -misc firmwares to be installed +# without pulling in every other iwlwifi package. +ALLOW_EMPTY_${PN}-iwlwifi = "1" +ALLOW_EMPTY_${PN}-iwlwifi-misc = "1" + +# Handle package updating for the newly merged iwlwifi groupings +RPROVIDES_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" +RREPLACES_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" +RCONFLICTS_${PN}-iwlwifi-7265 = "${PN}-iwlwifi-7265-8 ${PN}-iwlwifi-7265-9" + +RPROVIDES_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" +RREPLACES_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" +RCONFLICTS_${PN}-iwlwifi-7260 = "${PN}-iwlwifi-7260-7 ${PN}-iwlwifi-7260-8 ${PN}-iwlwifi-7260-9" + +# For ibt +LICENSE_${PN}-ibt-license = "Firmware-ibt_firmware" +LICENSE_${PN}-ibt-hw-37-7 = "Firmware-ibt_firmware" +LICENSE_${PN}-ibt-hw-37-8 = "Firmware-ibt_firmware" +LICENSE_${PN}-ibt-11-5 = "Firmware-ibt_firmware" +LICENSE_${PN}-ibt-12-16 = "Firmware-ibt_firmware" +LICENSE_${PN}-ibt-17 = "Firmware-ibt_firmware" +LICENSE_${PN}-ibt-misc = "Firmware-ibt_firmware" + +FILES_${PN}-ibt-license = "${nonarch_base_libdir}/firmware/LICENCE.ibt_firmware" +FILES_${PN}-ibt-hw-37-7 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.7*.bseq" +FILES_${PN}-ibt-hw-37-8 = "${nonarch_base_libdir}/firmware/intel/ibt-hw-37.8*.bseq" +FILES_${PN}-ibt-11-5 = "${nonarch_base_libdir}/firmware/intel/ibt-11-5.sfi ${nonarch_base_libdir}/firmware/intel/ibt-11-5.ddc" +FILES_${PN}-ibt-12-16 = "${nonarch_base_libdir}/firmware/intel/ibt-12-16.sfi ${nonarch_base_libdir}/firmware/intel/ibt-12-16.ddc" +FILES_${PN}-ibt-17 = "${nonarch_base_libdir}/firmware/intel/ibt-17-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-17-*.ddc" +FILES_${PN}-ibt-misc = "${nonarch_base_libdir}/firmware/ibt-*" + +RDEPENDS_${PN}-ibt-hw-37-7 = "${PN}-ibt-license" +RDEPENDS_${PN}-ibt-hw-37.8 = "${PN}-ibt-license" +RDEPENDS_${PN}-ibt-11-5 = "${PN}-ibt-license" +RDEPENDS_${PN}-ibt-12-16 = "${PN}-ibt-license" +RDEPENDS_${PN}-ibt-17 = "${PN}-ibt-license" +RDEPENDS_${PN}-ibt-misc = "${PN}-ibt-license" + +ALLOW_EMPTY_${PN}-ibt= "1" +ALLOW_EMPTY_${PN}-ibt-misc = "1" + +LICENSE_${PN}-i915 = "Firmware-i915" +LICENSE_${PN}-i915-license = "Firmware-i915" +FILES_${PN}-i915-license = "${nonarch_base_libdir}/firmware/LICENSE.i915" +FILES_${PN}-i915 = "${nonarch_base_libdir}/firmware/i915" +RDEPENDS_${PN}-i915 = "${PN}-i915-license" + +LICENSE_${PN}-ice = "Firmware-ice" +LICENSE_${PN}-ice-license = "Firmware-ice" +FILES_${PN}-ice-license = "${nonarch_base_libdir}/firmware/LICENSE.ice" +FILES_${PN}-ice = "${nonarch_base_libdir}/firmware/intel/ice" +RDEPENDS_${PN}-ice = "${PN}-ice-license" + +FILES_${PN}-adsp-sst-license = "${nonarch_base_libdir}/firmware/LICENCE.adsp_sst" +LICENSE_${PN}-adsp-sst = "Firmware-adsp_sst" +LICENSE_${PN}-adsp-sst-license = "Firmware-adsp_sst" +FILES_${PN}-adsp-sst = "${nonarch_base_libdir}/firmware/intel/dsp_fw*" +RDEPENDS_${PN}-adsp-sst = "${PN}-adsp-sst-license" + +# For QAT +LICENSE_${PN}-qat = "Firmware-qat" +LICENSE_${PN}-qat-license = "Firmware-qat" +FILES_${PN}-qat-license = "${nonarch_base_libdir}/firmware/LICENCE.qat_firmware" +FILES_${PN}-qat = "${nonarch_base_libdir}/firmware/qat*.bin" +RDEPENDS_${PN}-qat = "${PN}-qat-license" + +# For QCOM VPU/GPU and SDM845 +LICENSE_${PN}-qcom-license = "Firmware-qcom" +FILES_${PN}-qcom-license = "${nonarch_base_libdir}/firmware/LICENSE.qcom ${nonarch_base_libdir}/firmware/qcom/NOTICE.txt" +FILES_${PN}-qcom-venus-1.8 = "${nonarch_base_libdir}/firmware/qcom/venus-1.8/*" +FILES_${PN}-qcom-venus-4.2 = "${nonarch_base_libdir}/firmware/qcom/venus-4.2/*" +FILES_${PN}-qcom-adreno-a3xx = "${nonarch_base_libdir}/firmware/qcom/a300_*.fw ${nonarch_base_libdir}/firmware/a300_*.fw" +FILES_${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.*" +FILES_${PN}-qcom-adreno-a630 = "${nonarch_base_libdir}/firmware/qcom/a630*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/a630*.*" +FILES_${PN}-qcom-sdm845-audio = "${nonarch_base_libdir}/firmware/qcom/sdm845/adsp*.*" +FILES_${PN}-qcom-sdm845-compute = "${nonarch_base_libdir}/firmware/qcom/sdm845/cdsp*.*" +FILES_${PN}-qcom-sdm845-modem = "${nonarch_base_libdir}/firmware/qcom/sdm845/mba.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/modem*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/wlanmdsp.mbn" +RDEPENDS_${PN}-qcom-venus-1.8 = "${PN}-qcom-license" +RDEPENDS_${PN}-qcom-venus-4.2 = "${PN}-qcom-license" +RDEPENDS_${PN}-qcom-adreno-a3xx = "${PN}-qcom-license" +RDEPENDS_${PN}-qcom-adreno-a530 = "${PN}-qcom-license" +RDEPENDS_${PN}-qcom-adreno-a630 = "${PN}-qcom-license" +RDEPENDS_${PN}-qcom-sdm845-audio = "${PN}-qcom-license" +RDEPENDS_${PN}-qcom-sdm845-compute = "${PN}-qcom-license" +RDEPENDS_${PN}-qcom-sdm845-modem = "${PN}-qcom-license" + +FILES_${PN}-liquidio = "${nonarch_base_libdir}/firmware/liquidio" + +# For other firmwares +# Maybe split out to separate packages when needed. +LICENSE_${PN} = "\ + Firmware-Abilis \ + & Firmware-agere \ + & Firmware-amdgpu \ + & Firmware-amd-ucode \ + & Firmware-atmel \ + & Firmware-ca0132 \ + & Firmware-cavium \ + & Firmware-chelsio_firmware \ + & Firmware-cw1200 \ + & Firmware-dib0700 \ + & Firmware-e100 \ + & Firmware-ene_firmware \ + & Firmware-fw_sst_0f28 \ + & Firmware-go7007 \ + & Firmware-hfi1_firmware \ + & Firmware-i2400m \ + & Firmware-ibt_firmware \ + & Firmware-it913x \ + & Firmware-IntcSST2 \ + & Firmware-kaweth \ + & Firmware-moxa \ + & Firmware-myri10ge_firmware \ + & Firmware-nvidia \ + & Firmware-OLPC \ + & Firmware-ath9k-htc \ + & Firmware-phanfw \ + & Firmware-qat \ + & Firmware-qcom \ + & Firmware-qla1280 \ + & Firmware-qla2xxx \ + & Firmware-r8a779x_usb3 \ + & Firmware-radeon \ + & Firmware-ralink_a_mediatek_company_firmware \ + & Firmware-ralink-firmware \ + & Firmware-imx-sdma_firmware \ + & Firmware-siano \ + & Firmware-tda7706-firmware \ + & Firmware-ti-connectivity \ + & Firmware-ti-keystone \ + & Firmware-ueagle-atm4-firmware \ + & Firmware-wl1251 \ + & Firmware-xc4000 \ + & Firmware-xc5000 \ + & Firmware-xc5000c \ + & WHENCE \ +" + +FILES_${PN}-license += "${nonarch_base_libdir}/firmware/LICEN*" +FILES_${PN} += "${nonarch_base_libdir}/firmware/*" +RDEPENDS_${PN} += "${PN}-license" +RDEPENDS_${PN} += "${PN}-whence-license" + +# Make linux-firmware depend on all of the split-out packages. +# Make linux-firmware-iwlwifi depend on all of the split-out iwlwifi packages. +# Make linux-firmware-ibt depend on all of the split-out ibt packages. +python populate_packages_prepend () { + firmware_pkgs = oe.utils.packages_filter_out_system(d) + d.appendVar('RRECOMMENDS_linux-firmware', ' ' + ' '.join(firmware_pkgs)) + + iwlwifi_pkgs = filter(lambda x: x.find('-iwlwifi-') != -1, firmware_pkgs) + d.appendVar('RRECOMMENDS_linux-firmware-iwlwifi', ' ' + ' '.join(iwlwifi_pkgs)) + + ibt_pkgs = filter(lambda x: x.find('-ibt-') != -1, firmware_pkgs) + d.appendVar('RRECOMMENDS_linux-firmware-ibt', ' ' + ' '.join(ibt_pkgs)) +} + +# Firmware files are generally not ran on the CPU, so they can be +# allarch despite being architecture specific +INSANE_SKIP = "arch" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb index 8a61b2276..175836ef9 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb @@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}' SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}' -LINUX_VERSION ?= "5.7-rc+" +LINUX_VERSION ?= "5.8-rc+" LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb index a9213c243..a4b593b96 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb @@ -11,13 +11,13 @@ python () { raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") } -SRCREV_machine ?= "1afad41c91e13f957bbe61fa7fdc05a77e84d489" -SRCREV_meta ?= "aafb8f095e97013d6e55b09ed150369cbe0c6476" +SRCREV_machine ?= "6415a4e7c405526f97049ede833f52127a5ce7a1" +SRCREV_meta ?= "416566e1f01c3c02ca5b3a03d0943df387d521f0" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" -LINUX_VERSION ?= "5.4.43" +LINUX_VERSION ?= "5.4.50" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb index aab53bed6..0622d3383 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb @@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig" require recipes-kernel/linux/linux-yocto.inc -LINUX_VERSION ?= "5.4.43" +LINUX_VERSION ?= "5.4.50" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" @@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -SRCREV_machine_qemuarm ?= "c3864bf2906c5075305bf675c27788505ea93047" -SRCREV_machine ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_meta ?= "aafb8f095e97013d6e55b09ed150369cbe0c6476" +SRCREV_machine_qemuarm ?= "1a8a14e45f01cfee926c5b35d2d67e6f1a7eebfc" +SRCREV_machine ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_meta ?= "416566e1f01c3c02ca5b3a03d0943df387d521f0" PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb index 01795e616..2476b3502 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb @@ -12,16 +12,16 @@ KBRANCH_qemux86 ?= "v5.4/standard/base" KBRANCH_qemux86-64 ?= "v5.4/standard/base" KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64" -SRCREV_machine_qemuarm ?= "6c628db39bf48f7dd6cd95ae826bcaa18a56df1d" -SRCREV_machine_qemuarm64 ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_machine_qemumips ?= "c0cd2937ae195344ece04663b30b2049427b3c57" -SRCREV_machine_qemuppc ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_machine_qemuriscv64 ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_machine_qemux86 ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_machine_qemux86-64 ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_machine_qemumips64 ?= "6254ff1d776b75bc3d9c2c66c083fbc622091cd4" -SRCREV_machine ?= "9e1b13d7f9d84f691fb9988c5f53c5ab62b8a5e9" -SRCREV_meta ?= "aafb8f095e97013d6e55b09ed150369cbe0c6476" +SRCREV_machine_qemuarm ?= "99743105f331e90852ccb9e72ce26134dbcafec6" +SRCREV_machine_qemuarm64 ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_machine_qemumips ?= "886870e5abaeaaf753fb50a1e5be56336c44c642" +SRCREV_machine_qemuppc ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_machine_qemuriscv64 ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_machine_qemux86 ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_machine_qemux86-64 ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_machine_qemumips64 ?= "7548abbb409eeef6f0575eed25231090f902559e" +SRCREV_machine ?= "94667198aabf869571bdff5291a24956796faddf" +SRCREV_meta ?= "416566e1f01c3c02ca5b3a03d0943df387d521f0" # remap qemuarm to qemuarma15 for the 5.4 kernel # KMACHINE_qemuarm ?= "qemuarma15" @@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" -LINUX_VERSION ?= "5.4.43" +LINUX_VERSION ?= "5.4.50" DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" DEPENDS += "openssl-native util-linux-native" diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.1.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.1.bb index 8d3fb475c..c0df0cab3 100644 --- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.1.bb +++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.1.bb @@ -32,11 +32,11 @@ python do_package_prepend() { BBCLASSEXTEND = "devupstream:target" LIC_FILES_CHKSUM_class-devupstream = "file://LICENSE;md5=3f882d431dc0f32f1f44c0707aa41128" DEFAULT_PREFERENCE_class-devupstream = "-1" -SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.11 \ +SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.12 \ file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \ file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \ " -SRCREV_class-devupstream = "17c413953603f063f2a9d6c3788bec914ce6f955" -PV_class-devupstream = "2.11.2+git${SRCPV}" +SRCREV_class-devupstream = "11441f8f17f7825f529e2f6c54d3605771709260" +PV_class-devupstream = "2.12.1+git${SRCPV}" S_class-devupstream = "${WORKDIR}/git" SRCREV_FORMAT ?= "lttng_git" diff --git a/poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb b/poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb index 0f3df5577..881b7db92 100644 --- a/poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb +++ b/poky/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb @@ -24,7 +24,7 @@ do_install () { PACKAGE_WRITE_DEPS_append = " ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd-systemctl-native','',d)}" pkg_postinst_${PN} () { - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + if type systemctl >/dev/null 2>/dev/null; then if [ -n "$D" ]; then OPTS="--root=$D" fi diff --git a/poky/meta/recipes-kernel/systemtap/systemtap_git.inc b/poky/meta/recipes-kernel/systemtap/systemtap_git.inc index 116e83fe0..4ec0703f2 100644 --- a/poky/meta/recipes-kernel/systemtap/systemtap_git.inc +++ b/poky/meta/recipes-kernel/systemtap/systemtap_git.inc @@ -1,7 +1,7 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -SRCREV = "044a0640985ef007c0b2fb6eaf660d9d51800cda" -PV = "4.2" +SRCREV = "c9c23c987d819d07c6b96b54f8e03188fecd9e46" +PV = "4.3" SRC_URI = "git://sourceware.org/git/systemtap.git \ file://0001-Do-not-let-configure-write-a-python-location-into-th.patch \ diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.2.bb b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.2.bb deleted file mode 100644 index 9a4082ff9..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.2.bb +++ /dev/null @@ -1,43 +0,0 @@ -SUMMARY = "ALSA sound library" -HOMEPAGE = "http://www.alsa-project.org" -BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" -SECTION = "libs/multimedia" -LICENSE = "LGPLv2.1 & GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ - file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \ - " - -SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" -SRC_URI[md5sum] = "82cdc23a5233d5ed319d2cbc89af5ca5" -SRC_URI[sha256sum] = "d8e853d8805574777bbe40937812ad1419c9ea7210e176f0def3e6ed255ab3ec" - -inherit autotools pkgconfig - -EXTRA_OECONF += " \ - ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-softfloat', '', d)} \ - --disable-python \ -" - -PACKAGES =+ "alsa-server alsa-conf libatopology" - -FILES_alsa-server = "${bindir}/*" -FILES_alsa-conf = "${datadir}/alsa/" -FILES_libatopology = "${libdir}/libatopology.so.*" - -RDEPENDS_${PN}_class-target = "alsa-conf alsa-ucm-conf" -RDEPENDS_libatopology_class-target = "alsa-topology-conf" - -# upgrade path -RPROVIDES_${PN} = "libasound" -RREPLACES_${PN} = "libasound" -RCONFLICTS_${PN} = "libasound" - -RPROVIDES_${PN}-dev = "alsa-dev" -RREPLACES_${PN}-dev = "alsa-dev" -RCONFLICTS_${PN}-dev = "alsa-dev" - -RPROVIDES_alsa-conf = "alsa-conf-base" -RREPLACES_alsa-conf = "alsa-conf-base" -RCONFLICTS_alsa-conf = "alsa-conf-base" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb new file mode 100644 index 000000000..1eb56f405 --- /dev/null +++ b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb @@ -0,0 +1,42 @@ +SUMMARY = "ALSA sound library" +HOMEPAGE = "http://www.alsa-project.org" +BUGTRACKER = "http://alsa-project.org/main/index.php/Bug_Tracking" +SECTION = "libs/multimedia" +LICENSE = "LGPLv2.1 & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7 \ + file://src/socket.c;md5=285675b45e83f571c6a957fe4ab79c93;beginline=9;endline=24 \ + " + +SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" +SRC_URI[sha256sum] = "1244585515fbebce7d0e53656c1fb614f99accb8413115ce3efb9a9309c4c892" + +inherit autotools pkgconfig + +EXTRA_OECONF += " \ + ${@bb.utils.contains('TARGET_FPU', 'soft', '--with-softfloat', '', d)} \ + --disable-python \ +" + +PACKAGES =+ "alsa-server alsa-conf libatopology" + +FILES_alsa-server = "${bindir}/*" +FILES_alsa-conf = "${datadir}/alsa/" +FILES_libatopology = "${libdir}/libatopology.so.*" + +RDEPENDS_${PN}_class-target = "alsa-conf alsa-ucm-conf" +RDEPENDS_libatopology_class-target = "alsa-topology-conf" + +# upgrade path +RPROVIDES_${PN} = "libasound" +RREPLACES_${PN} = "libasound" +RCONFLICTS_${PN} = "libasound" + +RPROVIDES_${PN}-dev = "alsa-dev" +RREPLACES_${PN}-dev = "alsa-dev" +RCONFLICTS_${PN}-dev = "alsa-dev" + +RPROVIDES_alsa-conf = "alsa-conf-base" +RREPLACES_alsa-conf = "alsa-conf-base" +RCONFLICTS_alsa-conf = "alsa-conf-base" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.2.bb b/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.2.bb deleted file mode 100644 index 2901794cb..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.2.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "ALSA topology configuration files" -HOMEPAGE = "https://alsa-project.org" -BUGTRACKER = "https://alsa-project.org/wiki/Bug_Tracking" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" - -SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" -SRC_URI[sha256sum] = "b472d6b567c78173bd69543d9cffc9e379c80eb763c3afc8d5b24d5610d19425" - -inherit allarch - -do_install() { - install -d ${D}/usr/share/alsa - cp -r ${S}/topology ${D}/usr/share/alsa -} - -PACKAGES = "${PN}" - -FILES_${PN} = "*" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb b/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb new file mode 100644 index 000000000..fd949be8a --- /dev/null +++ b/poky/meta/recipes-multimedia/alsa/alsa-topology-conf_1.2.3.bb @@ -0,0 +1,19 @@ +SUMMARY = "ALSA topology configuration files" +HOMEPAGE = "https://alsa-project.org" +BUGTRACKER = "https://alsa-project.org/wiki/Bug_Tracking" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" + +SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" +SRC_URI[sha256sum] = "833f99b2cbda34e0cfef867ef1d2e6a74fe276bb7fc525a573be32077f629dff" + +inherit allarch + +do_install() { + install -d ${D}/usr/share/alsa + cp -r ${S}/topology ${D}/usr/share/alsa +} + +PACKAGES = "${PN}" + +FILES_${PN} = "*" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.2.bb b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.2.bb deleted file mode 100644 index 1a524d49b..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.2.bb +++ /dev/null @@ -1,20 +0,0 @@ -SUMMARY = "ALSA Use Case Manager configuration" -HOMEPAGE = "https://alsa-project.org" -BUGTRACKER = "https://alsa-project.org/wiki/Bug_Tracking" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" - -SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" -SRC_URI[sha256sum] = "7ebfd929bc85a51f16fa3c8c4db13faa2ea6ff2b2266fc36d6198bdafe73c40c" - -inherit allarch - -do_install() { - install -d ${D}/usr/share/alsa - cp -r ${S}/ucm ${D}/usr/share/alsa - cp -r ${S}/ucm2 ${D}/usr/share/alsa -} - -PACKAGES = "${PN}" - -FILES_${PN} = "*" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb new file mode 100644 index 000000000..19eeabff7 --- /dev/null +++ b/poky/meta/recipes-multimedia/alsa/alsa-ucm-conf_1.2.3.bb @@ -0,0 +1,20 @@ +SUMMARY = "ALSA Use Case Manager configuration" +HOMEPAGE = "https://alsa-project.org" +BUGTRACKER = "https://alsa-project.org/wiki/Bug_Tracking" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=20d74d74db9741697903372ad001d3b4" + +SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2" +SRC_URI[sha256sum] = "1bc24da04bb27a75e323c9f0fb03e44705b6bb8a8baf255b94b41d457d590d00" + +inherit allarch + +do_install() { + install -d ${D}/usr/share/alsa + cp -r ${S}/ucm ${D}/usr/share/alsa + cp -r ${S}/ucm2 ${D}/usr/share/alsa +} + +PACKAGES = "${PN}" + +FILES_${PN} = "*" diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.2.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.2.bb deleted file mode 100644 index 048fef68a..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.2.bb +++ /dev/null @@ -1,25 +0,0 @@ -require alsa-utils.inc - -SUMMARY = "Shell scripts that show help info and create ALSA configuration files" -PROVIDES = "alsa-utils-alsaconf" - -FILESEXTRAPATHS_prepend := "${THISDIR}/alsa-utils:" - -PACKAGES = "${PN}" -RDEPENDS_${PN} += "bash" - -FILES_${PN} = "${sbindir}/alsaconf \ - ${sbindir}/alsa-info.sh \ - ${sbindir}/alsabat-test.sh \ - " - -S = "${WORKDIR}/alsa-utils-${PV}" - -do_install() { - install -d ${D}${sbindir} - install -m 0755 ${B}/alsaconf/alsaconf ${D}${sbindir}/ - install -m 0755 ${S}/alsa-info/alsa-info.sh ${D}${sbindir}/ - if ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'true', 'false', d)}; then - install -m 0755 ${S}/bat/alsabat-test.sh ${D}${sbindir}/ - fi -} diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.3.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.3.bb new file mode 100644 index 000000000..048fef68a --- /dev/null +++ b/poky/meta/recipes-multimedia/alsa/alsa-utils-scripts_1.2.3.bb @@ -0,0 +1,25 @@ +require alsa-utils.inc + +SUMMARY = "Shell scripts that show help info and create ALSA configuration files" +PROVIDES = "alsa-utils-alsaconf" + +FILESEXTRAPATHS_prepend := "${THISDIR}/alsa-utils:" + +PACKAGES = "${PN}" +RDEPENDS_${PN} += "bash" + +FILES_${PN} = "${sbindir}/alsaconf \ + ${sbindir}/alsa-info.sh \ + ${sbindir}/alsabat-test.sh \ + " + +S = "${WORKDIR}/alsa-utils-${PV}" + +do_install() { + install -d ${D}${sbindir} + install -m 0755 ${B}/alsaconf/alsaconf ${D}${sbindir}/ + install -m 0755 ${S}/alsa-info/alsa-info.sh ${D}${sbindir}/ + if ${@bb.utils.contains('PACKAGECONFIG', 'bat', 'true', 'false', d)}; then + install -m 0755 ${S}/bat/alsabat-test.sh ${D}${sbindir}/ + fi +} diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils.inc b/poky/meta/recipes-multimedia/alsa/alsa-utils.inc index 8bbc5d3ef..b523a5a83 100644 --- a/poky/meta/recipes-multimedia/alsa/alsa-utils.inc +++ b/poky/meta/recipes-multimedia/alsa/alsa-utils.inc @@ -21,8 +21,7 @@ PACKAGECONFIG[manpages] = "--enable-xmlto, --disable-xmlto, xmlto-native docbook # alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe SRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2" -SRC_URI[md5sum] = "00612234ff4722c8f7f8f7a83ff9bc63" -SRC_URI[sha256sum] = "44807bd578c5f6df6e91a11b8d37e546424a5a1ea8d8e659ee359fe01730e4f3" +SRC_URI[sha256sum] = "ff19ae48c22938de7a491bdb39db74a2eee2546013f39bf1a86185e426f921aa" # On build machines with python-docutils (not python3-docutils !!) installed # rst2man (not rst2man.py) is detected and compile fails with diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.2.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.2.bb deleted file mode 100644 index ff8945e5c..000000000 --- a/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.2.bb +++ /dev/null @@ -1 +0,0 @@ -require alsa-utils.inc diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.3.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.3.bb new file mode 100644 index 000000000..3430288da --- /dev/null +++ b/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.3.bb @@ -0,0 +1,2 @@ +require alsa-utils.inc + diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb index 2b0c38d78..b4cf278cb 100644 --- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb +++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb @@ -57,6 +57,7 @@ PACKAGECONFIG[avresample] = "--enable-avresample,--disable-avresample" # features to support PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" +PACKAGECONFIG[altivec] = "--enable-altivec,--disable-altivec," PACKAGECONFIG[bzlib] = "--enable-bzlib,--disable-bzlib,bzip2" PACKAGECONFIG[fdk-aac] = "--enable-libfdk-aac --enable-nonfree,--disable-libfdk-aac,fdk-aac" PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl" diff --git a/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb b/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb index cc7a7e78e..e23d23d9c 100644 --- a/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb +++ b/poky/meta/recipes-multimedia/gstreamer/gst-examples_1.16.0.bb @@ -15,6 +15,7 @@ S = "${WORKDIR}/git" inherit meson pkgconfig features_check +UPSTREAM_CHECK_GITTAGREGEX = "(?P\d+\.(\d*[02468])+(\.\d+)+)" ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" diff --git a/poky/meta/recipes-sato/puzzles/puzzles_git.bb b/poky/meta/recipes-sato/puzzles/puzzles_git.bb index 1e530519f..a0f3b5d9c 100644 --- a/poky/meta/recipes-sato/puzzles/puzzles_git.bb +++ b/poky/meta/recipes-sato/puzzles/puzzles_git.bb @@ -17,7 +17,7 @@ SRC_URI = "git://git.tartarus.org/simon/puzzles.git \ " UPSTREAM_CHECK_COMMITS = "1" -SRCREV = "66b9e8c7de0eecb3d85d9a1766fab1082848448b" +SRCREV = "9aa7b7cdfb2bcd200f45941a58d6ae698882a2d4" PE = "2" PV = "0.0+git${SRCPV}" diff --git a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc index b568f0458..b064a63ca 100644 --- a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc +++ b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode.inc @@ -30,6 +30,8 @@ EXTRA_OECONF = "--enable-xim \ --enable-combining --disable-perl \ --with-x=${STAGING_DIR_HOST}${prefix}" +EXTRA_OECONF_append_libc-musl = " --disable-wtmp" + PACKAGECONFIG ??= "" PACKAGECONFIG[startup] = "--enable-startup-notification,--disable-startup-notification,startup-notification," diff --git a/poky/meta/recipes-support/curl/curl_7.71.0.bb b/poky/meta/recipes-support/curl/curl_7.71.0.bb deleted file mode 100644 index c1abe0138..000000000 --- a/poky/meta/recipes-support/curl/curl_7.71.0.bb +++ /dev/null @@ -1,83 +0,0 @@ -SUMMARY = "Command line tool and library for client-side URL transfers" -HOMEPAGE = "http://curl.haxx.se/" -BUGTRACKER = "http://curl.haxx.se/mail/list.cgi?list=curl-tracker" -SECTION = "console/network" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=2e9fb35867314fe31c6a4977ef7dd531" - -SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \ - file://0001-replace-krb5-config-with-pkg-config.patch \ -" - -SRC_URI[sha256sum] = "600f00ac2481a89548a4141ddf983fd9386165e1960bac91d0a1c81dca5dd341" - -CVE_PRODUCT = "curl libcurl" -inherit autotools pkgconfig binconfig multilib_header - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} gnutls libidn proxy threaded-resolver verbose zlib" -PACKAGECONFIG_class-native = "ipv6 proxy ssl threaded-resolver verbose zlib" -PACKAGECONFIG_class-nativesdk = "ipv6 proxy ssl threaded-resolver verbose zlib" - -# 'ares' and 'threaded-resolver' are mutually exclusive -PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver" -PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli" -PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual" -PACKAGECONFIG[dict] = "--enable-dict,--disable-dict," -PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls" -PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher," -PACKAGECONFIG[imap] = "--enable-imap,--disable-imap," -PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," -PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5" -PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap," -PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps," -PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2" -PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2" -PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls" -PACKAGECONFIG[mqtt] = "--enable-mqtt,--disable-mqtt," -PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2" -PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3," -PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy," -PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump" -PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp," -PACKAGECONFIG[smb] = "--enable-smb,--disable-smb," -PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp," -PACKAGECONFIG[ssl] = "--with-ssl --with-random=/dev/urandom,--without-ssl,openssl" -PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss" -PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet," -PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp," -PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares" -PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose" -PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib" - -EXTRA_OECONF = " \ - --disable-libcurl-option \ - --disable-ntlm-wb \ - --enable-crypto-auth \ - --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \ - --without-libmetalink \ - --without-libpsl \ - --enable-debug \ - --enable-optimize \ - --disable-curldebug \ -" - -do_install_append_class-target() { - # cleanup buildpaths from curl-config - sed -i \ - -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's,--with-libtool-sysroot=${STAGING_DIR_TARGET},,g' \ - -e 's|${DEBUG_PREFIX_MAP}||g' \ - ${D}${bindir}/curl-config -} - -PACKAGES =+ "lib${BPN}" - -FILES_lib${BPN} = "${libdir}/lib*.so.*" -RRECOMMENDS_lib${BPN} += "ca-certificates" - -FILES_${PN} += "${datadir}/zsh" - -inherit multilib_script -MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/curl/curl_7.71.1.bb b/poky/meta/recipes-support/curl/curl_7.71.1.bb new file mode 100644 index 000000000..f028f1fdd --- /dev/null +++ b/poky/meta/recipes-support/curl/curl_7.71.1.bb @@ -0,0 +1,83 @@ +SUMMARY = "Command line tool and library for client-side URL transfers" +HOMEPAGE = "http://curl.haxx.se/" +BUGTRACKER = "http://curl.haxx.se/mail/list.cgi?list=curl-tracker" +SECTION = "console/network" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=2e9fb35867314fe31c6a4977ef7dd531" + +SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \ + file://0001-replace-krb5-config-with-pkg-config.patch \ +" + +SRC_URI[sha256sum] = "9d52a4d80554f9b0d460ea2be5d7be99897a1a9f681ffafe739169afd6b4f224" + +CVE_PRODUCT = "curl libcurl" +inherit autotools pkgconfig binconfig multilib_header + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} gnutls libidn proxy threaded-resolver verbose zlib" +PACKAGECONFIG_class-native = "ipv6 proxy ssl threaded-resolver verbose zlib" +PACKAGECONFIG_class-nativesdk = "ipv6 proxy ssl threaded-resolver verbose zlib" + +# 'ares' and 'threaded-resolver' are mutually exclusive +PACKAGECONFIG[ares] = "--enable-ares,--disable-ares,c-ares,,,threaded-resolver" +PACKAGECONFIG[brotli] = "--with-brotli,--without-brotli,brotli" +PACKAGECONFIG[builtinmanual] = "--enable-manual,--disable-manual" +PACKAGECONFIG[dict] = "--enable-dict,--disable-dict," +PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls" +PACKAGECONFIG[gopher] = "--enable-gopher,--disable-gopher," +PACKAGECONFIG[imap] = "--enable-imap,--disable-imap," +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," +PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5" +PACKAGECONFIG[ldap] = "--enable-ldap,--disable-ldap," +PACKAGECONFIG[ldaps] = "--enable-ldaps,--disable-ldaps," +PACKAGECONFIG[libidn] = "--with-libidn2,--without-libidn2,libidn2" +PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2" +PACKAGECONFIG[mbedtls] = "--with-mbedtls=${STAGING_DIR_TARGET},--without-mbedtls,mbedtls" +PACKAGECONFIG[mqtt] = "--enable-mqtt,--disable-mqtt," +PACKAGECONFIG[nghttp2] = "--with-nghttp2,--without-nghttp2,nghttp2" +PACKAGECONFIG[pop3] = "--enable-pop3,--disable-pop3," +PACKAGECONFIG[proxy] = "--enable-proxy,--disable-proxy," +PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump" +PACKAGECONFIG[rtsp] = "--enable-rtsp,--disable-rtsp," +PACKAGECONFIG[smb] = "--enable-smb,--disable-smb," +PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp," +PACKAGECONFIG[ssl] = "--with-ssl --with-random=/dev/urandom,--without-ssl,openssl" +PACKAGECONFIG[nss] = "--with-nss,--without-nss,nss" +PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet," +PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp," +PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver,,,,ares" +PACKAGECONFIG[verbose] = "--enable-verbose,--disable-verbose" +PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib" + +EXTRA_OECONF = " \ + --disable-libcurl-option \ + --disable-ntlm-wb \ + --enable-crypto-auth \ + --with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \ + --without-libmetalink \ + --without-libpsl \ + --enable-debug \ + --enable-optimize \ + --disable-curldebug \ +" + +do_install_append_class-target() { + # cleanup buildpaths from curl-config + sed -i \ + -e 's,--sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's,--with-libtool-sysroot=${STAGING_DIR_TARGET},,g' \ + -e 's|${DEBUG_PREFIX_MAP}||g' \ + ${D}${bindir}/curl-config +} + +PACKAGES =+ "lib${BPN}" + +FILES_lib${BPN} = "${libdir}/lib*.so.*" +RRECOMMENDS_lib${BPN} += "ca-certificates" + +FILES_${PN} += "${datadir}/zsh" + +inherit multilib_script +MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/curl-config" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_147.bb b/poky/meta/recipes-support/diffoscope/diffoscope_147.bb deleted file mode 100644 index 3db38fa32..000000000 --- a/poky/meta/recipes-support/diffoscope/diffoscope_147.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "in-depth comparison of files, archives, and directories" -HOMEPAGE = "https://diffoscope.org/" -LICENSE = "GPL-3.0+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -PYPI_PACKAGE = "diffoscope" - -inherit pypi setuptools3 - -SRC_URI[sha256sum] = "5b5fdaa4d900c891b319e4b9a006eb16824a0b61fdbe15e75acbbe35602e2da6" - -RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic" - -# Dependencies don't build for musl -COMPATIBLE_HOST_libc-musl = 'null' - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_150.bb b/poky/meta/recipes-support/diffoscope/diffoscope_150.bb new file mode 100644 index 000000000..58bd60a2c --- /dev/null +++ b/poky/meta/recipes-support/diffoscope/diffoscope_150.bb @@ -0,0 +1,17 @@ +SUMMARY = "in-depth comparison of files, archives, and directories" +HOMEPAGE = "https://diffoscope.org/" +LICENSE = "GPL-3.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +PYPI_PACKAGE = "diffoscope" + +inherit pypi setuptools3 + +SRC_URI[sha256sum] = "0b9e4ae401fe4cbb8ce89b0bcabe608581d0ed53b91a28f18337179c7494af57" + +RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic" + +# Dependencies don't build for musl +COMPATIBLE_HOST_libc-musl = 'null' + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb b/poky/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb index 6f9868ffe..9d02f5c79 100644 --- a/poky/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb +++ b/poky/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb @@ -5,7 +5,7 @@ BUGTRACKER = "https://salsa.debian.org/iso-codes-team/iso-codes/issues" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" -SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=http" +SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=http;branch=main;" SRCREV = "a36019e5014bff251f83d522ddcfebaecf52afd3" # inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which diff --git a/poky/meta/recipes-support/libcheck/libcheck_0.14.0.bb b/poky/meta/recipes-support/libcheck/libcheck_0.14.0.bb deleted file mode 100644 index a88f009cd..000000000 --- a/poky/meta/recipes-support/libcheck/libcheck_0.14.0.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Check - unit testing framework for C code" -HOMEPAGE = "https://libcheck.github.io/check/" -SECTION = "devel" - -LICENSE = "LGPLv2.1+" -LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1" - -SRC_URI = "https://github.com/${BPN}/check/releases/download/${PV}/check-${PV}.tar.gz \ - file://not-echo-compiler-info-to-check_stdint.h.patch" -SRC_URI[md5sum] = "270e82a445be6026040267a5e11cc94b" -SRC_URI[sha256sum] = "bd0f0ca1be65b70238b32f8e9fe5d36dc2fbf7a759b7edf28e75323a7d74f30b" -UPSTREAM_CHECK_URI = "https://github.com/libcheck/check/releases/" - -S = "${WORKDIR}/check-${PV}" - -inherit autotools pkgconfig texinfo - -CACHED_CONFIGUREVARS += "ac_cv_path_AWK_PATH=${bindir}/gawk" - -RREPLACES_${PN} = "check (<= 0.9.5)" - -BBCLASSEXTEND = "native nativesdk" - -PACKAGES =+ "checkmk" - -FILES_checkmk = "${bindir}/checkmk" - -RDEPENDS_checkmk = "gawk" - diff --git a/poky/meta/recipes-support/libcheck/libcheck_0.15.0.bb b/poky/meta/recipes-support/libcheck/libcheck_0.15.0.bb new file mode 100644 index 000000000..177c0edc8 --- /dev/null +++ b/poky/meta/recipes-support/libcheck/libcheck_0.15.0.bb @@ -0,0 +1,28 @@ +SUMMARY = "Check - unit testing framework for C code" +HOMEPAGE = "https://libcheck.github.io/check/" +SECTION = "devel" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1" + +SRC_URI = "https://github.com/${BPN}/check/releases/download/${PV}/check-${PV}.tar.gz \ + file://not-echo-compiler-info-to-check_stdint.h.patch" +SRC_URI[sha256sum] = "aea2e3c68fa6e1e92378e744b1c0db350ccda4b6bd0d19530d0ae185b3d1ac60" +UPSTREAM_CHECK_URI = "https://github.com/libcheck/check/releases/" + +S = "${WORKDIR}/check-${PV}" + +inherit autotools pkgconfig texinfo + +CACHED_CONFIGUREVARS += "ac_cv_path_AWK_PATH=${bindir}/gawk" + +RREPLACES_${PN} = "check (<= 0.9.5)" + +BBCLASSEXTEND = "native nativesdk" + +PACKAGES =+ "checkmk" + +FILES_checkmk = "${bindir}/checkmk" + +RDEPENDS_checkmk = "gawk" + diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error/0003-build-Fix-cross-compiling-into-a-separate-build-dir.patch b/poky/meta/recipes-support/libgpg-error/libgpg-error/0003-build-Fix-cross-compiling-into-a-separate-build-dir.patch new file mode 100644 index 000000000..20610bee5 --- /dev/null +++ b/poky/meta/recipes-support/libgpg-error/libgpg-error/0003-build-Fix-cross-compiling-into-a-separate-build-dir.patch @@ -0,0 +1,43 @@ +From 6efe006e99a7e739afbf7fe8937445c82630fc8f Mon Sep 17 00:00:00 2001 +From: David Michael +Date: Mon, 1 Jun 2020 10:24:53 -0400 +Subject: [PATCH] build: Fix cross-compiling into a separate build dir. + +* configure.ac: Create the src directory before writing into it. +* src/Makefile.am (EXTRA_DIST): Add gen-lock-obj.sh. + +-- + +Upstream-Status: Backport +Signed-off-by: David Michael +Signed-off-by: Alexander Kanavin +--- + configure.ac | 1 + + src/Makefile.am | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index def8bba..8c0d845 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -598,6 +598,7 @@ if test x$cross_compiling = xyes; then + case $host in + *-*-linux*) + lock_obj_h_generated=yes ++ mkdir src + LOCK_ABI_VERSION=1 host=$host host_alias=$host_alias \ + CC=$CC OBJDUMP=$host_alias-objdump \ + ac_ext=$ac_ext ac_objext=$ac_objext \ +diff --git a/src/Makefile.am b/src/Makefile.am +index 2fb83c0..d773877 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -102,7 +102,7 @@ EXTRA_DIST = mkstrtable.awk err-sources.h.in err-codes.h.in \ + gpg-error.vers gpg-error.def.in \ + versioninfo.rc.in gpg-error.w32-manifest.in \ + gpg-error-config-test.sh gpg-error.pc.in \ +- $(lock_obj_pub) ++ gen-lock-obj.sh $(lock_obj_pub) + + BUILT_SOURCES = $(srcdir)/err-sources.h $(srcdir)/err-codes.h \ + code-to-errno.h code-from-errno.h \ diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error/0005-src-gen-lock-obj.sh-add-a-file.patch b/poky/meta/recipes-support/libgpg-error/libgpg-error/0005-src-gen-lock-obj.sh-add-a-file.patch new file mode 100644 index 000000000..e6f6c09ba --- /dev/null +++ b/poky/meta/recipes-support/libgpg-error/libgpg-error/0005-src-gen-lock-obj.sh-add-a-file.patch @@ -0,0 +1,134 @@ +From fcb414abb62223e66dba413d0ca86eab3ea5bbc3 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Sun, 21 Jun 2020 13:54:47 +0000 +Subject: [PATCH] src-gen-lock-obj.sh: add a file + +This is erroneously missing from the tarball; it will show +up in the next release tarball, as upstream has fixed the +packaging in master. + +Upstream-Status: Inappropriate +Signed-off-by: Alexander Kanavin +--- + src/gen-lock-obj.sh | 112 ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 112 insertions(+) + create mode 100755 src/gen-lock-obj.sh + +diff --git a/src/gen-lock-obj.sh b/src/gen-lock-obj.sh +new file mode 100755 +index 0000000..13858cf +--- /dev/null ++++ b/src/gen-lock-obj.sh +@@ -0,0 +1,112 @@ ++#! /bin/sh ++# ++# gen-lock-obj.sh - Build tool to construct the lock object. ++# ++# Copyright (C) 2020 g10 Code GmbH ++# ++# This file is part of libgpg-error. ++# ++# libgpg-error is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public License ++# as published by the Free Software Foundation; either version 2.1 of ++# the License, or (at your option) any later version. ++# ++# libgpg-error is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++# ++# You should have received a copy of the GNU Lesser General Public ++# License along with this program; if not, see . ++# ++ ++# ++# Following variables should be defined to invoke this script ++# ++# CC ++# OBJDUMP ++# AWK ++# ac_ext ++# ac_object ++# host ++# LOCK_ABI_VERSION ++# ++# An example: ++# ++# LOCK_ABI_VERSION=1 host=x86_64-pc-linux-gnu host_alias=x86_64-linux-gnu \ ++# CC=$host_alias-gcc OBJDUMP=$host_alias-objdump ac_ext=c ac_objext=o \ ++# AWK=gawk ./gen-lock-obj.sh ++# ++ ++AWK_VERSION_OUTPUT=$($AWK 'BEGIN { print PROCINFO["version"] }') ++if test -n "$AWK_VERSION_OUTPUT"; then ++ # It's GNU awk, which supports PROCINFO. ++ AWK_OPTION=--non-decimal-data ++fi ++ ++cat <<'EOF' >conftest.$ac_ext ++#include ++pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER; ++EOF ++ ++if $CC -c conftest.$ac_ext; then : ++ ac_mtx_size=$($OBJDUMP -j .bss -t conftest.$ac_objext \ ++ | $AWK $AWK_OPTION ' ++/mtx$/ { mtx_size = int("0x" $5) } ++END { print mtx_size }') ++else ++ echo "Can't determine mutex size" ++ exit 1 ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++cat <