From 15ae2509e522678e761046cdb8693291c09cf78c Mon Sep 17 00:00:00 2001 From: Brad Bishop Date: Tue, 18 Jun 2019 21:44:24 -0400 Subject: subtree updates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit meta-openembedded: f3018013ff..3b245e4fe8: Adrian Bunk (8): Remove start-stop-daemon dvb-apps: Remove workaround patch for ancient target compilers Remove ipsec-tools and umip gpsd: Switch PACKAGECONFIG[qt] from Qt4 to Qt5 samba: Upgrade 4.8.11 -> 4.8.12 recipes-devtools: Move back from meta-networking to meta-perl wireless-regdb: Upgrade 2019.03.01 -> 2019.06.03 mcelog: Remove manual RDEPENDS from PN-ptest to PN package Alejandro del Castillo (1): apache2: add all extra/*.conf to conffiles Alistair Francis (1): python-obd: Uprade from 0.7.0 to 0.7.1 Andreas Müller (1): python-six: put python2/3 variant together Andrei Gherzan (2): modemmanager: Update to 1.10.0 networkmanager: Update to 1.18.0 Ankit Navik (1): safec: Initial recipe for safe C library Carlos Rafael Giani (1): openh264: Fix armv7ve build Changqing Li (11): syslog-ng: add rconflict for package syslog-ng-libs netkit-telnet: add rconflicts samba/libldb: add rconflicts php-fpm-apache: fix module path phoronix-test-suite: upgrade from 8.6.0 -> 8.8.1 python-pygobject: upgrade 3.28.3 -> 3.32.1 rrdtool: upgrade 1.7.1 -> 1.7.2 php: upgrade 7.3.4 -> 7.3.6 xf86-video-ati: upgrade 18.0.1 -> 19.0.1 pavucontrol: upgrade 3.0 -> 4.0 multipath-tools: upgrade 0.8.0 -> 0.8.1 Herman van Hazendonk (1): Geoclue: Update to 2.5.3 Hongxu Jia (4): rrdtool: improve reproducibility crash: do not use unstable github archive tarballs postgresql: improve reproducibility net-snmp: split net-snmp-config to package net-snmp-dev Hongzhi.Song (1): spice: fix compile errors on 32bit system Horvath, Chris (1): lcov: Upgrade 1.11 -> 1.14 James Feist (1): libgpiod: Enable cxx bindings by default Kai Kang (16): xfce4-session: 4.13.1 -> 4.13.2 xfce4-screensaver: add recipe packagegroup-xfce-extended: add xfce4-screensaver lxdm: provides fake gdmflexiserver for xfce desktop environment thunar: 1.8.4 -> 1.8.6 xfdesktop: 4.13.3 -> 4.13.4 xfce4-panel: 4.13.4 -> 4.13.5 thunar-volman: 0.9.1 -> 0.9.2 xfce4-appfinder: 4.13.2 -> 4.13.3 libxfce4util: 4.13.2 -> 4.13.3 xfwm4: 4.13.1 -> 4.13.2 xfconf: 4.13.6 -> 4.13.7 libxfce4ui: 4.13.4 -> 4.13.5 xfce4-power-manager: 1.6.1 -> 1.6.2 xfce4-settings: set default theme Adwaita lxdm: provides fake gdmflexiserver for xfce desktop environment Khem Raj (8): libnfc: Fix build with musl openocd: Fix build on x86_64 spice,spice-protocol: Uprev to 0.14.0 udisks: Install bash_completion script in OE familiar dir udisks: Remove bash dependency python-jsmin,python-pytoml,python-which: Add recipes mozjs: Upgrade to version 60.x polkit: Upgrade to 0.116 Liwei Song (1): turbostat: copy bits.h from kernel to turbostat Marek Belisko (1): libsrtp: Fix compilation and add pkgconfig Martin Jansa (17): igmpproxy: remove 0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch and _GNU_SOURCE ne10, libopus: add armv7ve override as well pidgin: upgrade to 2.13.0 funyahoo-plusplus, icyque, pidgin-sipe, purple-skypeweb: add couple plugins for pidgin hunspell: use git fetcher instead of github archive hunspell-dictionaries: import from meta-luneos to make hunspell in meta-oe a bit more useful ttf-mplus, ttf-vlgothic: add ttf-mplus license android-tools-conf: import one more improvement for android-gadget-setup from meta-luneos uriparser: upgrade to 0.9.3 libmikmod: fix SRC_URI leptonica: fix SRC_URI libmikmod: upgrade to 3.3.11.1 open-vm-tools: refresh the patches so that they can be easily applied with devtool or git am open-vm-tools: import gcc9 fixes from fedora spice: append to CFLAGS instead of += cpprest: temporary ignore deprecated-copy and redundant-move errors detected by gcc9 oprofile: drop virtual/kernel dependency and switch back to TUNE_PKGARCH Mingli Yu (4): mariadb: Upgrade to 10.3.15 kea: Upgrade to 1.5.0 hwloc: Upgrade to 1.11.12 kea: replace -Og with -O Naveen Saini (1): pm-graph: add recipe Oleksandr Kravchuk (12): opensaf: update to 5.19.03 python-ldap: update to 3.2.0 rp-pppoe: update to 3.13 atftp: update to 0.7.2 ipcalc: update to 2.2.3 mtr: update to 0.92 nbd: update to 3.19 mdns: update to 878.200.35 lldpd: update to 1.0.3 libp11: update to 0.4.10 nano: update to 4.2 libspatialite: update to 4.3.0a Ovidiu Panait (1): xfsprogs: Fix host contamination Paolo Valente (1): s-suite: push SRCREV to version 3.4 Pascal Bach (1): rocksdb: 5.18.3 -> 6.0.2 Qi.Chen@windriver.com (2): polkit: fix CVE-2019-6133 .gitignore: add *.pyc and *.pyo Randy MacLeod (1): imagemagick: update from 7.0.8-43 to 7.0.8-47 Robert Joslyn (4): cryptsetup: Add PACKAGECONFIG options lmsensors: Update to 3.5.0 xfce4-session: Add xrdb RDEPENDS xfce4-session: Reformat DEPENDS and RDEPENDS Slater, Joseph (1): php-7: mark two tests as expected to fail Stefan Agner (1): haveged: fix CPU cache size detection Tim Orling (13): libterm-readkey-perl: upgrade 2.37 -> 2.38; fix upstream check; enable ptest libtest-deep-perl: add recipe for v1.128 libcgi-perl: upgrade 4.38 -> 4.43; enable ptest libcrypt-openssl-guess-perl: rename from libcrypt-openssl-guess; enable ptest libcrypt-openssl-rsa-perl: upgrade 0.30 -> 0.31; enable ptest libcrypt-openssl-random-perl: upgrade 0.11 -> 0.15; enable ptest libextutils-installpaths-perl: upgrade 0.011 -> 0.012; enable ptest libexutils-config-perl: enable ptest libhtml-tagset-perl: add recipe for v3.20 libhtml-parser-perl: enable ptest libstrictures-perl: upgrade 2.000003 -> 2.000006; enable ptest libxml-libxml-perl: enable ptest libcapture-tiny-perl: upgrade 0.46 -> 0.48; enable ptest William A. Kennington III via Openembedded-devel (1): cli11: 1.6.2 -> 1.7.1 Yi Zhao (8): python-ldap: add python-pyasn1 and python-pyasn1-modules as runtime dependencies fuse: upgrade 2.9.8 -> 2.9.9 yaffs2-utils: update to latest master xfsprogs: upgrade 4.18.0 -> 5.0.0 fcgi: upgrade 2.4.1+git -> 2.4.2 xdebug: upgrade 2.7.0RC2 -> 2.7.2 phpmyadmin: upgrade 4.8.5 -> 4.9.0.1 openipmi: upgrade 2.0.25 -> 2.0.27 Zang Ruochen (13): python-pywbem: solved the conflict with python3-pywbem python3-pywbem:solved the conflict with python-pywbem python-pbr: upgrade 5.2.0 -> 5.2.1 python-mako: upgrade 1.0.10 -> 1.0.12 python-babel: upgrade 2.6.0 -> 2.7.0 python-cachetools: upgrade 3.1.0 -> 3.1.1 python-cryptography: upgrade 2.6.1 -> 2.7 python-cryptography-vectors: upgrade 2.6.1 -> 2.7 python-cython: upgrade 0.29.7 -> 0.29.10 python-lxml: upgrade 4.3.3 -> 4.3.4 python-psutil: upgrade 5.6.2 -> 5.6.3 python-requests: upgrade 2.21.0 -> 2.22.0 python-urllib3: upgrade 1.25.2 -> 1.25.3 nick83ola (5): nginx: update to version 1.17.0 nginx: update stable version to 1.16.0 nginx: add PACKAGECONFIG[http-auth-request] nginx: fix kill path in nginx systemd unit file uthash: do not use unstable github archive tarballs thstead (1): Upgraded python-pysnmp from version 4.3.5. to 4.4.9. Łukasz Łaguna (1): gsl: update to version 2.5 meta-security: 9f5cc2a7eb..c28b72e91d: Armin Kuster (17): checksec: update to 1.11.1 keyutils: fix library install path checksec: add runtime test meta-integrity: port over from meta-intel-iot-security layer.conf: add LAYERSERIES_COMPAT README: update ima-evm-utils: cleanup and update to tip ima.cfg: update to 5.0 kernel linux: update bbappend base-files: add appending to automount securityfs ima-policy-hashed: add new recipe ima_policy_simple: add another sample policy policy: add ima appraise all policy data: remove policies initramfs: clean up to pull in packages. runtime qa: moderize ima test image: add image for testing Changqing Li (1): samhain: add rconflict for client and server mode Zang Ruochen (4): bastille: solved the conflict with perl-module-text-wrap and base-files python-scapy: Remove redundant sed operations python-scapy: solved the conflict with python3-scapy python3-scapy: solved the conflict with python-scapy leimaohui (1): python3-fail2ban: Fix build error of xrange. poky: 797916f93a..111b7173fe: Adrian Bunk (25): nss-myhostname: Stop trying to build for musl systemd: Some upstreamable musl patches have been upstreamed libnss-mdns: Stop trying to build for musl icu: Remove workaround for musl issue fixed upstream 2 years ago socat: Remove workaround for musl issue now fixed upstream ofono: Use external ell instead of an internal copy ofono: Fix another race condition during the build squashfs-tools: Mark as incompatible with musl apt: Remove workaround patches for no longer supported host distributions m4/tar: Remove remove-gets.patch pinentry: Switch pinentry-qt from Qt4 to Qt5 librsvg: Replace workaround for old host systems with upstream fix vim: Move PACKAGECONFIG[gtkgui] from GTK 2 to GTK 3 Remove Go 1.11 go: Remove INSANE_SKIP_* textrel that are now handled in go.bbclass dpkg: Remove workaround patches for no longer supported host distributions lrzsz: Add implicit declaration fixes from Debian tcp-wrappers: Add compile warning fixes from Debian libpam: Upgrade 1.3.0 -> 1.3.1 vte: Fix the license information gcc: Remove 0006-gcc-disable-MASK_RELAX_PIC_CALLS-bit.patch openssl: Upgrade 1.1.1b -> 1.1.1c Remove manual RDEPENDS from PN-ptest to PN package ref-manual: Remove irda feature lttng-modules: Upgrade 2.10.9 -> 2.10.10 Adrian Freihofer (3): qemurunner: fix undefined variable testimage: consider QB_DEFAULT_FSTYPE runqemu: QB_FSINFO to support fstype wic images Alejandro Enedino Hernandez Samaniego (1): python-numpy: Avoid installing copy of f2py script Alejandro Hernandez Samaniego (2): newlib: Upgrade to 3.1.0 newlib: export CC_FOR_TARGET as CC Alejandro del Castillo (1): opkg-utils: upgrade to version 0.4.1 Alex Kiernan (2): kernel-fitimage: uboot-sign: Check UBOOT_DTB_BINARY before adding deps systemd: Backport OpenSSL BUF_MEM fix Alexander Kanavin (53): vim: split the common part into vim.inc libpcre2: upgrade 10.32 -> 10.33 librepo: upgrade 1.9.6 -> 1.10.2 libmodulemd: upgrade 2.2.3 -> 2.4.0 libmodulemd: fix erroneous linking against v2 library when v1 was requested createrepo-c: upgrade 0.12.2 -> 0.14.0 libdazzle: upgrade 3.32.1 -> 3.32.2 adwaita-icon-theme: upgrade 3.30.1 -> 3.32.0 bison: upgrade 3.1 -> 3.3.2 atk: upgrade 2.30.0 -> 2.32.0 python3-mako: upgrade 1.0.9 -> 1.0.10 nss: upgrade 3.43 -> 3.44 go: update 1.12.1->1.12.5 systemtap: upgrade 4.0 -> 4.1 gawk: upgrade 4.2.1 -> 5.0.0 alsa-plugins: upgrade 1.1.8 -> 1.1.9 alsa-utils: upgrade 1.1.8 -> 1.1.9 alsa-lib: upgrade 1.1.8 -> 1.1.9 lz4: upgrade 1.9.0 -> 1.9.1 libxcrypt: upgrade 4.4.4 -> 4.4.6 python3-pip: upgrade 19.0.3 -> 19.1.1 pkgconf: upgrade 1.6.0 -> 1.6.1 at-spi2-core: upgrade 2.30.0 -> 2.32.1 at-spi2-atk: upgrade 2.30.0 -> 2.32.0 glib-networking: upgrade 2.60.1 -> 2.60.2 libsoup-2.4: upgrade 2.66.1 -> 2.66.2 x264: upgrade to latest revision linux-firmware: upgrade to latest revision python3-pbr: upgrade 5.1.3 -> 5.2.0 bash-completion: upgrade 2.8 -> 2.9 gst-examples: upgrade to 1.16.0 acpica: upgrade 20190405 -> 20190509 freetype: upgrade 2.9.1 -> 2.10.0 usbutils: upgrade 010->012 webkitgtk: update to 2.24.2 epiphany: update to 3.32.2 btrfs-tools: update to 5.1 iproute2: upgrade 5.0.0 -> 5.1.0 chkconfig: do not use unstable github archive tarballs chkconfig: fix upstream version check perl: update to 5.30.0 piglit: upgrade to latest revision ccache: fix upstream version check Revert "ncurses: fix incorrect UPSTREAM_CHECK_GITTAGREGEX" sysstat: add UPSTREAM_VERSION_UNKNOWN python3-pygments: add a recipe gtk-doc: upgrade 1.29 -> 1.30 libpsl: fix the gtk-doc 1.30 build source-highlight: remove the recipe mesa-demos: update to 8.4.0 glib-2.0: udpate 2.58.3 -> 2.60.3 gdk-pixbuf: update 2.38.0 -> 2.38.1 gtk+3: update 3.24.5 -> 3.24.8 Alistair Francis (3): gdb: Upgrade from 8.2.1 to 8.3 gnu-config: Update to latest SHA qemu: Backport the arm segfault fix Andreas Müller (1): gsettings-desktop-schemas: upgrade 3.28.1 -> 3.32.0 Andrei Gherzan (1): ca-certificates: Fix openssl runtime dependencies Anuj Mittal (8): Revert "image_types: use pigz to create .gz files" Revert "pigz: pigz is not gzip" libva: upgrade 2.4.0 -> 2.4.1 ffmpeg: add PACKAGECONFIG for mfx libpam: fix upstream version check serf: cleanup recipe scons: inherit python3native python3-scons: fix regex replacing python by python3 Bonnans, Laurent (1): kernel-uboot: compress arm64 kernels Bruce Ashfield (11): linux-yocto/5.0: update to v5.0.13 linux-yocto/4.19: update to v4.19.40 linux-yocto/4.19: update to v4.19.44 kernel: package modules.builtin.modinfo linux-yocto-dev: bump to v5.2-rc linux-yocto/5.0: update to v5.0.17 linux-yocto-rt/5.0: update to -rt9 linux-yocto/5.0: update to v5.0.19 linux-yocto-rt/5.0: update to -rt11 linux-yocto/5.0: fix systemtap on arm linux-yocto: ptest: Add SCSI debug configuration for util-linux Carlos Rafael Giani (6): gstreamer1.0-plugins-base: upgrade to version 1.16.0 gstreamer1.0-plugins-good: upgrade to version 1.16.0 gstreamer1.0-plugins-bad: upgrade to version 1.16.0 gstreamer1.0-plugins-ugly: upgrade to version 1.16.0 gstreamer1.0-libav: upgrade to version 1.16.0 gstreamer1.0-vaapi: upgrade to version 1.16.0 Changqing Li (8): connman: add networkmanager as rconflict dropbear: add openssh/openssh-sshd as rconflict busybox-inittab/sysvinit-inittab: add rconflicts inetutils: fix wrong package name systemd: add rconflicts tiny-init: add rconflicts multilib: add override for image recipe qemu: fix qemu ptest cannot work Chee Yang Lee (3): wic: bootimg-efi: add label source parameter wic/engine: include .wks.in in wic search and list wic/plugins: kernel image refer to KERNEL_IMAGETYPE Chen Qi (5): libxfont2: set CVE_PRODUCT systemd: avoid musl specific patches affect glibc systems util-linux: upgrade to 2.33.2 oescripts.py: avoid error when cairo module is not available context.py: fix skipping function Chris Laplante (5): base.bbclass: Add OE_EXTRA_IMPORTS bitbake: knotty: allow progress rate for indeterminate bars bitbake: build: extract progress handler creation logic into its own method bitbake: build/progress: use context managers for progress handlers bitbake: build: implement custom progress handlers injected via OE_EXTRA_IMPORTS David Frey (1): bluez5: manage udev dependency with PACKAGECONFIG David Reyna (1): bitbake: toaster: Fix Thud Bitbake release metadata Diego Rondini (1): bluez5: fix obex packaging Douglas Royds via Openembedded-core (1): json-c: Backport --disable-werror patch to allow compilation under icecc Fabio Berton (3): mesa: Update 19.0.3 -> 19.0.5 mesa: Update 19.0.5 -> 19.0.6 mesa: Update 19.0.6 -> 19.1.0 Filip Jareš (1): recipes: Fix license "names"/versions. Haiqing Bai (1): kernel.bbclass: Make task clean depend on cleaning of make-mod-scripts He Zhe (1): lttng-modules: Add git based recipe Hongxu Jia (5): grub/grub-efi: fix unrecognized command line option '-pipe-Wno-error' in CFLAGS lib/oe/reciputils.py: support character `+' in git pv groff: improve reproducibility diffutils/run-ptest: support to run at arbitrary path openssh: fix potential signed overflow in pointer arithmatic Jaewon Lee (2): gstreamer1.0-python_1.16.0.bb: Override libpython dir devicetree.bbclass: Combine stderr into stdout to see actual dtc error Jean-Marie LEMETAYER (4): npm: get npm package name from npm pack npm: fix node and npm default directory conflict npm: remove some temporary build files bitbake: bitbake: fetch2/npm: fix npw view parsing Jiping Ma (1): dhcp:"dhclient -x eth0" action is not correct. Joe Slater (1): slang: modify an array test Jon Mason (2): resulttool: modify to be multi-machine resulttool: Remove prints if no tests occur Jonathan Rajotte (4): lttng-tools: prevent test timeout when lttng-modules is not present lttng-tools: add lttng-modules to ptest dependencies liburcu: update to 0.11.0 liburcu: update to 0.11.1 Joshua Watt (11): avahi: Add PACKAGECONFIG for libdns_sd perl: Preserve attributes when applying cross files btrfs-tools: Pass DEBUG_MAP_PREFIX flags to Python bitbake: bitbake: cooker: Rename __depends in all multiconfigs bitbake: bitbake: Show base multiconfig environment perl: Set build date to SOURCE_DATE_EPOCH glibc-locale: DEPEND on virtual/libc zip: Remove build date to improve reproducibility classes/package: Sort ELF file list bash: Replace uninative loader path in ptest oeqa: Add reproducible build selftest Kai Kang (3): systemd-conf: configure wired network with dhcp qemu/qemu-system-native: depend bison-native openssl: fix failure of ptest test_shlibload Kevin Hao (3): runqemu: Add the support to pass multi ports to tcpserial parameter oeqa/utils/qemurunner: Set both the threadport&serverport with tcpserial parameter tune-thunderx: Set the correct PACKAGE_EXTRA_ARCHS_tune-thunderx Khem Raj (6): mesa: Fix a case when gbm is enabled but DRIDRIVERS is not defined ofono: Add TEMP_FAILURE_RETRY optional definition Revert "musl: Add TEMP_FAILURE_RETRY from glibc" binutils: Workaround mips assembler crash on target musl: Upgrade to master tip gdb: Let gdbserver be empty for riscv64 Lei Maohui (1): meson.bbclass: Make meson support aarch64_be. Luca Boccassi (2): python*-setuptools: add separate packages for pkg_resources module mdadm: use ${systemd_unitdir} rather than /lib/systemd Maciej Pijanowski (1): recipetool: add python3 support Mariano López (3): util-linux: Add missing ptest dependencies util-linux: Stop udevd to run ptests linux-yocto: Add scsi_debug module when ptest is in DISTRO_FEATURES Mark Hatle (1): bitbake: svn.py: Stop SVN from directly pulling from an external layer w/o fetcher Martin Jansa (5): python: add a fix for CVE-2019-9948 and CVE-2019-9636 glib-networking: add PACKAGECONFIG for openssl bc: use u-a for bc as well opkg-utils: fix opkg-list-fields script pigz: install pigz, unpigz, pigzcat in native and nativesdk builds again Matthias Schiffer (1): bitbake: fetch2: runfetchcmd(): unset _PYTHON_SYSCONFIGDATA_NAME Matthias Schoepfer via Openembedded-core (1): python3: fix build on softfloat mips Michael Ho (1): base.bbclass: add named SRCREVs to the sstate hash Mike Crowe (1): cmake: Avoid passing empty prefix to os.path.relpath Mingli Yu (3): elfutils: fix ptest failures dbus: Upgrade to 1.12.16 dbus-test: Upgrade 1.12.16 Nicola Lunghi (3): connman: fix segfault with musl >v1.1.21 rng-tools: recipe cleanup rng-tools: harmonise systemd and sysvinit Oleksandr Kravchuk (6): ethtool: update to 5.1 file: update to 5.37 p11-kit: update to 0.23.16.1 popt: fix SRC_URI selftest/devtool: fix URI to MarkupSafe package bitbake: cooker: list all nonexistent bblayer directories Oliver Stäbler (1): packagegroup-core-full-cmdline: Make nfs-utils/rpcbind optional Peter Kjellerstedt (3): texinfo-dummy-native: A little clean up of template.py texinfo-dummy-native: Rewrite template.py to use argparse package.bbclass: Clean up writing of runtime pkgdata files Philippe Normand (9): gstreamer1.0: upgrade to version 1.16.0 gstreamer1.0-omx: upgrade to version 1.16.0 gstreamer1.0-rtsp-server: upgrade to version 1.16.0 gstreamer1.0-python: upgrade to version 1.16.0 gst-validate: upgrade to version 1.16.0 cmake: Use compiler launcher variable when ccache is enabled at-spi2: Make X11 support truly optional gnutls: Use ca-certificates as default trust store file gnutls: Use the sysconfdir variable for the ca-certificates path Quentin Schulz (2): meta: license: fix non-SPDX license being removed from INCOMPATIBLE_LICENSE selftests: add tests for INCOMPATIBLE_LICENSE Randy MacLeod (6): valgrind: Make ptest timestamps copasetic valgrind: add 'file' to ptest depends util-linux: add setpriv utility libcap-ng: split into libcap-ng/libcap-ng-python ptest-runner: enable child procs as session leader bash: use setpriv, sed.sed to run ptests Richard Purdie (46): perl-rdepends: Add missing module dependencies bash: Fix bash-ptest dependencies openssh: Add sudo dependency for ptest libpcre: Add make dependency for ptest m4: Add coreutils and diffutils dependency for ptest perl/modules: Add various missing ptest perl module dependencies layer.conf: Whitelist lttng-tools->lttng-modules dependency tcmode-default: Make gcc9 the default lttng-tools: Fix patch Upstream-Status mesa: Fix patch Upstream-Status uninative-tarball: Fix file generation after class changes populate_sdk_base: Use highest compression level for xz uninative-tarball: Use xz compression and SDK_ARCHIVE_CMD strace: Tweak ptest disk space management ptest-packagelists: Add mdadm util-linux: Fix ptest dependencies mdadm: Add missing ptest dependency yocto-uninative: Update to 2.5 release uninative: Switch from bz2 to xz bitbake: main: Fix error message typo qemuarm64: Add QB_CPU_KVM to allow kvm acceleration runqemu: Add support for kvm on aarch64 useradd: Fix build architecture corruption of sstate artefacts useradd: Ensure do_populate_sysroot has dependency on useradd variables beaglebone-yocto: Add missing wic image u-boot deploy dependency quilt: Add patch depends for quilt-ptest libtest-needs-perl: Fix ptest dependencies libtimedate-perl: Fix ptest dependencies perl: Add missing perl module dependency liburi-perl: Fix module ptest dependencies libconvert-aan1-perl: Fix module and ptest dependencies libxml-sax-perl: Fix module ptest dependencies libxml-perl: Fix module and ptest dependencies e2fsprogs: Fix missing ptest dependencies glib-2.0: ptest fixes openssh: Add missing ptest dependency on coreutils gpg_sign/selftest: Fix secmem parameter handling gawk: ptest fixes openssh: Document skipped test dependency multiconfig: Adapt to bitbake switch 'multiconfig' -> 'mc' bitbake: multiconfig: Switch from 'multiconfig' -> 'mc' bitbake: cooker: Add compability handling for multiconfig: prefix migration build-appliance-image: Update to master head revision bitbake: cooker: Ensure mcdeps are processed even if only one multiconfig perl: Fix setgroup call regression from 5.30 perl: Move perl-sanity -> perl Ross Burton (13): insane: add sanity checks to SRC_URI libidn2: upgrade to 2.2.0 local.conf.sample: change default MACHINE to qemux86-64 libical: tidy up Perl finding wic/filemap: handle FIGETBSZ failing libxslt: add comment saying when a workaround can be removed parted: swap patches for the commits that landed upstream parted: drop patch for linux <2.6.20 support python-nose: python3-nose should be default bluez: fix test case failures with GCC 9 efivar: add efibootmgr: add gstreamer1.0-libav: disable API documentation Sakib Sajal (4): bash: add iso8859-1 gconv RDEPENDS needed by bash-ptest. bash: add big5hkscs gconv RDEPENDS needed by bash-ptest. bash: run bash ptest as non-root user ptest-runner: update SRCREV to latest HEAD on ptest-runner2 repo Scott Rifenbark (17): sdk-manual: Added link to BB manual fetcher section. ref-manual: Updated "do_fetch" to have a link to "Fetchers" dev-manual, ref-manual: removed "distrodata" class ref-manual: Removed bugzilla.bbclass ref-manual: Removed "distutils-tools" class. ref-manual: Udated devtool help output examples. ref-manual: New section "Checking Upgrade Status of a Recipe" dev-manual: Added check-upgrade-status blurb to upgrading recipes ref-manual: do_checkpkg - added link to checking upgrade status ref-manual: Updates to check-recipe-upgrade devtool command ref-manual: Grammar correction dev-manual: Added new section for creating NPM packages Makefile: Updated to support new NPM package creation section dev-manual: Updated the "Working with Packages" list ref-manual: Updated "npm.bbclass" section. overview-manual: Updated SCM section dev-manual: Fixed grammar issue. Tim Orling (8): libxml-parser-perl: fix ptest dependencies perl-rdepends.txt: improve dependencies for perl module ptests perl: install Config_git.pl perl-rdepends.txt: fix perl-module-data-dumper dependencies python3-scons-{native}: add recipe for v3.0.5 scons.bbclass: use python3-scons serf: switch to python3-scons-native oeqa/runtime: add simple test for scons Tom Rini (2): vim: Rework things so vim adds features not vim-tiny removes vim: Update to 8.1.1518 to fix CVE-2019-12735 Yeoh Ee Peng (3): resulttool/resultutils: Enable add extra configurations to results resulttool/store: Enable add EXECUTED_BY config to results resulttool/merge: Enable control TESTSERIES and extra configurations Zang Ruochen (3): openssh: Upgrade 7.9p1 -> 8.0p1 dbus: Upgrade 1.12.12 -> 1.12.14 dbus-test: Upgrade 1.12.12 -> 1.12.14 Zhixiong Chi (2): gcc: reduce the variables in symtab gcc: CVE-2018-12886 sangeeta jain (1): resulttool/manualexecution: Enable creation of test case configuration meta-raspberrypi: 7059c37451..40283f583b: Andrei Gherzan (1): gstreamer1.0-omx: Forward port bbappend and patches to v1.16.x Khem Raj (4): linux-raspberrypi_4.19.bb: Update to 4.19.44 rpi-default-versions: Switch defaults to 4.19 userland: Update to 20190501 firmware: Update 20190220 -> 20190517 malus-brandywine (1): sdcard_image-rpi : minor bug in use of FATPAYLOAD Change-Id: Idab4e8c2666bc776d0b47988a32dcb9f04885aff Signed-off-by: Brad Bishop --- poky/bitbake/lib/bb/build.py | 79 ++++++++++++++++++++++++++------- poky/bitbake/lib/bb/cache.py | 12 ++--- poky/bitbake/lib/bb/cooker.py | 61 +++++++++++++++++--------- poky/bitbake/lib/bb/cookerdata.py | 16 +++++-- poky/bitbake/lib/bb/fetch2/__init__.py | 5 +++ poky/bitbake/lib/bb/fetch2/npm.py | 19 +++----- poky/bitbake/lib/bb/fetch2/svn.py | 19 ++++++++ poky/bitbake/lib/bb/main.py | 2 +- poky/bitbake/lib/bb/progress.py | 16 ++++++- poky/bitbake/lib/bb/runqueue.py | 8 ++-- poky/bitbake/lib/bb/siggen.py | 8 ++-- poky/bitbake/lib/bb/taskdata.py | 2 +- poky/bitbake/lib/bb/tests/fetch.py | 80 ++++++++++++++++++++++++++++++++++ poky/bitbake/lib/bb/ui/knotty.py | 2 +- 14 files changed, 258 insertions(+), 71 deletions(-) (limited to 'poky/bitbake/lib/bb') diff --git a/poky/bitbake/lib/bb/build.py b/poky/bitbake/lib/bb/build.py index dae42ac47..e2f91fa3b 100644 --- a/poky/bitbake/lib/bb/build.py +++ b/poky/bitbake/lib/bb/build.py @@ -163,12 +163,35 @@ class LogTee(object): def __repr__(self): return ''.format(self.name) + def flush(self): self.outfile.flush() + +class StdoutNoopContextManager: + """ + This class acts like sys.stdout, but adds noop __enter__ and __exit__ methods. + """ + def __enter__(self): + return sys.stdout + + def __exit__(self, *exc_info): + pass + + def write(self, string): + return sys.stdout.write(string) + + def flush(self): + sys.stdout.flush() + + @property + def name(self): + return sys.stdout.name + + # # pythonexception allows the python exceptions generated to be raised -# as the real exceptions (not FuncFailed) and without a backtrace at the +# as the real exceptions (not FuncFailed) and without a backtrace at the # origin of the failure. # def exec_func(func, d, dirs = None, pythonexception=False): @@ -323,6 +346,42 @@ trap 'bb_exit_handler' 0 set -e ''' +def create_progress_handler(func, progress, logfile, d): + if progress == 'percent': + # Use default regex + return bb.progress.BasicProgressHandler(d, outfile=logfile) + elif progress.startswith('percent:'): + # Use specified regex + return bb.progress.BasicProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile) + elif progress.startswith('outof:'): + # Use specified regex + return bb.progress.OutOfProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile) + elif progress.startswith("custom:"): + # Use a custom progress handler that was injected via OE_EXTRA_IMPORTS or __builtins__ + import functools + from types import ModuleType + + parts = progress.split(":", 2) + _, cls, otherargs = parts[0], parts[1], (parts[2] or None) if parts[2:] else None + if cls: + def resolve(x, y): + if not x: + return None + if isinstance(x, ModuleType): + return getattr(x, y, None) + return x.get(y) + cls_obj = functools.reduce(resolve, cls.split("."), bb.utils._context) + if not cls_obj: + # Fall-back on __builtins__ + cls_obj = functools.reduce(lambda x, y: x.get(y), cls.split("."), __builtins__) + if cls_obj: + return cls_obj(d, outfile=logfile, otherargs=otherargs) + bb.warn('%s: unknown custom progress handler in task progress varflag value "%s", ignoring' % (func, cls)) + else: + bb.warn('%s: invalid task progress varflag value "%s", ignoring' % (func, progress)) + + return logfile + def exec_func_shell(func, d, runfile, cwd=None): """Execute a shell function from the metadata @@ -360,23 +419,13 @@ exit $ret cmd = [fakerootcmd, runfile] if bb.msg.loggerDefaultVerbose: - logfile = LogTee(logger, sys.stdout) + logfile = LogTee(logger, StdoutNoopContextManager()) else: - logfile = sys.stdout + logfile = StdoutNoopContextManager() progress = d.getVarFlag(func, 'progress') if progress: - if progress == 'percent': - # Use default regex - logfile = bb.progress.BasicProgressHandler(d, outfile=logfile) - elif progress.startswith('percent:'): - # Use specified regex - logfile = bb.progress.BasicProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile) - elif progress.startswith('outof:'): - # Use specified regex - logfile = bb.progress.OutOfProgressHandler(d, regex=progress.split(':', 1)[1], outfile=logfile) - else: - bb.warn('%s: invalid task progress varflag value "%s", ignoring' % (func, progress)) + logfile = create_progress_handler(func, progress, logfile, d) fifobuffer = bytearray() def readfifo(data): @@ -428,7 +477,7 @@ exit $ret bb.debug(2, "Executing shell function %s" % func) try: - with open(os.devnull, 'r+') as stdin: + with open(os.devnull, 'r+') as stdin, logfile: bb.process.run(cmd, shell=False, stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)]) except bb.process.CmdError: logfn = d.getVar('BB_LOGFILE') diff --git a/poky/bitbake/lib/bb/cache.py b/poky/bitbake/lib/bb/cache.py index 060758e0c..5fb2f17cd 100644 --- a/poky/bitbake/lib/bb/cache.py +++ b/poky/bitbake/lib/bb/cache.py @@ -237,7 +237,7 @@ def virtualfn2realfn(virtualfn): Convert a virtual file name to a real one + the associated subclass keyword """ mc = "" - if virtualfn.startswith('multiconfig:'): + if virtualfn.startswith('mc:'): elems = virtualfn.split(':') mc = elems[1] virtualfn = ":".join(elems[2:]) @@ -258,7 +258,7 @@ def realfn2virtual(realfn, cls, mc): if cls: realfn = "virtual:" + cls + ":" + realfn if mc: - realfn = "multiconfig:" + mc + ":" + realfn + realfn = "mc:" + mc + ":" + realfn return realfn def variant2virtual(realfn, variant): @@ -267,11 +267,11 @@ def variant2virtual(realfn, variant): """ if variant == "": return realfn - if variant.startswith("multiconfig:"): + if variant.startswith("mc:"): elems = variant.split(":") if elems[2]: - return "multiconfig:" + elems[1] + ":virtual:" + ":".join(elems[2:]) + ":" + realfn - return "multiconfig:" + elems[1] + ":" + realfn + return "mc:" + elems[1] + ":virtual:" + ":".join(elems[2:]) + ":" + realfn + return "mc:" + elems[1] + ":" + realfn return "virtual:" + variant + ":" + realfn def parse_recipe(bb_data, bbfile, appends, mc=''): @@ -349,7 +349,7 @@ class NoCache(object): bb_data = self.databuilder.mcdata[mc].createCopy() newstores = parse_recipe(bb_data, bbfile, appends, mc) for ns in newstores: - datastores["multiconfig:%s:%s" % (mc, ns)] = newstores[ns] + datastores["mc:%s:%s" % (mc, ns)] = newstores[ns] return datastores diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py index c8e14042d..0008c2fde 100644 --- a/poky/bitbake/lib/bb/cooker.py +++ b/poky/bitbake/lib/bb/cooker.py @@ -378,8 +378,9 @@ class BBCooker: if CookerFeatures.BASEDATASTORE_TRACKING in self.featureset: self.disableDataTracking() - self.data.renameVar("__depends", "__base_depends") - self.add_filewatch(self.data.getVar("__base_depends", False), self.configwatcher) + for mc in self.databuilder.mcdata.values(): + mc.renameVar("__depends", "__base_depends") + self.add_filewatch(mc.getVar("__base_depends", False), self.configwatcher) self.baseconfig_valid = True self.parsecache_valid = False @@ -494,6 +495,7 @@ class BBCooker: """ fn = None envdata = None + mc = '' if not pkgs_to_build: pkgs_to_build = [] @@ -502,6 +504,12 @@ class BBCooker: self.enableDataTracking() self.reset() + def mc_base(p): + if p.startswith('mc:'): + s = p.split(':') + if len(s) == 2: + return s[1] + return None if buildfile: # Parse the configuration here. We need to do it explicitly here since @@ -512,18 +520,16 @@ class BBCooker: fn = self.matchFile(fn) fn = bb.cache.realfn2virtual(fn, cls, mc) elif len(pkgs_to_build) == 1: - ignore = self.data.getVar("ASSUME_PROVIDED") or "" - if pkgs_to_build[0] in set(ignore.split()): - bb.fatal("%s is in ASSUME_PROVIDED" % pkgs_to_build[0]) + mc = mc_base(pkgs_to_build[0]) + if not mc: + ignore = self.data.getVar("ASSUME_PROVIDED") or "" + if pkgs_to_build[0] in set(ignore.split()): + bb.fatal("%s is in ASSUME_PROVIDED" % pkgs_to_build[0]) - taskdata, runlist = self.buildTaskData(pkgs_to_build, None, self.configuration.abort, allowincomplete=True) + taskdata, runlist = self.buildTaskData(pkgs_to_build, None, self.configuration.abort, allowincomplete=True) - mc = runlist[0][0] - fn = runlist[0][3] - else: - envdata = self.data - data.expandKeys(envdata) - parse.ast.runAnonFuncs(envdata) + mc = runlist[0][0] + fn = runlist[0][3] if fn: try: @@ -532,6 +538,12 @@ class BBCooker: except Exception as e: parselog.exception("Unable to read %s", fn) raise + else: + if not mc in self.databuilder.mcdata: + bb.fatal('Not multiconfig named "%s" found' % mc) + envdata = self.databuilder.mcdata[mc] + data.expandKeys(envdata) + parse.ast.runAnonFuncs(envdata) # Display history with closing(StringIO()) as env: @@ -571,10 +583,10 @@ class BBCooker: wildcard = False # Wild card expansion: - # Replace string such as "multiconfig:*:bash" - # into "multiconfig:A:bash multiconfig:B:bash bash" + # Replace string such as "mc:*:bash" + # into "mc:A:bash mc:B:bash bash" for k in targetlist: - if k.startswith("multiconfig:"): + if k.startswith("mc:"): if wildcard: bb.fatal('multiconfig conflict') if k.split(":")[1] == "*": @@ -607,7 +619,7 @@ class BBCooker: runlist = [] for k in fulltargetlist: mc = "" - if k.startswith("multiconfig:"): + if k.startswith("mc:"): mc = k.split(":")[1] k = ":".join(k.split(":")[2:]) ktask = task @@ -626,9 +638,13 @@ class BBCooker: runlist.append([mc, k, ktask, fn]) bb.event.fire(bb.event.TreeDataPreparationProgress(current, len(fulltargetlist)), self.data) + havemc = False + for mc in self.multiconfigs: + if taskdata[mc].get_mcdepends(): + havemc = True # No need to do check providers if there are no mcdeps or not an mc build - if len(self.multiconfigs) > 1: + if havemc or len(self.multiconfigs) > 1: seen = set() new = True # Make sure we can provide the multiconfig dependency @@ -688,7 +704,7 @@ class BBCooker: @staticmethod def add_mc_prefix(mc, pn): if mc: - return "multiconfig:%s:%s" % (mc, pn) + return "mc:%s:%s" % (mc, pn) return pn def buildDependTree(self, rq, taskdata): @@ -1465,7 +1481,7 @@ class BBCooker: ntargets = [] for target in runlist: if target[0]: - ntargets.append("multiconfig:%s:%s:%s" % (target[0], target[1], target[2])) + ntargets.append("mc:%s:%s:%s" % (target[0], target[1], target[2])) ntargets.append("%s:%s" % (target[1], target[2])) for mc in self.multiconfigs: @@ -1588,6 +1604,9 @@ class BBCooker: for pkg in pkgs_to_build: if pkg in ignore: parselog.warning("Explicit target \"%s\" is in ASSUME_PROVIDED, ignoring" % pkg) + if pkg.startswith("multiconfig:"): + pkgs_to_build.remove(pkg) + pkgs_to_build.append(pkg.replace("multiconfig:", "mc:")) if 'world' in pkgs_to_build: pkgs_to_build.remove('world') @@ -1595,7 +1614,7 @@ class BBCooker: bb.providers.buildWorldTargetList(self.recipecaches[mc], task) for t in self.recipecaches[mc].world_target: if mc: - t = "multiconfig:" + mc + ":" + t + t = "mc:" + mc + ":" + t pkgs_to_build.append(t) if 'universe' in pkgs_to_build: @@ -1614,7 +1633,7 @@ class BBCooker: bb.debug(1, "Skipping %s for universe tasks as task %s doesn't exist" % (t, task)) continue if mc: - t = "multiconfig:" + mc + ":" + t + t = "mc:" + mc + ":" + t pkgs_to_build.append(t) return pkgs_to_build diff --git a/poky/bitbake/lib/bb/cookerdata.py b/poky/bitbake/lib/bb/cookerdata.py index f8ae41093..842275d53 100644 --- a/poky/bitbake/lib/bb/cookerdata.py +++ b/poky/bitbake/lib/bb/cookerdata.py @@ -342,14 +342,24 @@ class CookerDataBuilder(object): data = parse_config_file(layerconf, data) layers = (data.getVar('BBLAYERS') or "").split() + broken_layers = [] data = bb.data.createCopy(data) approved = bb.utils.approved_variables() + + # Check whether present layer directories exist for layer in layers: if not os.path.isdir(layer): - parselog.critical("Layer directory '%s' does not exist! " - "Please check BBLAYERS in %s" % (layer, layerconf)) - sys.exit(1) + broken_layers.append(layer) + + if broken_layers: + parselog.critical("The following layer directories do not exist:") + for layer in broken_layers: + parselog.critical(" %s", layer) + parselog.critical("Please check BBLAYERS in %s" % (layerconf)) + sys.exit(1) + + for layer in layers: parselog.debug(2, "Adding layer %s", layer) if 'HOME' in approved and '~' in layer: layer = os.path.expanduser(layer) diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py index 0126e0d7c..f6b5529bb 100644 --- a/poky/bitbake/lib/bb/fetch2/__init__.py +++ b/poky/bitbake/lib/bb/fetch2/__init__.py @@ -843,6 +843,11 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None): if val: cmd = 'export ' + var + '=\"%s\"; %s' % (val, cmd) + # Ensure that a _PYTHON_SYSCONFIGDATA_NAME value set by a recipe + # (for example via python3native.bbclass since warrior) is not set for + # host Python (otherwise tools like git-make-shallow will fail) + cmd = 'unset _PYTHON_SYSCONFIGDATA_NAME; ' + cmd + # Disable pseudo as it may affect ssh, potentially causing it to hang. cmd = 'export PSEUDO_DISABLED=1; ' + cmd diff --git a/poky/bitbake/lib/bb/fetch2/npm.py b/poky/bitbake/lib/bb/fetch2/npm.py index f08bdee73..4427b1bb8 100644 --- a/poky/bitbake/lib/bb/fetch2/npm.py +++ b/poky/bitbake/lib/bb/fetch2/npm.py @@ -151,20 +151,11 @@ class Npm(FetchMethod): Parse the output of npm view --json; the last JSON result is assumed to be the one that we're interested in. ''' - pdata = None - outdeps = {} - datalines = [] - bracelevel = 0 - for line in output.splitlines(): - if bracelevel: - datalines.append(line) - elif '{' in line: - datalines = [] - datalines.append(line) - bracelevel = bracelevel + line.count('{') - line.count('}') - if datalines: - pdata = json.loads('\n'.join(datalines)) - return pdata + pdata = json.loads(output); + try: + return pdata[-1] + except: + return pdata def _getdependencies(self, pkg, data, version, d, ud, optional=False, fetchedlist=None): if fetchedlist is None: diff --git a/poky/bitbake/lib/bb/fetch2/svn.py b/poky/bitbake/lib/bb/fetch2/svn.py index baeb0e7ee..59ce93160 100644 --- a/poky/bitbake/lib/bb/fetch2/svn.py +++ b/poky/bitbake/lib/bb/fetch2/svn.py @@ -91,6 +91,13 @@ class Svn(FetchMethod): svncmd = "%s log --limit 1 %s %s://%s/%s/" % (ud.basecmd, " ".join(options), proto, svnroot, ud.module) else: suffix = "" + + # externals may be either 'allowed' or 'nowarn', but not both. Allowed + # will not issue a warning, but will log to the debug buffer what has likely + # been downloaded by SVN. + if not ("externals" in ud.parm and ud.parm["externals"] == "allowed"): + options.append("--ignore-externals") + if ud.revision: options.append("-r %s" % ud.revision) suffix = "@%s" % (ud.revision) @@ -136,6 +143,18 @@ class Svn(FetchMethod): bb.fetch2.check_network_access(d, svnfetchcmd, ud.url) runfetchcmd(svnfetchcmd, d, workdir=ud.pkgdir) + if not ("externals" in ud.parm and ud.parm["externals"] == "nowarn"): + # Warn the user if this had externals (won't catch them all) + output = runfetchcmd("svn propget svn:externals", d, workdir=ud.moddir) + if output: + if "--ignore-externals" in svnfetchcmd.split(): + bb.warn("%s contains svn:externals." % ud.url) + bb.warn("These should be added to the recipe SRC_URI as necessary.") + bb.warn("svn fetch has ignored externals:\n%s" % output) + bb.warn("To disable this warning add ';externals=nowarn' to the url.") + else: + bb.debug(1, "svn repository has externals:\n%s" % output) + scmdata = ud.parm.get("scmdata", "") if scmdata == "keep": tar_flags = "" diff --git a/poky/bitbake/lib/bb/main.py b/poky/bitbake/lib/bb/main.py index 8d1978f98..ca59eb9af 100755 --- a/poky/bitbake/lib/bb/main.py +++ b/poky/bitbake/lib/bb/main.py @@ -491,7 +491,7 @@ def setup_bitbake(configParams, configuration, extrafeatures=None): def lockBitbake(): topdir = bb.cookerdata.findTopdir() if not topdir: - bb.error("Unable to find conf/bblayers.conf or conf/bitbake.conf. BBAPTH is unset and/or not in a build directory?") + bb.error("Unable to find conf/bblayers.conf or conf/bitbake.conf. BBPATH is unset and/or not in a build directory?") raise BBMainFatal lockfile = topdir + "/bitbake.lock" return topdir, bb.utils.lockfile(lockfile, False, False) diff --git a/poky/bitbake/lib/bb/progress.py b/poky/bitbake/lib/bb/progress.py index e9b72e28b..4022caa71 100644 --- a/poky/bitbake/lib/bb/progress.py +++ b/poky/bitbake/lib/bb/progress.py @@ -13,6 +13,7 @@ import time import inspect import bb.event import bb.build +from bb.build import StdoutNoopContextManager class ProgressHandler(object): """ @@ -27,7 +28,14 @@ class ProgressHandler(object): if outfile: self._outfile = outfile else: - self._outfile = sys.stdout + self._outfile = StdoutNoopContextManager() + + def __enter__(self): + self._outfile.__enter__() + return self + + def __exit__(self, *excinfo): + self._outfile.__exit__(*excinfo) def _fire_progress(self, taskprogress, rate=None): """Internal function to fire the progress event""" @@ -147,6 +155,12 @@ class MultiStageProgressReporter(object): self._stage_total = None self._callers = [] + def __enter__(self): + return self + + def __exit__(self, *excinfo): + pass + def _fire_progress(self, taskprogress): bb.event.fire(bb.build.TaskProgress(taskprogress), self._data) diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py index d573ed460..010b08501 100644 --- a/poky/bitbake/lib/bb/runqueue.py +++ b/poky/bitbake/lib/bb/runqueue.py @@ -39,7 +39,7 @@ def taskname_from_tid(tid): return tid.rsplit(":", 1)[1] def mc_from_tid(tid): - if tid.startswith('multiconfig:'): + if tid.startswith('mc:'): return tid.split(':')[1] return "" @@ -48,12 +48,12 @@ def split_tid(tid): return (mc, fn, taskname) def split_tid_mcfn(tid): - if tid.startswith('multiconfig:'): + if tid.startswith('mc:'): elems = tid.split(':') mc = elems[1] fn = ":".join(elems[2:-1]) taskname = elems[-1] - mcfn = "multiconfig:" + mc + ":" + fn + mcfn = "mc:" + mc + ":" + fn else: tid = tid.rsplit(":", 1) mc = "" @@ -65,7 +65,7 @@ def split_tid_mcfn(tid): def build_tid(mc, fn, taskname): if mc: - return "multiconfig:" + mc + ":" + fn + ":" + taskname + return "mc:" + mc + ":" + fn + ":" + taskname return fn + ":" + taskname class RunQueueStats: diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py index e0a66e68d..fe580e487 100644 --- a/poky/bitbake/lib/bb/siggen.py +++ b/poky/bitbake/lib/bb/siggen.py @@ -179,7 +179,7 @@ class SignatureGeneratorBasic(SignatureGenerator): def get_taskhash(self, fn, task, deps, dataCache): mc = '' - if fn.startswith('multiconfig:'): + if fn.startswith('mc:'): mc = fn.split(':')[1] k = fn + "." + task @@ -194,7 +194,7 @@ class SignatureGeneratorBasic(SignatureGenerator): depmc = pkgname.split(':')[1] if mc != depmc: continue - if dep.startswith("multiconfig:") and not mc: + if dep.startswith("mc:") and not mc: continue depname = dataCache.pkg_fn[pkgname] if not self.rundep_check(fn, recipename, task, dep, depname, dataCache): @@ -412,13 +412,13 @@ def list_inline_diff(oldlist, newlist, colors=None): def clean_basepath(a): mc = None - if a.startswith("multiconfig:"): + if a.startswith("mc:"): _, mc, a = a.split(":", 2) b = a.rsplit("/", 2)[1] + '/' + a.rsplit("/", 2)[2] if a.startswith("virtual:"): b = b + ":" + a.rsplit(":", 1)[0] if mc: - b = b + ":multiconfig:" + mc + b = b + ":mc:" + mc return b def clean_basepaths(a): diff --git a/poky/bitbake/lib/bb/taskdata.py b/poky/bitbake/lib/bb/taskdata.py index c7de3db38..d13bd7c3b 100644 --- a/poky/bitbake/lib/bb/taskdata.py +++ b/poky/bitbake/lib/bb/taskdata.py @@ -81,7 +81,7 @@ class TaskData: def add_mcdepends(task): for dep in task_deps['mcdepends'][task].split(): if len(dep.split(':')) != 5: - bb.msg.fatal("TaskData", "Error for %s:%s[%s], multiconfig dependency %s does not contain exactly four ':' characters.\n Task '%s' should be specified in the form 'multiconfig:fromMC:toMC:packagename:task'" % (fn, task, 'mcdepends', dep, 'mcdepends')) + bb.msg.fatal("TaskData", "Error for %s:%s[%s], multiconfig dependency %s does not contain exactly four ':' characters.\n Task '%s' should be specified in the form 'mc:fromMC:toMC:packagename:task'" % (fn, task, 'mcdepends', dep, 'mcdepends')) if dep not in self.mcdepends: self.mcdepends.append(dep) diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py index 6bdf0416d..16f975b13 100644 --- a/poky/bitbake/lib/bb/tests/fetch.py +++ b/poky/bitbake/lib/bb/tests/fetch.py @@ -991,6 +991,86 @@ class FetcherNetworkTest(FetcherTest): self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/umock-c/deps/ctest/README.md')), msg='Missing submodule checkout') self.assertTrue(os.path.exists(os.path.join(repo_path, 'edgelet/hsm-sys/azure-iot-hsm-c/deps/utpm/deps/c-utility/testtools/umock-c/deps/testrunner/readme.md')), msg='Missing submodule checkout') +class SVNTest(FetcherTest): + def skipIfNoSvn(): + import shutil + if not shutil.which("svn"): + return unittest.skip("svn not installed, tests being skipped") + + if not shutil.which("svnadmin"): + return unittest.skip("svnadmin not installed, tests being skipped") + + return lambda f: f + + @skipIfNoSvn() + def setUp(self): + """ Create a local repository """ + + super(SVNTest, self).setUp() + + # Create something we can fetch + src_dir = tempfile.mkdtemp(dir=self.tempdir, + prefix='svnfetch_srcdir_') + src_dir = os.path.abspath(src_dir) + bb.process.run("echo readme > README.md", cwd=src_dir) + + # Store it in a local SVN repository + repo_dir = tempfile.mkdtemp(dir=self.tempdir, + prefix='svnfetch_localrepo_') + repo_dir = os.path.abspath(repo_dir) + bb.process.run("svnadmin create project", cwd=repo_dir) + + self.repo_url = "file://%s/project" % repo_dir + bb.process.run("svn import --non-interactive -m 'Initial import' %s %s/trunk" % (src_dir, self.repo_url), + cwd=repo_dir) + + 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' .", + 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')) + + self.src_dir = src_dir + self.repo_dir = repo_dir + + @skipIfNoSvn() + def tearDown(self): + os.chdir(self.origdir) + if os.environ.get("BB_TMPDIR_NOCLEAN") == "yes": + print("Not cleaning up %s. Please remove manually." % self.tempdir) + else: + bb.utils.prunedir(self.tempdir) + + @skipIfNoSvn() + @skipIfNoNetwork() + def test_noexternal_svn(self): + # Always match the rev count from setUp (currently rev 2) + url = "svn://%s;module=trunk;protocol=file;rev=2" % self.repo_url.replace('file://', '') + fetcher = bb.fetch.Fetch([url], self.d) + fetcher.download() + os.chdir(os.path.dirname(self.unpackdir)) + fetcher.unpack(self.unpackdir) + + self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'trunk')), msg="Missing trunk") + self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'trunk', 'README.md')), msg="Missing contents") + self.assertFalse(os.path.exists(os.path.join(self.unpackdir, 'trunk/bitbake/trunk')), msg="External dir should NOT exist") + self.assertFalse(os.path.exists(os.path.join(self.unpackdir, 'trunk/bitbake/trunk', 'README')), msg="External README should NOT exit") + + @skipIfNoSvn() + def test_external_svn(self): + # Always match the rev count from setUp (currently rev 2) + url = "svn://%s;module=trunk;protocol=file;externals=allowed;rev=2" % self.repo_url.replace('file://', '') + fetcher = bb.fetch.Fetch([url], self.d) + fetcher.download() + os.chdir(os.path.dirname(self.unpackdir)) + fetcher.unpack(self.unpackdir) + + self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'trunk')), msg="Missing trunk") + self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'trunk', 'README.md')), msg="Missing contents") + self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'trunk/bitbake/trunk')), msg="External dir should exist") + self.assertTrue(os.path.exists(os.path.join(self.unpackdir, 'trunk/bitbake/trunk', 'README')), msg="External README should exit") + class TrustedNetworksTest(FetcherTest): def test_trusted_network(self): # Ensure trusted_network returns False when the host IS in the list. diff --git a/poky/bitbake/lib/bb/ui/knotty.py b/poky/bitbake/lib/bb/ui/knotty.py index 3d9e2031b..88f638fb3 100644 --- a/poky/bitbake/lib/bb/ui/knotty.py +++ b/poky/bitbake/lib/bb/ui/knotty.py @@ -300,8 +300,8 @@ class TerminalFilter(object): if start_time: pbar.start_time = start_time pbar.setmessage('%s:%s' % (tasknum, pbar.msg.split(':', 1)[1])) + pbar.setextra(rate) if progress > -1: - pbar.setextra(rate) content = pbar.update(progress) else: content = pbar.update(1) -- cgit v1.2.3 From f3fd288e7961708569de104ef3335274f35bd1b8 Mon Sep 17 00:00:00 2001 From: Brad Bishop Date: Fri, 21 Jun 2019 08:06:37 -0400 Subject: subtree updates meta-raspberrypi: 40283f583b..ca11a291ee: Martin Schuessler (1): omxplayer: remove hardcoded tune and arch from Makefile poky: 111b7173fe..50d272863d: Adrian Bunk (3): wireless-regdb: Add recipe go: Upgrade 1.12.5 -> 1.12.6 libxslt: Fix CVE-2019-11068 Alexander Kanavin (7): vala: upgrade 0.44.3 -> 0.44.5 libnewt: merge libnewt-python recipe into the main recipe epiphany: update to 3.32.3 btrfs-tools: update to 5.1.1 createrepo-c: upgrade 0.14.0 -> 0.14.2 librepo: upgrade 1.10.2 -> 1.10.3 libmodulemd: upgrade 2.4.0 -> 2.5.0 Alistair Francis (6): libffi: Add RISC-V support opensbi: Initial commit of OpenSBI qemuriscv64: Add the QEMU RISC-V 64-bit machine linux-yocto: Mark qemuriscv64 as compatible qemuriscv: Build uImage for RISC-V machines qemuriscv64: Fix QB_OPT_APPEND overwrite Anuj Mittal (1): runtime/cases/logrotate: make test more reliable Ayoub Zaki (1): kernel-fitimage: introduce FIT_HASH_ALG Changqing Li (1): gcc-runtime: fix C++ header mapping for n32/x32 tune Chee Yang Lee (1): wic/bootimg-efi: allow multiple initrd Chen Qi (2): manifest.py: fix test_SDK_manifest_entries target-sdk-provides-dummy: add libperl.so.5 to DUMMY_PROVIDES Chris PeBenito (1): volatile-binds: Change cp to use -a instead of -p. Denys Dmytriyenko (2): mtd-utils: upgrade 2.0.2 -> 2.1.0+ mtd-utils: add "jffs" and "ubifs" PACKAGECONFIG options He Zhe (1): kernel: qemuarmv5: Update machine overrides of KERNEL_DEVICETREE Joe Slater (1): parted: change device manager check in ptest Joshua Watt (1): python3: Disable PGO for reproducible builds Kai Kang (3): systemd-conf: not configure network for nfs root rng-tools: 6.6 -> 6.7 qemu: disable capstone for 32-bit mips with multilib Lei Maohui (1): openssl: Fix a build bug on aarch64BE. Martin Jansa (4): buildhistory: show time spent writting buildhistory base.bbclass: define PACKAGECONFIG_CONFARGS before only sometimes appending to it serf: stop scons trying to create directories in hosts rootfs bitbake: tests/utils.py: add one more test cases for bb.utils.vercmp_string Matt Madison (1): apt: fix permissions on apt-daily script for systemd Mingli Yu (1): bitbake: add iconv to HOSTTOOLS Pierre Le Magourou (4): cve-update-db: New recipe to update CVE database cve-check: Remove dependency to cve-check-tool-native cve-check: Manage CVE_PRODUCT with more than one name cve-check: Consider CVE that affects versions with less than operator Ricardo Ribalda Delgado (4): dpkg: Use less as pager meson: Fix native patch to python3 rootfs: Fix dependency for every dpkg run python3: python3: Fix build error x86->x86 Richard Purdie (7): libxcrypt: Switch to disable obsolete APIs libxcrypt-compat: Add recipe to build the obsolete APIs uninative-tarball: Add libxcrypt-compat openssh: Add missing DEPENDS on virtual/crypt lttng-tools: Filter ptest output to remove random tmp directories cmake: Clarify comment in cmake toolchain file uninative: Update to 2.6 release Robert Yang (2): linux-dummy: Add do_compile_kernelmodules make-mod-scripts: Depends on bison-native Ross Burton (7): insane: improve buildpath warning messages insane: remove empty test that does nothing binconfig: don't try to fix up .la files libsdl2: use binconfig-disabled glib-2.0: fix host path appearing in gsocketclient-slow test script oeqa/logparser: ignore test failure commentary python: make 'python' install everything instead of just the interpretter Stefano Babic (1): systat: systemd never enables the service Tim Orling (4): perl-rdepends.txt: more ptest dependencies fixes libxml-sax-perl: upgrade 1.00 -> 1.02 libmodule-build-perl: move from meta-perl libmodule-build-perl: upgrade 0.4224 -> 0.4229; enable ptest Yi Zhao (2): shadow: fix configure error with dash less: upgrade 550 -> 551 Zang Ruochen (9): lighttpd: Upgrade 1.4.53 -> 1.4.54 libevent:upgrade 2.1.8 -> 2.1.10 libevdev:upgrade 1.6.0 -> 1.7.0 gnutls:upgrade 3.6.7 -> 3.6.8 gnupg:upgrade 2.2.15 -> 2.2.16 curl:upgrade 7.64.1 -> 7.65.1 lttng-ust:upgrade 2.10.3 -> 2.10.4 xkeyboard:upgrade 2.26 -> 2.27 gobject-introspection:upgrade 1.60.1 -> 1.60.2 Change-Id: I3df401c6822e1c5c2ee9cff57c7264fe31c6d22d Signed-off-by: Brad Bishop --- .../0007-Remove-Makefile-hardcoded-arch-tune.patch | 8 + .../recipes-multimedia/omxplayer/omxplayer_git.bb | 1 + poky/bitbake/lib/bb/tests/utils.py | 4 + poky/meta/classes/base.bbclass | 2 + poky/meta/classes/binconfig.bbclass | 9 - poky/meta/classes/buildhistory.bbclass | 4 + poky/meta/classes/cmake.bbclass | 2 +- poky/meta/classes/cve-check.bbclass | 90 ++- poky/meta/classes/insane.bbclass | 10 +- poky/meta/classes/kernel-fitimage.bbclass | 13 +- poky/meta/conf/bitbake.conf | 2 +- poky/meta/conf/distro/include/maintainers.inc | 5 + poky/meta/conf/distro/include/yocto-uninative.inc | 8 +- .../meta/conf/machine/include/riscv/arch-riscv.inc | 10 + poky/meta/conf/machine/include/riscv/qemuriscv.inc | 50 ++ .../meta/conf/machine/include/riscv/tune-riscv.inc | 19 + poky/meta/conf/machine/qemuriscv64.conf | 11 + poky/meta/lib/oe/rootfs.py | 1 + poky/meta/lib/oeqa/runtime/cases/logrotate.py | 4 +- poky/meta/lib/oeqa/selftest/cases/manifest.py | 7 +- poky/meta/lib/oeqa/utils/logparser.py | 4 +- ...0001-Makefile-Don-t-specify-mabi-or-march.patch | 38 + .../0002-lib-Create-a-sbi_ipi_data-structure.patch | 128 ++++ poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc | 37 + poky/meta/recipes-bsp/opensbi/opensbi_0.3.bb | 49 ++ .../recipes-connectivity/openssh/openssh_8.0p1.bb | 2 +- ...01-Fix-build-error-for-aarch64-big-endian.patch | 43 ++ .../recipes-connectivity/openssl/openssl_1.1.1c.bb | 1 + .../glib-2.0/glib-2.0/glib-meson.cross | 3 + poky/meta/recipes-core/glib-2.0/glib-2.0_2.60.3.bb | 2 +- .../libxcrypt/libxcrypt-compat_4.4.6.bb | 18 + .../meta/recipes-core/libxcrypt/libxcrypt_4.4.6.bb | 3 + poky/meta/recipes-core/meta/cve-update-db.bb | 121 +++ .../recipes-core/meta/target-sdk-provides-dummy.bb | 1 + poky/meta/recipes-core/meta/uninative-tarball.bb | 1 + .../packagegroups/packagegroup-base.bb | 1 + .../systemd/systemd-conf/wired.network | 1 + .../volatile-binds/files/mount-copybind | 4 +- poky/meta/recipes-devtools/apt/apt-package.inc | 2 +- ...Add-LDFLAGS-when-building-libbtrfsutil.so.patch | 26 - ...s-progs-Pass-CFLAGS-and-LDFLAGS-to-Python.patch | 43 -- .../btrfs-tools/btrfs-tools_5.1.1.bb | 46 ++ .../btrfs-tools/btrfs-tools_5.1.bb | 48 -- .../createrepo-c/createrepo-c_0.14.0.bb | 34 - .../createrepo-c/createrepo-c_0.14.2.bb | 34 + poky/meta/recipes-devtools/dpkg/dpkg/pager.patch | 21 + poky/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb | 1 + poky/meta/recipes-devtools/gcc/gcc-runtime.inc | 29 +- poky/meta/recipes-devtools/go/go-1.12.inc | 6 +- .../libmodulemd/libmodulemd_git.bb | 4 +- .../recipes-devtools/librepo/librepo_1.10.2.bb | 21 - .../recipes-devtools/librepo/librepo_1.10.3.bb | 21 + .../meson/meson/0003-native_bindir.patch | 2 +- ...rn-correct-error-number-in-ubi_get_vol_in.patch | 92 --- poky/meta/recipes-devtools/mtd/mtd-utils_git.bb | 14 +- .../recipes-devtools/perl/files/perl-rdepends.txt | 48 ++ .../perl/libmodule-build-perl/run-ptest | 16 + .../perl/libmodule-build-perl_0.4229.bb | 103 +++ .../python/python3/crosspythonpath.patch | 25 + poky/meta/recipes-devtools/python/python3_3.7.3.bb | 12 +- poky/meta/recipes-devtools/python/python_2.7.16.bb | 2 +- poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb | 1 + poky/meta/recipes-devtools/vala/vala_0.44.3.bb | 8 - poky/meta/recipes-devtools/vala/vala_0.44.5.bb | 8 + poky/meta/recipes-extended/less/less_550.bb | 43 -- poky/meta/recipes-extended/less/less_551.bb | 43 ++ .../recipes-extended/lighttpd/lighttpd_1.4.53.bb | 84 --- .../recipes-extended/lighttpd/lighttpd_1.4.54.bb | 84 +++ .../newt/libnewt-python_0.52.20.bb | 28 - poky/meta/recipes-extended/newt/libnewt_0.52.20.bb | 13 +- .../recipes-extended/parted/files/dm_check.patch | 22 + poky/meta/recipes-extended/parted/parted_3.2.bb | 1 + .../recipes-extended/perl/libxml-sax-perl_1.00.bb | 35 - .../recipes-extended/perl/libxml-sax-perl_1.02.bb | 42 ++ ...onfigure.ac-fix-configure-error-with-dash.patch | 36 + poky/meta/recipes-extended/shadow/shadow.inc | 1 + poky/meta/recipes-extended/sysstat/sysstat.inc | 11 +- .../meta/recipes-gnome/epiphany/epiphany_3.32.2.bb | 21 - .../meta/recipes-gnome/epiphany/epiphany_3.32.3.bb | 20 + ...tils-Clean-up-ephy_web_application_create.patch | 79 -- .../gobject-introspection_1.60.1.bb | 206 ----- .../gobject-introspection_1.60.2.bb | 206 +++++ .../meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb | 4 +- .../xorg-lib/xkeyboard-config_2.26.bb | 32 - .../xorg-lib/xkeyboard-config_2.27.bb | 32 + poky/meta/recipes-kernel/linux/linux-dummy.bb | 5 + poky/meta/recipes-kernel/linux/linux-yocto-dev.bb | 2 +- .../recipes-kernel/linux/linux-yocto-rt_4.19.bb | 2 +- .../recipes-kernel/linux/linux-yocto-rt_5.0.bb | 2 +- .../recipes-kernel/linux/linux-yocto-tiny_4.19.bb | 2 +- .../recipes-kernel/linux/linux-yocto-tiny_5.0.bb | 2 +- poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb | 2 +- poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb | 5 +- .../recipes-kernel/lttng/lttng-tools/run-ptest | 2 +- .../recipes-kernel/lttng/lttng-tools_2.10.6.bb | 2 +- ...-around-broken-_SC_NPROCESSORS_CONF-on-MU.patch | 109 --- poky/meta/recipes-kernel/lttng/lttng-ust_2.10.3.bb | 49 -- poky/meta/recipes-kernel/lttng/lttng-ust_2.10.4.bb | 48 ++ .../make-mod-scripts/make-mod-scripts_1.0.bb | 2 +- .../wireless-regdb/wireless-regdb_2019.06.03.bb | 44 ++ poky/meta/recipes-support/curl/curl_7.64.1.bb | 80 -- poky/meta/recipes-support/curl/curl_7.65.1.bb | 80 ++ poky/meta/recipes-support/gnupg/gnupg_2.2.15.bb | 56 -- poky/meta/recipes-support/gnupg/gnupg_2.2.16.bb | 56 ++ poky/meta/recipes-support/gnutls/gnutls_3.6.7.bb | 64 -- poky/meta/recipes-support/gnutls/gnutls_3.6.8.bb | 64 ++ .../recipes-support/libevdev/libevdev_1.6.0.bb | 14 - .../recipes-support/libevdev/libevdev_1.7.0.bb | 14 + .../0001-test-fix-32bit-linux-regress.patch | 48 -- .../recipes-support/libevent/libevent_2.1.10.bb | 46 ++ .../recipes-support/libevent/libevent_2.1.8.bb | 47 -- .../libffi/libffi/0001-New-RISC-V-port-281.patch | 827 +++++++++++++++++++++ poky/meta/recipes-support/libffi/libffi_3.2.1.bb | 5 +- .../files/0001-Fix-security-framework-bypass.patch | 124 +++ .../meta/recipes-support/libxslt/libxslt_1.1.33.bb | 4 +- ...1-If-the-libc-is-lacking-argp-use-libargp.patch | 60 -- .../rng-tools/0001-configure.ac-fix-typo.patch | 27 - ...rgument-to-control-the-libargp-dependency.patch | 95 --- .../rng-tools/fix-rngd-fail-to-stop.patch | 25 + .../rng-tools-5-fix-textrels-on-PIC-x86.patch | 114 --- .../rng-tools/rng-tools/underquote.patch | 46 -- .../recipes-support/rng-tools/rng-tools_6.6.bb | 56 -- .../recipes-support/rng-tools/rng-tools_6.7.bb | 53 ++ ...irectories.without.sandbox-install.prefix.patch | 71 ++ poky/meta/recipes-support/serf/serf_1.3.9.bb | 1 + poky/scripts/lib/wic/plugins/source/bootimg-efi.py | 22 +- 126 files changed, 2995 insertions(+), 1809 deletions(-) create mode 100644 meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0007-Remove-Makefile-hardcoded-arch-tune.patch create mode 100644 poky/meta/conf/machine/include/riscv/arch-riscv.inc create mode 100644 poky/meta/conf/machine/include/riscv/qemuriscv.inc create mode 100644 poky/meta/conf/machine/include/riscv/tune-riscv.inc create mode 100644 poky/meta/conf/machine/qemuriscv64.conf create mode 100644 poky/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch create mode 100644 poky/meta/recipes-bsp/opensbi/files/0002-lib-Create-a-sbi_ipi_data-structure.patch create mode 100644 poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc create mode 100644 poky/meta/recipes-bsp/opensbi/opensbi_0.3.bb create mode 100644 poky/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch create mode 100644 poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.6.bb create mode 100644 poky/meta/recipes-core/meta/cve-update-db.bb delete mode 100644 poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch delete mode 100644 poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0003-btrfs-progs-Pass-CFLAGS-and-LDFLAGS-to-Python.patch create mode 100644 poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.1.bb delete mode 100644 poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.bb delete mode 100644 poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.0.bb create mode 100644 poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.2.bb create mode 100644 poky/meta/recipes-devtools/dpkg/dpkg/pager.patch delete mode 100644 poky/meta/recipes-devtools/librepo/librepo_1.10.2.bb create mode 100644 poky/meta/recipes-devtools/librepo/librepo_1.10.3.bb delete mode 100644 poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch create mode 100644 poky/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest create mode 100644 poky/meta/recipes-devtools/perl/libmodule-build-perl_0.4229.bb create mode 100644 poky/meta/recipes-devtools/python/python3/crosspythonpath.patch delete mode 100644 poky/meta/recipes-devtools/vala/vala_0.44.3.bb create mode 100644 poky/meta/recipes-devtools/vala/vala_0.44.5.bb delete mode 100644 poky/meta/recipes-extended/less/less_550.bb create mode 100644 poky/meta/recipes-extended/less/less_551.bb delete mode 100644 poky/meta/recipes-extended/lighttpd/lighttpd_1.4.53.bb create mode 100644 poky/meta/recipes-extended/lighttpd/lighttpd_1.4.54.bb delete mode 100644 poky/meta/recipes-extended/newt/libnewt-python_0.52.20.bb create mode 100644 poky/meta/recipes-extended/parted/files/dm_check.patch delete mode 100644 poky/meta/recipes-extended/perl/libxml-sax-perl_1.00.bb create mode 100644 poky/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb create mode 100644 poky/meta/recipes-extended/shadow/files/0001-configure.ac-fix-configure-error-with-dash.patch delete mode 100644 poky/meta/recipes-gnome/epiphany/epiphany_3.32.2.bb create mode 100644 poky/meta/recipes-gnome/epiphany/epiphany_3.32.3.bb delete mode 100644 poky/meta/recipes-gnome/epiphany/files/0001-web-app-utils-Clean-up-ephy_web_application_create.patch delete mode 100644 poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.1.bb create mode 100644 poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.2.bb delete mode 100644 poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.26.bb create mode 100644 poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb delete mode 100644 poky/meta/recipes-kernel/lttng/lttng-ust/0001-compat-work-around-broken-_SC_NPROCESSORS_CONF-on-MU.patch delete mode 100644 poky/meta/recipes-kernel/lttng/lttng-ust_2.10.3.bb create mode 100644 poky/meta/recipes-kernel/lttng/lttng-ust_2.10.4.bb create mode 100644 poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2019.06.03.bb delete mode 100644 poky/meta/recipes-support/curl/curl_7.64.1.bb create mode 100644 poky/meta/recipes-support/curl/curl_7.65.1.bb delete mode 100644 poky/meta/recipes-support/gnupg/gnupg_2.2.15.bb create mode 100644 poky/meta/recipes-support/gnupg/gnupg_2.2.16.bb delete mode 100644 poky/meta/recipes-support/gnutls/gnutls_3.6.7.bb create mode 100644 poky/meta/recipes-support/gnutls/gnutls_3.6.8.bb delete mode 100644 poky/meta/recipes-support/libevdev/libevdev_1.6.0.bb create mode 100644 poky/meta/recipes-support/libevdev/libevdev_1.7.0.bb delete mode 100644 poky/meta/recipes-support/libevent/libevent/0001-test-fix-32bit-linux-regress.patch create mode 100644 poky/meta/recipes-support/libevent/libevent_2.1.10.bb delete mode 100644 poky/meta/recipes-support/libevent/libevent_2.1.8.bb create mode 100644 poky/meta/recipes-support/libffi/libffi/0001-New-RISC-V-port-281.patch create mode 100644 poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch delete mode 100644 poky/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch delete mode 100644 poky/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch delete mode 100644 poky/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch create mode 100644 poky/meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch delete mode 100644 poky/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch delete mode 100644 poky/meta/recipes-support/rng-tools/rng-tools/underquote.patch delete mode 100644 poky/meta/recipes-support/rng-tools/rng-tools_6.6.bb create mode 100644 poky/meta/recipes-support/rng-tools/rng-tools_6.7.bb create mode 100644 poky/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch (limited to 'poky/bitbake/lib/bb') diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0007-Remove-Makefile-hardcoded-arch-tune.patch b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0007-Remove-Makefile-hardcoded-arch-tune.patch new file mode 100644 index 000000000..03319739b --- /dev/null +++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0007-Remove-Makefile-hardcoded-arch-tune.patch @@ -0,0 +1,8 @@ +--- a/Makefile 2019-06-20 15:04:53.390282996 +0200 ++++ b/Makefile 2019-06-20 15:03:45.538763872 +0200 +@@ -1,4 +1,4 @@ +-CFLAGS=-pipe -mfloat-abi=hard -mcpu=arm1176jzf-s -fomit-frame-pointer -mabi=aapcs-linux -mtune=arm1176jzf-s -mfpu=vfp -Wno-psabi -mno-apcs-stack-check -g -mstructure-size-boundary=32 -mno-sched-prolog ++CFLAGS+= -fomit-frame-pointer -mabi=aapcs-linux -Wno-psabi -mno-apcs-stack-check -g -mstructure-size-boundary=32 -mno-sched-prolog + CFLAGS+=-std=c++0x -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DHAVE_LIBSWRESAMPLE_SWRESAMPLE_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST + + LDFLAGS=-L$(SDKSTAGE)/opt/vc/lib/ diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb index aad2fed04..831a91be6 100644 --- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb +++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb @@ -33,6 +33,7 @@ SRC_URI = "git://github.com/popcornmix/omxplayer.git;protocol=git;branch=master file://0006-Prevent-ffmpeg-configure-compile-race-condition.patch \ file://0001-Specify-cc-cxx-and-ld-variables-from-environment.patch \ file://cross-crompile-ffmpeg.patch \ + file://0007-Remove-Makefile-hardcoded-arch-tune.patch \ " SRC_URI_append = "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", " file://0001-Fix-build-with-vc4-driver.patch ", "", d)}" diff --git a/poky/bitbake/lib/bb/tests/utils.py b/poky/bitbake/lib/bb/tests/utils.py index 4d788281a..f4adf1d44 100644 --- a/poky/bitbake/lib/bb/tests/utils.py +++ b/poky/bitbake/lib/bb/tests/utils.py @@ -29,6 +29,10 @@ class VerCmpString(unittest.TestCase): self.assertTrue(result < 0) result = bb.utils.vercmp_string('1.1', '1.0+1.1-beta1') self.assertTrue(result > 0) + result = bb.utils.vercmp_string('1a', '1a1') + self.assertTrue(result < 0) + result = bb.utils.vercmp_string('1a1', '1a') + self.assertTrue(result > 0) result = bb.utils.vercmp_string('1.', '1.1') self.assertTrue(result < 0) result = bb.utils.vercmp_string('1.1', '1.') diff --git a/poky/meta/classes/base.bbclass b/poky/meta/classes/base.bbclass index 90af8ba72..0c8a4b286 100644 --- a/poky/meta/classes/base.bbclass +++ b/poky/meta/classes/base.bbclass @@ -15,6 +15,8 @@ OE_EXTRA_IMPORTS ?= "" OE_IMPORTS += "os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath oe.license ${OE_EXTRA_IMPORTS}" OE_IMPORTS[type] = "list" +PACKAGECONFIG_CONFARGS ??= "" + def oe_import(d): import sys diff --git a/poky/meta/classes/binconfig.bbclass b/poky/meta/classes/binconfig.bbclass index 133b9537c..9112ed460 100644 --- a/poky/meta/classes/binconfig.bbclass +++ b/poky/meta/classes/binconfig.bbclass @@ -40,15 +40,6 @@ binconfig_package_preprocess () { -e 's:${STAGING_DIR_HOST}${prefix}:${prefix}:' \ $config done - for lafile in `find ${PKGD} -type f -name "*.la"` ; do - sed -i \ - -e 's:${STAGING_BASELIBDIR}:${base_libdir}:g;' \ - -e 's:${STAGING_LIBDIR}:${libdir}:g;' \ - -e 's:${STAGING_INCDIR}:${includedir}:g;' \ - -e 's:${STAGING_DATADIR}:${datadir}:' \ - -e 's:${STAGING_DIR_HOST}${prefix}:${prefix}:' \ - $lafile - done } SYSROOT_PREPROCESS_FUNCS += "binconfig_sysroot_preprocess" diff --git a/poky/meta/classes/buildhistory.bbclass b/poky/meta/classes/buildhistory.bbclass index 796f68cf8..2e501df24 100644 --- a/poky/meta/classes/buildhistory.bbclass +++ b/poky/meta/classes/buildhistory.bbclass @@ -839,11 +839,15 @@ python buildhistory_eventhandler() { if e.data.getVar("BUILDHISTORY_COMMIT") == "1": bb.note("Writing buildhistory") bb.build.exec_func("buildhistory_write_sigs", d) + import time + start=time.time() localdata = bb.data.createCopy(e.data) localdata.setVar('BUILDHISTORY_BUILD_FAILURES', str(e._failures)) interrupted = getattr(e, '_interrupted', 0) localdata.setVar('BUILDHISTORY_BUILD_INTERRUPTED', str(interrupted)) bb.build.exec_func("buildhistory_commit", localdata) + stop=time.time() + bb.note("Writing buildhistory took: %s seconds" % round(stop-start)) else: bb.note("No commit since BUILDHISTORY_COMMIT != '1'") } diff --git a/poky/meta/classes/cmake.bbclass b/poky/meta/classes/cmake.bbclass index f80a7e2f1..2b317c832 100644 --- a/poky/meta/classes/cmake.bbclass +++ b/poky/meta/classes/cmake.bbclass @@ -119,7 +119,7 @@ set( ENV{QT_CONF_PATH} ${WORKDIR}/qt.conf ) # directory as rpath by default set( CMAKE_INSTALL_RPATH ${OECMAKE_RPATH} ) -# Use native cmake modules +# Use our cmake modules list(APPEND CMAKE_MODULE_PATH "${STAGING_DATADIR}/cmake/Modules/") # add for non /usr/lib libdir, e.g. /usr/lib64 diff --git a/poky/meta/classes/cve-check.bbclass b/poky/meta/classes/cve-check.bbclass index 743bc08a4..379f7121c 100644 --- a/poky/meta/classes/cve-check.bbclass +++ b/poky/meta/classes/cve-check.bbclass @@ -26,7 +26,7 @@ CVE_PRODUCT ??= "${BPN}" CVE_VERSION ??= "${PV}" CVE_CHECK_DB_DIR ?= "${DL_DIR}/CVE_CHECK" -CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvd.db" +CVE_CHECK_DB_FILE ?= "${CVE_CHECK_DB_DIR}/nvd-json.db" CVE_CHECK_LOG ?= "${T}/cve.log" CVE_CHECK_TMP_FILE ?= "${TMPDIR}/cve_check" @@ -62,7 +62,7 @@ python do_cve_check () { } addtask cve_check after do_unpack before do_build -do_cve_check[depends] = "cve-check-tool-native:do_populate_sysroot cve-check-tool-native:do_populate_cve_db" +do_cve_check[depends] = "cve-update-db:do_populate_cve_db" do_cve_check[nostamp] = "1" python cve_check_cleanup () { @@ -163,61 +163,55 @@ def get_patches_cves(d): def check_cves(d, patched_cves): """ - Run cve-check-tool looking for patched and unpatched CVEs. + Connect to the NVD database and find unpatched cves. """ - import ast, csv, tempfile, subprocess, io + from distutils.version import LooseVersion - cves_patched = [] cves_unpatched = [] - bpn = d.getVar("CVE_PRODUCT") + # CVE_PRODUCT can contain more than one product (eg. curl/libcurl) + bpn = d.getVar("CVE_PRODUCT").split() # If this has been unset then we're not scanning for CVEs here (for example, image recipes) - if not bpn: + if len(bpn) == 0: return ([], []) pv = d.getVar("CVE_VERSION").split("+git")[0] - cves = " ".join(patched_cves) - cve_db_dir = d.getVar("CVE_CHECK_DB_DIR") cve_whitelist = ast.literal_eval(d.getVar("CVE_CHECK_CVE_WHITELIST")) - cve_cmd = "cve-check-tool" - cmd = [cve_cmd, "--no-html", "--skip-update", "--csv", "--not-affected", "-t", "faux", "-d", cve_db_dir] # If the recipe has been whitlisted we return empty lists if d.getVar("PN") in d.getVar("CVE_CHECK_PN_WHITELIST").split(): bb.note("Recipe has been whitelisted, skipping check") return ([], []) - try: - # Write the faux CSV file to be used with cve-check-tool - fd, faux = tempfile.mkstemp(prefix="cve-faux-") - with os.fdopen(fd, "w") as f: - for pn in bpn.split(): - f.write("%s,%s,%s,\n" % (pn, pv, cves)) - cmd.append(faux) - - output = subprocess.check_output(cmd).decode("utf-8") - bb.debug(2, "Output of command %s:\n%s" % ("\n".join(cmd), output)) - except subprocess.CalledProcessError as e: - bb.warn("Couldn't check for CVEs: %s (output %s)" % (e, e.output)) - finally: - os.remove(faux) - - for row in csv.reader(io.StringIO(output)): - # Third row has the unpatched CVEs - if row[2]: - for cve in row[2].split(): - # Skip if the CVE has been whitlisted for the current version - if pv in cve_whitelist.get(cve,[]): - bb.note("%s-%s has been whitelisted for %s" % (bpn, pv, cve)) - else: - cves_unpatched.append(cve) - bb.debug(2, "%s-%s is not patched for %s" % (bpn, pv, cve)) - # Fourth row has patched CVEs - if row[3]: - for cve in row[3].split(): - cves_patched.append(cve) - bb.debug(2, "%s-%s is patched for %s" % (bpn, pv, cve)) - - return (cves_patched, cves_unpatched) + import sqlite3 + db_file = d.getVar("CVE_CHECK_DB_FILE") + conn = sqlite3.connect(db_file) + c = conn.cursor() + + query = """SELECT * FROM PRODUCTS WHERE + (PRODUCT IS '{0}' AND VERSION = '{1}' AND OPERATOR IS '=') OR + (PRODUCT IS '{0}' AND OPERATOR IS '<=');""" + for idx in range(len(bpn)): + for row in c.execute(query.format(bpn[idx],pv)): + cve = row[1] + version = row[4] + + try: + discardVersion = LooseVersion(version) < LooseVersion(pv) + except: + discardVersion = True + + if pv in cve_whitelist.get(cve,[]): + bb.note("%s-%s has been whitelisted for %s" % (bpn[idx], pv, cve)) + elif cve in patched_cves: + bb.note("%s has been patched" % (cve)) + elif discardVersion: + bb.debug(2, "Do not consider version %s " % (version)) + else: + cves_unpatched.append(cve) + bb.debug(2, "%s-%s is not patched for %s" % (bpn[idx], pv, cve)) + conn.close() + + return (list(patched_cves), cves_unpatched) def get_cve_info(d, cves): """ @@ -241,9 +235,10 @@ def get_cve_info(d, cves): for row in cur.execute(query, tuple(cves)): cve_data[row[0]] = {} cve_data[row[0]]["summary"] = row[1] - cve_data[row[0]]["score"] = row[2] - cve_data[row[0]]["modified"] = row[3] - cve_data[row[0]]["vector"] = row[4] + cve_data[row[0]]["scorev2"] = row[2] + cve_data[row[0]]["scorev3"] = row[3] + cve_data[row[0]]["modified"] = row[4] + cve_data[row[0]]["vector"] = row[5] conn.close() return cve_data @@ -270,7 +265,8 @@ def cve_write_data(d, patched, unpatched, cve_data): unpatched_cves.append(cve) write_string += "CVE STATUS: Unpatched\n" write_string += "CVE SUMMARY: %s\n" % cve_data[cve]["summary"] - write_string += "CVSS v2 BASE SCORE: %s\n" % cve_data[cve]["score"] + write_string += "CVSS v2 BASE SCORE: %s\n" % cve_data[cve]["scorev2"] + write_string += "CVSS v3 BASE SCORE: %s\n" % cve_data[cve]["scorev3"] write_string += "VECTOR: %s\n" % cve_data[cve]["vector"] write_string += "MORE INFORMATION: %s%s\n\n" % (nvd_link, cve) diff --git a/poky/meta/classes/insane.bbclass b/poky/meta/classes/insane.bbclass index fdc20c41a..0695a0443 100644 --- a/poky/meta/classes/insane.bbclass +++ b/poky/meta/classes/insane.bbclass @@ -259,13 +259,6 @@ def package_qa_check_dbg(path, name, d, elf, messages): package_qa_add_message(messages, "debug-files", "non debug package contains .debug directory: %s path %s" % \ (name, package_qa_clean_path(path,d))) -QAPATHTEST[perms] = "package_qa_check_perm" -def package_qa_check_perm(path,name,d, elf, messages): - """ - Check the permission of files - """ - return - QAPATHTEST[arch] = "package_qa_check_arch" def package_qa_check_arch(path,name,d, elf, messages): """ @@ -408,7 +401,8 @@ def package_qa_check_buildpaths(path, name, d, elf, messages): with open(path, 'rb') as f: file_content = f.read() if tmpdir in file_content: - package_qa_add_message(messages, "buildpaths", "File %s in package contained reference to tmpdir" % package_qa_clean_path(path,d)) + trimmed = path.replace(os.path.join (d.getVar("PKGDEST"), name), "") + package_qa_add_message(messages, "buildpaths", "File %s in package %s contains reference to TMPDIR" % (trimmed, name)) QAPATHTEST[xorg-driver-abi] = "package_qa_check_xorg_driver_abi" diff --git a/poky/meta/classes/kernel-fitimage.bbclass b/poky/meta/classes/kernel-fitimage.bbclass index 9e224daf0..b51882dce 100644 --- a/poky/meta/classes/kernel-fitimage.bbclass +++ b/poky/meta/classes/kernel-fitimage.bbclass @@ -50,6 +50,9 @@ python __anonymous () { # Options for the device tree compiler passed to mkimage '-D' feature: UBOOT_MKIMAGE_DTCOPTS ??= "" +# fitImage Hash Algo +FIT_HASH_ALG ?= "sha256" + # # Emit the fitImage ITS header # @@ -109,7 +112,7 @@ EOF # $4 ... Compression type fitimage_emit_section_kernel() { - kernel_csum="sha1" + kernel_csum="${FIT_HASH_ALG}" ENTRYPOINT="${UBOOT_ENTRYPOINT}" if [ -n "${UBOOT_ENTRYSYMBOL}" ]; then @@ -142,7 +145,7 @@ EOF # $3 ... Path to DTB image fitimage_emit_section_dtb() { - dtb_csum="sha1" + dtb_csum="${FIT_HASH_ALG}" dtb_loadline="" dtb_ext=${DTB##*.} @@ -176,7 +179,7 @@ EOF # $3 ... Path to setup image fitimage_emit_section_setup() { - setup_csum="sha1" + setup_csum="${FIT_HASH_ALG}" cat << EOF >> ${1} setup@${2} { @@ -203,7 +206,7 @@ EOF # $3 ... Path to ramdisk image fitimage_emit_section_ramdisk() { - ramdisk_csum="sha1" + ramdisk_csum="${FIT_HASH_ALG}" ramdisk_ctype="none" ramdisk_loadline="" ramdisk_entryline="" @@ -261,7 +264,7 @@ EOF # $6 ... default flag fitimage_emit_section_config() { - conf_csum="sha1" + conf_csum="${FIT_HASH_ALG}" if [ -n "${UBOOT_SIGN_ENABLE}" ] ; then conf_sign_keyname="${UBOOT_SIGN_KEYNAME}" fi diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf index c5313ccd1..4b907d682 100644 --- a/poky/meta/conf/bitbake.conf +++ b/poky/meta/conf/bitbake.conf @@ -492,7 +492,7 @@ HOSTTOOLS += " \ [ ar as awk basename bash bzip2 cat chgrp chmod chown chrpath cmp comm cp cpio \ cpp cut date dd diff diffstat dirname du echo egrep env expand expr false \ fgrep file find flock g++ gawk gcc getconf getopt git grep gunzip gzip \ - head hostname id install ld ldd ln ls make makeinfo md5sum mkdir mknod \ + head hostname iconv id install ld ldd ln ls make makeinfo md5sum mkdir mknod \ mktemp mv nm objcopy objdump od patch perl pod2man pr printf pwd python2 \ python2.7 python3 ranlib readelf readlink realpath rm rmdir rpcgen sed seq sh sha256sum \ sleep sort split stat strings strip tail tar tee test touch tr true uname \ diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc index 1923ae6bb..64856e105 100644 --- a/poky/meta/conf/distro/include/maintainers.inc +++ b/poky/meta/conf/distro/include/maintainers.inc @@ -136,6 +136,7 @@ RECIPE_MAINTAINER_pn-cryptodev-tests = "Robert Yang " RECIPE_MAINTAINER_pn-cups = "Chen Qi " RECIPE_MAINTAINER_pn-curl = "Armin Kuster " RECIPE_MAINTAINER_pn-cve-check-tool = "Ross Burton " +RECIPE_MAINTAINER_pn-cve-update-db = "Ross Burton " RECIPE_MAINTAINER_pn-cwautomacros = "Ross Burton " RECIPE_MAINTAINER_pn-db = "Mark Hatle " RECIPE_MAINTAINER_pn-dbus = "Chen Qi " @@ -355,6 +356,7 @@ RECIPE_MAINTAINER_pn-libksba = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libmatchbox = "Ross Burton " RECIPE_MAINTAINER_pn-libmnl = "Khem Raj " RECIPE_MAINTAINER_pn-libmpc = "Khem Raj " +RECIPE_MAINTAINER_pn-libmodule-build-perl = "Tim Orling " RECIPE_MAINTAINER_pn-libmodulemd = "Alexander Kanavin " RECIPE_MAINTAINER_pn-libnewt = "Hongxu Jia " RECIPE_MAINTAINER_pn-libnewt-python = "Hongxu Jia " @@ -409,6 +411,7 @@ RECIPE_MAINTAINER_pn-libxcb = "Armin Kuster " RECIPE_MAINTAINER_pn-libxcomposite = "Armin Kuster " RECIPE_MAINTAINER_pn-libxcursor = "Armin Kuster " RECIPE_MAINTAINER_pn-libxcrypt = "Khem Raj " +RECIPE_MAINTAINER_pn-libxcrypt-compat = "Khem Raj " RECIPE_MAINTAINER_pn-libxdamage = "Armin Kuster " RECIPE_MAINTAINER_pn-libxdmcp = "Armin Kuster " RECIPE_MAINTAINER_pn-libxext = "Armin Kuster " @@ -538,6 +541,7 @@ RECIPE_MAINTAINER_pn-nspr = "Armin Kuster " RECIPE_MAINTAINER_pn-nss = "Armin Kuster " RECIPE_MAINTAINER_pn-nss-myhostname = "Anuj Mittal " RECIPE_MAINTAINER_pn-ofono = "Ross Burton " +RECIPE_MAINTAINER_pn-opensbi = "Alistair Francis " RECIPE_MAINTAINER_pn-openssh = "Armin Kuster " RECIPE_MAINTAINER_pn-openssl = "Alexander Kanavin " RECIPE_MAINTAINER_pn-opkg = "Alejandro del Castillo " @@ -727,6 +731,7 @@ RECIPE_MAINTAINER_pn-weston-init = "Denys Dmytriyenko " RECIPE_MAINTAINER_pn-wget = "Yi Zhao " RECIPE_MAINTAINER_pn-which = "Anuj Mittal " RECIPE_MAINTAINER_pn-wic-tools = "Anuj Mittal " +RECIPE_MAINTAINER_pn-wireless-regdb = "Adrian Bunk " RECIPE_MAINTAINER_pn-wpa-supplicant = "Changhyeok Bae " RECIPE_MAINTAINER_pn-x11perf = "Armin Kuster " RECIPE_MAINTAINER_pn-x264 = "Anuj Mittal " diff --git a/poky/meta/conf/distro/include/yocto-uninative.inc b/poky/meta/conf/distro/include/yocto-uninative.inc index 0bb8f7af1..df2434685 100644 --- a/poky/meta/conf/distro/include/yocto-uninative.inc +++ b/poky/meta/conf/distro/include/yocto-uninative.inc @@ -8,7 +8,7 @@ UNINATIVE_MAXGLIBCVERSION = "2.29" -UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/2.5/" -UNINATIVE_CHECKSUM[aarch64] ?= "ca977ff95c77f983570141908d451ff7d78add2864471605af404302bb36a1fa" -UNINATIVE_CHECKSUM[i686] ?= "7b5822891c293795faf8a4a80586b36f8cde405387524916a24f9055ea82f7ca" -UNINATIVE_CHECKSUM[x86_64] ?= "ed0ac07c710b711925cb976685dd855fb1d442dd840d00194751c18bf480c4ed" +UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/2.6/" +UNINATIVE_CHECKSUM[aarch64] ?= "a37118fc8b423f48146120707b81dd15017512c3e8ef9e6ca2cb3a033f4f4046" +UNINATIVE_CHECKSUM[i686] ?= "3234fc3ded810225071f23a0e9a99f4f8c2480059945a848eff076ce78122ade" +UNINATIVE_CHECKSUM[x86_64] ?= "133387753a9acf3e1b788103c59fac91e968e2ee331d7a4b9498e926ada7be57" diff --git a/poky/meta/conf/machine/include/riscv/arch-riscv.inc b/poky/meta/conf/machine/include/riscv/arch-riscv.inc new file mode 100644 index 000000000..19f8f3e21 --- /dev/null +++ b/poky/meta/conf/machine/include/riscv/arch-riscv.inc @@ -0,0 +1,10 @@ +# RISCV Architecture definition + +DEFAULTTUNE ?= "riscv64" + +TUNE_ARCH = "${TUNE_ARCH_tune-${DEFAULTTUNE}}" +TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}" +TUNE_CCARGS .= "" + +# QEMU usermode fails with invalid instruction error (For riscv32) +MACHINE_FEATURES_BACKFILL_CONSIDERED_append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv32', ' qemu-usermode', '', d)}" diff --git a/poky/meta/conf/machine/include/riscv/qemuriscv.inc b/poky/meta/conf/machine/include/riscv/qemuriscv.inc new file mode 100644 index 000000000..84d09fa78 --- /dev/null +++ b/poky/meta/conf/machine/include/riscv/qemuriscv.inc @@ -0,0 +1,50 @@ +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" + +require conf/machine/include/qemu.inc +require conf/machine/include/riscv/tune-riscv.inc + +MACHINE_FEATURES = "screen keyboard ext2 ext3 serial" + +KERNEL_IMAGETYPE = "Image" +KERNEL_IMAGETYPES += "uImage" +KEEPUIMAGE = "no" + +SERIAL_CONSOLES ?= "115200;ttyS0 115200;hvc0" + +IMAGE_FSTYPES_append = " ext4" + +MACHINE_EXTRA_RRECOMMENDS += " kernel-modules" + +EXTRA_IMAGEDEPENDS += "opensbi" +RISCV_SBI_PLAT ?= "qemu/virt" +RISCV_SBI_PAYLOAD ?= "${KERNEL_IMAGETYPE}-${MACHINE}.bin" + +UBOOT_ENTRYPOINT_riscv32 = "0x80400000" +UBOOT_ENTRYPOINT_riscv64 = "0x80200000" + +# qemuboot options +QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi" +QB_MEM = "-m 512" +QB_MACHINE = "-machine virt" +QB_DEFAULT_KERNEL = "fw_jump.elf" +QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" +QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@" +QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" +QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon" +QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" +# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy +QB_OPT_APPEND = " -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-device,rng=rng0" + +BAD_RECOMMENDATIONS += "\ + libcxx-dev \ + libcxx-staticdev \ + compiler-rt-dev \ + compiler-rt-staticdev \ +" + +ASSUME_PROVIDED += "\ + libcxx-dev \ + libcxx-staticdev \ + compiler-rt-dev \ + compiler-rt-staticdev \ +" diff --git a/poky/meta/conf/machine/include/riscv/tune-riscv.inc b/poky/meta/conf/machine/include/riscv/tune-riscv.inc new file mode 100644 index 000000000..1e3a1081e --- /dev/null +++ b/poky/meta/conf/machine/include/riscv/tune-riscv.inc @@ -0,0 +1,19 @@ +require conf/machine/include/riscv/arch-riscv.inc + +TUNEVALID[riscv64] = "Enable 64-bit RISC-V optimizations" +TUNEVALID[riscv32] = "Enable 32-bit RISC-V optimizations" + +TUNEVALID[littleendian] = "Little endian mode" + +AVAILTUNES += "riscv64 riscv32" + +TUNE_FEATURES_tune-riscv64 = "riscv64 littleendian" +TUNE_ARCH_tune-riscv64 = "riscv64" +TUNE_PKGARCH_tune-riscv64 = "riscv64" +PACKAGE_EXTRA_ARCHS_tune-riscv64 = "riscv64" + +TUNE_FEATURES_tune-riscv32 = "riscv32 littleendian" +TUNE_ARCH_tune-riscv32 = "riscv32" +TUNE_PKGARCH_tune-riscv32 = "riscv32" +PACKAGE_EXTRA_ARCHS_tune-riscv32 = "riscv32" + diff --git a/poky/meta/conf/machine/qemuriscv64.conf b/poky/meta/conf/machine/qemuriscv64.conf new file mode 100644 index 000000000..dba8f09e9 --- /dev/null +++ b/poky/meta/conf/machine/qemuriscv64.conf @@ -0,0 +1,11 @@ +#@TYPE: Machine +#@NAME: generic riscv64 machine +#@DESCRIPTION: Machine configuration for running a generic riscv64 + +require conf/machine/include/riscv/qemuriscv.inc + +QB_OPT_APPEND += "-show-cursor -monitor null -device loader,file=${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE},addr=0x80200000" + +EXTRA_IMAGEDEPENDS += "u-boot" +UBOOT_MACHINE = "qemu-riscv64_defconfig" +UBOOT_ELF = "u-boot" diff --git a/poky/meta/lib/oe/rootfs.py b/poky/meta/lib/oe/rootfs.py index 9358f562c..c62fa5f54 100644 --- a/poky/meta/lib/oe/rootfs.py +++ b/poky/meta/lib/oe/rootfs.py @@ -647,6 +647,7 @@ class DpkgRootfs(DpkgOpkgRootfs): if pkg_type in pkgs_to_install: self.pm.install(pkgs_to_install[pkg_type], [False, True][pkg_type == Manifest.PKG_TYPE_ATTEMPT_ONLY]) + self.pm.fix_broken_dependencies() if self.progress_reporter: # Don't support attemptonly, so skip that diff --git a/poky/meta/lib/oeqa/runtime/cases/logrotate.py b/poky/meta/lib/oeqa/runtime/cases/logrotate.py index 8358793a2..bfa57c534 100644 --- a/poky/meta/lib/oeqa/runtime/cases/logrotate.py +++ b/poky/meta/lib/oeqa/runtime/cases/logrotate.py @@ -35,7 +35,9 @@ class LogrotateTest(OERuntimeTestCase): @OETestDepends(['logrotate.LogrotateTest.test_1_logrotate_setup']) def test_2_logrotate(self): - status, output = self.target.run('logrotate -f /etc/logrotate.conf') + status, output = self.target.run('echo "create \n include /etc/logrotate.d" > /tmp/logrotate-test.conf') + status, output = self.target.run('logrotate -f /tmp/logrotate-test.conf') + msg = ('logrotate service could not be reloaded. Status and output: ' '%s and %s' % (status, output)) self.assertEqual(status, 0, msg = msg) diff --git a/poky/meta/lib/oeqa/selftest/cases/manifest.py b/poky/meta/lib/oeqa/selftest/cases/manifest.py index c0b25ab5d..5d13f3546 100644 --- a/poky/meta/lib/oeqa/selftest/cases/manifest.py +++ b/poky/meta/lib/oeqa/selftest/cases/manifest.py @@ -86,11 +86,8 @@ class VerifyManifest(OESelftestTestCase): try: mdir = self.get_dir_from_bb_var('SDK_DEPLOY', self.buildtarget) for k in d_target.keys(): - bb_vars = get_bb_vars(['SDK_NAME', 'SDK_VERSION'], self.buildtarget) - mfilename[k] = "{}-toolchain-{}.{}.manifest".format( - bb_vars['SDK_NAME'], - bb_vars['SDK_VERSION'], - k) + toolchain_outputname = get_bb_var('TOOLCHAIN_OUTPUTNAME', self.buildtarget) + mfilename[k] = "{}.{}.manifest".format(toolchain_outputname, k) mpath[k] = os.path.join(mdir, mfilename[k]) if not os.path.isfile(mpath[k]): self.logger.debug("{}: {} does not exist".format( diff --git a/poky/meta/lib/oeqa/utils/logparser.py b/poky/meta/lib/oeqa/utils/logparser.py index cc6d18d94..b31214b1c 100644 --- a/poky/meta/lib/oeqa/utils/logparser.py +++ b/poky/meta/lib/oeqa/utils/logparser.py @@ -16,7 +16,7 @@ class PtestParser(object): def parse(self, logfile): test_regex = {} test_regex['PASSED'] = re.compile(r"^PASS:(.+)") - test_regex['FAILED'] = re.compile(r"^FAIL:(.+)") + test_regex['FAILED'] = re.compile(r"^FAIL:([^(]+)") test_regex['SKIPPED'] = re.compile(r"^SKIP:(.+)") section_regex = {} @@ -69,7 +69,7 @@ class PtestParser(object): if result: if current_section['name'] not in self.results: self.results[current_section['name']] = {} - self.results[current_section['name']][result.group(1)] = t + self.results[current_section['name']][result.group(1).strip()] = t return self.results, self.sections diff --git a/poky/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch b/poky/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch new file mode 100644 index 000000000..9c2d0eb47 --- /dev/null +++ b/poky/meta/recipes-bsp/opensbi/files/0001-Makefile-Don-t-specify-mabi-or-march.patch @@ -0,0 +1,38 @@ +From f5871e1f3650d6c8a032928cb5d8ca00c275c377 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Fri, 15 Feb 2019 14:57:41 -0800 +Subject: [PATCH] Makefile: Don't specify mabi or march + +To avoid + can't link double-float modules with soft-float modules +errors when building 32-bit openSBI don't specify mabi or march. + +Upstream-Status: Inappropriate [Fixes a 32-bit Yocto flow bug] +Signed-off-by: Alistair Francis +--- + Makefile | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/Makefile b/Makefile +index ae68f55..10851fc 100644 +--- a/Makefile ++++ b/Makefile +@@ -145,7 +145,6 @@ GENFLAGS += $(firmware-genflags-y) + CFLAGS = -g -Wall -Werror -nostdlib -fno-strict-aliasing -O2 + CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls + CFLAGS += -mno-save-restore -mstrict-align +-CFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA) + CFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL) + CFLAGS += $(GENFLAGS) + CFLAGS += $(platform-cflags-y) +@@ -158,7 +157,6 @@ CPPFLAGS += $(firmware-cppflags-y) + ASFLAGS = -g -Wall -nostdlib -D__ASSEMBLY__ + ASFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls + ASFLAGS += -mno-save-restore -mstrict-align +-ASFLAGS += -mabi=$(PLATFORM_RISCV_ABI) -march=$(PLATFORM_RISCV_ISA) + ASFLAGS += -mcmodel=$(PLATFORM_RISCV_CODE_MODEL) + ASFLAGS += $(GENFLAGS) + ASFLAGS += $(platform-asflags-y) +-- +2.20.1 + diff --git a/poky/meta/recipes-bsp/opensbi/files/0002-lib-Create-a-sbi_ipi_data-structure.patch b/poky/meta/recipes-bsp/opensbi/files/0002-lib-Create-a-sbi_ipi_data-structure.patch new file mode 100644 index 000000000..3c846bde6 --- /dev/null +++ b/poky/meta/recipes-bsp/opensbi/files/0002-lib-Create-a-sbi_ipi_data-structure.patch @@ -0,0 +1,128 @@ +From 508a27204cbbca0a9430236e56681e5e0d343fb9 Mon Sep 17 00:00:00 2001 +From: Alistair Francis +Date: Fri, 8 Mar 2019 11:22:22 -0800 +Subject: [PATCH] lib: Create a sbi_ipi_data structure + +Create a sbi_ipi_data structure that holds unpacked IPI information. At +the same time remove ipi_type from the sbi_scratch struct and use a +fixed offset to access it. + +This structure fits in behind the sbi_scratch structure. + +This fixes https://github.com/riscv/opensbi/issues/81 + +Upstream-Status: Backport [https://github.com/riscv/opensbi/commit/508a27204cbbca0a9430236e56681e5e0d343fb9] +Signed-off-by: Alistair Francis +--- + firmware/fw_base.S | 1 - + include/sbi/sbi_scratch.h | 23 ++++++++++++++++------- + lib/sbi_ipi.c | 8 +++++--- + 3 files changed, 21 insertions(+), 11 deletions(-) + +diff --git a/firmware/fw_base.S b/firmware/fw_base.S +index cf2c6a0..69cfc90 100644 +--- a/firmware/fw_base.S ++++ b/firmware/fw_base.S +@@ -183,7 +183,6 @@ _start_warm: + REG_S a4, SBI_SCRATCH_PLATFORM_ADDR_OFFSET(tp) + la a4, _hartid_to_scratch + REG_S a4, SBI_SCRATCH_HARTID_TO_SCRATCH_OFFSET(tp) +- REG_S zero, SBI_SCRATCH_IPI_TYPE_OFFSET(tp) + REG_S zero, SBI_SCRATCH_TMP0_OFFSET(tp) + + /* Setup stack */ +diff --git a/include/sbi/sbi_scratch.h b/include/sbi/sbi_scratch.h +index 8389ef3..70ab384 100644 +--- a/include/sbi/sbi_scratch.h ++++ b/include/sbi/sbi_scratch.h +@@ -28,17 +28,24 @@ + #define SBI_SCRATCH_PLATFORM_ADDR_OFFSET (6 * __SIZEOF_POINTER__) + /** Offset of hartid_to_scratch member in sbi_scratch */ + #define SBI_SCRATCH_HARTID_TO_SCRATCH_OFFSET (7 * __SIZEOF_POINTER__) +-/** Offset of ipi_type member in sbi_scratch */ +-#define SBI_SCRATCH_IPI_TYPE_OFFSET (8 * __SIZEOF_POINTER__) + /** Offset of tmp0 member in sbi_scratch */ +-#define SBI_SCRATCH_TMP0_OFFSET (9 * __SIZEOF_POINTER__) +-/** Maximum size of sbi_scratch */ +-#define SBI_SCRATCH_SIZE 256 ++#define SBI_SCRATCH_TMP0_OFFSET (8 * __SIZEOF_POINTER__) ++ ++/** sbi_ipi_data is located behind sbi_scratch. This struct is not packed. */ ++/** Offset of ipi_type in sbi_ipi_data */ ++#define SBI_IPI_DATA_IPI_TYPE_OFFSET (15 * __SIZEOF_POINTER__) ++ ++/** Maximum size of sbi_scratch and sbi_ipi_data */ ++#define SBI_SCRATCH_SIZE (32 * __SIZEOF_POINTER__) + + #ifndef __ASSEMBLY__ + + #include + ++struct sbi_ipi_data { ++ unsigned long ipi_type; ++}; ++ + /** Representation of per-HART scratch space */ + struct sbi_scratch { + /** Start (or base) address of firmware linked to OpenSBI library */ +@@ -57,8 +64,6 @@ struct sbi_scratch { + unsigned long platform_addr; + /** Address of HART ID to sbi_scratch conversion function */ + unsigned long hartid_to_scratch; +- /** IPI type (or flags) */ +- unsigned long ipi_type; + /** Temporary storage */ + unsigned long tmp0; + } __packed; +@@ -71,6 +76,10 @@ struct sbi_scratch { + #define sbi_scratch_thishart_arg1_ptr() \ + ((void *)(sbi_scratch_thishart_ptr()->next_arg1)) + ++/** Get pointer to sbi_ipi_data from sbi_scratch */ ++#define sbi_ipi_data_ptr(scratch) \ ++((struct sbi_ipi_data *)(void*)scratch + SBI_IPI_DATA_IPI_TYPE_OFFSET) ++ + #endif + + #endif +diff --git a/lib/sbi_ipi.c b/lib/sbi_ipi.c +index 0e371d7..e0f2a19 100644 +--- a/lib/sbi_ipi.c ++++ b/lib/sbi_ipi.c +@@ -31,7 +31,7 @@ static int sbi_ipi_send(struct sbi_scratch *scratch, u32 hartid, u32 event) + * trigger the interrupt + */ + remote_scratch = sbi_hart_id_to_scratch(scratch, hartid); +- atomic_raw_set_bit(event, &remote_scratch->ipi_type); ++ atomic_raw_set_bit(event, &sbi_ipi_data_ptr(remote_scratch)->ipi_type); + mb(); + sbi_platform_ipi_send(plat, hartid); + if (event != SBI_IPI_EVENT_SOFT) +@@ -80,7 +80,7 @@ void sbi_ipi_process(struct sbi_scratch *scratch) + sbi_platform_ipi_clear(plat, hartid); + + do { +- ipi_type = scratch->ipi_type; ++ ipi_type = sbi_ipi_data_ptr(scratch)->ipi_type; + rmb(); + ipi_event = __ffs(ipi_type); + switch (ipi_event) { +@@ -97,12 +97,14 @@ void sbi_ipi_process(struct sbi_scratch *scratch) + sbi_hart_hang(); + break; + }; +- ipi_type = atomic_raw_clear_bit(ipi_event, &scratch->ipi_type); ++ ipi_type = atomic_raw_clear_bit(ipi_event, &sbi_ipi_data_ptr(scratch)->ipi_type); + } while(ipi_type > 0); + } + + int sbi_ipi_init(struct sbi_scratch *scratch, bool cold_boot) + { ++ sbi_ipi_data_ptr(scratch)->ipi_type = 0x00; ++ + /* Enable software interrupts */ + csr_set(CSR_MIE, MIP_MSIP); + +-- +2.22.0 + diff --git a/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc b/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc new file mode 100644 index 000000000..7df168325 --- /dev/null +++ b/poky/meta/recipes-bsp/opensbi/opensbi-payloads.inc @@ -0,0 +1,37 @@ +def riscv_get_extra_oemake_image(d): + sbi_payload = d.getVar('RISCV_SBI_PAYLOAD') + deploy_dir = d.getVar('DEPLOY_DIR_IMAGE') + + if sbi_payload is None: + return "" + + if d.getVar('RISCV_SBI_PAYLOAD'): + return "FW_PAYLOAD_PATH=" + deploy_dir + "/" + sbi_payload + + return "" + +def riscv_get_extra_oemake_fdt(d): + sbi_fdt_payload = d.getVar('RISCV_SBI_FDT') + deploy_dir = d.getVar('DEPLOY_DIR_IMAGE') + + if sbi_fdt_payload is None: + return "" + + if d.getVar('RISCV_SBI_PAYLOAD'): + # This is internal to openSBI, not a full path + return "FW_PAYLOAD_FDT=" + sbi_fdt_payload + + return "" + +def riscv_get_do_compile_depends(d): + sbi_payload = d.getVar('RISCV_SBI_PAYLOAD') + + if sbi_payload is None: + return "" + + if 'linux' in sbi_payload or 'Image' in sbi_payload: + return "virtual/kernel:do_deploy" + if 'u-boot' in sbi_payload: + return "virtual/bootloader:do_deploy" + + return "" diff --git a/poky/meta/recipes-bsp/opensbi/opensbi_0.3.bb b/poky/meta/recipes-bsp/opensbi/opensbi_0.3.bb new file mode 100644 index 000000000..2b4fb97df --- /dev/null +++ b/poky/meta/recipes-bsp/opensbi/opensbi_0.3.bb @@ -0,0 +1,49 @@ +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=c36118b4f615f9da37635f2a7ac8ccaf" +DEPENDS += "dtc-native" + +require opensbi-payloads.inc + +inherit autotools-brokensep + +SRCREV = "ca20ac0cd4c099006d4eea4d9ac7bd7b58e2ae0f" +SRC_URI = "git://github.com/riscv/opensbi.git \ + file://0001-Makefile-Don-t-specify-mabi-or-march.patch \ + file://0002-lib-Create-a-sbi_ipi_data-structure.patch \ + " + +S = "${WORKDIR}/git" + +SRC_URI[md5sum] = "621f38d8205ef5fb185e4055025e73df" +SRC_URI[sha256sum] = "07f18b73abf3b85aabe5bead19a923716c100d30eb58033459f39c3a224be300" + +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)} ${@riscv_get_extra_oemake_fdt(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 +} + +do_deploy () { + install -d ${DEPLOY_DIR_IMAGE} + install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.* ${DEPLOY_DIR_IMAGE}/ + install -m 755 ${D}/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.* ${DEPLOY_DIR_IMAGE}/ +} + +addtask deploy after do_install + +FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_jump.*" +FILES_${PN} += "/platform/${RISCV_SBI_PLAT}/firmware/fw_payload.*" + +COMPATIBLE_HOST = "(riscv64|riscv32).*" +INHIBIT_PACKAGE_STRIP = "1" diff --git a/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb index 0a5c2ffae..35cdf71eb 100644 --- a/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb +++ b/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb @@ -8,7 +8,7 @@ SECTION = "console/network" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://LICENCE;md5=429658c6612f3a9b1293782366ab29d8" -DEPENDS = "zlib openssl" +DEPENDS = "zlib openssl virtual/crypt" DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar.gz \ diff --git a/poky/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch b/poky/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch new file mode 100644 index 000000000..9a90a68cf --- /dev/null +++ b/poky/meta/recipes-connectivity/openssl/openssl/0001-Fix-build-error-for-aarch64-big-endian.patch @@ -0,0 +1,43 @@ +From 1f8c0f2feea5cdcae0bcd9dfc78198d9e2c4cf09 Mon Sep 17 00:00:00 2001 +From: Lei Maohui +Date: Thu, 13 Jun 2019 12:17:30 +0900 +Subject: [PATCH] Fix build error for aarch64 big endian. + +Modified rev to rev64, because rev only takes integer registers. +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90827 +Otherwise, the following error will occur. + +Error: operand 1 must be an integer register -- `rev v31.16b,v31.16b' + +Upstream-Status: Submitted [https://github.com/openssl/openssl/pull/9151] + +Signed-off-by: Lei Maohui +--- + crypto/sha/asm/keccak1600-armv8.pl | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/crypto/sha/asm/keccak1600-armv8.pl b/crypto/sha/asm/keccak1600-armv8.pl +index dc72f18..6620690 100755 +--- a/crypto/sha/asm/keccak1600-armv8.pl ++++ b/crypto/sha/asm/keccak1600-armv8.pl +@@ -731,7 +731,7 @@ $code.=<<___; + blo .Lprocess_block_ce + ldr d31,[$inp],#8 // *inp++ + #ifdef __AARCH64EB__ +- rev v31.16b,v31.16b ++ rev64 v31.16b,v31.16b + #endif + eor $A[$j/5][$j%5],$A[$j/5][$j%5],v31.16b + beq .Lprocess_block_ce +@@ -740,7 +740,7 @@ ___ + $code.=<<___; + ldr d31,[$inp],#8 // *inp++ + #ifdef __AARCH64EB__ +- rev v31.16b,v31.16b ++ rev64 v31.16b,v31.16b + #endif + eor $A[4][4],$A[4][4],v31.16b + +-- +2.7.4 + diff --git a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb index 534be5754..011740731 100644 --- a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb +++ b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1c.bb @@ -16,6 +16,7 @@ SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ file://0001-skip-test_symbol_presence.patch \ file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \ file://afalg.patch \ + file://0001-Fix-build-error-for-aarch64-big-endian.patch \ " SRC_URI_append_class-nativesdk = " \ diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross b/poky/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross index 8420f9874..b5df40072 100644 --- a/poky/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross +++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/glib-meson.cross @@ -4,3 +4,6 @@ have_c99_snprintf = true have_unix98_printf = true va_val_copy = true growing_stack = false + +[binaries] +env = "/usr/bin/env" diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.60.3.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.60.3.bb index f4ade098e..bb77294e1 100644 --- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.60.3.bb +++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.60.3.bb @@ -16,10 +16,10 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \ file://0001-Do-not-write-bindir-into-pkg-config-files.patch \ file://0001-meson.build-do-not-hardcode-linux-as-the-host-system.patch \ file://0001-meson-do-a-build-time-check-for-strlcpy-before-attem.patch \ - file://glib-meson.cross \ " SRC_URI_append_class-native = " file://relocate-modules.patch" +SRC_URI_append_class-target = " file://glib-meson.cross" SRC_URI[md5sum] = "112a850caa8d2c21e24d4c9844e8b1fe" SRC_URI[sha256sum] = "04ab0d560d45790d055f50db2d69974eab8b693a77390075462c56e652b760b9" diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.6.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.6.bb new file mode 100644 index 000000000..ebc4648a1 --- /dev/null +++ b/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.6.bb @@ -0,0 +1,18 @@ +# +# This provides libcrypto.so.1 which contains obsolete APIs, needed for uninative in particular +# + +require libxcrypt_${PV}.bb + +PROVIDES = "" +AUTO_LIBNAME_PKGS = "" +EXCLUDE_FROM_WORLD = "1" + +API = "--enable-obsolete-api" + +do_install_append () { + rm -rf ${D}${includedir} + rm -rf ${D}${libdir}/pkgconfig + rm -rf ${D}${datadir} +} + diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.6.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.6.bb index 637c0e6ff..893f5e737 100644 --- a/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.6.bb +++ b/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.6.bb @@ -29,4 +29,7 @@ BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}" TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${includedir} -Wno-error=missing-attributes" CPPFLAGS_append_class-nativesdk = " -Wno-error=missing-attributes" +API = "--disable-obsolete-api" +EXTRA_OECONF += "${API}" + BBCLASSEXTEND = "nativesdk" diff --git a/poky/meta/recipes-core/meta/cve-update-db.bb b/poky/meta/recipes-core/meta/cve-update-db.bb new file mode 100644 index 000000000..522fd2380 --- /dev/null +++ b/poky/meta/recipes-core/meta/cve-update-db.bb @@ -0,0 +1,121 @@ +SUMMARY = "Updates the NVD CVE database" +LICENSE = "MIT" + +INHIBIT_DEFAULT_DEPS = "1" +PACKAGES = "" + +inherit nopackages + +deltask do_fetch +deltask do_unpack +deltask do_patch +deltask do_configure +deltask do_compile +deltask do_install +deltask do_populate_sysroot + +python do_populate_cve_db() { + """ + Update NVD database with json data feed + """ + + import sqlite3, urllib3, shutil, gzip, re + from datetime import date + + BASE_URL = "https://nvd.nist.gov/feeds/json/cve/1.0/nvdcve-1.0-" + YEAR_START = 2002 + JSON_TMPFILE = d.getVar("CVE_CHECK_DB_DIR") + '/nvd.json.gz' + + # Connect to database + db_file = d.getVar("CVE_CHECK_DB_FILE") + conn = sqlite3.connect(db_file) + c = conn.cursor() + + initialize_db(c) + + http = urllib3.PoolManager() + + for year in range(YEAR_START, date.today().year + 1): + year_url = BASE_URL + str(year) + meta_url = year_url + ".meta" + json_url = year_url + ".json.gz" + + # Retrieve meta last modified date + with http.request('GET', meta_url, preload_content=False) as r: + date_line = str(r.data.splitlines()[0]) + last_modified = re.search('lastModifiedDate:(.*)', date_line).group(1) + + # Compare with current db last modified date + c.execute("select DATE from META where YEAR = '%d'" % year) + meta = c.fetchone() + if not meta or meta[0] != last_modified: + # Update db with current year json file + with http.request('GET', json_url, preload_content=False) as r, open(JSON_TMPFILE, 'wb') as tmpfile: + shutil.copyfileobj(r, tmpfile) + with gzip.open(JSON_TMPFILE, 'rt') as jsonfile: + update_db(c, jsonfile) + c.execute("insert or replace into META values (?, ?)", + [year, last_modified]) + + conn.commit() + conn.close() + + with open(d.getVar("CVE_CHECK_TMP_FILE"), 'a'): + os.utime(d.getVar("CVE_CHECK_TMP_FILE"), None) +} + +# DJB2 hash algorithm +def hash_djb2(s): + hash = 5381 + for x in s: + hash = (( hash << 5) + hash) + ord(x) + + return hash & 0xFFFFFFFF + +def initialize_db(c): + c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)") + c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \ + SCOREV2 TEXT, SCOREV3 TEXT, MODIFIED INTEGER, VECTOR TEXT)") + c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (HASH INTEGER UNIQUE, ID TEXT, \ + VENDOR TEXT, PRODUCT TEXT, VERSION TEXT, OPERATOR TEXT)") + c.execute("CREATE INDEX IF NOT EXISTS PRODUCT_IDX ON PRODUCTS \ + (PRODUCT, VERSION)") + +def update_db(c, json_filename): + import json + root = json.load(json_filename) + + for elt in root['CVE_Items']: + if not elt['impact']: + continue + + cveId = elt['cve']['CVE_data_meta']['ID'] + cveDesc = elt['cve']['description']['description_data'][0]['value'] + date = elt['lastModifiedDate'] + accessVector = elt['impact']['baseMetricV2']['cvssV2']['accessVector'] + cvssv2 = elt['impact']['baseMetricV2']['cvssV2']['baseScore'] + + try: + cvssv3 = elt['impact']['baseMetricV3']['cvssV3']['baseScore'] + except: + cvssv3 = 0.0 + + c.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?)", + [cveId, cveDesc, cvssv2, cvssv3, date, accessVector]) + + for vendor in elt['cve']['affects']['vendor']['vendor_data']: + for product in vendor['product']['product_data']: + for version in product['version']['version_data']: + product_str = cveId+vendor['vendor_name']+product['product_name']+version['version_value'] + hashstr = hash_djb2(product_str) + c.execute("insert or replace into PRODUCTS values (?, ?, ?, ?, ?, ?)", + [ hashstr, cveId, vendor['vendor_name'], + product['product_name'], version['version_value'], + version['version_affected']]) + + + +addtask do_populate_cve_db before do_cve_check +do_populate_cve_db[nostamp] = "1" + +EXCLUDE_FROM_WORLD = "1" diff --git a/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb b/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb index 50182decf..b5e8c0f03 100644 --- a/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb +++ b/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb @@ -46,6 +46,7 @@ DUMMYPROVIDES = "\ /bin/bash \ /usr/bin/env \ /usr/bin/perl \ + libperl.so.5 \ pkgconfig \ pkgconfig-dev \ pkgconfig-src \ diff --git a/poky/meta/recipes-core/meta/uninative-tarball.bb b/poky/meta/recipes-core/meta/uninative-tarball.bb index 25635fc2f..39638eb8c 100644 --- a/poky/meta/recipes-core/meta/uninative-tarball.bb +++ b/poky/meta/recipes-core/meta/uninative-tarball.bb @@ -16,6 +16,7 @@ TOOLCHAIN_HOST_TASK = "\ nativesdk-glibc-gconv-libjis \ nativesdk-patchelf \ nativesdk-libxcrypt \ + nativesdk-libxcrypt-compat \ nativesdk-libnss-nis \ " diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-base.bb b/poky/meta/recipes-core/packagegroups/packagegroup-base.bb index cae704aa2..d05403635 100644 --- a/poky/meta/recipes-core/packagegroups/packagegroup-base.bb +++ b/poky/meta/recipes-core/packagegroups/packagegroup-base.bb @@ -271,6 +271,7 @@ RRECOMMENDS_packagegroup-base-ipsec = "\ SUMMARY_packagegroup-base-wifi = "WiFi support" RDEPENDS_packagegroup-base-wifi = "\ iw \ + wireless-regdb-static \ wpa-supplicant" RRECOMMENDS_packagegroup-base-wifi = "\ diff --git a/poky/meta/recipes-core/systemd/systemd-conf/wired.network b/poky/meta/recipes-core/systemd/systemd-conf/wired.network index 253aee938..ff807ba31 100644 --- a/poky/meta/recipes-core/systemd/systemd-conf/wired.network +++ b/poky/meta/recipes-core/systemd/systemd-conf/wired.network @@ -1,5 +1,6 @@ [Match] Name=en* eth* +KernelCommandLine=!nfsroot [Network] DHCP=yes diff --git a/poky/meta/recipes-core/volatile-binds/files/mount-copybind b/poky/meta/recipes-core/volatile-binds/files/mount-copybind index fddf52005..e32e67530 100755 --- a/poky/meta/recipes-core/volatile-binds/files/mount-copybind +++ b/poky/meta/recipes-core/volatile-binds/files/mount-copybind @@ -42,14 +42,14 @@ if [ -d "$mountpoint" ]; then if ! mount -t overlay overlay -olowerdir="$mountpoint",upperdir="$spec",workdir="$overlay_workdir" "$mountpoint" > /dev/null 2>&1; then if [ "$specdir_existed" != "yes" ]; then - cp -pPR "$mountpoint"/. "$spec/" + cp -aPR "$mountpoint"/. "$spec/" fi mount -o "bind$options" "$spec" "$mountpoint" fi elif [ -f "$mountpoint" ]; then if [ ! -f "$spec" ]; then - cp -pP "$mountpoint" "$spec" + cp -aP "$mountpoint" "$spec" fi mount -o "bind$options" "$spec" "$mountpoint" diff --git a/poky/meta/recipes-devtools/apt/apt-package.inc b/poky/meta/recipes-devtools/apt/apt-package.inc index 6a01f99c6..da91451d7 100644 --- a/poky/meta/recipes-devtools/apt/apt-package.inc +++ b/poky/meta/recipes-devtools/apt/apt-package.inc @@ -83,7 +83,7 @@ do_install () { install -m 0644 include/apt-pkg/*.h ${D}${includedir}/apt-pkg/ install -d ${D}${systemd_unitdir}/system/ - install -m 0644 ${S}/debian/apt.systemd.daily ${D}${libdir}/apt/ + install -m 0755 ${S}/debian/apt.systemd.daily ${D}${libdir}/apt/ install -m 0644 ${S}/debian/apt-daily.service ${D}${systemd_unitdir}/system/ sed -i 's#/usr/lib/apt/#${libdir}/apt/#g' ${D}${systemd_unitdir}/system/apt-daily.service install -m 0644 ${S}/debian/apt-daily.timer ${D}${systemd_unitdir}/system/ diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch deleted file mode 100644 index e23be3259..000000000 --- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch +++ /dev/null @@ -1,26 +0,0 @@ -From c384fa875c5128009ac8b6ba11a54a6bd4de575a Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Thu, 17 May 2018 12:21:31 +0300 -Subject: [PATCH] Add LDFLAGS when building libbtrfsutil.so and python - bindings. - -Upstream-Status: Pending -Signed-off-by: Alexander Kanavin - ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index e25e256f..6df00186 100644 ---- a/Makefile -+++ b/Makefile -@@ -424,7 +424,7 @@ libbtrfsutil/%.o: libbtrfsutil/%.c - - libbtrfsutil.so.$(libbtrfsutil_version): $(libbtrfsutil_objects) - @echo " [LD] $@" -- $(Q)$(CC) $(LIBBTRFSUTIL_CFLAGS) $(libbtrfsutil_objects) \ -+ $(Q)$(CC) $(LIBBTRFSUTIL_CFLAGS) $(LDFLAGS) $(libbtrfsutil_objects) \ - -shared -Wl,-soname,libbtrfsutil.so.$(libbtrfsutil_major) -o $@ - - libbtrfsutil.a: $(libbtrfsutil_objects) diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0003-btrfs-progs-Pass-CFLAGS-and-LDFLAGS-to-Python.patch b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0003-btrfs-progs-Pass-CFLAGS-and-LDFLAGS-to-Python.patch deleted file mode 100644 index f69507164..000000000 --- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools/0003-btrfs-progs-Pass-CFLAGS-and-LDFLAGS-to-Python.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 730fe2ee2fb9e08cbe885f370afe83fecb18d048 Mon Sep 17 00:00:00 2001 -From: Joshua Watt -Date: Sun, 26 May 2019 21:26:04 -0500 -Subject: [PATCH] btrfs-progs: Pass CFLAGS and LDFLAGS to Python - -Adds Make variables EXTRA_PYTHON_CFLAGS and EXTRA_PYTHON_LDFLAGS which -can be used to pass CFLAGS and LDFLAGS respectively when building the -Python library. - -This is required to support reproducible builds, as there are often -compiler and linker flags that must be passed in order to generate -reproducible output (e.g. -fdebug-prefix-map) - -Signed-off-by: Joshua Watt -Upstream-Status: Accepted [https://github.com/kdave/btrfs-progs/pull/176] ---- - Makefile | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index 505bd9c1..814767a8 100644 ---- a/Makefile -+++ b/Makefile -@@ -24,6 +24,10 @@ - # DEBUG_CFLAGS additional compiler flags for debugging build - # EXTRA_CFLAGS additional compiler flags - # EXTRA_LDFLAGS additional linker flags -+# EXTRA_PYTHON_CFLAGS additional compiler flags to pass when building Python -+# library -+# EXTRA_PYTHON_LDFLAGS additional linker flags to pass when building Python -+# library - # - # Testing-specific options (see also tests/README.md): - # TEST=GLOB run test(s) from directories matching GLOB -@@ -439,7 +443,7 @@ ifeq ($(PYTHON_BINDINGS),1) - libbtrfsutil_python: libbtrfsutil.so.$(libbtrfsutil_major) libbtrfsutil.so libbtrfsutil/btrfsutil.h - @echo " [PY] libbtrfsutil" - $(Q)cd libbtrfsutil/python; \ -- CFLAGS= LDFLAGS= $(PYTHON) setup.py $(SETUP_PY_Q) build_ext -i build -+ CFLAGS="$(EXTRA_PYTHON_CFLAGS)" LDFLAGS="$(EXTRA_PYTHON_LDFLAGS)" $(PYTHON) setup.py $(SETUP_PY_Q) build_ext -i build - - .PHONY: libbtrfsutil_python - endif diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.1.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.1.bb new file mode 100644 index 000000000..2cd99706b --- /dev/null +++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.1.bb @@ -0,0 +1,46 @@ +SUMMARY = "Checksumming Copy on Write Filesystem utilities" +DESCRIPTION = "Btrfs is a new copy on write filesystem for Linux aimed at \ +implementing advanced features while focusing on fault tolerance, repair and \ +easy administration. \ +This package contains utilities (mkfs, fsck, btrfsctl) used to work with \ +btrfs and an utility (btrfs-convert) to make a btrfs filesystem from an ext3." + +HOMEPAGE = "https://btrfs.wiki.kernel.org" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067" +SECTION = "base" +DEPENDS = "util-linux attr e2fsprogs lzo acl python3-setuptools-native" +DEPENDS_append_class-target = " udev" +RDEPENDS_${PN} = "libgcc" + +SRCREV = "781e36a784faa58a4f0515eef124af860d59e2c0" +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \ + file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \ + " + +inherit autotools-brokensep pkgconfig manpages distutils3-base + +CLEANBROKEN = "1" + +PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native" +EXTRA_OECONF = " --disable-zstd" +EXTRA_OECONF_append_libc-musl = " --disable-backtrace " +EXTRA_PYTHON_CFLAGS = "${DEBUG_PREFIX_MAP}" +EXTRA_PYTHON_CFLAGS_class-native = "" +EXTRA_PYTHON_LDFLAGS = "${LDFLAGS}" +EXTRA_OEMAKE = "V=1 'EXTRA_PYTHON_CFLAGS=${EXTRA_PYTHON_CFLAGS}' 'EXTRA_PYTHON_LDFLAGS=${EXTRA_PYTHON_LDFLAGS}'" + +do_configure_prepend() { + # Upstream doesn't ship this and autoreconf won't install it as automake isn't used. + mkdir -p ${S}/config + cp -f $(automake --print-libdir)/install-sh ${S}/config/ +} + +S = "${WORKDIR}/git" + +do_install_append() { + oe_runmake 'DESTDIR=${D}' 'PYTHON_SITEPACKAGES_DIR=${PYTHON_SITEPACKAGES_DIR}' install_python +} + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.bb deleted file mode 100644 index 89cc1bfe2..000000000 --- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.1.bb +++ /dev/null @@ -1,48 +0,0 @@ -SUMMARY = "Checksumming Copy on Write Filesystem utilities" -DESCRIPTION = "Btrfs is a new copy on write filesystem for Linux aimed at \ -implementing advanced features while focusing on fault tolerance, repair and \ -easy administration. \ -This package contains utilities (mkfs, fsck, btrfsctl) used to work with \ -btrfs and an utility (btrfs-convert) to make a btrfs filesystem from an ext3." - -HOMEPAGE = "https://btrfs.wiki.kernel.org" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067" -SECTION = "base" -DEPENDS = "util-linux attr e2fsprogs lzo acl python3-setuptools-native" -DEPENDS_append_class-target = " udev" -RDEPENDS_${PN} = "libgcc" - -SRCREV = "43013422dbce4bcc9ed77cfe65b294caa0985ec8" -SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \ - file://0001-Add-LDFLAGS-when-building-libbtrfsutil.so.patch \ - file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \ - file://0003-btrfs-progs-Pass-CFLAGS-and-LDFLAGS-to-Python.patch \ - " - -inherit autotools-brokensep pkgconfig manpages distutils3-base - -CLEANBROKEN = "1" - -PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native" -EXTRA_OECONF = " --disable-zstd" -EXTRA_OECONF_append_libc-musl = " --disable-backtrace " -EXTRA_PYTHON_CFLAGS = "${DEBUG_PREFIX_MAP}" -EXTRA_PYTHON_CFLAGS_class-native = "" -EXTRA_PYTHON_LDFLAGS = "${LDFLAGS}" -EXTRA_OEMAKE = "V=1 'EXTRA_PYTHON_CFLAGS=${EXTRA_PYTHON_CFLAGS}' 'EXTRA_PYTHON_LDFLAGS=${EXTRA_PYTHON_LDFLAGS}'" - -do_configure_prepend() { - # Upstream doesn't ship this and autoreconf won't install it as automake isn't used. - mkdir -p ${S}/config - cp -f $(automake --print-libdir)/install-sh ${S}/config/ -} - -S = "${WORKDIR}/git" - -do_install_append() { - oe_runmake 'DESTDIR=${D}' 'PYTHON_SITEPACKAGES_DIR=${PYTHON_SITEPACKAGES_DIR}' install_python -} - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.0.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.0.bb deleted file mode 100644 index 2a3007c38..000000000 --- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.0.bb +++ /dev/null @@ -1,34 +0,0 @@ -DESCRIPTION = "C implementation of createrepo." -HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "git://github.com/rpm-software-management/createrepo_c \ - file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ - " - -SRCREV = "8cffea9751b14366a7f6f3664f5d39fe4f0f9253" - -S = "${WORKDIR}/git" - -DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm libmodulemd" -DEPENDS_append_class-native = " file-replacement-native" - -inherit cmake pkgconfig bash-completion distutils3-base - -EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DWITH_ZCHUNK=OFF" - -BBCLASSEXTEND = "native nativesdk" - -# Direct createrepo to read rpm configuration from our sysroot, not the one it was compiled in -do_install_append_class-native() { - create_wrapper ${D}/${bindir}/createrepo_c \ - RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm -} - -do_install_append_class-nativesdk() { - create_wrapper ${D}/${bindir}/createrepo_c \ - RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm - rm -rf ${D}/etc -} diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.2.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.2.bb new file mode 100644 index 000000000..80c559fef --- /dev/null +++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.2.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "C implementation of createrepo." +HOMEPAGE = "https://github.com/rpm-software-management/createrepo_c/wiki" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "git://github.com/rpm-software-management/createrepo_c \ + file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ + " + +SRCREV = "f390af98c8f1bb04010e293ea864eae160f75879" + +S = "${WORKDIR}/git" + +DEPENDS = "expat curl glib-2.0 libxml2 openssl bzip2 zlib file sqlite3 xz rpm libmodulemd" +DEPENDS_append_class-native = " file-replacement-native" + +inherit cmake pkgconfig bash-completion distutils3-base + +EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DWITH_ZCHUNK=OFF" + +BBCLASSEXTEND = "native nativesdk" + +# Direct createrepo to read rpm configuration from our sysroot, not the one it was compiled in +do_install_append_class-native() { + create_wrapper ${D}/${bindir}/createrepo_c \ + RPM_CONFIGDIR=${STAGING_LIBDIR_NATIVE}/rpm +} + +do_install_append_class-nativesdk() { + create_wrapper ${D}/${bindir}/createrepo_c \ + RPM_CONFIGDIR=${SDKPATHNATIVE}${libdir_nativesdk}/rpm + rm -rf ${D}/etc +} diff --git a/poky/meta/recipes-devtools/dpkg/dpkg/pager.patch b/poky/meta/recipes-devtools/dpkg/dpkg/pager.patch new file mode 100644 index 000000000..e56b9d28a --- /dev/null +++ b/poky/meta/recipes-devtools/dpkg/dpkg/pager.patch @@ -0,0 +1,21 @@ +pager: Use less instead of pager + +pager is a Debianism. Istead use directly pager. + +Upstream-Status: Inappropriate [OE-Core integration specific] + +Suggested-by: Burton, Ross +Signed-off-by: Ricardo Ribalda +diff --git a/lib/dpkg/dpkg.h b/lib/dpkg/dpkg.h +index 2bb067a..6cbce80 100644 +--- a/lib/dpkg/dpkg.h ++++ b/lib/dpkg/dpkg.h +@@ -95,7 +95,7 @@ DPKG_BEGIN_DECLS + #define MAXUPDATES 250 + + #define DEFAULTSHELL "sh" +-#define DEFAULTPAGER "pager" ++#define DEFAULTPAGER "less" + + #define MD5HASHLEN 32 + #define MAXTRIGDIRECTIVE 256 diff --git a/poky/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb b/poky/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb index 77fbfb5c9..b83868fec 100644 --- a/poky/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb +++ b/poky/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb @@ -12,6 +12,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/${BPN}_${PV}.tar.xz \ file://0006-add-musleabi-to-known-target-tripets.patch \ file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \ file://0001-dpkg-Support-muslx32-build.patch \ + file://pager.patch \ " SRC_URI_append_class-native = " \ file://tweak-options-require-tar-1.27.patch \ diff --git a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc index 3d03d8e57..ba767e1a3 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc @@ -86,10 +86,6 @@ do_install () { if [ -d ${D}${infodir} ]; then rmdir --ignore-fail-on-non-empty -p ${D}${infodir} fi - if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then - ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS} - fi - } do_install_append_class-target () { @@ -98,20 +94,29 @@ do_install_append_class-target () { fi if [ "${TARGET_OS}" = "linux-gnun32" ]; then - if [ "${MULTILIBS}" != "" ]; then - mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-pokymllib64-linux - ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-pokymllib64-linux/32 + if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then + mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux + ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux/32 + elif [ "${MULTILIB_VARIANTS}" != "" ]; then + mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux + ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux/32 else ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux fi - fi - if [ "${TARGET_OS}" = "linux-gnux32" ]; then - if [ "${MULTILIBS}" != "" ]; then - mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-poky-linux - ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-poky-linux/x32 + elif [ "${TARGET_OS}" = "linux-gnux32" ]; then + if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then + mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux + ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux/x32 + elif [ "${MULTILIB_VARIANTS}" != "" ]; then + mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux + ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux/32 else ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux fi + elif [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then + mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux + ln -s ../${TARGET_SYS}/bits ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}/bits + ln -s ../${TARGET_SYS}/ext ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}/ext fi if [ "${TCLIBC}" != "glibc" ]; then diff --git a/poky/meta/recipes-devtools/go/go-1.12.inc b/poky/meta/recipes-devtools/go/go-1.12.inc index 7c4cac1fc..3f23f06f0 100644 --- a/poky/meta/recipes-devtools/go/go-1.12.inc +++ b/poky/meta/recipes-devtools/go/go-1.12.inc @@ -1,7 +1,7 @@ require go-common.inc GO_BASEVERSION = "1.12" -GO_MINOR = ".5" +GO_MINOR = ".6" PV .= "${GO_MINOR}" FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:" @@ -19,5 +19,5 @@ SRC_URI += "\ " SRC_URI_append_libc-musl = " file://0009-ld-replace-glibc-dynamic-linker-with-musl.patch" -SRC_URI[main.md5sum] = "cb6f594d22dd79af4fff9779607b1b47" -SRC_URI[main.sha256sum] = "2aa5f088cbb332e73fc3def546800616b38d3bfe6b8713b8a6404060f22503e8" +SRC_URI[main.md5sum] = "48a4141fc718dd742d106431294f08bf" +SRC_URI[main.sha256sum] = "c96c5ccc7455638ae1a8b7498a030fe653731c8391c5f8e79590bce72f92b4ca" diff --git a/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb b/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb index d4ffd281b..7e8aea7be 100644 --- a/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb +++ b/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb @@ -8,8 +8,8 @@ SRC_URI = "git://github.com/fedora-modularity/libmodulemd;protocol=https \ file://0001-v1-meson.build-explicitly-specify-the-v1-library-in-.patch \ " -PV = "2.4.0" -SRCREV = "d0a3eda45e083e8fe8b329a2310a53abdbf1e4d6" +PV = "2.5.0" +SRCREV = "8d9a99ddf037df7c032119cdd3a87238a3cc9090" S = "${WORKDIR}/git" diff --git a/poky/meta/recipes-devtools/librepo/librepo_1.10.2.bb b/poky/meta/recipes-devtools/librepo/librepo_1.10.2.bb deleted file mode 100644 index 43c1967c2..000000000 --- a/poky/meta/recipes-devtools/librepo/librepo_1.10.2.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = " A library providing C and Python (libcURL like) API for downloading linux repository metadata and packages." -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -SRC_URI = "git://github.com/rpm-software-management/librepo.git \ - file://0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch \ - file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \ - " - -SRCREV = "91ebe846b0320751a264116c36a665a8facf9e0e" - -S = "${WORKDIR}/git" - -DEPENDS = "curl glib-2.0 openssl attr gpgme libxml2" - -inherit cmake distutils3-base pkgconfig - -EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DENABLE_TESTS=OFF -DENABLE_DOCS=OFF -DWITH_ZCHUNK=OFF" - -BBCLASSEXTEND = "native nativesdk" - diff --git a/poky/meta/recipes-devtools/librepo/librepo_1.10.3.bb b/poky/meta/recipes-devtools/librepo/librepo_1.10.3.bb new file mode 100644 index 000000000..d7c83edce --- /dev/null +++ b/poky/meta/recipes-devtools/librepo/librepo_1.10.3.bb @@ -0,0 +1,21 @@ +SUMMARY = " A library providing C and Python (libcURL like) API for downloading linux repository metadata and packages." +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "git://github.com/rpm-software-management/librepo.git \ + file://0002-Do-not-try-to-obtain-PYTHON_INSTALL_DIR-by-running-p.patch \ + file://0004-Set-gpgme-variables-with-pkg-config-not-with-cmake-m.patch \ + " + +SRCREV = "2eb0a27031956fd98340ca2707f03abb7b780372" + +S = "${WORKDIR}/git" + +DEPENDS = "curl glib-2.0 openssl attr gpgme libxml2" + +inherit cmake distutils3-base pkgconfig + +EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DENABLE_TESTS=OFF -DENABLE_DOCS=OFF -DWITH_ZCHUNK=OFF" + +BBCLASSEXTEND = "native nativesdk" + diff --git a/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch b/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch index da477454c..2b22531dd 100644 --- a/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch +++ b/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch @@ -51,7 +51,7 @@ index 6d3678f..90fdb80 100644 - cmd = self.pkgbin.get_command() + args + def _call_pkgbin_real(self, args, env, use_native=False): + if use_native: -+ cmd = self.pkgbin.get_command() + "-native" + args ++ cmd = [self.pkgbin.get_command()[0] + "-native"] + args + else: + cmd = self.pkgbin.get_command() + args p, out = Popen_safe(cmd, env=env)[0:2] diff --git a/poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch b/poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch deleted file mode 100644 index 4ece56b9c..000000000 --- a/poky/meta/recipes-devtools/mtd/mtd-utils/0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 0f833ac73ad631248826386e2918d8571ecf0347 Mon Sep 17 00:00:00 2001 -From: David Oberhollenzer -Date: Sat, 9 Jun 2018 16:45:22 +0200 -Subject: [PATCH] Revert "Return correct error number in ubi_get_vol_info1" - -This reverts commit dede98ffb706676309488d7cc660f569548d5930. - -The original commit tried to fix a descrepancy between the implementation -and the documentation by making the implementation comply. - -When making the change, it was overlooked, that ubinfo and ubirename were -written against the implementation instead of the behaviour specified by -the documentation. So were further internal functions like -ubi_get_vol_info1_nm which further breaks ubirmvol. - -A report with an outline of a resulting problem can be read on -the mailing list: - -http://lists.infradead.org/pipermail/linux-mtd/2018-June/081562.html - -From the report: - -steps to reproduce: have mtd-utils 2.0.1 or 2.0.2 - -0. make a bunch of ubi volumes in sequential order - -ubimkvol /dev/ubi0 -s 64KiB -N test1 -ubimkvol /dev/ubi0 -s 64KiB -N test2 -ubimkvol /dev/ubi0 -s 64KiB -N test3 -ubimkvol /dev/ubi0 -s 64KiB -N test4 -.. - -1. delete the test1 volume, making a hole in the volume table - -ubirmvol /dev/ubi0 -N test1 - -2. try an affected tool (i.e. "ubirmvol /dev/ubi0 -N test4" ) - - |root at mr24:/# ubirmvol /dev/ubi0 -N test4 - |ubirmvol: error!: cannot find UBI volume "test4" - | error 19 (No such device) - -or "ubinfo -a" - - | root at mr24:/# ubinfo -a - | UBI version: 1 - | Count of UBI devices: 1 - | UBI control device major/minor: 10:59 - | Present UBI devices: ubi0 - | - | ubi0 - | Volumes count: 11 - | Logical eraseblock size: 15872 bytes, 15.5 KiB - | Total amount of logical eraseblocks: 1952 (30982144 bytes, 29.5 MiB) - | Amount of available logical eraseblocks: 75 (1190400 bytes, 1.1 MiB) - | Maximum count of volumes 92 - | Count of bad physical eraseblocks: 0 - | Count of reserved physical eraseblocks: 40 - | Current maximum erase counter value: 984 - | Minimum input/output unit size: 512 bytes - | Character device major/minor: 251:0 - | ubinfo: error!: libubi failed to probe volume 5 on ubi0 - | error 19 (No such device) - | Present volumes: 0, 1, 2, 3, 4root at mr24:/# - -Reported-by: Christian Lamparter -Signed-off-by: David Oberhollenzer -Upstream-Status: Accepted [http://git.infradead.org/mtd-utils.git/commit/0f833ac73ad631248826386e2918d8571ecf0347] ---- - lib/libubi.c | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - -diff --git a/lib/libubi.c b/lib/libubi.c -index b50e68a..978b433 100644 ---- a/lib/libubi.c -+++ b/lib/libubi.c -@@ -1240,11 +1240,8 @@ int ubi_get_vol_info1(libubi_t desc, int dev_num, int vol_id, - info->dev_num = dev_num; - info->vol_id = vol_id; - -- if (vol_get_major(lib, dev_num, vol_id, &info->major, &info->minor)) { -- if (errno == ENOENT) -- errno = ENODEV; -+ if (vol_get_major(lib, dev_num, vol_id, &info->major, &info->minor)) - return -1; -- } - - ret = vol_read_data(lib->vol_type, dev_num, vol_id, buf, 50); - if (ret < 0) --- -2.14.4 - diff --git a/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb b/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb index 9ffac2ed3..49a650a9e 100644 --- a/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb +++ b/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb @@ -10,12 +10,11 @@ inherit autotools pkgconfig update-alternatives DEPENDS = "zlib e2fsprogs util-linux" RDEPENDS_mtd-utils-tests += "bash" -PV = "2.0.2+${SRCPV}" +PV = "2.1.0+${SRCPV}" -SRCREV = "bc63d36e39f389c8c17f6a8e9db47f2acc884659" +SRCREV = "b5027be5f470830ac9543db3c52e076b13abd313" SRC_URI = "git://git.infradead.org/mtd-utils.git \ file://add-exclusion-to-mkfs-jffs2-git-2.patch \ - file://0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch \ " S = "${WORKDIR}/git/" @@ -25,9 +24,12 @@ EXTRA_OECONF += "--enable-install-tests" # xattr support creates an additional compile-time dependency on acl because # the sys/acl.h header is needed. libacl is not needed and thus enabling xattr # regardless whether acl is enabled or disabled in the distro should be okay. -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)} lzo" +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)} lzo jffs ubifs" PACKAGECONFIG[lzo] = "--with-lzo,--without-lzo,lzo" PACKAGECONFIG[xattr] = "--with-xattr,--without-xattr,acl" +PACKAGECONFIG[crypto] = "--with-crypto,--without-crypto,openssl" +PACKAGECONFIG[jffs] = "--with-jffs,--without-jffs" +PACKAGECONFIG[ubifs] = "--with-ubifs,--without-ubifs" CPPFLAGS_append_riscv64 = " -pthread -D_REENTRANT" @@ -59,7 +61,9 @@ do_install () { oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} INCLUDEDIR=${includedir} } -PACKAGES =+ "mtd-utils-jffs2 mtd-utils-ubifs mtd-utils-misc mtd-utils-tests" +PACKAGES =+ "mtd-utils-misc mtd-utils-tests" +PACKAGES =+ "${@bb.utils.contains("PACKAGECONFIG", "jffs", "mtd-utils-jffs2", "", d)}" +PACKAGES =+ "${@bb.utils.contains("PACKAGECONFIG", "ubifs", "mtd-utils-ubifs", "", d)}" FILES_mtd-utils-jffs2 = "${sbindir}/mkfs.jffs2 ${sbindir}/jffs2dump ${sbindir}/jffs2reader ${sbindir}/sumtool" FILES_mtd-utils-ubifs = "${sbindir}/mkfs.ubifs ${sbindir}/ubi*" diff --git a/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt b/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt index 8d3e513ec..331a44d30 100644 --- a/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt +++ b/poky/meta/recipes-devtools/perl/files/perl-rdepends.txt @@ -451,6 +451,7 @@ 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" @@ -797,6 +798,8 @@ 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" @@ -1358,6 +1361,7 @@ 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" @@ -1784,6 +1788,7 @@ 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" @@ -1823,39 +1828,50 @@ 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" @@ -1863,6 +1879,7 @@ 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" @@ -1878,12 +1895,15 @@ 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" @@ -1895,31 +1915,41 @@ RDEPENDS_perl-module-tap-parser-resultfactory += "perl-module-tap-parser-result- 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" @@ -1927,18 +1957,21 @@ RDEPENDS_perl-module-tap-parser-sourcehandler-executable += "perl-module-constan 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" @@ -1950,23 +1983,28 @@ 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" @@ -2491,9 +2529,11 @@ 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-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" @@ -2845,6 +2885,7 @@ 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" @@ -3945,6 +3986,8 @@ 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" @@ -4038,6 +4081,7 @@ 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" @@ -4063,7 +4107,9 @@ 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" @@ -4080,6 +4126,7 @@ 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" @@ -4204,6 +4251,7 @@ 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" diff --git a/poky/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest b/poky/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest new file mode 100644 index 000000000..0d63d1513 --- /dev/null +++ b/poky/meta/recipes-devtools/perl/libmodule-build-perl/run-ptest @@ -0,0 +1,16 @@ +#!/bin/sh + +for case in `find t -type f -name '*.t'`; do + perl -I inc -I blib -Mblib $case >$case.output 2>&1 + ret=$? + cat $case.output + if [ $ret -ne 0 ]; then + echo "FAIL: ${case%.t}" + elif grep -i 'SKIP' $case.output; then + echo "SKIP: ${case%.t}" + else + echo "PASS: ${case%.t}" + fi + + rm -f $case.output +done diff --git a/poky/meta/recipes-devtools/perl/libmodule-build-perl_0.4229.bb b/poky/meta/recipes-devtools/perl/libmodule-build-perl_0.4229.bb new file mode 100644 index 000000000..f759f862f --- /dev/null +++ b/poky/meta/recipes-devtools/perl/libmodule-build-perl_0.4229.bb @@ -0,0 +1,103 @@ +SUMMARY = "Module::Build - Build and install Perl modules" +DESCRIPTION = "Many Perl distributions use a Build.PL file instead of a \ +Makefile.PL file to drive distribution configuration, build, test and \ +installation. Traditionally, Build.PL uses Module::Build as the underlying \ +build system. This module provides a simple, lightweight, drop-in replacement. \ +Whereas Module::Build has over 6,700 lines of code; this module has less than \ +120, yet supports the features needed by most distributions." + +SECTION = "libs" + +HOMEPAGE = "https://metacpan.org/release/Module-Build" + +LICENSE = "Artistic-1.0 | GPL-1.0+" +LIC_FILES_CHKSUM = "file://README;beginline=949;endline=954;md5=624c06db56a2af4d70cf9edc29fcae1b" + +SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-${PV}.tar.gz \ + file://run-ptest \ + " +SRC_URI[md5sum] = "1447d9e02e63f7a1643986789a8f1ba9" +SRC_URI[sha256sum] = "1fe491a6cda914b01bc8e592faa2b5404e9f35915ca15322f8f2a8d8f9008c18" + +S = "${WORKDIR}/Module-Build-${PV}" + +inherit cpan_build ptest-perl + +# From: +# https://github.com/rehsack/meta-cpan/blob/master/recipes-devel/module-build-perl/module-build-perl_0.4216.bb +# +do_patch_module_build () { + cd ${S} + sed -i -e 's,my $interpreter = $self->{properties}{perl};,my $interpreter = "${bindir}/perl";,g' lib/Module/Build/Base.pm +} + +do_patch[postfuncs] += "do_patch_module_build" + +do_install_ptest() { + cp -r ${B}/inc ${D}${PTEST_PATH} + cp -r ${B}/blib ${D}${PTEST_PATH} + chown -R root:root ${D}${PTEST_PATH} +} + +RDEPENDS_${PN} += " \ + perl-module-carp \ + perl-module-cpan \ + perl-module-config \ + perl-module-cwd \ + perl-module-data-dumper \ + perl-module-encode \ + perl-module-extutils-cbuilder \ + perl-module-extutils-command \ + perl-module-extutils-install \ + perl-module-extutils-installed \ + perl-module-extutils-mkbootstrap \ + perl-module-extutils-packlist \ + perl-module-extutils-parsexs \ + perl-module-file-basename \ + perl-module-file-compare \ + perl-module-file-copy \ + perl-module-file-find \ + perl-module-file-glob \ + perl-module-file-path \ + perl-module-file-spec \ + perl-module-file-spec-functions \ + perl-module-getopt-long \ + perl-module-metadata \ + perl-module-perl-ostype \ + perl-module-pod-man \ + perl-module-tap-harness \ + perl-module-text-abbrev \ + perl-module-text-parsewords \ + perl-module-utf8 \ +" + +RDEPENDS_${PN}-ptest += " \ + gcc \ + make \ + perl-module-blib \ + perl-module-file-temp \ + perl-module-lib \ + perl-module-perlio \ + perl-module-perlio-encoding \ + perl-module-pod-text \ + perl-module-tap-harness-env \ + perl-module-tap-parser \ + perl-module-tap-parser-scheduler \ + perl-module-test-harness \ + perl-module-test-more \ +" + +RPROVIDES_${PN} += "\ + libmodule-build-base-perl \ + libmodule-build-compat-perl \ + libmodule-build-config-perl \ + libmodule-build-cookbook-perl \ + libmodule-build-dumper-perl \ + libmodule-build-notes-perl \ + libmodule-build-ppmaker-perl \ + libmodule-build-platform-default-perl \ + libmodule-build-platform-unix-perl \ + libmodule-build-podparser-perl \ +" + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-devtools/python/python3/crosspythonpath.patch b/poky/meta/recipes-devtools/python/python3/crosspythonpath.patch new file mode 100644 index 000000000..d789ab57d --- /dev/null +++ b/poky/meta/recipes-devtools/python/python3/crosspythonpath.patch @@ -0,0 +1,25 @@ +configure.ac: add CROSSPYTHONPATH into PYTHONPATH for PYTHON_FOR_BUILD + +When building x86->x86 the system will try to execute .so and related items +from the default PYTHONPATH. This will fail if the target CPU contains +instructions that the host CPU does not have, add CROSSPYTHONPATH +into PYTHONPATH so we can prepend the list to find correct libs. + +Upstream-Status: Inappropriate [OE-Core integration specific] + +Credits-to: Mark Hatle +Credits-to: Jackie Huang +Signed-off-by: Ricardo Ribalda +diff --git a/configure.ac b/configure.ac +index 4ab19a6..7036a53 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -76,7 +76,7 @@ if test "$cross_compiling" = yes; then + AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found]) + fi + AC_MSG_RESULT($interp) +- PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH) '$interp ++ PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(CROSSPYTHONPATH):$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH) '$interp + fi + elif test "$cross_compiling" = maybe; then + AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH]) diff --git a/poky/meta/recipes-devtools/python/python3_3.7.3.bb b/poky/meta/recipes-devtools/python/python3_3.7.3.bb index 832ef1b3c..8e77dbe95 100644 --- a/poky/meta/recipes-devtools/python/python3_3.7.3.bb +++ b/poky/meta/recipes-devtools/python/python3_3.7.3.bb @@ -24,6 +24,7 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \ file://0001-Lib-sysconfig.py-fix-another-place-where-lib-is-hard.patch \ file://0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch \ file://0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch \ + file://crosspythonpath.patch \ " SRC_URI_append_class-native = " \ @@ -65,6 +66,7 @@ DEPENDS_append_class-nativesdk = " python3-native" EXTRA_OECONF = " --without-ensurepip --enable-shared" EXTRA_OECONF_append_class-native = " --bindir=${bindir}/${PN}" +export CROSSPYTHONPATH="${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/" EXTRANATIVEPATH += "python3-native" @@ -73,8 +75,16 @@ CACHED_CONFIGUREVARS = " \ ac_cv_file__dev_ptc=no \ ac_cv_working_tzset=yes \ " +python() { + # PGO currently causes builds to not be reproducible, so disable it for + # now. See YOCTO #13407 + if bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', True, False, d) and d.getVar('BUILD_REPRODUCIBLE_BINARIES') != '1': + d.setVar('PACKAGECONFIG_PGO', 'pgo') + else: + d.setVar('PACKAGECONFIG_PGO', '') +} -PACKAGECONFIG_class-target ??= "readline ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'pgo', '', d)}" +PACKAGECONFIG_class-target ??= "readline ${PACKAGECONFIG_PGO}" PACKAGECONFIG_class-native ??= "readline" PACKAGECONFIG_class-nativesdk ??= "readline" PACKAGECONFIG[readline] = ",,readline" diff --git a/poky/meta/recipes-devtools/python/python_2.7.16.bb b/poky/meta/recipes-devtools/python/python_2.7.16.bb index d70342fe3..5f387b8af 100644 --- a/poky/meta/recipes-devtools/python/python_2.7.16.bb +++ b/poky/meta/recipes-devtools/python/python_2.7.16.bb @@ -162,7 +162,7 @@ py_package_preprocess () { PACKAGES_remove = "${PN}" # manual dependency additions -RPROVIDES_${PN}-core = "${PN}" +RPROVIDES_${PN}-modules = "${PN}" RRECOMMENDS_${PN}-core_append_class-nativesdk = " nativesdk-python-modules" RRECOMMENDS_${PN}-crypt = "openssl" diff --git a/poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb b/poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb index f119215b2..76776098d 100644 --- a/poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb +++ b/poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb @@ -7,6 +7,7 @@ DEPENDS = "glib-2.0 zlib pixman bison-native" RDEPENDS_${PN}_class-target += "bash" EXTRA_OECONF_append_class-target = " --target-list=${@get_qemu_target_list(d)}" +EXTRA_OECONF_append_class-target_mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}" EXTRA_OECONF_append_class-nativesdk = " --target-list=${@get_qemu_target_list(d)}" do_install_append_class-nativesdk() { diff --git a/poky/meta/recipes-devtools/vala/vala_0.44.3.bb b/poky/meta/recipes-devtools/vala/vala_0.44.3.bb deleted file mode 100644 index fe6a5fcdc..000000000 --- a/poky/meta/recipes-devtools/vala/vala_0.44.3.bb +++ /dev/null @@ -1,8 +0,0 @@ -require ${BPN}.inc - -SRC_URI += "file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch \ - file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \ - " - -SRC_URI[md5sum] = "25f97c1b46ae0b60b5cc49cbc044eca2" -SRC_URI[sha256sum] = "8553b422484af88be1685d8b47f7b0df36ae4477c3e77e89ab22276ffed1eae9" diff --git a/poky/meta/recipes-devtools/vala/vala_0.44.5.bb b/poky/meta/recipes-devtools/vala/vala_0.44.5.bb new file mode 100644 index 000000000..518c9ebda --- /dev/null +++ b/poky/meta/recipes-devtools/vala/vala_0.44.5.bb @@ -0,0 +1,8 @@ +require ${BPN}.inc + +SRC_URI += "file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch \ + file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \ + " + +SRC_URI[md5sum] = "1e8b8595168446c529b11236cf75e328" +SRC_URI[sha256sum] = "bb8f8185b805411511786733c4b769c3ee6af8bc879609bffb6c46b8999bc27f" diff --git a/poky/meta/recipes-extended/less/less_550.bb b/poky/meta/recipes-extended/less/less_550.bb deleted file mode 100644 index bb1618f1e..000000000 --- a/poky/meta/recipes-extended/less/less_550.bb +++ /dev/null @@ -1,43 +0,0 @@ -SUMMARY = "Text file viewer similar to more" -DESCRIPTION = "Less is a program similar to more, i.e. a terminal \ -based program for viewing text files and the output from other \ -programs. Less offers many features beyond those that more does." -HOMEPAGE = "http://www.greenwoodsoftware.com/" -SECTION = "console/utils" - -# (GPLv2+ (<< 418), GPLv3+ (>= 418)) | less -# Including email author giving permissing to use BSD -# -# From: Mark Nudelman -# To: Elizabeth Flanagan = 418)) | less +# Including email author giving permissing to use BSD +# +# From: Mark Nudelman +# To: Elizabeth Flanagan = 2.2 -DEPENDS = "slang popt" +DEPENDS = "slang popt python3" SRC_URI = "https://releases.pagure.org/newt/newt-${PV}.tar.gz \ file://fix_SHAREDDIR.patch \ @@ -30,15 +30,20 @@ SRC_URI[sha256sum] = "8d66ba6beffc3f786d4ccfee9d2b43d93484680ef8db9397a4fb70b5ad S = "${WORKDIR}/newt-${PV}" -EXTRA_OECONF = "--without-tcl --without-python" +inherit autotools-brokensep python3native python3-dir -inherit autotools-brokensep +EXTRA_OECONF = "--without-tcl --with-python" + +EXTRA_OEMAKE += "PYTHONVERS=${PYTHON_DIR}" CLEANBROKEN = "1" export CPPFLAGS -PACKAGES_prepend = "whiptail " +PACKAGES_prepend = "whiptail ${PN}-python " + +RDEPENDS_${PN}-python += "python3-core" +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*" do_configure_prepend() { sh autogen.sh diff --git a/poky/meta/recipes-extended/parted/files/dm_check.patch b/poky/meta/recipes-extended/parted/files/dm_check.patch new file mode 100644 index 000000000..5f3c4ddae --- /dev/null +++ b/poky/meta/recipes-extended/parted/files/dm_check.patch @@ -0,0 +1,22 @@ +parted: change check for device-manager + +Other ptests use this method. + +Upstream-Status: Submitted [bug-parted@gnu.org] + +Signed-off-by: Joe Slater + + +--- a/tests/t6001-psep.sh ++++ b/tests/t6001-psep.sh +@@ -19,7 +19,9 @@ + . "${srcdir=.}/init.sh"; path_prepend_ ../parted + + require_root_ +-(dmsetup --help) > /dev/null 2>&1 || skip_test_ "No dmsetup installed" ++ ++test "x$ENABLE_DEVICE_MAPPER" = xyes \ ++ || skip_ "no device-mapper support" + + # Device maps names - should be random to not conflict with existing ones on + # the system diff --git a/poky/meta/recipes-extended/parted/parted_3.2.bb b/poky/meta/recipes-extended/parted/parted_3.2.bb index 13d7d6676..21a815345 100644 --- a/poky/meta/recipes-extended/parted/parted_3.2.bb +++ b/poky/meta/recipes-extended/parted/parted_3.2.bb @@ -18,6 +18,7 @@ SRC_URI = "${GNU_MIRROR}/parted/parted-${PV}.tar.xz \ file://run-ptest \ file://Makefile \ file://0001-libparted-Use-read-only-when-probing-devices-on-linu.patch \ + file://dm_check.patch \ " SRC_URI[md5sum] = "0247b6a7b314f8edeb618159fa95f9cb" diff --git a/poky/meta/recipes-extended/perl/libxml-sax-perl_1.00.bb b/poky/meta/recipes-extended/perl/libxml-sax-perl_1.00.bb deleted file mode 100644 index 80a1c8e39..000000000 --- a/poky/meta/recipes-extended/perl/libxml-sax-perl_1.00.bb +++ /dev/null @@ -1,35 +0,0 @@ -SUMMARY = "Perl module for using and building Perl SAX2 XML processors" -HOMEPAGE = "http://search.cpan.org/dist/XML-SAX/" -DESCRIPTION = "XML::SAX consists of several framework classes for using and \ -building Perl SAX2 XML parsers, filters, and drivers. It is designed \ -around the need to be able to "plug in" different SAX parsers to an \ -application without requiring programmer intervention. Those of you \ -familiar with the DBI will be right at home. Some of the designs \ -come from the Java JAXP specification (SAX part), only without the \ -javaness." - -SECTION = "libs" -LICENSE = "Artistic-1.0 | GPL-1.0+" -DEPENDS += "libxml-namespacesupport-perl-native" -RDEPENDS_${PN} += "libxml-namespacesupport-perl libxml-sax-base-perl perl-module-file-temp" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=65c4cd8f39c24c7135ed70dacbcb09e3" - -SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GR/GRANTM/XML-SAX-${PV}.tar.gz" - -SRC_URI[md5sum] = "861a454f7bf269990ed2c1c125f4db48" -SRC_URI[sha256sum] = "45ea6564ef8692155d57b2de0862b6442d3c7e29f4a9bc9ede5d7ecdc74c2ae3" - -S = "${WORKDIR}/XML-SAX-${PV}" - -inherit cpan ptest-perl - -do_install_ptest() { - cp -r ${B}/testfiles ${D}${PTEST_PATH} - chown -R root:root ${D}${PTEST_PATH}/testfiles -} - -RDEPENDS_${PN} += "perl-module-encode perl-module-perlio" -RDEPENDS_${PN}-ptest += "perl-module-test perl-module-base perl-module-fatal perl-module-encode-unicode perl-module-encode-byte" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb b/poky/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb new file mode 100644 index 000000000..02ee34ee1 --- /dev/null +++ b/poky/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb @@ -0,0 +1,42 @@ +SUMMARY = "Perl module for using and building Perl SAX2 XML processors" +HOMEPAGE = "http://search.cpan.org/dist/XML-SAX/" +DESCRIPTION = "XML::SAX consists of several framework classes for using and \ +building Perl SAX2 XML parsers, filters, and drivers. It is designed \ +around the need to be able to "plug in" different SAX parsers to an \ +application without requiring programmer intervention. Those of you \ +familiar with the DBI will be right at home. Some of the designs \ +come from the Java JAXP specification (SAX part), only without the \ +javaness." + +SECTION = "libs" +LICENSE = "Artistic-1.0 | GPL-1.0+" +DEPENDS += "libxml-namespacesupport-perl-native" +RDEPENDS_${PN} += "libxml-namespacesupport-perl libxml-sax-base-perl perl-module-file-temp" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=65c4cd8f39c24c7135ed70dacbcb09e3" + +SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GR/GRANTM/XML-SAX-${PV}.tar.gz" + +SRC_URI[md5sum] = "b62e3754523695c7f5bbcafa3676a38d" +SRC_URI[sha256sum] = "4506c387043aa6a77b455f00f57409f3720aa7e553495ab2535263b4ed1ea12a" + +S = "${WORKDIR}/XML-SAX-${PV}" + +inherit cpan ptest-perl + +do_install_ptest() { + cp -r ${B}/testfiles ${D}${PTEST_PATH} + chown -R root:root ${D}${PTEST_PATH}/testfiles +} + +RDEPENDS_${PN} += "perl-module-encode perl-module-perlio" + +RDEPENDS_${PN}-ptest += " \ + perl-module-base \ + perl-module-encode-byte \ + perl-module-encode-unicode \ + perl-module-fatal \ + perl-module-test \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/shadow/files/0001-configure.ac-fix-configure-error-with-dash.patch b/poky/meta/recipes-extended/shadow/files/0001-configure.ac-fix-configure-error-with-dash.patch new file mode 100644 index 000000000..a74cbb0c0 --- /dev/null +++ b/poky/meta/recipes-extended/shadow/files/0001-configure.ac-fix-configure-error-with-dash.patch @@ -0,0 +1,36 @@ +From 3c52a84ff8775590e7e9da9c0d4408c23494305e Mon Sep 17 00:00:00 2001 +From: Yi Zhao +Date: Mon, 17 Jun 2019 15:36:34 +0800 +Subject: [PATCH] configure.ac: fix configure error with dash + +A configure error occurs when /bin/sh -> dash: + checking for is_selinux_enabled in -lselinux... yes + checking for semanage_connect in -lsemanage... yes + configure: 16322: test: yesyes: unexpected operator + +Use "=" instead of "==" since dash doesn't support this operator. + +Upstream-Status: Backport +[https://github.com/shadow-maint/shadow/commit/3c52a84ff8775590e7e9da9c0d4408c23494305e] + +Signed-off-by: Yi Zhao +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 6762556..1907afb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -500,7 +500,7 @@ if test "$with_selinux" != "no"; then + AC_MSG_ERROR([libsemanage not found]) + fi + +- if test "$selinux_lib$semanage_lib" == "yesyes" ; then ++ if test "$selinux_lib$semanage_lib" = "yesyes" ; then + AC_DEFINE(WITH_SELINUX, 1, + [Build shadow with SELinux support]) + LIBSELINUX="-lselinux" +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/shadow/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc index 831751d6d..7f82d2082 100644 --- a/poky/meta/recipes-extended/shadow/shadow.inc +++ b/poky/meta/recipes-extended/shadow/shadow.inc @@ -13,6 +13,7 @@ SRC_URI = "https://github.com/shadow-maint/shadow/releases/download/${PV}/${BP}. file://shadow-4.1.3-dots-in-usernames.patch \ file://0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch \ file://0002-gettime-Use-secure_getenv-over-getenv.patch \ + file://0001-configure.ac-fix-configure-error-with-dash.patch \ ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \ " diff --git a/poky/meta/recipes-extended/sysstat/sysstat.inc b/poky/meta/recipes-extended/sysstat/sysstat.inc index 6b21c6b8c..4e2972166 100644 --- a/poky/meta/recipes-extended/sysstat/sysstat.inc +++ b/poky/meta/recipes-extended/sysstat/sysstat.inc @@ -52,12 +52,11 @@ do_install() { } pkg_postinst_${PN} () { - if [ -n "$D" ]; then - exit 0 - fi - if [ -e /etc/init.d/populate-volatile.sh ]; then - /etc/init.d/populate-volatile.sh update - fi + if [ ! -n "$D" ]; then + if [ -e /etc/init.d/populate-volatile.sh ]; then + /etc/init.d/populate-volatile.sh update + fi + fi } FILES_${PN} += "${libdir}/sa ${systemd_system_unitdir}" diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_3.32.2.bb b/poky/meta/recipes-gnome/epiphany/epiphany_3.32.2.bb deleted file mode 100644 index ff0e34f98..000000000 --- a/poky/meta/recipes-gnome/epiphany/epiphany_3.32.2.bb +++ /dev/null @@ -1,21 +0,0 @@ -SUMMARY = "WebKit based web browser for GNOME" -LICENSE = "GPLv3+" -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" - -DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr \ - gsettings-desktop-schemas libxml2-native \ - glib-2.0 glib-2.0-native json-glib libdazzle" - -GNOMEBASEBUILDCLASS = "meson" -inherit gnomebase gsettings distro_features_check upstream-version-is-even gettext -REQUIRED_DISTRO_FEATURES = "x11 opengl" - -SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ - file://0002-help-meson.build-disable-the-use-of-yelp.patch \ - file://0001-web-app-utils-Clean-up-ephy_web_application_create.patch \ - " -SRC_URI[archive.md5sum] = "2a6672b22a0fdb869e5f0a415ac2da34" -SRC_URI[archive.sha256sum] = "8ae70d9feaba3754c63ab249deeef9b7a31161a372655b4214f148ea2f440cfa" - -FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo" -RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas" diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_3.32.3.bb b/poky/meta/recipes-gnome/epiphany/epiphany_3.32.3.bb new file mode 100644 index 000000000..de1b6e2f8 --- /dev/null +++ b/poky/meta/recipes-gnome/epiphany/epiphany_3.32.3.bb @@ -0,0 +1,20 @@ +SUMMARY = "WebKit based web browser for GNOME" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr \ + gsettings-desktop-schemas libxml2-native \ + glib-2.0 glib-2.0-native json-glib libdazzle" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase gsettings distro_features_check upstream-version-is-even gettext +REQUIRED_DISTRO_FEATURES = "x11 opengl" + +SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ + file://0002-help-meson.build-disable-the-use-of-yelp.patch \ + " +SRC_URI[archive.md5sum] = "c4976507bf3de69f27a050ad09531f5a" +SRC_URI[archive.sha256sum] = "3ccb6859a43b839b714aa425cb185056f1e8604adbaab6a1bc179d1ba641a33f" + +FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo" +RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas" diff --git a/poky/meta/recipes-gnome/epiphany/files/0001-web-app-utils-Clean-up-ephy_web_application_create.patch b/poky/meta/recipes-gnome/epiphany/files/0001-web-app-utils-Clean-up-ephy_web_application_create.patch deleted file mode 100644 index ea644fb98..000000000 --- a/poky/meta/recipes-gnome/epiphany/files/0001-web-app-utils-Clean-up-ephy_web_application_create.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 49f435217873e679b142f64d3e7def919fb642bb Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Wed, 8 May 2019 15:58:32 +0000 -Subject: [PATCH] web-app-utils: Clean up ephy_web_application_create() - -Fixes #764 - -(cherry picked from commit 4e998d45e4cc549a7ca561a33895b0fbcf7ba6bb) -Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/epiphany/commit/a6a022c9c498ad5dcf7f2220644a7520df74ca31] - -Signed-off-by: Khem Raj ---- - lib/ephy-web-app-utils.c | 24 ++++++++++-------------- - 1 file changed, 10 insertions(+), 14 deletions(-) - -diff --git a/lib/ephy-web-app-utils.c b/lib/ephy-web-app-utils.c -index 97f3f24..fc68a96 100644 ---- a/lib/ephy-web-app-utils.c -+++ b/lib/ephy-web-app-utils.c -@@ -374,46 +374,42 @@ ephy_web_application_create (const char *id, - const char *name, - GdkPixbuf *icon) - { -- char *profile_dir; -- char *desktop_file_path = NULL; -+ g_autofree char *app_file = NULL; -+ g_autofree char *profile_dir = NULL; -+ g_autofree char *desktop_file_path = NULL; - - /* If there's already a WebApp profile for the contents of this - * view, do nothing. */ - profile_dir = ephy_web_application_get_profile_directory (id); - if (g_file_test (profile_dir, G_FILE_TEST_IS_DIR)) { - g_warning ("Profile directory %s already exists", profile_dir); -- goto out; -+ return NULL; - } - - /* Create the profile directory, populate it. */ - if (g_mkdir_with_parents (profile_dir, 488) == -1) { - g_warning ("Failed to create directory %s", profile_dir); -- goto out; -+ return NULL; - } - - /* Skip migration for new web apps. */ - ephy_profile_utils_set_migration_version_for_profile_dir (EPHY_PROFILE_MIGRATION_VERSION, profile_dir); - - /* Create an .app file. */ -- g_autofree char *app_file = g_build_filename (profile_dir, ".app", NULL); -+ app_file = g_build_filename (profile_dir, ".app", NULL); - int fd = g_open (app_file, O_WRONLY|O_CREAT|O_TRUNC, 0644); - if (fd < 0) { -- LOG ("Failed to create .app file: %s", g_strerror (errno)); -- goto out; -- } else { -- close (fd); -+ g_warning ("Failed to create .app file: %s", g_strerror (errno)); -+ return NULL; - } -+ close (fd); - - /* Create the deskop file. */ - desktop_file_path = create_desktop_file (id, name, address, profile_dir, icon); - if (desktop_file_path) - ephy_web_application_initialize_settings (profile_dir); - -- out: -- if (profile_dir) -- g_free (profile_dir); -- -- return desktop_file_path; -+ return g_steal_pointer (&desktop_file_path); - } - - char * --- -2.21.0 - diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.1.bb b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.1.bb deleted file mode 100644 index 40beab0c4..000000000 --- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.1.bb +++ /dev/null @@ -1,206 +0,0 @@ -SUMMARY = "Middleware layer between GObject-using C libraries and language bindings" -HOMEPAGE = "https://wiki.gnome.org/action/show/Projects/GObjectIntrospection" -BUGTRACKER = "https://bugzilla.gnome.org/" -SECTION = "libs" -LICENSE = "LGPLv2+ & GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \ - file://tools/compiler.c;endline=20;md5=fc5007fc20022720e6c0b0cdde41fabd \ - file://giscanner/sourcescanner.c;endline=22;md5=194d6e0c1d00662f32d030ce44de8d39 \ - file://girepository/giregisteredtypeinfo.c;endline=21;md5=661847611ae6979465415f31a759ba27 \ - " - -SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \ - file://0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch \ - file://0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch \ - file://0003-giscanner-add-use-binary-wrapper-option.patch \ - file://0004-giscanner-add-a-use-ldd-wrapper-option.patch \ - file://0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch \ - file://0001-giscanner-add-a-lib-dirs-envvar-option.patch \ - file://0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch \ - file://0001-Port-cross-compilation-support-to-meson.patch \ - file://0001-meson.build-disable-tests-when-cross-compiling.patch \ - " - -SRC_URI[md5sum] = "46fc8a98f6563e64947ac3d574632525" -SRC_URI[sha256sum] = "d844d1499ecd36f3ec8a3573616186d36626ec0c9a7981939e99aa02e9c824b3" - -SRC_URI_append_class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch" - -inherit meson pkgconfig gtk-doc python3native qemu gobject-introspection-data upstream-version-is-even multilib_script - -GTKDOC_MESON_OPTION = "gtk_doc" - -MULTILIB_SCRIPTS = "${PN}:${bindir}/g-ir-annotation-tool ${PN}:${bindir}/g-ir-scanner" - -DEPENDS_append = " libffi zlib glib-2.0 python3 flex-native bison-native autoconf-archive" - -# target build needs qemu to run temporary introspection binaries created -# on the fly by g-ir-scanner and a native version of itself to run -# native versions of its own tools during build. -# Also prelink-rtld is used to find out library dependencies of introspection binaries -# (standard ldd doesn't work when cross-compiling). -DEPENDS_class-target_append = " gobject-introspection-native qemu-native prelink-native" - -# needed for writing out the qemu wrapper script -export STAGING_DIR_HOST -export B - -PACKAGECONFIG ?= "" -PACKAGECONFIG[doctool] = "-Ddoctool=true,-Ddoctool=false,python3-mako," - -# Configure target build to use native tools of itself and to use a qemu wrapper -# and optionally to generate introspection data -EXTRA_OEMESON_class-target = " \ - -Denable-host-gi=true \ - -Denable-gi-cross-wrapper=${B}/g-ir-scanner-qemuwrapper \ - -Denable-gi-ldd-wrapper=${B}/g-ir-scanner-lddwrapper \ - -Dpkgconfig-sysroot-path=${PKG_CONFIG_SYSROOT_DIR} \ - ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Denable-introspection-data=true', '-Denable-introspection-data=false', d)} \ - ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \ -" - -# Need to ensure ld.so.conf exists so prelink-native works -# both before we build and if we install from sstate -do_configure[prefuncs] += "gobject_introspection_preconfigure" -python gobject_introspection_preconfigure () { - oe.utils.write_ld_so_conf(d) -} - -do_configure_prepend_class-native() { - # Tweak the native python scripts so that they don't refer to the - # full path of native python binary (the solution is taken from glib-2.0 recipe) - # This removes the risk of exceeding Linux kernel's shebang line limit (128 bytes) - sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in -} - -do_configure_prepend_class-target() { - # Write out a qemu wrapper that will be given to gi-scanner so that it - # can run target helper binaries through that. - qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}" - cat > ${B}/g-ir-scanner-qemuwrapper << EOF -#!/bin/sh -# Use a modules directory which doesn't exist so we don't load random things -# which may then get deleted (or their dependencies) and potentially segfault -export GIO_MODULE_DIR=${STAGING_LIBDIR}/gio/modules-dummy - -$qemu_binary "\$@" -if [ \$? -ne 0 ]; then - echo "If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help." - echo "(typically like this: GIR_EXTRA_LIBS_PATH=\"$""{B}/something/.libs\" )" - exit 1 -fi -EOF - chmod +x ${B}/g-ir-scanner-qemuwrapper - - # Write out a wrapper for g-ir-scanner itself, which will be used when building introspection files - # for glib-based packages. This wrapper calls the native version of the scanner, and tells it to use - # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory - # from the target sysroot. - cat > ${B}/g-ir-scanner-wrapper << EOF -#!/bin/sh -# This prevents g-ir-scanner from writing cache data to $HOME -export GI_SCANNER_DISABLE_CACHE=1 - -g-ir-scanner --lib-dirs-envvar=GIR_EXTRA_LIBS_PATH --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_DATADIR}/gir-1.0 --add-include-path=${STAGING_LIBDIR}/gir-1.0 "\$@" -EOF - chmod +x ${B}/g-ir-scanner-wrapper - - # Write out a wrapper for g-ir-compiler, which runs the target version of it through qemu. - # g-ir-compiler writes out the raw content of a C struct to disk, and therefore is architecture dependent. - cat > ${B}/g-ir-compiler-wrapper << EOF -#!/bin/sh -${STAGING_BINDIR}/g-ir-scanner-qemuwrapper ${STAGING_BINDIR}/g-ir-compiler "\$@" -EOF - chmod +x ${B}/g-ir-compiler-wrapper - - # Write out a wrapper to use instead of ldd, which does not work when a binary is built - # for a different architecture - cat > ${B}/g-ir-scanner-lddwrapper << EOF -#!/bin/sh -prelink-rtld --root=$STAGING_DIR_HOST "\$@" -EOF - chmod +x ${B}/g-ir-scanner-lddwrapper - - # Also tweak the target python scripts so that they don't refer to the - # native version of python binary (the solution is taken from glib-2.0 recipe) - sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in -} - -do_compile_prepend() { - # This prevents g-ir-scanner from writing cache data to $HOME - export GI_SCANNER_DISABLE_CACHE=1 - - # Needed to run g-ir unit tests, which won't be able to find the built libraries otherwise - export GIR_EXTRA_LIBS_PATH=$B/.libs -} - -# Our wrappers need to be available system-wide, because they will be used -# to build introspection files for all other gobject-based packages -do_install_append_class-target() { - install -d ${D}${bindir}/ - install ${B}/g-ir-scanner-qemuwrapper ${D}${bindir}/ - install ${B}/g-ir-scanner-wrapper ${D}${bindir}/ - install ${B}/g-ir-compiler-wrapper ${D}${bindir}/ - install ${B}/g-ir-scanner-lddwrapper ${D}${bindir}/ -} - -# we need target versions of introspection tools in sysroot so that they can be run via qemu -# when building introspection files in other packages -SYSROOT_DIRS_append_class-target = " ${bindir}" - -SYSROOT_PREPROCESS_FUNCS_append_class-target = " gi_binaries_sysroot_preprocess" -gi_binaries_sysroot_preprocess() { - # Tweak the binary names in the introspection pkgconfig file, so that it - # picks up our wrappers which do the cross-compile and qemu magic. - sed -i \ - -e "s|g_ir_scanner=.*|g_ir_scanner=${bindir}/g-ir-scanner-wrapper|" \ - -e "s|g_ir_compiler=.*|g_ir_compiler=${bindir}/g-ir-compiler-wrapper|" \ - ${SYSROOT_DESTDIR}${libdir}/pkgconfig/gobject-introspection-1.0.pc -} - -SYSROOT_PREPROCESS_FUNCS_append = " gi_ldsoconf_sysroot_preprocess" -gi_ldsoconf_sysroot_preprocess () { - mkdir -p ${SYSROOT_DESTDIR}${bindir} - dest=${SYSROOT_DESTDIR}${bindir}/postinst-ldsoconf-${PN} - echo "#!/bin/sh" > $dest - echo "mkdir -p ${STAGING_DIR_TARGET}${sysconfdir}" >> $dest - echo "echo ${base_libdir} >> ${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf" >> $dest - echo "echo ${libdir} >> ${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf" >> $dest - chmod 755 $dest -} - -# Remove wrapper files from the package, only used for cross-compiling -PACKAGE_PREPROCESS_FUNCS += "gi_package_preprocess" -gi_package_preprocess() { - rm -f ${PKGD}${bindir}/g-ir-scanner-qemuwrapper - rm -f ${PKGD}${bindir}/g-ir-scanner-wrapper - rm -f ${PKGD}${bindir}/g-ir-compiler-wrapper - rm -f ${PKGD}${bindir}/g-ir-scanner-lddwrapper -} - -SSTATE_SCAN_FILES += "g-ir-scanner-qemuwrapper g-ir-scanner-wrapper g-ir-compiler-wrapper g-ir-scanner-lddwrapper Gio-2.0.gir postinst-ldsoconf-${PN}" - -# .typelib files are needed at runtime and so they go to the main package -FILES_${PN}_append = " ${libdir}/girepository-*/*.typelib" - -# .gir files go to dev package, as they're needed for developing (but not for running) -# things that depends on introspection. -FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir" -FILES_${PN}-dev_append = " ${datadir}/gir-*/*.rnc" - -# These are used by gobject-based packages -# to generate transient introspection binaries -FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/gdump.c \ - ${datadir}/gobject-introspection-1.0/Makefile.introspection" - -# These are used by dependent packages (e.g. pygobject) to build their -# testsuites. -FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/tests/*.c \ - ${datadir}/gobject-introspection-1.0/tests/*.h" - -FILES_${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/" -FILES_${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a" - -RDEPENDS_${PN} = "python3-pickle python3-xml" - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.2.bb b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.2.bb new file mode 100644 index 000000000..f46053f44 --- /dev/null +++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.60.2.bb @@ -0,0 +1,206 @@ +SUMMARY = "Middleware layer between GObject-using C libraries and language bindings" +HOMEPAGE = "https://wiki.gnome.org/action/show/Projects/GObjectIntrospection" +BUGTRACKER = "https://bugzilla.gnome.org/" +SECTION = "libs" +LICENSE = "LGPLv2+ & GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=c434e8128a68bedd59b80b2ac1eb1c4a \ + file://tools/compiler.c;endline=20;md5=fc5007fc20022720e6c0b0cdde41fabd \ + file://giscanner/sourcescanner.c;endline=22;md5=194d6e0c1d00662f32d030ce44de8d39 \ + file://girepository/giregisteredtypeinfo.c;endline=21;md5=661847611ae6979465415f31a759ba27 \ + " + +SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \ + file://0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch \ + file://0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch \ + file://0003-giscanner-add-use-binary-wrapper-option.patch \ + file://0004-giscanner-add-a-use-ldd-wrapper-option.patch \ + file://0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch \ + file://0001-giscanner-add-a-lib-dirs-envvar-option.patch \ + file://0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch \ + file://0001-Port-cross-compilation-support-to-meson.patch \ + file://0001-meson.build-disable-tests-when-cross-compiling.patch \ + " + +SRC_URI[md5sum] = "57c1c5dcf3d0a9aa73d06c2d5e6960d7" +SRC_URI[sha256sum] = "ffdfe2368fb2e34a547898b01aac0520d52d8627fdeb1c306559bcb503ab5e9c" + +SRC_URI_append_class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch" + +inherit meson pkgconfig gtk-doc python3native qemu gobject-introspection-data upstream-version-is-even multilib_script + +GTKDOC_MESON_OPTION = "gtk_doc" + +MULTILIB_SCRIPTS = "${PN}:${bindir}/g-ir-annotation-tool ${PN}:${bindir}/g-ir-scanner" + +DEPENDS_append = " libffi zlib glib-2.0 python3 flex-native bison-native autoconf-archive" + +# target build needs qemu to run temporary introspection binaries created +# on the fly by g-ir-scanner and a native version of itself to run +# native versions of its own tools during build. +# Also prelink-rtld is used to find out library dependencies of introspection binaries +# (standard ldd doesn't work when cross-compiling). +DEPENDS_class-target_append = " gobject-introspection-native qemu-native prelink-native" + +# needed for writing out the qemu wrapper script +export STAGING_DIR_HOST +export B + +PACKAGECONFIG ?= "" +PACKAGECONFIG[doctool] = "-Ddoctool=true,-Ddoctool=false,python3-mako," + +# Configure target build to use native tools of itself and to use a qemu wrapper +# and optionally to generate introspection data +EXTRA_OEMESON_class-target = " \ + -Denable-host-gi=true \ + -Denable-gi-cross-wrapper=${B}/g-ir-scanner-qemuwrapper \ + -Denable-gi-ldd-wrapper=${B}/g-ir-scanner-lddwrapper \ + -Dpkgconfig-sysroot-path=${PKG_CONFIG_SYSROOT_DIR} \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Denable-introspection-data=true', '-Denable-introspection-data=false', d)} \ + ${@'-Dgir_dir_prefix=${libdir}' if d.getVar('MULTILIBS') else ''} \ +" + +# Need to ensure ld.so.conf exists so prelink-native works +# both before we build and if we install from sstate +do_configure[prefuncs] += "gobject_introspection_preconfigure" +python gobject_introspection_preconfigure () { + oe.utils.write_ld_so_conf(d) +} + +do_configure_prepend_class-native() { + # Tweak the native python scripts so that they don't refer to the + # full path of native python binary (the solution is taken from glib-2.0 recipe) + # This removes the risk of exceeding Linux kernel's shebang line limit (128 bytes) + sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in +} + +do_configure_prepend_class-target() { + # Write out a qemu wrapper that will be given to gi-scanner so that it + # can run target helper binaries through that. + qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}" + cat > ${B}/g-ir-scanner-qemuwrapper << EOF +#!/bin/sh +# Use a modules directory which doesn't exist so we don't load random things +# which may then get deleted (or their dependencies) and potentially segfault +export GIO_MODULE_DIR=${STAGING_LIBDIR}/gio/modules-dummy + +$qemu_binary "\$@" +if [ \$? -ne 0 ]; then + echo "If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help." + echo "(typically like this: GIR_EXTRA_LIBS_PATH=\"$""{B}/something/.libs\" )" + exit 1 +fi +EOF + chmod +x ${B}/g-ir-scanner-qemuwrapper + + # Write out a wrapper for g-ir-scanner itself, which will be used when building introspection files + # for glib-based packages. This wrapper calls the native version of the scanner, and tells it to use + # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory + # from the target sysroot. + cat > ${B}/g-ir-scanner-wrapper << EOF +#!/bin/sh +# This prevents g-ir-scanner from writing cache data to $HOME +export GI_SCANNER_DISABLE_CACHE=1 + +g-ir-scanner --lib-dirs-envvar=GIR_EXTRA_LIBS_PATH --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_DATADIR}/gir-1.0 --add-include-path=${STAGING_LIBDIR}/gir-1.0 "\$@" +EOF + chmod +x ${B}/g-ir-scanner-wrapper + + # Write out a wrapper for g-ir-compiler, which runs the target version of it through qemu. + # g-ir-compiler writes out the raw content of a C struct to disk, and therefore is architecture dependent. + cat > ${B}/g-ir-compiler-wrapper << EOF +#!/bin/sh +${STAGING_BINDIR}/g-ir-scanner-qemuwrapper ${STAGING_BINDIR}/g-ir-compiler "\$@" +EOF + chmod +x ${B}/g-ir-compiler-wrapper + + # Write out a wrapper to use instead of ldd, which does not work when a binary is built + # for a different architecture + cat > ${B}/g-ir-scanner-lddwrapper << EOF +#!/bin/sh +prelink-rtld --root=$STAGING_DIR_HOST "\$@" +EOF + chmod +x ${B}/g-ir-scanner-lddwrapper + + # Also tweak the target python scripts so that they don't refer to the + # native version of python binary (the solution is taken from glib-2.0 recipe) + sed -i -e '1s,#!.*,#!${USRBINPATH}/env python3,' ${S}/tools/g-ir-tool-template.in +} + +do_compile_prepend() { + # This prevents g-ir-scanner from writing cache data to $HOME + export GI_SCANNER_DISABLE_CACHE=1 + + # Needed to run g-ir unit tests, which won't be able to find the built libraries otherwise + export GIR_EXTRA_LIBS_PATH=$B/.libs +} + +# Our wrappers need to be available system-wide, because they will be used +# to build introspection files for all other gobject-based packages +do_install_append_class-target() { + install -d ${D}${bindir}/ + install ${B}/g-ir-scanner-qemuwrapper ${D}${bindir}/ + install ${B}/g-ir-scanner-wrapper ${D}${bindir}/ + install ${B}/g-ir-compiler-wrapper ${D}${bindir}/ + install ${B}/g-ir-scanner-lddwrapper ${D}${bindir}/ +} + +# we need target versions of introspection tools in sysroot so that they can be run via qemu +# when building introspection files in other packages +SYSROOT_DIRS_append_class-target = " ${bindir}" + +SYSROOT_PREPROCESS_FUNCS_append_class-target = " gi_binaries_sysroot_preprocess" +gi_binaries_sysroot_preprocess() { + # Tweak the binary names in the introspection pkgconfig file, so that it + # picks up our wrappers which do the cross-compile and qemu magic. + sed -i \ + -e "s|g_ir_scanner=.*|g_ir_scanner=${bindir}/g-ir-scanner-wrapper|" \ + -e "s|g_ir_compiler=.*|g_ir_compiler=${bindir}/g-ir-compiler-wrapper|" \ + ${SYSROOT_DESTDIR}${libdir}/pkgconfig/gobject-introspection-1.0.pc +} + +SYSROOT_PREPROCESS_FUNCS_append = " gi_ldsoconf_sysroot_preprocess" +gi_ldsoconf_sysroot_preprocess () { + mkdir -p ${SYSROOT_DESTDIR}${bindir} + dest=${SYSROOT_DESTDIR}${bindir}/postinst-ldsoconf-${PN} + echo "#!/bin/sh" > $dest + echo "mkdir -p ${STAGING_DIR_TARGET}${sysconfdir}" >> $dest + echo "echo ${base_libdir} >> ${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf" >> $dest + echo "echo ${libdir} >> ${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf" >> $dest + chmod 755 $dest +} + +# Remove wrapper files from the package, only used for cross-compiling +PACKAGE_PREPROCESS_FUNCS += "gi_package_preprocess" +gi_package_preprocess() { + rm -f ${PKGD}${bindir}/g-ir-scanner-qemuwrapper + rm -f ${PKGD}${bindir}/g-ir-scanner-wrapper + rm -f ${PKGD}${bindir}/g-ir-compiler-wrapper + rm -f ${PKGD}${bindir}/g-ir-scanner-lddwrapper +} + +SSTATE_SCAN_FILES += "g-ir-scanner-qemuwrapper g-ir-scanner-wrapper g-ir-compiler-wrapper g-ir-scanner-lddwrapper Gio-2.0.gir postinst-ldsoconf-${PN}" + +# .typelib files are needed at runtime and so they go to the main package +FILES_${PN}_append = " ${libdir}/girepository-*/*.typelib" + +# .gir files go to dev package, as they're needed for developing (but not for running) +# things that depends on introspection. +FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir ${libdir}/gir-*/*.gir" +FILES_${PN}-dev_append = " ${datadir}/gir-*/*.rnc" + +# These are used by gobject-based packages +# to generate transient introspection binaries +FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/gdump.c \ + ${datadir}/gobject-introspection-1.0/Makefile.introspection" + +# These are used by dependent packages (e.g. pygobject) to build their +# testsuites. +FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/tests/*.c \ + ${datadir}/gobject-introspection-1.0/tests/*.h" + +FILES_${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/" +FILES_${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a" + +RDEPENDS_${PN} = "python3-pickle python3-xml" + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb index bac91d373..a0a0b1509 100644 --- a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb +++ b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.9.bb @@ -21,7 +21,9 @@ S = "${WORKDIR}/SDL2-${PV}" SRC_URI[md5sum] = "f2ecfba915c54f7200f504d8b48a5dfe" SRC_URI[sha256sum] = "255186dc676ecd0c1dbf10ec8a2cc5d6869b5079d8a38194c2aecdff54b324b1" -inherit autotools lib_package binconfig pkgconfig +inherit autotools lib_package binconfig-disabled pkgconfig + +BINCONFIG = "${bindir}/sdl2-config" CVE_PRODUCT = "simple_directmedia_layer sdl" diff --git a/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.26.bb b/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.26.bb deleted file mode 100644 index 5c2328845..000000000 --- a/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.26.bb +++ /dev/null @@ -1,32 +0,0 @@ -SUMMARY = "Keyboard configuration database for X Window" - -DESCRIPTION = "The non-arch keyboard configuration database for X \ -Window. The goal is to provide the consistent, well-structured, \ -frequently released open source of X keyboard configuration data for X \ -Window System implementations. The project is targeted to XKB-based \ -systems." - -HOMEPAGE = "http://freedesktop.org/wiki/Software/XKeyboardConfig" -BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xkeyboard-config" - -LICENSE = "MIT & MIT-style" -LIC_FILES_CHKSUM = "file://COPYING;md5=0e7f21ca7db975c63467d2e7624a12f9" - -SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.bz2" - -SRC_URI[md5sum] = "e2e980629bfeb9f40a7d44488b18ba12" -SRC_URI[sha256sum] = "393718c7460cd06c4e8cb819d943ca54812ea476f32714c4d8975c77031a038e" - -SECTION = "x11/libs" -DEPENDS = "intltool-native util-macros libxslt-native" - -EXTRA_OECONF = "--with-xkb-rules-symlink=xorg --disable-runtime-deps" - -FILES_${PN} += "${datadir}/X11/xkb" - -inherit autotools pkgconfig gettext - -do_install_append () { - install -d ${D}${datadir}/X11/xkb/compiled - cd ${D}${datadir}/X11/xkb/rules && ln -sf base xorg -} diff --git a/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb b/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb new file mode 100644 index 000000000..a6b2cc0ee --- /dev/null +++ b/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb @@ -0,0 +1,32 @@ +SUMMARY = "Keyboard configuration database for X Window" + +DESCRIPTION = "The non-arch keyboard configuration database for X \ +Window. The goal is to provide the consistent, well-structured, \ +frequently released open source of X keyboard configuration data for X \ +Window System implementations. The project is targeted to XKB-based \ +systems." + +HOMEPAGE = "http://freedesktop.org/wiki/Software/XKeyboardConfig" +BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xkeyboard-config" + +LICENSE = "MIT & MIT-style" +LIC_FILES_CHKSUM = "file://COPYING;md5=0e7f21ca7db975c63467d2e7624a12f9" + +SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.bz2" + +SRC_URI[md5sum] = "316753e35d3906d042c74230612eab9f" +SRC_URI[sha256sum] = "690daec8fea63526c07620c90e6f3f10aae34e94b6db6e30906173480721901f" + +SECTION = "x11/libs" +DEPENDS = "intltool-native util-macros libxslt-native" + +EXTRA_OECONF = "--with-xkb-rules-symlink=xorg --disable-runtime-deps" + +FILES_${PN} += "${datadir}/X11/xkb" + +inherit autotools pkgconfig gettext + +do_install_append () { + install -d ${D}${datadir}/X11/xkb/compiled + cd ${D}${datadir}/X11/xkb/rules && ln -sf base xorg +} diff --git a/poky/meta/recipes-kernel/linux/linux-dummy.bb b/poky/meta/recipes-kernel/linux/linux-dummy.bb index e1c7f7676..62cf6f5ea 100644 --- a/poky/meta/recipes-kernel/linux/linux-dummy.bb +++ b/poky/meta/recipes-kernel/linux/linux-dummy.bb @@ -39,6 +39,10 @@ do_compile () { : } +do_compile_kernelmodules() { + : +} + do_shared_workdir () { : } @@ -58,3 +62,4 @@ do_deploy() { addtask bundle_initramfs after do_install before do_deploy addtask deploy after do_install addtask shared_workdir after do_compile before do_install +addtask compile_kernelmodules diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb index 3a055c12a..8c83620d3 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb @@ -41,7 +41,7 @@ DEPENDS += "openssl-native util-linux-native" COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64)" -KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb index 0836dc7ea..a4facfeb6 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb @@ -33,7 +33,7 @@ LINUX_KERNEL_TYPE = "preempt-rt" COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)" -KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb index b5e415f93..8bd9d7446 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb @@ -33,7 +33,7 @@ LINUX_KERNEL_TYPE = "preempt-rt" COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)" -KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb index 4ca11d769..e668854fa 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb @@ -29,4 +29,4 @@ COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5" # Functionality flags KERNEL_FEATURES = "" -KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb index a9c463cf0..226a90c7f 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb @@ -29,4 +29,4 @@ COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5" # Functionality flags KERNEL_FEATURES = "" -KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb index cda4ecf89..014d6894e 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb @@ -36,7 +36,7 @@ PV = "${LINUX_VERSION}+git${SRCPV}" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64" diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb index 8aec31508..7456141c5 100644 --- a/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb +++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb @@ -7,6 +7,7 @@ KBRANCH_qemuarm ?= "v5.0/standard/arm-versatile-926ejs" KBRANCH_qemuarm64 ?= "v5.0/standard/qemuarm64" KBRANCH_qemumips ?= "v5.0/standard/mti-malta32" KBRANCH_qemuppc ?= "v5.0/standard/qemuppc" +KBRANCH_qemuriscv64 ?= "v5.0/standard/base" KBRANCH_qemux86 ?= "v5.0/standard/base" KBRANCH_qemux86-64 ?= "v5.0/standard/base" KBRANCH_qemumips64 ?= "v5.0/standard/mti-malta64" @@ -15,6 +16,7 @@ SRCREV_machine_qemuarm ?= "9161b2fa2f1cec0ba02976c389c788445858e0de" SRCREV_machine_qemuarm64 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458" SRCREV_machine_qemumips ?= "7de9b8f0db98e51a666477c8e2b64f1964b45410" SRCREV_machine_qemuppc ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458" +SRCREV_machine_qemuriscv64 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458" SRCREV_machine_qemux86 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458" SRCREV_machine_qemux86-64 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458" SRCREV_machine_qemumips64 ?= "5a8b27bcc0b16077ab8edfcd3fb25c80dc2c652e" @@ -38,10 +40,9 @@ PV = "${LINUX_VERSION}+git${SRCPV}" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb" -COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64" +COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64" # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest b/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest index dbb18820a..eaa2e7b29 100755 --- a/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest +++ b/poky/meta/recipes-kernel/lttng/lttng-tools/run-ptest @@ -3,4 +3,4 @@ # test plan to raise ERRORs; this is just noise. makeargs="LOG_DRIVER_FLAGS=--ignore-exit top_srcdir=$PWD top_builddir=$PWD" make -k -t all >/dev/null 2>&1 -exec make -k -s $makeargs check 2>/dev/null +exec make -k -s $makeargs check 2>/dev/null | sed -e 's#/tmp/tmp\...........#/tmp/tmp.XXXXXXXXXX#g' diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.10.6.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.10.6.bb index 9583ee3ab..58c7864c3 100644 --- a/poky/meta/recipes-kernel/lttng/lttng-tools_2.10.6.bb +++ b/poky/meta/recipes-kernel/lttng/lttng-tools_2.10.6.bb @@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=01d7fc4496aacf37d90df90b90b0cac1 \ DEPENDS = "liburcu popt libxml2 util-linux" RDEPENDS_${PN} = "libgcc" -RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod lttng-modules" +RDEPENDS_${PN}-ptest += "make perl bash gawk babeltrace procps perl-module-overloading coreutils util-linux kmod lttng-modules sed" RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils" RDEPENDS_${PN}-ptest_append_libc-musl = " musl-utils" # babelstats.pl wants getopt-long diff --git a/poky/meta/recipes-kernel/lttng/lttng-ust/0001-compat-work-around-broken-_SC_NPROCESSORS_CONF-on-MU.patch b/poky/meta/recipes-kernel/lttng/lttng-ust/0001-compat-work-around-broken-_SC_NPROCESSORS_CONF-on-MU.patch deleted file mode 100644 index 5c4bd3672..000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-ust/0001-compat-work-around-broken-_SC_NPROCESSORS_CONF-on-MU.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 5de7c318804a7b1edce8562d4891b4c74aac0677 Mon Sep 17 00:00:00 2001 -From: Michael Jeanson -Date: Wed, 20 Mar 2019 11:07:35 -0400 -Subject: [PATCH] compat: work around broken _SC_NPROCESSORS_CONF on MUSL libc - -On MUSL libc the _SC_NPROCESSORS_CONF sysconf will report the number of -CPUs allocated to the task based on the affinity mask instead of the -total number of CPUs configured on the system. - -Upstream-Status: Accepted [1] [5de7c318804a7b1edce8562d4891b4c74aac0677] -[1] https://lists.lttng.org/pipermail/lttng-dev/2019-March/028616.html - -Signed-off-by: Michael Jeanson -Signed-off-by: Mathieu Desnoyers ---- - libringbuffer/smp.c | 66 +++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 66 insertions(+) - -diff --git a/libringbuffer/smp.c b/libringbuffer/smp.c -index 9e7114be..656a75da 100644 ---- a/libringbuffer/smp.c -+++ b/libringbuffer/smp.c -@@ -2,6 +2,7 @@ - * libringbuffer/smp.c - * - * Copyright (C) 2011-2012 Mathieu Desnoyers -+ * Copyright (C) 2019 Michael Jeanson - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -26,6 +27,7 @@ - - int __num_possible_cpus; - -+#if (defined(__GLIBC__) || defined( __UCLIBC__)) - void _get_num_possible_cpus(void) - { - int result; -@@ -43,3 +45,67 @@ void _get_num_possible_cpus(void) - return; - __num_possible_cpus = result; - } -+ -+#else -+ -+/* -+ * The MUSL libc implementation of the _SC_NPROCESSORS_CONF sysconf does not -+ * return the number of configured CPUs in the system but relies on the cpu -+ * affinity mask of the current task. -+ * -+ * So instead we use a strategy similar to GLIBC's, counting the cpu -+ * directories in "/sys/devices/system/cpu" and fallback on the value from -+ * sysconf if it fails. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#define __max(a,b) ((a)>(b)?(a):(b)) -+ -+void _get_num_possible_cpus(void) -+{ -+ int result, count = 0; -+ DIR *cpudir; -+ struct dirent *entry; -+ -+ cpudir = opendir("/sys/devices/system/cpu"); -+ if (cpudir == NULL) -+ goto end; -+ -+ /* -+ * Count the number of directories named "cpu" followed by and -+ * integer. This is the same strategy as glibc uses. -+ */ -+ while ((entry = readdir(cpudir))) { -+ if (entry->d_type == DT_DIR && -+ strncmp(entry->d_name, "cpu", 3) == 0) { -+ -+ char *endptr; -+ unsigned long cpu_num; -+ -+ cpu_num = strtoul(entry->d_name + 3, &endptr, 10); -+ if ((cpu_num < ULONG_MAX) && (endptr != entry->d_name + 3) -+ && (*endptr == '\0')) { -+ count++; -+ } -+ } -+ } -+ -+end: -+ /* -+ * Get the sysconf value as a fallback. Keep the highest number. -+ */ -+ result = __max(sysconf(_SC_NPROCESSORS_CONF), count); -+ -+ /* -+ * If both methods failed, don't store the value. -+ */ -+ if (result < 1) -+ return; -+ __num_possible_cpus = result; -+} -+#endif --- -2.17.1 - diff --git a/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.3.bb b/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.3.bb deleted file mode 100644 index d54610412..000000000 --- a/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.3.bb +++ /dev/null @@ -1,49 +0,0 @@ -SUMMARY = "Linux Trace Toolkit Userspace Tracer 2.x" -DESCRIPTION = "The LTTng UST 2.x package contains the userspace tracer library to trace userspace codes." -HOMEPAGE = "http://lttng.org/ust" -BUGTRACKER = "https://bugs.lttng.org/projects/lttng-ust" - -LICENSE = "LGPLv2.1+ & MIT & GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=c963eb366b781252b0bf0fdf1624d9e9 \ - file://snprintf/snprintf.c;endline=32;md5=d3d544959d8a3782b2e07451be0a903c \ - file://snprintf/various.h;endline=31;md5=89f2509b6b4682c4fc95255eec4abe44" - -PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \ - am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \ - PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ -" - -inherit autotools lib_package manpages python3native - -DEPENDS = "liburcu util-linux" -RDEPENDS_${PN}-bin = "python3-core" - -# For backwards compatibility after rename -RPROVIDES_${PN} = "lttng2-ust" -RREPLACES_${PN} = "lttng2-ust" -RCONFLICTS_${PN} = "lttng2-ust" - -PE = "2" - -SRC_URI = "https://lttng.org/files/lttng-ust/lttng-ust-${PV}.tar.bz2 \ - file://lttng-ust-doc-examples-disable.patch \ - file://0001-compat-work-around-broken-_SC_NPROCESSORS_CONF-on-MU.patch \ - " - -SRC_URI[md5sum] = "ffcfa8c1ba9a52f002d240e936e9afa2" -SRC_URI[sha256sum] = "9e8420f90d5f963f7aa32bc6d44adc1e491136f687c69ffb7a3075d33b40852b" - -CVE_PRODUCT = "ust" - -PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native" -PACKAGECONFIG[python3-agent] = "--enable-python-agent ${PYTHON_OPTION}, --disable-python-agent, python3, python3" - -FILES_${PN} += " ${PYTHON_SITEPACKAGES_DIR}/*" -FILES_${PN}-staticdev += " ${PYTHON_SITEPACKAGES_DIR}/*.a" -FILES_${PN}-dev += " ${PYTHON_SITEPACKAGES_DIR}/*.la" - -do_install_append() { - # Patch python tools to use Python 3; they should be source compatible, but - # still refer to Python 2 in the shebang - sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${bindir}/lttng-gen-tp -} diff --git a/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.4.bb b/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.4.bb new file mode 100644 index 000000000..a8eebb223 --- /dev/null +++ b/poky/meta/recipes-kernel/lttng/lttng-ust_2.10.4.bb @@ -0,0 +1,48 @@ +SUMMARY = "Linux Trace Toolkit Userspace Tracer 2.x" +DESCRIPTION = "The LTTng UST 2.x package contains the userspace tracer library to trace userspace codes." +HOMEPAGE = "http://lttng.org/ust" +BUGTRACKER = "https://bugs.lttng.org/projects/lttng-ust" + +LICENSE = "LGPLv2.1+ & MIT & GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=c963eb366b781252b0bf0fdf1624d9e9 \ + file://snprintf/snprintf.c;endline=32;md5=d3d544959d8a3782b2e07451be0a903c \ + file://snprintf/various.h;endline=31;md5=89f2509b6b4682c4fc95255eec4abe44" + +PYTHON_OPTION = "am_cv_python_pyexecdir='${PYTHON_SITEPACKAGES_DIR}' \ + am_cv_python_pythondir='${PYTHON_SITEPACKAGES_DIR}' \ + PYTHON_INCLUDE='-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ +" + +inherit autotools lib_package manpages python3native + +DEPENDS = "liburcu util-linux" +RDEPENDS_${PN}-bin = "python3-core" + +# For backwards compatibility after rename +RPROVIDES_${PN} = "lttng2-ust" +RREPLACES_${PN} = "lttng2-ust" +RCONFLICTS_${PN} = "lttng2-ust" + +PE = "2" + +SRC_URI = "https://lttng.org/files/lttng-ust/lttng-ust-${PV}.tar.bz2 \ + file://lttng-ust-doc-examples-disable.patch \ + " + +SRC_URI[md5sum] = "19916ff0dec23c90f985586a8cbd1fd2" +SRC_URI[sha256sum] = "75d5b4bb205c444a343e1297e14cd3a2503fc645a26710531cbd319c72c1a967" + +CVE_PRODUCT = "ust" + +PACKAGECONFIG[manpages] = "--enable-man-pages, --disable-man-pages, asciidoc-native xmlto-native libxslt-native" +PACKAGECONFIG[python3-agent] = "--enable-python-agent ${PYTHON_OPTION}, --disable-python-agent, python3, python3" + +FILES_${PN} += " ${PYTHON_SITEPACKAGES_DIR}/*" +FILES_${PN}-staticdev += " ${PYTHON_SITEPACKAGES_DIR}/*.a" +FILES_${PN}-dev += " ${PYTHON_SITEPACKAGES_DIR}/*.la" + +do_install_append() { + # Patch python tools to use Python 3; they should be source compatible, but + # still refer to Python 2 in the shebang + sed -i -e '1s,#!.*python.*,#!${bindir}/python3,' ${D}${bindir}/lttng-gen-tp +} diff --git a/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb b/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb index 97c58c523..460e05a44 100644 --- a/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb +++ b/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb @@ -12,7 +12,7 @@ S = "${WORKDIR}" do_configure[depends] += "virtual/kernel:do_shared_workdir openssl-native:do_populate_sysroot" do_compile[depends] += "virtual/kernel:do_compile_kernelmodules" -DEPENDS += "bc-native" +DEPENDS += "bc-native bison-native" EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}"" diff --git a/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2019.06.03.bb b/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2019.06.03.bb new file mode 100644 index 000000000..9076d9460 --- /dev/null +++ b/poky/meta/recipes-kernel/wireless-regdb/wireless-regdb_2019.06.03.bb @@ -0,0 +1,44 @@ +SUMMARY = "Wireless Central Regulatory Domain Database" +HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA" +SECTION = "net" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c" + +SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz" +SRC_URI[md5sum] = "4b5ba3f089db7fdb7b9daae6a7c1f2cb" +SRC_URI[sha256sum] = "cd917ed86b63ce8d93947979f1f18948f03a4ac0ad89ec25227b36ac00dc54bf" + +inherit bin_package allarch + +do_install() { + install -d -m0755 ${D}${nonarch_libdir}/crda + install -d -m0755 ${D}${sysconfdir}/wireless-regdb/pubkeys + install -m 0644 regulatory.bin ${D}${nonarch_libdir}/crda/regulatory.bin + install -m 0644 sforshee.key.pub.pem ${D}${sysconfdir}/wireless-regdb/pubkeys/sforshee.key.pub.pem + + install -m 0644 -D regulatory.db ${D}${nonarch_base_libdir}/firmware/regulatory.db + install -m 0644 regulatory.db.p7s ${D}${nonarch_base_libdir}/firmware/regulatory.db.p7s +} + +# Install static regulatory DB in /lib/firmware for kernel to load. +# This requires Linux kernel >= v4.15. +# For kernel <= v4.14, inherit the kernel_wireless_regdb.bbclass +# (in meta-networking) in kernel's recipe. +PACKAGES = "${PN}-static ${PN}" +RCONFLICTS_${PN} = "${PN}-static" + +FILES_${PN}-static = " \ + ${nonarch_base_libdir}/firmware/regulatory.db \ + ${nonarch_base_libdir}/firmware/regulatory.db.p7s \ +" + +# Native users might want to use the source of regulatory DB. +# This is for example used by Linux kernel <= v4.14 and +# kernel_wireless_regdb.bbclass in meta-networking. +do_install_append_class-native() { + install -m 0644 -D db.txt ${D}${libdir}/crda/db.txt +} + +RSUGGESTS_${PN} = "crda" + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-support/curl/curl_7.64.1.bb b/poky/meta/recipes-support/curl/curl_7.64.1.bb deleted file mode 100644 index 47c28beff..000000000 --- a/poky/meta/recipes-support/curl/curl_7.64.1.bb +++ /dev/null @@ -1,80 +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=be5d9e1419c4363f4b32037a2d3b7ffa" - -SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \ - file://0001-replace-krb5-config-with-pkg-config.patch \ -" - -SRC_URI[md5sum] = "790c101927845208a9d7e8c429ddd1b2" -SRC_URI[sha256sum] = "4cc7c738b35250d0680f29e93e0820c4cb40035f43514ea3ec8d60322d41a45d" - -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" -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[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" -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 \ -" - -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.65.1.bb b/poky/meta/recipes-support/curl/curl_7.65.1.bb new file mode 100644 index 000000000..e7bfe6cc0 --- /dev/null +++ b/poky/meta/recipes-support/curl/curl_7.65.1.bb @@ -0,0 +1,80 @@ +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=be5d9e1419c4363f4b32037a2d3b7ffa" + +SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \ + file://0001-replace-krb5-config-with-pkg-config.patch \ +" + +SRC_URI[md5sum] = "03ca3fa53ac4d791be66e30ba75b56ea" +SRC_URI[sha256sum] = "cbd36df60c49e461011b4f3064cff1184bdc9969a55e9608bf5cadec4686e3f7" + +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" +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[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" +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 \ +" + +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/gnupg/gnupg_2.2.15.bb b/poky/meta/recipes-support/gnupg/gnupg_2.2.15.bb deleted file mode 100644 index 06a257333..000000000 --- a/poky/meta/recipes-support/gnupg/gnupg_2.2.15.bb +++ /dev/null @@ -1,56 +0,0 @@ -SUMMARY = "GNU Privacy Guard - encryption and signing tools (2.x)" -HOMEPAGE = "http://www.gnupg.org/" -LICENSE = "GPLv3 & LGPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=189af8afca6d6075ba6c9e0aa8077626 \ - file://COPYING.LGPL3;md5=a2b6bf2cb38ee52619e60f30a1fc7257" - -DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt" - -inherit autotools gettext texinfo pkgconfig - -UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" -SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ - file://0001-Use-pkg-config-to-find-pth-instead-of-pth-config.patch \ - file://0002-use-pkgconfig-instead-of-npth-config.patch \ - file://0003-dirmngr-uses-libgpg-error.patch \ - file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \ - file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \ - " -SRC_URI_append_class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \ - file://relocate.patch" - - -SRC_URI[md5sum] = "3ab87e377aa0af2f463649515bf66508" -SRC_URI[sha256sum] = "cb8ce298d7b36558ffc48aec961b14c830ff1783eef7a623411188b5e0f5d454" - -EXTRA_OECONF = "--disable-ldap \ - --disable-ccid-driver \ - --with-zlib=${STAGING_LIBDIR}/.. \ - --with-bzip2=${STAGING_LIBDIR}/.. \ - --with-readline=${STAGING_LIBDIR}/.. \ - --enable-gpg-is-gpg2 \ - " -RRECOMMENDS_${PN} = "pinentry" - -do_configure_prepend () { - # Else these could be used in prefernce to those in aclocal-copy - rm -f ${S}/m4/gpg-error.m4 - rm -f ${S}/m4/libassuan.m4 - rm -f ${S}/m4/ksba.m4 - rm -f ${S}/m4/libgcrypt.m4 -} - -do_install_append() { - ln -sf gpg2 ${D}${bindir}/gpg - ln -sf gpgv2 ${D}${bindir}/gpgv -} - -do_install_append_class-native() { - create_wrapper ${D}${bindir}/gpg2 GNUPG_BINDIR=${STAGING_BINDIR_NATIVE} -} - -PACKAGECONFIG ??= "gnutls" -PACKAGECONFIG[gnutls] = "--enable-gnutls, --disable-gnutls, gnutls" -PACKAGECONFIG[sqlite3] = "--enable-sqlite, --disable-sqlite, sqlite3" - -BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-support/gnupg/gnupg_2.2.16.bb b/poky/meta/recipes-support/gnupg/gnupg_2.2.16.bb new file mode 100644 index 000000000..cb7c6c5c6 --- /dev/null +++ b/poky/meta/recipes-support/gnupg/gnupg_2.2.16.bb @@ -0,0 +1,56 @@ +SUMMARY = "GNU Privacy Guard - encryption and signing tools (2.x)" +HOMEPAGE = "http://www.gnupg.org/" +LICENSE = "GPLv3 & LGPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=189af8afca6d6075ba6c9e0aa8077626 \ + file://COPYING.LGPL3;md5=a2b6bf2cb38ee52619e60f30a1fc7257" + +DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt" + +inherit autotools gettext texinfo pkgconfig + +UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html" +SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-Use-pkg-config-to-find-pth-instead-of-pth-config.patch \ + file://0002-use-pkgconfig-instead-of-npth-config.patch \ + file://0003-dirmngr-uses-libgpg-error.patch \ + file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \ + file://0001-Woverride-init-is-not-needed-with-gcc-9.patch \ + " +SRC_URI_append_class-native = " file://0001-configure.ac-use-a-custom-value-for-the-location-of-.patch \ + file://relocate.patch" + + +SRC_URI[md5sum] = "d90e186df1c06845880ea58a318f070b" +SRC_URI[sha256sum] = "6cbe8d454bf5dc204621eed3016d721b66298fa95363395bb8eeceb1d2fd14cb" + +EXTRA_OECONF = "--disable-ldap \ + --disable-ccid-driver \ + --with-zlib=${STAGING_LIBDIR}/.. \ + --with-bzip2=${STAGING_LIBDIR}/.. \ + --with-readline=${STAGING_LIBDIR}/.. \ + --enable-gpg-is-gpg2 \ + " +RRECOMMENDS_${PN} = "pinentry" + +do_configure_prepend () { + # Else these could be used in prefernce to those in aclocal-copy + rm -f ${S}/m4/gpg-error.m4 + rm -f ${S}/m4/libassuan.m4 + rm -f ${S}/m4/ksba.m4 + rm -f ${S}/m4/libgcrypt.m4 +} + +do_install_append() { + ln -sf gpg2 ${D}${bindir}/gpg + ln -sf gpgv2 ${D}${bindir}/gpgv +} + +do_install_append_class-native() { + create_wrapper ${D}${bindir}/gpg2 GNUPG_BINDIR=${STAGING_BINDIR_NATIVE} +} + +PACKAGECONFIG ??= "gnutls" +PACKAGECONFIG[gnutls] = "--enable-gnutls, --disable-gnutls, gnutls" +PACKAGECONFIG[sqlite3] = "--enable-sqlite, --disable-sqlite, sqlite3" + +BBCLASSEXTEND = "native" diff --git a/poky/meta/recipes-support/gnutls/gnutls_3.6.7.bb b/poky/meta/recipes-support/gnutls/gnutls_3.6.7.bb deleted file mode 100644 index b27526a64..000000000 --- a/poky/meta/recipes-support/gnutls/gnutls_3.6.7.bb +++ /dev/null @@ -1,64 +0,0 @@ -SUMMARY = "GNU Transport Layer Security Library" -HOMEPAGE = "http://www.gnu.org/software/gnutls/" -BUGTRACKER = "https://savannah.gnu.org/support/?group=gnutls" - -LICENSE = "GPLv3+ & LGPLv2.1+" -LICENSE_${PN} = "LGPLv2.1+" -LICENSE_${PN}-xx = "LGPLv2.1+" -LICENSE_${PN}-bin = "GPLv3+" -LICENSE_${PN}-openssl = "GPLv3+" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=71391c8e0c1cfe68077e7fce3b586283 \ - file://doc/COPYING;md5=c678957b0c8e964aa6c70fd77641a71e \ - file://doc/COPYING.LESSER;md5=a6f89e2100d9b6cdffcea4f398e37343" - -DEPENDS = "nettle gmp virtual/libiconv libunistring" -DEPENDS_append_libc-musl = " argp-standalone" - -SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" - -SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz \ - file://arm_eabi.patch \ -" - -SRC_URI[md5sum] = "c4ac669c500df939d4fbfea722367929" -SRC_URI[sha256sum] = "5b3409ad5aaf239808730d1ee12fdcd148c0be00262c7edf157af655a8a188e2" - -inherit autotools texinfo pkgconfig gettext lib_package gtk-doc - -PACKAGECONFIG ??= "libidn" - -# You must also have CONFIG_SECCOMP enabled in the kernel for -# seccomp to work. -PACKAGECONFIG[seccomp] = "ac_cv_libseccomp=yes,ac_cv_libseccomp=no,libseccomp" -PACKAGECONFIG[libidn] = "--with-idn,--without-idn,libidn2" -PACKAGECONFIG[libtasn1] = "--with-included-libtasn1=no,--with-included-libtasn1,libtasn1" -PACKAGECONFIG[p11-kit] = "--with-p11-kit,--without-p11-kit,p11-kit" -PACKAGECONFIG[tpm] = "--with-tpm,--without-tpm,trousers" - -EXTRA_OECONF = " \ - --enable-doc \ - --disable-libdane \ - --disable-guile \ - --disable-rpath \ - --enable-local-libopts \ - --enable-openssl-compatibility \ - --with-libpthread-prefix=${STAGING_DIR_HOST}${prefix} \ - --with-default-trust-store-file=${sysconfdir}/ssl/certs/ca-certificates.crt \ -" - -LDFLAGS_append_libc-musl = " -largp" - -do_configure_prepend() { - for dir in . lib; do - rm -f ${dir}/aclocal.m4 ${dir}/m4/libtool.m4 ${dir}/m4/lt*.m4 - done -} - -PACKAGES =+ "${PN}-openssl ${PN}-xx" - -FILES_${PN}-dev += "${bindir}/gnutls-cli-debug" -FILES_${PN}-openssl = "${libdir}/libgnutls-openssl.so.*" -FILES_${PN}-xx = "${libdir}/libgnutlsxx.so.*" - -BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/gnutls/gnutls_3.6.8.bb b/poky/meta/recipes-support/gnutls/gnutls_3.6.8.bb new file mode 100644 index 000000000..6c6c520e8 --- /dev/null +++ b/poky/meta/recipes-support/gnutls/gnutls_3.6.8.bb @@ -0,0 +1,64 @@ +SUMMARY = "GNU Transport Layer Security Library" +HOMEPAGE = "http://www.gnu.org/software/gnutls/" +BUGTRACKER = "https://savannah.gnu.org/support/?group=gnutls" + +LICENSE = "GPLv3+ & LGPLv2.1+" +LICENSE_${PN} = "LGPLv2.1+" +LICENSE_${PN}-xx = "LGPLv2.1+" +LICENSE_${PN}-bin = "GPLv3+" +LICENSE_${PN}-openssl = "GPLv3+" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=71391c8e0c1cfe68077e7fce3b586283 \ + file://doc/COPYING;md5=c678957b0c8e964aa6c70fd77641a71e \ + file://doc/COPYING.LESSER;md5=a6f89e2100d9b6cdffcea4f398e37343" + +DEPENDS = "nettle gmp virtual/libiconv libunistring" +DEPENDS_append_libc-musl = " argp-standalone" + +SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" + +SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz \ + file://arm_eabi.patch \ +" + +SRC_URI[md5sum] = "9dcf0aa45d1a42e1b3ca5d39ec7c61a8" +SRC_URI[sha256sum] = "aa81944e5635de981171772857e72be231a7e0f559ae0292d2737de475383e83" + +inherit autotools texinfo pkgconfig gettext lib_package gtk-doc + +PACKAGECONFIG ??= "libidn" + +# You must also have CONFIG_SECCOMP enabled in the kernel for +# seccomp to work. +PACKAGECONFIG[seccomp] = "ac_cv_libseccomp=yes,ac_cv_libseccomp=no,libseccomp" +PACKAGECONFIG[libidn] = "--with-idn,--without-idn,libidn2" +PACKAGECONFIG[libtasn1] = "--with-included-libtasn1=no,--with-included-libtasn1,libtasn1" +PACKAGECONFIG[p11-kit] = "--with-p11-kit,--without-p11-kit,p11-kit" +PACKAGECONFIG[tpm] = "--with-tpm,--without-tpm,trousers" + +EXTRA_OECONF = " \ + --enable-doc \ + --disable-libdane \ + --disable-guile \ + --disable-rpath \ + --enable-local-libopts \ + --enable-openssl-compatibility \ + --with-libpthread-prefix=${STAGING_DIR_HOST}${prefix} \ + --with-default-trust-store-file=${sysconfdir}/ssl/certs/ca-certificates.crt \ +" + +LDFLAGS_append_libc-musl = " -largp" + +do_configure_prepend() { + for dir in . lib; do + rm -f ${dir}/aclocal.m4 ${dir}/m4/libtool.m4 ${dir}/m4/lt*.m4 + done +} + +PACKAGES =+ "${PN}-openssl ${PN}-xx" + +FILES_${PN}-dev += "${bindir}/gnutls-cli-debug" +FILES_${PN}-openssl = "${libdir}/libgnutls-openssl.so.*" +FILES_${PN}-xx = "${libdir}/libgnutlsxx.so.*" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-support/libevdev/libevdev_1.6.0.bb b/poky/meta/recipes-support/libevdev/libevdev_1.6.0.bb deleted file mode 100644 index 12cf5192f..000000000 --- a/poky/meta/recipes-support/libevdev/libevdev_1.6.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Wrapper library for evdev devices" -HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libevdev/" -SECTION = "libs" - -LICENSE = "MIT-X" -LIC_FILES_CHKSUM = "file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb \ - file://libevdev/libevdev.h;endline=21;md5=7ff4f0b5113252c2f1a828e0bbad98d1" - -SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz" - -SRC_URI[md5sum] = "154b24f01425c4c82fdc3e11f2c13af6" -SRC_URI[sha256sum] = "f5005c865987d980cc1279b9ec6131b06a89fd9892f649f2a68262b8786ef814" - -inherit autotools pkgconfig diff --git a/poky/meta/recipes-support/libevdev/libevdev_1.7.0.bb b/poky/meta/recipes-support/libevdev/libevdev_1.7.0.bb new file mode 100644 index 000000000..abd6f386b --- /dev/null +++ b/poky/meta/recipes-support/libevdev/libevdev_1.7.0.bb @@ -0,0 +1,14 @@ +SUMMARY = "Wrapper library for evdev devices" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libevdev/" +SECTION = "libs" + +LICENSE = "MIT-X" +LIC_FILES_CHKSUM = "file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb \ + file://libevdev/libevdev.h;endline=21;md5=7ff4f0b5113252c2f1a828e0bbad98d1" + +SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz" + +SRC_URI[md5sum] = "fabe87d8d7d7f7cdb4a26e5dc99fc517" +SRC_URI[sha256sum] = "11dbe1f2b1d03a51f3e9a196757a75c3a999042ce34cf1fdc00a2363e5a2e369" + +inherit autotools pkgconfig diff --git a/poky/meta/recipes-support/libevent/libevent/0001-test-fix-32bit-linux-regress.patch b/poky/meta/recipes-support/libevent/libevent/0001-test-fix-32bit-linux-regress.patch deleted file mode 100644 index 36d08204f..000000000 --- a/poky/meta/recipes-support/libevent/libevent/0001-test-fix-32bit-linux-regress.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 69a3813c513c84e02212250c3d5b8a02ecefa698 Mon Sep 17 00:00:00 2001 -From: Mingli Yu -Date: Mon, 15 Jan 2018 08:00:33 +0000 -Subject: [PATCH] test: fix 32bit linux regress - -This patch comes from https://github.com/libevent/libevent.git, -the commit is 63c4bf78d6af3c6ff46d2e8e4b53dd9f577a9ca9 - -Upstream-Status: Backport - -Signed-off-by: Mingli Yu ---- - configure.ac | 1 + - test/regress_util.c | 2 ++ - 2 files changed, 3 insertions(+) - -diff --git a/configure.ac b/configure.ac -index 7528d37..e64cb1f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -663,6 +663,7 @@ AC_CHECK_SIZEOF(short) - AC_CHECK_SIZEOF(size_t) - AC_CHECK_SIZEOF(void *) - AC_CHECK_SIZEOF(off_t) -+AC_CHECK_SIZEOF(time_t) - - AC_CHECK_TYPES([struct in6_addr, struct sockaddr_in6, sa_family_t, struct addrinfo, struct sockaddr_storage], , , - [#define _GNU_SOURCE -diff --git a/test/regress_util.c b/test/regress_util.c -index ef6a148..0c7eafb 100644 ---- a/test/regress_util.c -+++ b/test/regress_util.c -@@ -1412,10 +1412,12 @@ static struct date_rfc1123_case { - { 1289433600, "Thu, 11 Nov 2010 00:00:00 GMT"}, - { 1323648000, "Mon, 12 Dec 2011 00:00:00 GMT"}, - #ifndef _WIN32 -+#if EVENT__SIZEOF_TIME_T > 4 - /** In win32 case we have max "23:59:59 January 18, 2038, UTC" for time32 */ - { 4294967296, "Sun, 07 Feb 2106 06:28:16 GMT"} /* 2^32 */, - /** In win32 case we have max "23:59:59, December 31, 3000, UTC" for time64 */ - {253402300799, "Fri, 31 Dec 9999 23:59:59 GMT"} /* long long future no one can imagine */, -+#endif /* time_t != 32bit */ - { 1456704000, "Mon, 29 Feb 2016 00:00:00 GMT"} /* leap year */, - #endif - { 1435708800, "Wed, 01 Jul 2015 00:00:00 GMT"} /* leap second */, --- -2.13.3 - diff --git a/poky/meta/recipes-support/libevent/libevent_2.1.10.bb b/poky/meta/recipes-support/libevent/libevent_2.1.10.bb new file mode 100644 index 000000000..81ceb1cd9 --- /dev/null +++ b/poky/meta/recipes-support/libevent/libevent_2.1.10.bb @@ -0,0 +1,46 @@ +SUMMARY = "An asynchronous event notification library" +HOMEPAGE = "http://libevent.org/" +BUGTRACKER = "https://github.com/libevent/libevent/issues" +SECTION = "libs" + +LICENSE = "BSD & MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=17f20574c0b154d12236d5fbe964f549" + +SRC_URI = " \ + https://github.com/libevent/libevent/releases/download/release-${PV}-stable/${BP}-stable.tar.gz \ + file://Makefile-missing-test-dir.patch \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "999caf86f52943af2363bc8077f00167" +SRC_URI[sha256sum] = "e864af41a336bb11dab1a23f32993afe963c1f69618bd9292b89ecf6904845b0" + +UPSTREAM_CHECK_URI = "http://libevent.org/" + +S = "${WORKDIR}/${BPN}-${PV}-stable" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" + +inherit autotools + +# Needed for Debian packaging +LEAD_SONAME = "libevent-2.1.so" + +inherit ptest multilib_header + +DEPENDS = "zlib" + +BBCLASSEXTEND = "native nativesdk" + +do_install_append() { + oe_multilib_header event2/event-config.h +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/test + for file in ${B}/test/.libs/regress ${B}/test/.libs/test* + do + install -m 0755 $file ${D}${PTEST_PATH}/test + done +} diff --git a/poky/meta/recipes-support/libevent/libevent_2.1.8.bb b/poky/meta/recipes-support/libevent/libevent_2.1.8.bb deleted file mode 100644 index 0f91e05a6..000000000 --- a/poky/meta/recipes-support/libevent/libevent_2.1.8.bb +++ /dev/null @@ -1,47 +0,0 @@ -SUMMARY = "An asynchronous event notification library" -HOMEPAGE = "http://libevent.org/" -BUGTRACKER = "https://github.com/libevent/libevent/issues" -SECTION = "libs" - -LICENSE = "BSD & MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=17f20574c0b154d12236d5fbe964f549" - -SRC_URI = " \ - https://github.com/libevent/libevent/releases/download/release-${PV}-stable/${BP}-stable.tar.gz \ - file://Makefile-missing-test-dir.patch \ - file://0001-test-fix-32bit-linux-regress.patch \ - file://run-ptest \ -" - -SRC_URI[md5sum] = "f3eeaed018542963b7d2416ef1135ecc" -SRC_URI[sha256sum] = "965cc5a8bb46ce4199a47e9b2c9e1cae3b137e8356ffdad6d94d3b9069b71dc2" - -UPSTREAM_CHECK_URI = "http://libevent.org/" - -S = "${WORKDIR}/${BPN}-${PV}-stable" - -PACKAGECONFIG ??= "" -PACKAGECONFIG[openssl] = "--enable-openssl,--disable-openssl,openssl" - -inherit autotools - -# Needed for Debian packaging -LEAD_SONAME = "libevent-2.1.so" - -inherit ptest multilib_header - -DEPENDS = "zlib" - -BBCLASSEXTEND = "native nativesdk" - -do_install_append() { - oe_multilib_header event2/event-config.h -} - -do_install_ptest() { - install -d ${D}${PTEST_PATH}/test - for file in ${B}/test/.libs/regress ${B}/test/.libs/test* - do - install -m 0755 $file ${D}${PTEST_PATH}/test - done -} diff --git a/poky/meta/recipes-support/libffi/libffi/0001-New-RISC-V-port-281.patch b/poky/meta/recipes-support/libffi/libffi/0001-New-RISC-V-port-281.patch new file mode 100644 index 000000000..589c4d3c4 --- /dev/null +++ b/poky/meta/recipes-support/libffi/libffi/0001-New-RISC-V-port-281.patch @@ -0,0 +1,827 @@ +From 8ac73103bf12ce4f776940cb17f3ced15a362f23 Mon Sep 17 00:00:00 2001 +From: Stef O'Rear +Date: Sun, 11 Mar 2018 05:55:15 -0700 +Subject: [PATCH] New RISC-V port (#281) + +* Add RISC-V support + +This patch adds support for the RISC-V architecture (https://riscv.org). + +This patch has been tested using QEMU user-mode emulation and GCC 7.2.0 +in the following configurations: + +* -march=rv32imac -mabi=ilp32 +* -march=rv32g -mabi=ilp32d +* -march=rv64imac -mabi=lp64 +* -march=rv64g -mabi=lp64d + +The ABI currently can be found at +https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md . + +* Add RISC-V to README + +* RISC-V: fix configure.host + +Upstream-Status: Backport [https://github.com/libffi/libffi/commit/3840d49aaa831d649b1597518a2903dfed0d57f3] +Signed-off-by: Alistair Francis +--- + Makefile.am | 4 + + configure.ac | 5 + + src/riscv/ffi.c | 445 ++++++++++++++++++++++++++++++++++++++++++ + src/riscv/ffitarget.h | 68 +++++++ + src/riscv/sysv.S | 214 ++++++++++++++++++++ + 5 files changed, 736 insertions(+) + create mode 100644 src/riscv/ffi.c + create mode 100644 src/riscv/ffitarget.h + create mode 100644 src/riscv/sysv.S + +diff --git a/Makefile.am b/Makefile.am +index 0e40451..3837650 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -32,6 +32,7 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj \ + src/powerpc/asm.h src/powerpc/aix.S src/powerpc/darwin.S \ + src/powerpc/aix_closure.S src/powerpc/darwin_closure.S \ + src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h \ ++ src/riscv/ffi.c src/riscv/ffitarget.h src/riscv/sysv.S \ + src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h \ + src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h src/sh64/ffi.c \ + src/sh64/sysv.S src/sh64/ffitarget.h src/sparc/v8.S \ +@@ -122,6 +123,9 @@ endif + if MIPS + nodist_libffi_la_SOURCES += src/mips/ffi.c src/mips/o32.S src/mips/n32.S + endif ++if RISCV ++nodist_libffi_la_SOURCES += src/riscv/ffi.c src/riscv/sysv.S ++endif + if BFIN + nodist_libffi_la_SOURCES += src/bfin/ffi.c src/bfin/sysv.S + endif +diff --git a/configure.ac b/configure.ac +index ce30853..33375aa 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -226,6 +226,10 @@ case "$host" in + TARGET=MIPS; TARGETDIR=mips + ;; + ++ riscv*-*-*) ++ TARGET=RISCV; TARGETDIR=riscv ++ ;; ++ + nios2*-linux*) + TARGET=NIOS2; TARGETDIR=nios2 + ;; +@@ -298,6 +302,7 @@ if test $TARGETDIR = unknown; then + fi + + AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS) ++AM_CONDITIONAL(RISCV, test x$TARGET = xRISCV) + AM_CONDITIONAL(BFIN, test x$TARGET = xBFIN) + AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC) + AM_CONDITIONAL(X86, test x$TARGET = xX86) +diff --git a/src/riscv/ffi.c b/src/riscv/ffi.c +new file mode 100644 +index 0000000..b744fdd +--- /dev/null ++++ b/src/riscv/ffi.c +@@ -0,0 +1,445 @@ ++/* ----------------------------------------------------------------------- ++ ffi.c - Copyright (c) 2015 Michael Knyszek ++ 2015 Andrew Waterman ++ 2018 Stef O'Rear ++ Based on MIPS N32/64 port ++ ++ RISC-V Foreign Function Interface ++ ++ 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. ++ ----------------------------------------------------------------------- */ ++ ++#include ++#include ++ ++#include ++#include ++ ++#if __riscv_float_abi_double ++#define ABI_FLEN 64 ++#define ABI_FLOAT double ++#elif __riscv_float_abi_single ++#define ABI_FLEN 32 ++#define ABI_FLOAT float ++#endif ++ ++#define NARGREG 8 ++#define STKALIGN 16 ++#define MAXCOPYARG (2 * sizeof(double)) ++ ++typedef struct call_context ++{ ++#if ABI_FLEN ++ ABI_FLOAT fa[8]; ++#endif ++ size_t a[8]; ++ /* used by the assembly code to in-place construct its own stack frame */ ++ char frame[16]; ++} call_context; ++ ++typedef struct call_builder ++{ ++ call_context *aregs; ++ int used_integer; ++ int used_float; ++ size_t *used_stack; ++} call_builder; ++ ++/* integer (not pointer) less than ABI XLEN */ ++/* FFI_TYPE_INT does not appear to be used */ ++#if __SIZEOF_POINTER__ == 8 ++#define IS_INT(type) ((type) >= FFI_TYPE_UINT8 && (type) <= FFI_TYPE_SINT64) ++#else ++#define IS_INT(type) ((type) >= FFI_TYPE_UINT8 && (type) <= FFI_TYPE_SINT32) ++#endif ++ ++#if ABI_FLEN ++typedef struct { ++ char as_elements, type1, offset2, type2; ++} float_struct_info; ++ ++#if ABI_FLEN >= 64 ++#define IS_FLOAT(type) ((type) >= FFI_TYPE_FLOAT && (type) <= FFI_TYPE_DOUBLE) ++#else ++#define IS_FLOAT(type) ((type) == FFI_TYPE_FLOAT) ++#endif ++ ++static ffi_type **flatten_struct(ffi_type *in, ffi_type **out, ffi_type **out_end) { ++ int i; ++ if (out == out_end) return out; ++ if (in->type != FFI_TYPE_STRUCT) { ++ *(out++) = in; ++ } else { ++ for (i = 0; in->elements[i]; i++) ++ out = flatten_struct(in->elements[i], out, out_end); ++ } ++ return out; ++} ++ ++/* Structs with at most two fields after flattening, one of which is of ++ floating point type, are passed in multiple registers if sufficient ++ registers are available. */ ++static float_struct_info struct_passed_as_elements(call_builder *cb, ffi_type *top) { ++ float_struct_info ret = {0, 0, 0, 0}; ++ ffi_type *fields[3]; ++ int num_floats, num_ints; ++ int num_fields = flatten_struct(top, fields, fields + 3) - fields; ++ ++ if (num_fields == 1) { ++ if (IS_FLOAT(fields[0]->type)) { ++ ret.as_elements = 1; ++ ret.type1 = fields[0]->type; ++ } ++ } else if (num_fields == 2) { ++ num_floats = IS_FLOAT(fields[0]->type) + IS_FLOAT(fields[1]->type); ++ num_ints = IS_INT(fields[0]->type) + IS_INT(fields[1]->type); ++ if (num_floats == 0 || num_floats + num_ints != 2) ++ return ret; ++ if (cb->used_float + num_floats > NARGREG || cb->used_integer + (2 - num_floats) > NARGREG) ++ return ret; ++ if (!IS_FLOAT(fields[0]->type) && !IS_FLOAT(fields[1]->type)) ++ return ret; ++ ++ ret.type1 = fields[0]->type; ++ ret.type2 = fields[1]->type; ++ ret.offset2 = ALIGN(fields[0]->size, fields[1]->alignment); ++ ret.as_elements = 1; ++ } ++ ++ return ret; ++} ++#endif ++ ++/* allocates a single register, float register, or XLEN-sized stack slot to a datum */ ++static void marshal_atom(call_builder *cb, int type, void *data) { ++ size_t value = 0; ++ switch (type) { ++ case FFI_TYPE_UINT8: value = *(uint8_t *)data; break; ++ case FFI_TYPE_SINT8: value = *(int8_t *)data; break; ++ case FFI_TYPE_UINT16: value = *(uint16_t *)data; break; ++ case FFI_TYPE_SINT16: value = *(int16_t *)data; break; ++ /* 32-bit quantities are always sign-extended in the ABI */ ++ case FFI_TYPE_UINT32: value = *(int32_t *)data; break; ++ case FFI_TYPE_SINT32: value = *(int32_t *)data; break; ++#if __SIZEOF_POINTER__ == 8 ++ case FFI_TYPE_UINT64: value = *(uint64_t *)data; break; ++ case FFI_TYPE_SINT64: value = *(int64_t *)data; break; ++#endif ++ case FFI_TYPE_POINTER: value = *(size_t *)data; break; ++ ++ /* float values may be recoded in an implementation-defined way ++ by hardware conforming to 2.1 or earlier, so use asm to ++ reinterpret floats as doubles */ ++#if ABI_FLEN >= 32 ++ case FFI_TYPE_FLOAT: ++ asm("" : "=f"(cb->aregs->fa[cb->used_float++]) : "0"(*(float *)data)); ++ return; ++#endif ++#if ABI_FLEN >= 64 ++ case FFI_TYPE_DOUBLE: ++ asm("" : "=f"(cb->aregs->fa[cb->used_float++]) : "0"(*(double *)data)); ++ return; ++#endif ++ default: FFI_ASSERT(0); break; ++ } ++ ++ if (cb->used_integer == NARGREG) { ++ *cb->used_stack++ = value; ++ } else { ++ cb->aregs->a[cb->used_integer++] = value; ++ } ++} ++ ++static void unmarshal_atom(call_builder *cb, int type, void *data) { ++ size_t value; ++ switch (type) { ++#if ABI_FLEN >= 32 ++ case FFI_TYPE_FLOAT: ++ asm("" : "=f"(*(float *)data) : "0"(cb->aregs->fa[cb->used_float++])); ++ return; ++#endif ++#if ABI_FLEN >= 64 ++ case FFI_TYPE_DOUBLE: ++ asm("" : "=f"(*(double *)data) : "0"(cb->aregs->fa[cb->used_float++])); ++ return; ++#endif ++ } ++ ++ if (cb->used_integer == NARGREG) { ++ value = *cb->used_stack++; ++ } else { ++ value = cb->aregs->a[cb->used_integer++]; ++ } ++ ++ switch (type) { ++ case FFI_TYPE_UINT8: *(uint8_t *)data = value; break; ++ case FFI_TYPE_SINT8: *(uint8_t *)data = value; break; ++ case FFI_TYPE_UINT16: *(uint16_t *)data = value; break; ++ case FFI_TYPE_SINT16: *(uint16_t *)data = value; break; ++ case FFI_TYPE_UINT32: *(uint32_t *)data = value; break; ++ case FFI_TYPE_SINT32: *(uint32_t *)data = value; break; ++#if __SIZEOF_POINTER__ == 8 ++ case FFI_TYPE_UINT64: *(uint64_t *)data = value; break; ++ case FFI_TYPE_SINT64: *(uint64_t *)data = value; break; ++#endif ++ case FFI_TYPE_POINTER: *(size_t *)data = value; break; ++ default: FFI_ASSERT(0); break; ++ } ++} ++ ++/* adds an argument to a call, or a not by reference return value */ ++static void marshal(call_builder *cb, ffi_type *type, int var, void *data) { ++ size_t realign[2]; ++ ++#if ABI_FLEN ++ if (!var && type->type == FFI_TYPE_STRUCT) { ++ float_struct_info fsi = struct_passed_as_elements(cb, type); ++ if (fsi.as_elements) { ++ marshal_atom(cb, fsi.type1, data); ++ if (fsi.offset2) ++ marshal_atom(cb, fsi.type2, ((char*)data) + fsi.offset2); ++ return; ++ } ++ } ++ ++ if (!var && cb->used_float < NARGREG && IS_FLOAT(type->type)) { ++ marshal_atom(cb, type->type, data); ++ return; ++ } ++#endif ++ ++ if (type->size > 2 * __SIZEOF_POINTER__) { ++ /* pass by reference */ ++ marshal_atom(cb, FFI_TYPE_POINTER, &data); ++ } else if (IS_INT(type->type) || type->type == FFI_TYPE_POINTER) { ++ marshal_atom(cb, type->type, data); ++ } else { ++ /* overlong integers, soft-float floats, and structs without special ++ float handling are treated identically from this point on */ ++ ++ /* variadics are aligned even in registers */ ++ if (type->alignment > __SIZEOF_POINTER__) { ++ if (var) ++ cb->used_integer = ALIGN(cb->used_integer, 2); ++ cb->used_stack = (size_t *)ALIGN(cb->used_stack, 2*__SIZEOF_POINTER__); ++ } ++ ++ memcpy(realign, data, type->size); ++ if (type->size > 0) ++ marshal_atom(cb, FFI_TYPE_POINTER, realign); ++ if (type->size > __SIZEOF_POINTER__) ++ marshal_atom(cb, FFI_TYPE_POINTER, realign + 1); ++ } ++} ++ ++/* for arguments passed by reference returns the pointer, otherwise the arg is copied (up to MAXCOPYARG bytes) */ ++static void *unmarshal(call_builder *cb, ffi_type *type, int var, void *data) { ++ size_t realign[2]; ++ void *pointer; ++ ++#if ABI_FLEN ++ if (!var && type->type == FFI_TYPE_STRUCT) { ++ float_struct_info fsi = struct_passed_as_elements(cb, type); ++ if (fsi.as_elements) { ++ unmarshal_atom(cb, fsi.type1, data); ++ if (fsi.offset2) ++ unmarshal_atom(cb, fsi.type2, ((char*)data) + fsi.offset2); ++ return data; ++ } ++ } ++ ++ if (!var && cb->used_float < NARGREG && IS_FLOAT(type->type)) { ++ unmarshal_atom(cb, type->type, data); ++ return data; ++ } ++#endif ++ ++ if (type->size > 2 * __SIZEOF_POINTER__) { ++ /* pass by reference */ ++ unmarshal_atom(cb, FFI_TYPE_POINTER, (char*)&pointer); ++ return pointer; ++ } else if (IS_INT(type->type) || type->type == FFI_TYPE_POINTER) { ++ unmarshal_atom(cb, type->type, data); ++ return data; ++ } else { ++ /* overlong integers, soft-float floats, and structs without special ++ float handling are treated identically from this point on */ ++ ++ /* variadics are aligned even in registers */ ++ if (type->alignment > __SIZEOF_POINTER__) { ++ if (var) ++ cb->used_integer = ALIGN(cb->used_integer, 2); ++ cb->used_stack = (size_t *)ALIGN(cb->used_stack, 2*__SIZEOF_POINTER__); ++ } ++ ++ if (type->size > 0) ++ unmarshal_atom(cb, FFI_TYPE_POINTER, realign); ++ if (type->size > __SIZEOF_POINTER__) ++ unmarshal_atom(cb, FFI_TYPE_POINTER, realign + 1); ++ memcpy(data, realign, type->size); ++ return data; ++ } ++} ++ ++static int passed_by_ref(call_builder *cb, ffi_type *type, int var) { ++#if ABI_FLEN ++ if (!var && type->type == FFI_TYPE_STRUCT) { ++ float_struct_info fsi = struct_passed_as_elements(cb, type); ++ if (fsi.as_elements) return 0; ++ } ++#endif ++ ++ return type->size > 2 * __SIZEOF_POINTER__; ++} ++ ++/* Perform machine dependent cif processing */ ++ffi_status ffi_prep_cif_machdep(ffi_cif *cif) { ++ cif->riscv_nfixedargs = cif->nargs; ++ return FFI_OK; ++} ++ ++/* Perform machine dependent cif processing when we have a variadic function */ ++ ++ffi_status ffi_prep_cif_machdep_var(ffi_cif *cif, unsigned int nfixedargs, unsigned int ntotalargs) { ++ cif->riscv_nfixedargs = nfixedargs; ++ return FFI_OK; ++} ++ ++/* Low level routine for calling functions */ ++extern void ffi_call_asm(void *stack, struct call_context *regs, void (*fn)(void)) FFI_HIDDEN; ++ ++void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) ++{ ++ /* this is a conservative estimate, assuming a complex return value and ++ that all remaining arguments are long long / __int128 */ ++ size_t arg_bytes = cif->nargs <= 3 ? 0 : ++ ALIGN(2 * sizeof(size_t) * (cif->nargs - 3), STKALIGN); ++ size_t rval_bytes = 0; ++ if (rvalue == NULL && cif->rtype->size > 2*__SIZEOF_POINTER__) ++ rval_bytes = ALIGN(cif->rtype->size, STKALIGN); ++ size_t alloc_size = arg_bytes + rval_bytes + sizeof(call_context); ++ ++ /* the assembly code will deallocate all stack data at lower addresses ++ than the argument region, so we need to allocate the frame and the ++ return value after the arguments in a single allocation */ ++ size_t alloc_base; ++ /* Argument region must be 16-byte aligned */ ++ if (_Alignof(max_align_t) >= STKALIGN) { ++ /* since sizeof long double is normally 16, the compiler will ++ guarantee alloca alignment to at least that much */ ++ alloc_base = (size_t)alloca(alloc_size); ++ } else { ++ alloc_base = ALIGN(alloca(alloc_size + STKALIGN - 1), STKALIGN); ++ } ++ ++ if (rval_bytes) ++ rvalue = (void*)(alloc_base + arg_bytes); ++ ++ call_builder cb; ++ cb.used_float = cb.used_integer = 0; ++ cb.aregs = (call_context*)(alloc_base + arg_bytes + rval_bytes); ++ cb.used_stack = (void*)alloc_base; ++ ++ int return_by_ref = passed_by_ref(&cb, cif->rtype, 0); ++ if (return_by_ref) ++ marshal(&cb, &ffi_type_pointer, 0, &rvalue); ++ ++ int i; ++ for (i = 0; i < cif->nargs; i++) ++ marshal(&cb, cif->arg_types[i], i >= cif->riscv_nfixedargs, avalue[i]); ++ ++ ffi_call_asm((void*)alloc_base, cb.aregs, fn); ++ ++ cb.used_float = cb.used_integer = 0; ++ if (!return_by_ref && rvalue) ++ unmarshal(&cb, cif->rtype, 0, rvalue); ++} ++ ++extern void ffi_closure_asm(void) FFI_HIDDEN; ++ ++ffi_status ffi_prep_closure_loc(ffi_closure *closure, ffi_cif *cif, void (*fun)(ffi_cif*,void*,void**,void*), void *user_data, void *codeloc) ++{ ++ uint32_t *tramp = (uint32_t *) &closure->tramp[0]; ++ uint64_t fn = (uint64_t) (uintptr_t) ffi_closure_asm; ++ ++ if (cif->abi <= FFI_FIRST_ABI || cif->abi >= FFI_LAST_ABI) ++ return FFI_BAD_ABI; ++ ++ /* we will call ffi_closure_inner with codeloc, not closure, but as long ++ as the memory is readable it should work */ ++ ++ tramp[0] = 0x00000317; /* auipc t1, 0 (i.e. t0 <- codeloc) */ ++#if __SIZEOF_POINTER__ == 8 ++ tramp[1] = 0x01033383; /* ld t2, 16(t1) */ ++#else ++ tramp[1] = 0x01032383; /* lw t2, 16(t1) */ ++#endif ++ tramp[2] = 0x00038067; /* jr t2 */ ++ tramp[3] = 0x00000013; /* nop */ ++ tramp[4] = fn; ++ tramp[5] = fn >> 32; ++ ++ closure->cif = cif; ++ closure->fun = fun; ++ closure->user_data = user_data; ++ ++ __builtin___clear_cache(codeloc, codeloc + FFI_TRAMPOLINE_SIZE); ++ ++ return FFI_OK; ++} ++ ++/* Called by the assembly code with aregs pointing to saved argument registers ++ and stack pointing to the stacked arguments. Return values passed in ++ registers will be reloaded from aregs. */ ++void FFI_HIDDEN ffi_closure_inner(size_t *stack, call_context *aregs, ffi_closure *closure) { ++ ffi_cif *cif = closure->cif; ++ void **avalue = alloca(cif->nargs * sizeof(void*)); ++ /* storage for arguments which will be copied by unmarshal(). We could ++ theoretically avoid the copies in many cases and use at most 128 bytes ++ of memory, but allocating disjoint storage for each argument is ++ simpler. */ ++ char *astorage = alloca(cif->nargs * MAXCOPYARG); ++ void *rvalue; ++ call_builder cb; ++ int return_by_ref; ++ int i; ++ ++ cb.aregs = aregs; ++ cb.used_integer = cb.used_float = 0; ++ cb.used_stack = stack; ++ ++ return_by_ref = passed_by_ref(&cb, cif->rtype, 0); ++ if (return_by_ref) ++ unmarshal(&cb, &ffi_type_pointer, 0, &rvalue); ++ else ++ rvalue = alloca(cif->rtype->size); ++ ++ for (i = 0; i < cif->nargs; i++) ++ avalue[i] = unmarshal(&cb, cif->arg_types[i], ++ i >= cif->riscv_nfixedargs, astorage + i*MAXCOPYARG); ++ ++ (closure->fun)(cif, rvalue, avalue, closure->user_data); ++ ++ if (!return_by_ref && cif->rtype->type != FFI_TYPE_VOID) { ++ cb.used_integer = cb.used_float = 0; ++ marshal(&cb, cif->rtype, 0, rvalue); ++ } ++} +diff --git a/src/riscv/ffitarget.h b/src/riscv/ffitarget.h +new file mode 100644 +index 0000000..fcaa899 +--- /dev/null ++++ b/src/riscv/ffitarget.h +@@ -0,0 +1,68 @@ ++/* -----------------------------------------------------------------*-C-*- ++ ffitarget.h - 2014 Michael Knyszek ++ ++ Target configuration macros for RISC-V. ++ ++ 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. ++ ++ ----------------------------------------------------------------------- */ ++ ++#ifndef LIBFFI_TARGET_H ++#define LIBFFI_TARGET_H ++ ++#ifndef LIBFFI_H ++#error "Please do not include ffitarget.h directly into your source. Use ffi.h instead." ++#endif ++ ++#ifndef __riscv ++#error "libffi was configured for a RISC-V target but this does not appear to be a RISC-V compiler." ++#endif ++ ++#ifndef LIBFFI_ASM ++ ++typedef unsigned long ffi_arg; ++typedef signed long ffi_sarg; ++ ++/* FFI_UNUSED_NN and riscv_unused are to maintain ABI compatibility with a ++ distributed Berkeley patch from 2014, and can be removed at SONAME bump */ ++typedef enum ffi_abi { ++ FFI_FIRST_ABI = 0, ++ FFI_SYSV, ++ FFI_UNUSED_1, ++ FFI_UNUSED_2, ++ FFI_UNUSED_3, ++ FFI_LAST_ABI, ++ ++ FFI_DEFAULT_ABI = FFI_SYSV ++} ffi_abi; ++ ++#endif /* LIBFFI_ASM */ ++ ++/* ---- Definitions for closures ----------------------------------------- */ ++ ++#define FFI_CLOSURES 1 ++#define FFI_TRAMPOLINE_SIZE 24 ++#define FFI_NATIVE_RAW_API 0 ++#define FFI_EXTRA_CIF_FIELDS unsigned riscv_nfixedargs; unsigned riscv_unused; ++#define FFI_TARGET_SPECIFIC_VARIADIC ++ ++#endif ++ +diff --git a/src/riscv/sysv.S b/src/riscv/sysv.S +new file mode 100644 +index 0000000..2d09865 +--- /dev/null ++++ b/src/riscv/sysv.S +@@ -0,0 +1,214 @@ ++/* ----------------------------------------------------------------------- ++ ffi.c - Copyright (c) 2015 Michael Knyszek ++ 2015 Andrew Waterman ++ 2018 Stef O'Rear ++ ++ RISC-V Foreign Function Interface ++ ++ 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. ++ ----------------------------------------------------------------------- */ ++ ++#define LIBFFI_ASM ++#include ++#include ++ ++/* Define aliases so that we can handle all ABIs uniformly */ ++ ++#if __SIZEOF_POINTER__ == 8 ++#define PTRS 8 ++#define LARG ld ++#define SARG sd ++#else ++#define PTRS 4 ++#define LARG lw ++#define SARG sw ++#endif ++ ++#if __riscv_float_abi_double ++#define FLTS 8 ++#define FLARG fld ++#define FSARG fsd ++#elif __riscv_float_abi_single ++#define FLTS 4 ++#define FLARG flw ++#define FSARG fsw ++#else ++#define FLTS 0 ++#endif ++ ++#define fp s0 ++ ++ .text ++ .globl ffi_call_asm ++ .type ffi_call_asm, @function ++ .hidden ffi_call_asm ++/* ++ struct call_context { ++ floatreg fa[8]; ++ intreg a[8]; ++ intreg pad[rv32 ? 2 : 0]; ++ intreg save_fp, save_ra; ++ } ++ void ffi_call_asm(size_t *stackargs, struct call_context *regargs, ++ void (*fn)(void)); ++*/ ++ ++#define FRAME_LEN (8 * FLTS + 8 * PTRS + 16) ++ ++ffi_call_asm: ++ .cfi_startproc ++ ++ /* ++ We are NOT going to set up an ordinary stack frame. In order to pass ++ the stacked args to the called function, we adjust our stack pointer to ++ a0, which is in the _caller's_ alloca area. We establish our own stack ++ frame at the end of the call_context. ++ ++ Anything below the arguments will be freed at this point, although we ++ preserve the call_context so that it can be read back in the caller. ++ */ ++ ++ .cfi_def_cfa 11, FRAME_LEN # interim CFA based on a1 ++ SARG fp, FRAME_LEN - 2*PTRS(a1) ++ .cfi_offset 8, -2*PTRS ++ SARG ra, FRAME_LEN - 1*PTRS(a1) ++ .cfi_offset 1, -1*PTRS ++ ++ addi fp, a1, FRAME_LEN ++ mv sp, a0 ++ .cfi_def_cfa 8, 0 # our frame is fully set up ++ ++ # Load arguments ++ mv t1, a2 ++ ++#if FLTS ++ FLARG fa0, -FRAME_LEN+0*FLTS(fp) ++ FLARG fa1, -FRAME_LEN+1*FLTS(fp) ++ FLARG fa2, -FRAME_LEN+2*FLTS(fp) ++ FLARG fa3, -FRAME_LEN+3*FLTS(fp) ++ FLARG fa4, -FRAME_LEN+4*FLTS(fp) ++ FLARG fa5, -FRAME_LEN+5*FLTS(fp) ++ FLARG fa6, -FRAME_LEN+6*FLTS(fp) ++ FLARG fa7, -FRAME_LEN+7*FLTS(fp) ++#endif ++ ++ LARG a0, -FRAME_LEN+8*FLTS+0*PTRS(fp) ++ LARG a1, -FRAME_LEN+8*FLTS+1*PTRS(fp) ++ LARG a2, -FRAME_LEN+8*FLTS+2*PTRS(fp) ++ LARG a3, -FRAME_LEN+8*FLTS+3*PTRS(fp) ++ LARG a4, -FRAME_LEN+8*FLTS+4*PTRS(fp) ++ LARG a5, -FRAME_LEN+8*FLTS+5*PTRS(fp) ++ LARG a6, -FRAME_LEN+8*FLTS+6*PTRS(fp) ++ LARG a7, -FRAME_LEN+8*FLTS+7*PTRS(fp) ++ ++ /* Call */ ++ jalr t1 ++ ++ /* Save return values - only a0/a1 (fa0/fa1) are used */ ++#if FLTS ++ FSARG fa0, -FRAME_LEN+0*FLTS(fp) ++ FSARG fa1, -FRAME_LEN+1*FLTS(fp) ++#endif ++ ++ SARG a0, -FRAME_LEN+8*FLTS+0*PTRS(fp) ++ SARG a1, -FRAME_LEN+8*FLTS+1*PTRS(fp) ++ ++ /* Restore and return */ ++ addi sp, fp, -FRAME_LEN ++ .cfi_def_cfa 2, FRAME_LEN ++ LARG ra, -1*PTRS(fp) ++ .cfi_restore 1 ++ LARG fp, -2*PTRS(fp) ++ .cfi_restore 8 ++ ret ++ .cfi_endproc ++ .size ffi_call_asm, .-ffi_call_asm ++ ++ ++/* ++ ffi_closure_asm. Expects address of the passed-in ffi_closure in t1. ++ void ffi_closure_inner(size_t *stackargs, struct call_context *regargs, ++ ffi_closure *closure); ++*/ ++ ++ .globl ffi_closure_asm ++ .hidden ffi_closure_asm ++ .type ffi_closure_asm, @function ++ffi_closure_asm: ++ .cfi_startproc ++ ++ addi sp, sp, -FRAME_LEN ++ .cfi_def_cfa_offset FRAME_LEN ++ ++ /* make a frame */ ++ SARG fp, FRAME_LEN - 2*PTRS(sp) ++ .cfi_offset 8, -2*PTRS ++ SARG ra, FRAME_LEN - 1*PTRS(sp) ++ .cfi_offset 1, -1*PTRS ++ addi fp, sp, FRAME_LEN ++ ++ /* save arguments */ ++#if FLTS ++ FSARG fa0, 0*FLTS(sp) ++ FSARG fa1, 1*FLTS(sp) ++ FSARG fa2, 2*FLTS(sp) ++ FSARG fa3, 3*FLTS(sp) ++ FSARG fa4, 4*FLTS(sp) ++ FSARG fa5, 5*FLTS(sp) ++ FSARG fa6, 6*FLTS(sp) ++ FSARG fa7, 7*FLTS(sp) ++#endif ++ ++ SARG a0, 8*FLTS+0*PTRS(sp) ++ SARG a1, 8*FLTS+1*PTRS(sp) ++ SARG a2, 8*FLTS+2*PTRS(sp) ++ SARG a3, 8*FLTS+3*PTRS(sp) ++ SARG a4, 8*FLTS+4*PTRS(sp) ++ SARG a5, 8*FLTS+5*PTRS(sp) ++ SARG a6, 8*FLTS+6*PTRS(sp) ++ SARG a7, 8*FLTS+7*PTRS(sp) ++ ++ /* enter C */ ++ addi a0, sp, FRAME_LEN ++ mv a1, sp ++ mv a2, t1 ++ ++ call ffi_closure_inner ++ ++ /* return values */ ++#if FLTS ++ FLARG fa0, 0*FLTS(sp) ++ FLARG fa1, 1*FLTS(sp) ++#endif ++ ++ LARG a0, 8*FLTS+0*PTRS(sp) ++ LARG a1, 8*FLTS+1*PTRS(sp) ++ ++ /* restore and return */ ++ LARG ra, FRAME_LEN-1*PTRS(sp) ++ .cfi_restore 1 ++ LARG fp, FRAME_LEN-2*PTRS(sp) ++ .cfi_restore 8 ++ addi sp, sp, FRAME_LEN ++ .cfi_def_cfa_offset 0 ++ ret ++ .cfi_endproc ++ .size ffi_closure_asm, .-ffi_closure_asm diff --git a/poky/meta/recipes-support/libffi/libffi_3.2.1.bb b/poky/meta/recipes-support/libffi/libffi_3.2.1.bb index a0b1fcd16..792a1143b 100644 --- a/poky/meta/recipes-support/libffi/libffi_3.2.1.bb +++ b/poky/meta/recipes-support/libffi/libffi_3.2.1.bb @@ -12,10 +12,11 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3610bb17683a0089ed64055416b2ae1b" SRC_URI = "ftp://sourceware.org/pub/libffi/${BP}.tar.gz \ file://not-win32.patch \ - file://0001-mips-Use-compiler-internal-define-for-linux.patch \ + file://0001-mips-Use-compiler-internal-define-for-linux.patch \ file://0001-mips-fix-MIPS-softfloat-build-issue.patch \ file://0001-libffi-Support-musl-x32-build.patch \ - " + file://0001-New-RISC-V-port-281.patch \ + " SRC_URI[md5sum] = "83b89587607e3eb65c70d361f13bab43" SRC_URI[sha256sum] = "d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37" diff --git a/poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch b/poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch new file mode 100644 index 000000000..89b647ddb --- /dev/null +++ b/poky/meta/recipes-support/libxslt/files/0001-Fix-security-framework-bypass.patch @@ -0,0 +1,124 @@ +From e03553605b45c88f0b4b2980adfbbb8f6fca2fd6 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer +Date: Sun, 24 Mar 2019 09:51:39 +0100 +Subject: Fix security framework bypass + +xsltCheckRead and xsltCheckWrite return -1 in case of error but callers +don't check for this condition and allow access. With a specially +crafted URL, xsltCheckRead could be tricked into returning an error +because of a supposedly invalid URL that would still be loaded +succesfully later on. + +Fixes #12. + +Thanks to Felix Wilhelm for the report. + +Signed-off-by: Adrian Bunk +Upstream-Status: Backport +CVE: CVE-2019-11068 +--- + libxslt/documents.c | 18 ++++++++++-------- + libxslt/imports.c | 9 +++++---- + libxslt/transform.c | 9 +++++---- + libxslt/xslt.c | 9 +++++---- + 4 files changed, 25 insertions(+), 20 deletions(-) + +diff --git a/libxslt/documents.c b/libxslt/documents.c +index 3f3a7312..4aad11bb 100644 +--- a/libxslt/documents.c ++++ b/libxslt/documents.c +@@ -296,10 +296,11 @@ xsltLoadDocument(xsltTransformContextPtr ctxt, const xmlChar *URI) { + int res; + + res = xsltCheckRead(ctxt->sec, ctxt, URI); +- if (res == 0) { +- xsltTransformError(ctxt, NULL, NULL, +- "xsltLoadDocument: read rights for %s denied\n", +- URI); ++ if (res <= 0) { ++ if (res == 0) ++ xsltTransformError(ctxt, NULL, NULL, ++ "xsltLoadDocument: read rights for %s denied\n", ++ URI); + return(NULL); + } + } +@@ -372,10 +373,11 @@ xsltLoadStyleDocument(xsltStylesheetPtr style, const xmlChar *URI) { + int res; + + res = xsltCheckRead(sec, NULL, URI); +- if (res == 0) { +- xsltTransformError(NULL, NULL, NULL, +- "xsltLoadStyleDocument: read rights for %s denied\n", +- URI); ++ if (res <= 0) { ++ if (res == 0) ++ xsltTransformError(NULL, NULL, NULL, ++ "xsltLoadStyleDocument: read rights for %s denied\n", ++ URI); + return(NULL); + } + } +diff --git a/libxslt/imports.c b/libxslt/imports.c +index 874870cc..3783b247 100644 +--- a/libxslt/imports.c ++++ b/libxslt/imports.c +@@ -130,10 +130,11 @@ xsltParseStylesheetImport(xsltStylesheetPtr style, xmlNodePtr cur) { + int secres; + + secres = xsltCheckRead(sec, NULL, URI); +- if (secres == 0) { +- xsltTransformError(NULL, NULL, NULL, +- "xsl:import: read rights for %s denied\n", +- URI); ++ if (secres <= 0) { ++ if (secres == 0) ++ xsltTransformError(NULL, NULL, NULL, ++ "xsl:import: read rights for %s denied\n", ++ URI); + goto error; + } + } +diff --git a/libxslt/transform.c b/libxslt/transform.c +index 13793914..0636dbd0 100644 +--- a/libxslt/transform.c ++++ b/libxslt/transform.c +@@ -3493,10 +3493,11 @@ xsltDocumentElem(xsltTransformContextPtr ctxt, xmlNodePtr node, + */ + if (ctxt->sec != NULL) { + ret = xsltCheckWrite(ctxt->sec, ctxt, filename); +- if (ret == 0) { +- xsltTransformError(ctxt, NULL, inst, +- "xsltDocumentElem: write rights for %s denied\n", +- filename); ++ if (ret <= 0) { ++ if (ret == 0) ++ xsltTransformError(ctxt, NULL, inst, ++ "xsltDocumentElem: write rights for %s denied\n", ++ filename); + xmlFree(URL); + xmlFree(filename); + return; +diff --git a/libxslt/xslt.c b/libxslt/xslt.c +index 780a5ad7..a234eb79 100644 +--- a/libxslt/xslt.c ++++ b/libxslt/xslt.c +@@ -6763,10 +6763,11 @@ xsltParseStylesheetFile(const xmlChar* filename) { + int res; + + res = xsltCheckRead(sec, NULL, filename); +- if (res == 0) { +- xsltTransformError(NULL, NULL, NULL, +- "xsltParseStylesheetFile: read rights for %s denied\n", +- filename); ++ if (res <= 0) { ++ if (res == 0) ++ xsltTransformError(NULL, NULL, NULL, ++ "xsltParseStylesheetFile: read rights for %s denied\n", ++ filename); + return(NULL); + } + } +-- +2.20.1 + diff --git a/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb b/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb index 462eccf52..6320a821d 100644 --- a/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb +++ b/poky/meta/recipes-support/libxslt/libxslt_1.1.33.bb @@ -8,7 +8,9 @@ LIC_FILES_CHKSUM = "file://Copyright;md5=0cd9a07afbeb24026c9b03aecfeba458" SECTION = "libs" DEPENDS = "libxml2" -SRC_URI = "http://xmlsoft.org/sources/libxslt-${PV}.tar.gz" +SRC_URI = "http://xmlsoft.org/sources/libxslt-${PV}.tar.gz \ + file://0001-Fix-security-framework-bypass.patch \ +" SRC_URI[md5sum] = "b3bd254a03e46d58f8ad1e4559cd2c2f" SRC_URI[sha256sum] = "8e36605144409df979cab43d835002f63988f3dc94d5d3537c12796db90e38c8" diff --git a/poky/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch b/poky/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch deleted file mode 100644 index 06d1d9436..000000000 --- a/poky/meta/recipes-support/rng-tools/rng-tools/0001-If-the-libc-is-lacking-argp-use-libargp.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 06ba71887f667d45dd231a782a2751f36e8fe025 Mon Sep 17 00:00:00 2001 -From: Christopher Larson -Date: Mon, 15 Feb 2016 15:59:58 -0700 -Subject: [PATCH 1/4] If the libc is lacking argp, use libargp - -Patch pulled from Gentoo: - - On glibc systems, argp is provided by libc. However, on - uclibc and other systems which lack argp in their C library, - argp might be provided by a stand alone library, libargp. - This patch adds tests to the build system to find who provides - argp. - - X-Gentoo-Bug: 292191 - X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=292191 - Reported-by: Ed Wildgoose - Signed-off-by: Anthony G. Basile - -Upstream-Status: Pending -Signed-off-by: Christopher Larson ---- - configure.ac | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - -diff --git a/configure.ac b/configure.ac -index 4e799dc..c4a5dd8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -135,6 +135,28 @@ AS_IF( - ] - ) - -+dnl First check if we have argp available from libc -+AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM( -+ [#include ], -+ [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;] -+ )], -+ [libc_has_argp="true"], -+ [libc_has_argp="false"] -+) -+ -+dnl If libc doesn't provide argp, then test for libargp -+if test "$libc_has_argp" = "false" ; then -+ AC_MSG_WARN("libc does not have argp") -+ AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"]) -+ -+ if test "$have_argp" = "false"; then -+ AC_MSG_ERROR("no libargp found") -+ else -+ LIBS+=" -largp" -+ fi -+fi -+ - dnl ----------------- - dnl Configure options - dnl ----------------- --- -2.7.4 - diff --git a/poky/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch b/poky/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch deleted file mode 100644 index d4d28a01c..000000000 --- a/poky/meta/recipes-support/rng-tools/rng-tools/0001-configure.ac-fix-typo.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 99b0efebd765803203686d89bc4f995bcb103e78 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Sat, 10 Nov 2018 09:53:19 +0800 -Subject: [PATCH] configure.ac: fix typo - -Upstream-Status: Submitted [https://github.com/nhorman/rng-tools.git] -Signed-off-by: Hongxu Jia ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 4e799dc..0251928 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -62,7 +62,7 @@ AS_IF([test $target_cpu = powerpc64le], [AC_DEFINE([HAVE_DARN],1,[Enable DARN])] - AM_CONDITIONAL([JITTER], [false]) - - AC_ARG_ENABLE(jitterentropy, -- AS_HELP_STRING([--disable-jitterntropy | --enable-jitterentropy=], -+ AS_HELP_STRING([--disable-jitterentropy | --enable-jitterentropy=], - [Disable jitterentropy source, or specify its location]), - [if [ test -d $enable_jitterentropy ]; then - export LDFLAGS+=-L$enable_jitterentropy; --- -2.7.4 - diff --git a/poky/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch b/poky/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch deleted file mode 100644 index be60fe97f..000000000 --- a/poky/meta/recipes-support/rng-tools/rng-tools/0002-Add-argument-to-control-the-libargp-dependency.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 711e2f76890e3c5b08f64859d9fd913ddbec7d50 Mon Sep 17 00:00:00 2001 -From: Christopher Larson -Date: Mon, 22 Oct 2018 15:26:47 +0800 -Subject: [PATCH 2/4] Add argument to control the libargp dependency - -This ensures that the builds are always deterministic. If the argument isn't -passed, the default behavior is to use libargp if the libc doesn't have argp. - -Upstream-Status: Pending -Signed-off-by: Christopher Larson - -Rebase to 6.6 -Signed-off-by: Hongxu Jia ---- - configure.ac | 55 ++++++++++++++++++++++++++++++++++++------------------- - 1 file changed, 36 insertions(+), 19 deletions(-) - -diff --git a/configure.ac b/configure.ac -index c4a5dd8..dd1c30f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -40,6 +40,13 @@ AC_ARG_WITH([nistbeacon], - [with_nistbeacon=check] - ) - -+AC_ARG_WITH([libargp], -+ AS_HELP_STRING([--without-libargp], -+ [Disable libargp support. Systems whose libc lacks argp can use libargp instead. (Default: check if libc lacks argp)]), -+ [with_libargp=$withval], -+ [with_libargp=check] -+) -+ - dnl Make sure anyone changing configure.ac/Makefile.am has a clue - AM_MAINTAINER_MODE - AM_PROG_AS -@@ -135,27 +142,37 @@ AS_IF( - ] - ) - --dnl First check if we have argp available from libc --AC_LINK_IFELSE( -- [AC_LANG_PROGRAM( -- [#include ], -- [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;] -- )], -- [libc_has_argp="true"], -- [libc_has_argp="false"] -+dnl Determine if we need libargp: either user requested, or libc has no argp -+AS_IF( -+ [test "x$with_libargp" != "xyes"], -+ [ -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM( -+ [#include ], -+ [int argc=1; char *argv[]={"test"}; argp_parse(0,argc,argv,0,0,0); return 0;] -+ )], -+ [need_libargp=no], -+ [need_libargp=yes -+ if test "x$with_libargp" = "xno"; then -+ AC_MSG_FAILURE([libargp disabled and libc does not have argp]) -+ fi] -+ ) -+ ], -+ [need_libargp=yes], - ) - --dnl If libc doesn't provide argp, then test for libargp --if test "$libc_has_argp" = "false" ; then -- AC_MSG_WARN("libc does not have argp") -- AC_CHECK_LIB([argp], [argp_parse], [have_argp="true"], [have_argp="false"]) -- -- if test "$have_argp" = "false"; then -- AC_MSG_ERROR("no libargp found") -- else -- LIBS+=" -largp" -- fi --fi -+dnl Check for libargp -+AS_IF( -+ [test "x$need_libargp" = "xyes"], -+ [ -+ AC_CHECK_LIB( -+ [argp], -+ [argp_parse], -+ [LIBS="$LIBS -largp"], -+ [AC_MSG_FAILURE([libargp not found])] -+ ) -+ ] -+) - - dnl ----------------- - dnl Configure options --- -2.7.4 - diff --git a/poky/meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch b/poky/meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch new file mode 100644 index 000000000..58cf3f9d5 --- /dev/null +++ b/poky/meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch @@ -0,0 +1,25 @@ +It fails to stop rngd. It just shows warnings when stop rngd such as by: + +$ systemctl stop rngd.service + +but stalls shutdown untill daemon rngd is killed. + +Backport patch to fix the issue. + +Upstream-Status: Backport [https://bugzilla.redhat.com/show_bug.cgi?id=1690364#c8] + +Signed-off-by: Kai Kang +--- +diff --git a/rngd_jitter.c b/rngd_jitter.c +index 54070ae..7a69bf9 100644 +--- a/rngd_jitter.c ++++ b/rngd_jitter.c +@@ -280,7 +280,7 @@ static void *thread_entropy_task(void *data) + + /* Write to pipe */ + written = 0; +- while(written != me->buf_sz) { ++ while(me->active && written != me->buf_sz) { + message(LOG_DAEMON|LOG_DEBUG, "Writing to pipe\n"); + ret = write(me->pipe_fd, &tmpbuf[written], me->buf_sz - written); + message(LOG_DAEMON|LOG_DEBUG, "DONE Writing to pipe with return %ld\n", ret); diff --git a/poky/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch b/poky/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch deleted file mode 100644 index 614adab27..000000000 --- a/poky/meta/recipes-support/rng-tools/rng-tools/rng-tools-5-fix-textrels-on-PIC-x86.patch +++ /dev/null @@ -1,114 +0,0 @@ -From d8b1bb8edd99b2898720b4f10d292a67d532db48 Mon Sep 17 00:00:00 2001 -From: "Francisco Blas Izquierdo Riera (klondike)" -Date: Mon, 22 Oct 2018 15:29:36 +0800 -Subject: [PATCH 4/4] Fix assemby textrels on rdrand_asm.S on PIC x86 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This patch updates the fixes in the assembly in rdrand_asm.S in -sys-apps/rng-tools-5 so it won't generate textrels on PIC systems. -The main fixes are in the use of leal in SETPTR for such systems, the rest is -the usual PIC support stuff. - -This should fix Gentoo bug #469962 and help fix #518210 - -This patch is released under the GPLv2 or a higher version license as is the -original file as long as the author and the tester are credited. - -Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=469962 -Gentoo-bug-url: https://bugs.gentoo.org/show_bug.cgi?id=518210 -Signed-off-by: Francisco Blas Izquierdo Riera (klondike) -Reported-by: cilly -Reported-by: Manuel Rüger -Tested-by: Anthony Basile - -Upstream-Status: Pending ---- - rdrand_asm.S | 27 +++++++++++++++++++++++++++ - 1 file changed, 27 insertions(+) - -diff --git a/rdrand_asm.S b/rdrand_asm.S -index b5d260a..7811cf2 100644 ---- a/rdrand_asm.S -+++ b/rdrand_asm.S -@@ -2,6 +2,7 @@ - * Copyright (c) 2011-2014, Intel Corporation - * Authors: Fenghua Yu , - * H. Peter Anvin -+ * PIC code by: Francisco Blas Izquierdo Riera (klondike) - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, -@@ -172,7 +173,19 @@ ENTRY(x86_rdseed_or_rdrand_bytes) - jmp 4b - ENDPROC(x86_rdseed_or_rdrand_bytes) - -+#if defined(__PIC__) -+#define INIT_PIC() \ -+ pushl %ebx ; \ -+ call __x86.get_pc_thunk.bx ; \ -+ addl $_GLOBAL_OFFSET_TABLE_, %ebx -+#define END_PIC() \ -+ popl %ebx -+#define SETPTR(var,ptr) leal (var)@GOTOFF(%ebx),ptr -+#else -+#define INIT_PIC() -+#define END_PIC() - #define SETPTR(var,ptr) movl $(var),ptr -+#endif - #define PTR0 %eax - #define PTR1 %edx - #define PTR2 %ecx -@@ -188,6 +201,7 @@ ENTRY(x86_aes_mangle) - movl 8(%ebp), %eax - movl 12(%ebp), %edx - push %esi -+ INIT_PIC() - #endif - movl $512, CTR3 /* Number of rounds */ - -@@ -278,6 +292,7 @@ offset = offset + 16 - movdqa %xmm7, (7*16)(PTR1) - - #ifdef __i386__ -+ END_PIC() - pop %esi - pop %ebp - #endif -@@ -292,6 +307,7 @@ ENTRY(x86_aes_expand_key) - push %ebp - mov %esp, %ebp - movl 8(%ebp), %eax -+ INIT_PIC() - #endif - - SETPTR(aes_round_keys, PTR1) -@@ -321,6 +337,7 @@ ENTRY(x86_aes_expand_key) - call 1f - - #ifdef __i386__ -+ END_PIC() - pop %ebp - #endif - ret -@@ -341,6 +358,16 @@ ENTRY(x86_aes_expand_key) - - ENDPROC(x86_aes_expand_key) - -+#if defined(__i386__) && defined(__PIC__) -+ .section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat -+ .globl __x86.get_pc_thunk.bx -+ .hidden __x86.get_pc_thunk.bx -+ .type __x86.get_pc_thunk.bx, @function -+__x86.get_pc_thunk.bx: -+ movl (%esp), %ebx -+ ret -+#endif -+ - .bss - .balign 64 - aes_round_keys: --- -2.7.4 - diff --git a/poky/meta/recipes-support/rng-tools/rng-tools/underquote.patch b/poky/meta/recipes-support/rng-tools/rng-tools/underquote.patch deleted file mode 100644 index aa4bbcb34..000000000 --- a/poky/meta/recipes-support/rng-tools/rng-tools/underquote.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 03fe7efa1bc04a83fb9b6787998e7baa7ee90646 Mon Sep 17 00:00:00 2001 -From: Richard Purdie -Date: Mon, 22 Oct 2018 15:27:41 +0800 -Subject: [PATCH 3/4] Fix underquoted m4 entry. This causes a failure if gcrypt - isn't present: - -| configure: libgcrypt support disabled -| ../rng-tools-5/configure: line 4345: ac_fn_c_try_link: command not found -| configure: error: in `/media/build1/poky/build/tmp/work/i586-poky-linux/rng-tools/5-r0/build': - -RP -2016/2/16 - -Upstream-Status: Pending - -Rebase to 6.6 -Signed-off-by: Hongxu Jia ---- - configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index dd1c30f..88d2be3 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -124,7 +124,7 @@ AS_IF( - [test "x$with_libgcrypt" != "xno"], - [ - AC_CHECK_HEADER([gcrypt.h], -- AC_CHECK_LIB( -+ [AC_CHECK_LIB( - [gcrypt], - [gcry_check_version], , - [ -@@ -133,7 +133,7 @@ AS_IF( - AC_MSG_NOTICE([libgcrypt support disabled]) - fi - ] -- ), -+ )], - [if test "x$with_libgcrypt" != "xcheck"; then - AC_MSG_FAILURE([libgcrypt headers not found]); else - AC_MSG_NOTICE([libgcrypt support disabled]) --- -2.7.4 - diff --git a/poky/meta/recipes-support/rng-tools/rng-tools_6.6.bb b/poky/meta/recipes-support/rng-tools/rng-tools_6.6.bb deleted file mode 100644 index b0afa4b0e..000000000 --- a/poky/meta/recipes-support/rng-tools/rng-tools_6.6.bb +++ /dev/null @@ -1,56 +0,0 @@ -SUMMARY = "Random number generator daemon" -DESCRIPTION = "Check and feed random data from hardware device to kernel" -AUTHOR = "Philipp Rumpf, Jeff Garzik , \ - Henrique de Moraes Holschuh " -HOMEPAGE = "https://github.com/nhorman/rng-tools" -BUGTRACKER = "https://github.com/nhorman/rng-tools/issues" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "sysfsutils" - -SRC_URI = "\ - git://github.com/nhorman/rng-tools.git \ - file://0001-If-the-libc-is-lacking-argp-use-libargp.patch \ - file://0002-Add-argument-to-control-the-libargp-dependency.patch \ - file://underquote.patch \ - file://rng-tools-5-fix-textrels-on-PIC-x86.patch \ - file://0001-configure.ac-fix-typo.patch \ - file://init \ - file://default \ - file://rngd.service \ -" -SRCREV = "4ebc21d6f387bb7b4b3f6badc429e27b21c0a6ee" - -S = "${WORKDIR}/git" - -inherit autotools update-rc.d systemd pkgconfig - -PACKAGECONFIG ??= "libgcrypt libjitterentropy" -PACKAGECONFIG_libc-musl = "libargp libjitterentropy" - -PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone," -PACKAGECONFIG[libgcrypt] = "--with-libgcrypt,--without-libgcrypt,libgcrypt," -PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy" -PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2 openssl" - -INITSCRIPT_NAME = "rng-tools" -INITSCRIPT_PARAMS = "start 03 2 3 4 5 . stop 30 0 6 1 ." - -SYSTEMD_SERVICE_${PN} = "rngd.service" - -# Refer autogen.sh in rng-tools -do_configure_prepend() { - cp ${S}/README.md ${S}/README -} - -do_install_append() { - install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools - install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools - install -Dm 0644 ${WORKDIR}/rngd.service \ - ${D}${systemd_system_unitdir}/rngd.service - sed -i \ - -e 's,@SYSCONFDIR@,${sysconfdir},' \ - -e 's,@SBINDIR@,${sbindir},' \ - ${D}${sysconfdir}/init.d/rng-tools \ - ${D}${systemd_system_unitdir}/rngd.service -} diff --git a/poky/meta/recipes-support/rng-tools/rng-tools_6.7.bb b/poky/meta/recipes-support/rng-tools/rng-tools_6.7.bb new file mode 100644 index 000000000..aeb558b2b --- /dev/null +++ b/poky/meta/recipes-support/rng-tools/rng-tools_6.7.bb @@ -0,0 +1,53 @@ +SUMMARY = "Random number generator daemon" +DESCRIPTION = "Check and feed random data from hardware device to kernel" +AUTHOR = "Philipp Rumpf, Jeff Garzik , \ + Henrique de Moraes Holschuh " +HOMEPAGE = "https://github.com/nhorman/rng-tools" +BUGTRACKER = "https://github.com/nhorman/rng-tools/issues" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +DEPENDS = "sysfsutils" + +SRC_URI = "\ + git://github.com/nhorman/rng-tools.git \ + file://fix-rngd-fail-to-stop.patch \ + file://init \ + file://default \ + file://rngd.service \ +" +SRCREV = "9fc873c5af0e392632e6b736938b811f7ca97251" + +S = "${WORKDIR}/git" + +inherit autotools update-rc.d systemd pkgconfig + +PACKAGECONFIG ??= "libgcrypt libjitterentropy" +PACKAGECONFIG_libc-musl = "libargp libjitterentropy" + +PACKAGECONFIG[libargp] = "--with-libargp,--without-libargp,argp-standalone," +PACKAGECONFIG[libgcrypt] = "--with-libgcrypt,--without-libgcrypt,libgcrypt," +PACKAGECONFIG[libjitterentropy] = "--enable-jitterentropy,--disable-jitterentropy,libjitterentropy" +PACKAGECONFIG[libp11] = "--with-pkcs11,--without-pkcs11,libp11 openssl" +PACKAGECONFIG[nistbeacon] = "--with-nistbeacon,--without-nistbeacon,curl libxml2 openssl" + +INITSCRIPT_NAME = "rng-tools" +INITSCRIPT_PARAMS = "start 03 2 3 4 5 . stop 30 0 6 1 ." + +SYSTEMD_SERVICE_${PN} = "rngd.service" + +# Refer autogen.sh in rng-tools +do_configure_prepend() { + cp ${S}/README.md ${S}/README +} + +do_install_append() { + install -Dm 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/rng-tools + install -Dm 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/rng-tools + install -Dm 0644 ${WORKDIR}/rngd.service \ + ${D}${systemd_system_unitdir}/rngd.service + sed -i \ + -e 's,@SYSCONFDIR@,${sysconfdir},' \ + -e 's,@SBINDIR@,${sbindir},' \ + ${D}${sysconfdir}/init.d/rng-tools \ + ${D}${systemd_system_unitdir}/rngd.service +} diff --git a/poky/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch b/poky/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch new file mode 100644 index 000000000..91640d604 --- /dev/null +++ b/poky/meta/recipes-support/serf/serf/SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch @@ -0,0 +1,71 @@ +stop scons trying to create directories in hosts rootfs + +* since 1522f09a4d serf: cleanup recipe + serf.do_install fails in builds with multilib enabled (with + libdir=/usr/lib64 on host where /usr/lib64 doesn't exist) + +DEBUG: Executing shell function do_install +scons: Reading SConscript files ... +PermissionError: [Errno 13] Permission denied: '/usr/lib64': + File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/serf-1.3.9/SConstruct", line 158: + ENV = os.environ, + File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Environment.py", line 965: + variables.Update(self) + File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Variables/__init__.py", line 227: + option.validator(option.key, env.subst('${%s}'%option.key), env) + File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/serf-1.3.9/SConstruct", line 60: + return PathVariable.PathIsDirCreate(key, val, env) + File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Variables/PathVariable.py", line 101: + os.makedirs(val) + File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/lib/python3.7/os.py", line 221: + mkdir(name, mode) +ERROR: scons install execution failed. + +* I don't know how exactly --install-sandbox is supposed to work but + in this case it's trying to mkdir /usr/lib64 on the host rootfs + which is clearly wrong and if I set LIBDIR together with + --install-sandbox then the install paths are prefixed with $D twice + in some cases (not for includedir and empty libdir at the end). + So in the end I think it was an issue caused by the custom path + validator in serf's SConstruct, removing that stops touching host + and the installed paths (including the paths inside libserf*.pc) + look correct + +Upstream-Status: Pending + +Signed-off-by: Martin Jansa + +--- serf-1.3.9/SConstruct 2019-06-18 15:49:19.968961108 +0000 ++++ serf-1.3.9b/SConstruct 2019-06-18 18:53:21.412337151 +0000 +@@ -51,17 +51,6 @@ + """ + return (key, '%s' % (help), default, None, lambda val: _converter(val)) + +-# Custom path validator, creates directory when a specified option is set. +-# To be used to ensure a PREFIX directory is only created when installing. +-def createPathIsDirCreateWithTarget(target): +- def my_validator(key, val, env): +- build_targets = (map(str, BUILD_TARGETS)) +- if target in build_targets: +- return PathVariable.PathIsDirCreate(key, val, env) +- else: +- return PathVariable.PathAccept(key, val, env) +- return my_validator +- + # default directories + if sys.platform == 'win32': + default_incdir='..' +@@ -77,11 +66,11 @@ + PathVariable('PREFIX', + 'Directory to install under', + default_prefix, +- createPathIsDirCreateWithTarget('install')), ++ PathVariable.PathAccept), + PathVariable('LIBDIR', + 'Directory to install architecture dependent libraries under', + default_libdir, +- createPathIsDirCreateWithTarget('install')), ++ PathVariable.PathAccept), + PathVariable('APR', + "Path to apr-1-config, or to APR's install area", + default_incdir, diff --git a/poky/meta/recipes-support/serf/serf_1.3.9.bb b/poky/meta/recipes-support/serf/serf_1.3.9.bb index 92cd5ca06..dd4133a45 100644 --- a/poky/meta/recipes-support/serf/serf_1.3.9.bb +++ b/poky/meta/recipes-support/serf/serf_1.3.9.bb @@ -6,6 +6,7 @@ SRC_URI = "${APACHE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ file://0002-SConstruct-Fix-path-quoting-for-.def-generator.patch \ file://0003-gen_def.patch \ file://0004-Follow-up-to-r1811083-fix-building-with-scons-3.0.0-.patch \ + file://SConstruct.stop.creating.directories.without.sandbox-install.prefix.patch \ " SRC_URI[md5sum] = "370a6340ff20366ab088012cd13f2b57" diff --git a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py index d87db1f1b..5cc5c8a6b 100644 --- a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py +++ b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py @@ -55,8 +55,10 @@ class BootimgEFIPlugin(SourcePlugin): if not bootimg_dir: raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting") - cp_cmd = "cp %s/%s %s" % (bootimg_dir, initrd, hdddir) - exec_cmd(cp_cmd, True) + initrds = initrd.split(';') + for rd in initrds: + cp_cmd = "cp %s/%s %s" % (bootimg_dir, rd, hdddir) + exec_cmd(cp_cmd, True) else: logger.debug("Ignoring missing initrd") @@ -84,7 +86,11 @@ class BootimgEFIPlugin(SourcePlugin): % (kernel, label_conf, bootloader.append) if initrd: - grubefi_conf += "initrd /%s\n" % initrd + initrds = initrd.split(';') + grubefi_conf += "initrd" + for rd in initrds: + grubefi_conf += " /%s" % rd + grubefi_conf += "\n" grubefi_conf += "}\n" @@ -119,8 +125,10 @@ class BootimgEFIPlugin(SourcePlugin): if not bootimg_dir: raise WicError("Couldn't find DEPLOY_DIR_IMAGE, exiting") - cp_cmd = "cp %s/%s %s" % (bootimg_dir, initrd, hdddir) - exec_cmd(cp_cmd, True) + initrds = initrd.split(';') + for rd in initrds: + cp_cmd = "cp %s/%s %s" % (bootimg_dir, rd, hdddir) + exec_cmd(cp_cmd, True) else: logger.debug("Ignoring missing initrd") @@ -164,7 +172,9 @@ class BootimgEFIPlugin(SourcePlugin): (label_conf, bootloader.append) if initrd: - boot_conf += "initrd /%s\n" % initrd + initrds = initrd.split(';') + for rd in initrds: + boot_conf += "initrd /%s\n" % rd logger.debug("Writing systemd-boot config " "%s/hdd/boot/loader/entries/boot.conf", cr_workdir) -- cgit v1.2.3