diff --git a/buildroot/CHANGES b/buildroot/CHANGES index 4f7864c0e..9957622c3 100644 --- a/buildroot/CHANGES +++ b/buildroot/CHANGES @@ -1,3 +1,29 @@ +2020.11-rc2, released November 14th, 2020 + + Fixes all over the tree. + + cve-checker script dropped. Instead the pkg-stats logic has + been extended to be able to only generate stats for the + configured packages using 'make pkg-stats' + + Removed defconfigs: rock64 + + Updated/fixed packages: apparmor, asterisk, bitcoin, busybox, + cups-filters, cryptsetup, davfs2, domoticz, elf2flt, freetype, + ghostscript, glmark2, go, gst1-plugins-bad, guile, jsoncpp, + libcap, libexif, libnetfilter_conntrack, libpam-tacplus, + libsigrokdecode, linux-backports, linux-firmware, mesa3d, + modem-manager, mp4v2, oniguruma, openntpd, python3, + python-lmdb, python-m2crypto, rauc, s390-tools, slirp, + stress-ng, suricata, systemd, tcpdump, tmux, tor, webkitgtk, + wireguard-linux-compat, wpewebkit, xen + + Issues resolved (http://bugs.uclibc.org): + + #13281: Raspberry Pi 2: overlays folder missing in genimage-ra.. + #13291: BR2_DL_DIR is ignored when creating defconfig + #13306: wpewebkit build problem in 2020-11-rc1 + 2020.11-rc1, released November 4th, 2020 Fixes all over the tree and new features. diff --git a/buildroot/DEVELOPERS b/buildroot/DEVELOPERS index 43cc1b55a..6b8083eb4 100644 --- a/buildroot/DEVELOPERS +++ b/buildroot/DEVELOPERS @@ -182,10 +182,9 @@ F: package/pkg-golang.mk N: Anthony Viallard F: package/gnuplot/ -N: Antoine Ténart +N: Antoine Tenart F: package/libselinux/ F: package/refpolicy/ -F: package/wf111/ F: support/testing/tests/core/test_selinux/ F: support/testing/tests/core/test_selinux.py F: support/testing/tests/init/test_systemd_selinux/ @@ -1855,8 +1854,6 @@ F: package/libavl/ N: Michał Łyszczek F: board/altera/socrates_cyclone5/ -F: board/pine64/rock64 -F: configs/rock64_defconfig F: configs/socrates_cyclone5_defconfig F: package/netifrc/ F: package/openrc/ diff --git a/buildroot/Makefile b/buildroot/Makefile index 5dc402e73..2d911bcee 100644 --- a/buildroot/Makefile +++ b/buildroot/Makefile @@ -92,9 +92,9 @@ all: .PHONY: all # Set and export the version string -export BR2_VERSION := 2020.11-rc1 +export BR2_VERSION := 2020.11-rc2 # Actual time the release is cut (for reproducible builds) -BR2_VERSION_EPOCH = 1604528000 +BR2_VERSION_EPOCH = 1605361000 # Save running make version since it's clobbered by the make package RUNNING_MAKE_VERSION := $(MAKE_VERSION) @@ -937,6 +937,14 @@ show-info: ) \ ) +.PHONY: pkg-stats +pkg-stats: + @cd "$(CONFIG_DIR)" ; \ + $(TOPDIR)/support/scripts/pkg-stats -c \ + --json $(O)/pkg-stats.json \ + --html $(O)/pkg-stats.html \ + --nvd-path $(DL_DIR)/buildroot-nvd + else # ifeq ($(BR2_HAVE_DOT_CONFIG),y) # Some subdirectories are also package names. To avoid that "make linux" @@ -1027,9 +1035,7 @@ savedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile @$(COMMON_CONFIG_ENV) $< \ --savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \ $(CONFIG_CONFIG_IN) - @$(SED) '/^BR2_DEFCONFIG=/d' \ - -e '/^BR2_DL_DIR=/d' \ - $(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) + @$(SED) '/^BR2_DEFCONFIG=/d' $(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) .PHONY: defconfig savedefconfig update-defconfig @@ -1156,6 +1162,7 @@ help: @echo ' external-deps - list external packages used' @echo ' legal-info - generate info about license compliance' @echo ' show-info - generate info about packages, as a JSON blurb' + @echo ' pkg-stats - generate info about packages as JSON and HTML' @echo ' printvars - dump internal variables selected with VARS=...' @echo @echo ' make V=0|1 - 0 => quiet build (default), 1 => verbose build' diff --git a/buildroot/board/pine64/rock64/extlinux.conf b/buildroot/board/pine64/rock64/extlinux.conf deleted file mode 100644 index bf71982a9..000000000 --- a/buildroot/board/pine64/rock64/extlinux.conf +++ /dev/null @@ -1,4 +0,0 @@ -label rock64-buildroot - kernel /boot/Image - devicetree /boot/rk3328-rock64.dtb - append console=ttyS2,1500000n8 root=/dev/mmcblk0p1 ro rootwait diff --git a/buildroot/board/pine64/rock64/genimage.cfg b/buildroot/board/pine64/rock64/genimage.cfg deleted file mode 100644 index 0b5a0d880..000000000 --- a/buildroot/board/pine64/rock64/genimage.cfg +++ /dev/null @@ -1,23 +0,0 @@ -image sdcard.img { - hdimage { - } - - partition uboot-spl { - in-partition-table = "no" - image = "u-boot-tpl-spl.img" - offset = 32768 # 512 * 0x40 from start of sd card - } - - partition uboot { - in-partition-table = "no" - image = "u-boot.itb" - offset = 262144 # 512 * 0x200 from start of sd card - } - - partition rootfs { - partition-type = 0x83 - bootable = "yes" - image = "rootfs.ext2" - size = 500M - } -} diff --git a/buildroot/board/pine64/rock64/patches/uboot/0001-Makefile-rk3328-needs-itb-image-to-boot-properly.patch b/buildroot/board/pine64/rock64/patches/uboot/0001-Makefile-rk3328-needs-itb-image-to-boot-properly.patch deleted file mode 100644 index 2d35b78da..000000000 --- a/buildroot/board/pine64/rock64/patches/uboot/0001-Makefile-rk3328-needs-itb-image-to-boot-properly.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 211bf049084e6e374dac253138fa813682910146 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Micha=C5=82=20=C5=81yszczek?= -Date: Tue, 5 Feb 2019 22:08:54 +0100 -Subject: [PATCH] Makefile: rk3328 needs itb image to boot properly -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Michał Łyszczek ---- - Makefile | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/Makefile b/Makefile -index 8086f3c93e..a6425b5b03 100644 ---- a/Makefile -+++ b/Makefile -@@ -799,6 +799,11 @@ ifneq ($(BUILD_ROM),) - ALL-$(CONFIG_X86_RESET_VECTOR) += u-boot.rom - endif - -+# rk3328 needs itb image to boot properly -+ifeq ($(CONFIG_ROCKCHIP_RK3328),y) -+ALL-y += u-boot.itb -+endif -+ - # enable combined SPL/u-boot/dtb rules for tegra - ifeq ($(CONFIG_TEGRA)$(CONFIG_SPL),yy) - ALL-y += u-boot-tegra.bin u-boot-nodtb-tegra.bin --- -2.18.1 - diff --git a/buildroot/board/pine64/rock64/post-build.sh b/buildroot/board/pine64/rock64/post-build.sh deleted file mode 100755 index 26b53cba8..000000000 --- a/buildroot/board/pine64/rock64/post-build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -MKIMAGE=$HOST_DIR/bin/mkimage -BOARD_DIR="$(dirname $0)" - -$MKIMAGE -n rk3328 -T rksd -d $BINARIES_DIR/u-boot-tpl.bin $BINARIES_DIR/u-boot-tpl.img -cat $BINARIES_DIR/u-boot-tpl.img $BINARIES_DIR/u-boot-spl.bin > $BINARIES_DIR/u-boot-tpl-spl.img - -install -m 0644 -D $BOARD_DIR/extlinux.conf $TARGET_DIR/boot/extlinux/extlinux.conf diff --git a/buildroot/board/pine64/rock64/readme.txt b/buildroot/board/pine64/rock64/readme.txt deleted file mode 100644 index 029c67641..000000000 --- a/buildroot/board/pine64/rock64/readme.txt +++ /dev/null @@ -1,95 +0,0 @@ -Intro -===== - -This default configuration will allow you to start experimenting with the -buildroot environment for the Rock64. With this default configuration you -can log in into board via uart and look around. - -Board homepage: https://www.pine64.org/?page_id=7147 - -Build -===== - -First, load rock64 config for buildroot - - $ make rock64_defconfig - -Optionally make changes to buildroot config (to install more programs) - - $ make menuconfig - -And then build everything - - $ make - -When completed, following files will be generated in output/images directory: - - . - ├── Image - ├── bl31.bin - ├── bl31.elf - ├── rk3328-rock64.dtb - ├── rootfs.ext2 - ├── rootfs.ext4 -> rootfs.ext2 - ├── rootfs.tar - ├── sdcard.img - ├── u-boot-spl.bin - ├── u-boot-tpl-spl.img - ├── u-boot-tpl.bin - ├── u-boot-tpl.img - ├── u-boot.bin - └── u-boot.itb - -Creating bootable SD card -========================= - -!!! THIS COMMAND MAY WIPE YOUR DISK! -!!! MAKE SURE YOU PASSED CORRECT DEVICE! -!!! OR IT THIS WILL WIPE YOUR DISK! - -Simply invoke (as root) - - # dd if=output/images/sdcard.img of=/dev/sdX && sync - -Where X is your SD card device (not partition), of= argument may also be -/dev/mmcblk0 if you are using built-in sd card reader. - -Runtime -======= - -Login ------ - -By default, buildroot has no password, just type 'root' as login user, and -you will be logged in. - -Serial console --------------- - -Serial console needs to be connected to pins (into 40pin rpi compatible part) - -pin 6: gnd -pin 8: tx -pin 10: rx - -Pin numbers are printed on board. - -Uart configuration is not standard. Rock64 uses 1500000 (1,5M) baudrate -with standard 8n1. - -Ethernet --------- - -To enable ethernet you need to load modules for it: - -# modprobe stmmac -# modprobe dwmac-rk - -and since by default there is no dhcp installed, you need to configure ip -address, remember to change address to fit your network. - -# ifconfig eth0 up -# ip addr add 10.1.1.180/24 dev eth0 -# ping 10.1.1.1 -PING 10.1.1.1 (10.1.1.1): 56 data bytes -64 bytes from 10.1.1.1: seq=0 ttl=64 time=0.695 ms diff --git a/buildroot/board/qemu/ppc-mpc8544ds/patches/linux/0001-powerpc-Fix-mcpu-options-for-SPE-only-compiler.patch b/buildroot/board/qemu/ppc-mpc8544ds/patches/linux/0001-powerpc-Fix-mcpu-options-for-SPE-only-compiler.patch new file mode 100644 index 000000000..a7bc31bda --- /dev/null +++ b/buildroot/board/qemu/ppc-mpc8544ds/patches/linux/0001-powerpc-Fix-mcpu-options-for-SPE-only-compiler.patch @@ -0,0 +1,53 @@ +From 44e3424424b447b00fbe1f10ddba81b55817e970 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Wed, 26 Dec 2018 00:00:40 +0000 +Subject: [PATCH] powerpc: Fix -mcpu= options for SPE-only compiler + +GCC for Debian's "powerpcspe" architecture only supports 32-bit +SPE targets, and using -mcpu=powerpc or -mcpu=powerpc64 is a fatal +error. + +* Change the test for a biarch compiler to pass both the -m32 and -m64 + options, so that it doesn't catch 32-bit-only compilers +* Add an ifdef CONFIG_PPC64 around the 64-bit CPU option definitions + +Signed-off-by: Ben Hutchings +[Romain: Patch from Debian repository: +https://salsa.debian.org/kernel-team/linux/-/blob/buster/debian/patches/bugfix/powerpc/powerpc-fix-mcpu-options-for-spe-only-compiler.patch] +Signed-off-by: Romain Naour +--- + arch/powerpc/Makefile | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile +index 37ac731a556b..5211ea4f48b1 100644 +--- a/arch/powerpc/Makefile ++++ b/arch/powerpc/Makefile +@@ -12,7 +12,7 @@ + # Rewritten by Cort Dougan and Paul Mackerras + # + +-HAS_BIARCH := $(call cc-option-yn, -m32) ++HAS_BIARCH := $(call cc-option-yn, -m32 -m64) + + # Set default 32 bits cross compilers for vdso and boot wrapper + CROSS32_COMPILE ?= +@@ -166,6 +166,7 @@ CFLAGS-$(CONFIG_PPC32) += $(call cc-option, $(MULTIPLEWORD)) + + CFLAGS-$(CONFIG_PPC32) += $(call cc-option,-mno-readonly-in-sdata) + ++ifdef CONFIG_PPC64 + ifdef CONFIG_PPC_BOOK3S_64 + ifdef CONFIG_CPU_LITTLE_ENDIAN + CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power8 +@@ -177,6 +178,7 @@ endif + else + CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64 + endif ++endif + + ifdef CONFIG_FUNCTION_TRACER + CC_FLAGS_FTRACE := -pg +-- +2.25.4 + diff --git a/buildroot/configs/mx6sx_udoo_neo_defconfig b/buildroot/configs/mx6sx_udoo_neo_defconfig index 4a2f8b0bc..2bdcade25 100644 --- a/buildroot/configs/mx6sx_udoo_neo_defconfig +++ b/buildroot/configs/mx6sx_udoo_neo_defconfig @@ -23,6 +23,7 @@ BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sx-udoo-neo-basic imx6sx-udoo-neo-full imx6sx-udoo-neo-extended" BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y # required tools to create the SD card image BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/buildroot/configs/mx6udoo_defconfig b/buildroot/configs/mx6udoo_defconfig index 058dc4534..60436e861 100644 --- a/buildroot/configs/mx6udoo_defconfig +++ b/buildroot/configs/mx6udoo_defconfig @@ -25,6 +25,7 @@ BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-udoo imx6dl-udoo" BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y # required tools to create the SD card image BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_GENIMAGE=y diff --git a/buildroot/configs/orangepi_pc_defconfig b/buildroot/configs/orangepi_pc_defconfig index 90ad50b78..c1afb8566 100644 --- a/buildroot/configs/orangepi_pc_defconfig +++ b/buildroot/configs/orangepi_pc_defconfig @@ -23,6 +23,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION=y BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_pc" BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y BR2_TARGET_UBOOT_FORMAT_CUSTOM=y BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" diff --git a/buildroot/configs/orangepi_zero_plus_defconfig b/buildroot/configs/orangepi_zero_plus_defconfig index cff2788f0..cf82f8b3c 100644 --- a/buildroot/configs/orangepi_zero_plus_defconfig +++ b/buildroot/configs/orangepi_zero_plus_defconfig @@ -21,6 +21,7 @@ BR2_TARGET_UBOOT_CUSTOM_VERSION=y BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.10" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_zero_plus" BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y BR2_TARGET_UBOOT_FORMAT_CUSTOM=y diff --git a/buildroot/configs/qemu_arm_versatile_defconfig b/buildroot/configs/qemu_arm_versatile_defconfig index 280c31340..6dc212397 100644 --- a/buildroot/configs/qemu_arm_versatile_defconfig +++ b/buildroot/configs/qemu_arm_versatile_defconfig @@ -13,8 +13,6 @@ BR2_TARGET_ROOTFS_EXT2=y # Image BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" -# Qemu >= 5.1 requires SD card size to be a power of 2, e.g. 64 MiB. -BR2_TARGET_ROOTFS_EXT2_SIZE="64M" # Linux headers same as kernel, a 5.4 series BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y diff --git a/buildroot/configs/qemu_arm_vexpress_defconfig b/buildroot/configs/qemu_arm_vexpress_defconfig index f99b87c17..a106530ec 100644 --- a/buildroot/configs/qemu_arm_vexpress_defconfig +++ b/buildroot/configs/qemu_arm_vexpress_defconfig @@ -16,6 +16,8 @@ BR2_TARGET_ROOTFS_EXT2=y # Image BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)" +# Qemu >= 5.1 requires an SD card size to be a power of 2, e.g. 64 MiB. +BR2_TARGET_ROOTFS_EXT2_SIZE="64M" # Linux headers same as kernel, a 5.4 series BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y diff --git a/buildroot/configs/qemu_ppc_mpc8544ds_defconfig b/buildroot/configs/qemu_ppc_mpc8544ds_defconfig index 98a10b353..9ec94a483 100644 --- a/buildroot/configs/qemu_ppc_mpc8544ds_defconfig +++ b/buildroot/configs/qemu_ppc_mpc8544ds_defconfig @@ -3,6 +3,7 @@ BR2_powerpc=y BR2_powerpc_8548=y # System +BR2_GLOBAL_PATCH_DIR="board/qemu/ppc-mpc8544ds/patches" BR2_SYSTEM_DHCP="eth0" # Filesystem diff --git a/buildroot/configs/rock64_defconfig b/buildroot/configs/rock64_defconfig deleted file mode 100644 index 30bf12c06..000000000 --- a/buildroot/configs/rock64_defconfig +++ /dev/null @@ -1,38 +0,0 @@ -BR2_aarch64=y -BR2_GLOBAL_PATCH_DIR="board/pine64/rock64/patches" -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y -BR2_TARGET_GENERIC_GETTY_PORT="ttyS2" -BR2_ROOTFS_POST_BUILD_SCRIPT="board/pine64/rock64/post-build.sh" -BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" -BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pine64/rock64/genimage.cfg" -BR2_LINUX_KERNEL=y -BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.19" -BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y -BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3328-rock64" -BR2_LINUX_KERNEL_INSTALL_TARGET=y -BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y -BR2_TARGET_ROOTFS_EXT2=y -BR2_TARGET_ROOTFS_EXT2_4=y -BR2_TARGET_ROOTFS_EXT2_SIZE="128M" -BR2_TARGET_ARM_TRUSTED_FIRMWARE=y -BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y -BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v1.4" -BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3328" -BR2_TARGET_UBOOT=y -BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y -BR2_TARGET_UBOOT_CUSTOM_GIT=y -BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/ayufan-rock64/linux-u-boot.git" -BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="2017.09-rockchip-ayufan-1035-gd646df03ac" -BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rock64-rk3328" -BR2_TARGET_UBOOT_NEEDS_DTC=y -BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y -BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y -BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y -BR2_TARGET_UBOOT_FORMAT_CUSTOM=y -BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb" -BR2_TARGET_UBOOT_SPL=y -BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl.bin tpl/u-boot-tpl.bin" -BR2_PACKAGE_HOST_GENIMAGE=y -BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/buildroot/configs/rock_pi_n8_defconfig b/buildroot/configs/rock_pi_n8_defconfig index 9c671d416..b7135d631 100644 --- a/buildroot/configs/rock_pi_n8_defconfig +++ b/buildroot/configs/rock_pi_n8_defconfig @@ -14,6 +14,7 @@ BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/amarula/u-boot-amarula.git" BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="ba120841bf40ebaed049d64bb4f980083a1cf6b7" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rock-pi-n8-rk3288" BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y BR2_TARGET_UBOOT_NEEDS_OPENSSL=y BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y diff --git a/buildroot/docs/manual/common-usage.txt b/buildroot/docs/manual/common-usage.txt index 7cfda1036..9ba87a833 100644 --- a/buildroot/docs/manual/common-usage.txt +++ b/buildroot/docs/manual/common-usage.txt @@ -157,6 +157,29 @@ your filesystem, those parts may not be all-zeroes when read back). You should only use sparse files when handling files on the build machine, not when transferring them to an actual device that will be used on the target. +=== Details about packages + +[[package-details]] + +Buildroot can produce a JSON blurb that describes the set of enabled +packages in the current configuration, together with their +dependencies, licenses and other metadata. This JSON blurb is produced +by using the +show-info+ make target: + +------------------------ +make show-info +------------------------ + +Buildroot can also produce details about packages as HTML and JSON +output using the +pkg-stats+ make target. Amongst other things, these +details include whether known CVEs (security vulnerabilities) affect +the packages in your current configuration. It also shows if there is +a newer upstream version for those packages. + +------------------------ +make pkg-stats +------------------------ + === Graphing the dependencies between packages [[graph-depends]] diff --git a/buildroot/docs/manual/manual.html b/buildroot/docs/manual/manual.html index ee397d701..a7d52b6d9 100644 --- a/buildroot/docs/manual/manual.html +++ b/buildroot/docs/manual/manual.html @@ -1,8 +1,8 @@ -The Buildroot user manual

The Buildroot user manual


Table of Contents

I. Getting started
1. About Buildroot
2. System requirements
2.1. Mandatory packages
2.2. Optional packages
3. Getting Buildroot
4. Buildroot quick start
5. Community resources
II. User guide
6. Buildroot configuration
6.1. Cross-compilation toolchain
6.2. /dev management
6.3. init system
7. Configuration of other components
8. General Buildroot usage
8.1. make tips
8.2. Understanding when a full rebuild is necessary
8.3. Understanding how to rebuild packages
8.4. Offline builds
8.5. Building out-of-tree
8.6. Environment variables
8.7. Dealing efficiently with filesystem images
8.8. Graphing the dependencies between packages
8.9. Graphing the build duration
8.10. Graphing the filesystem size contribution of packages
8.11. Top-level parallel build
8.12. Integration with Eclipse
8.13. Advanced usage
9. Project-specific customization
9.1. Recommended directory structure
9.2. Keeping customizations outside of Buildroot
9.3. Storing the Buildroot configuration
9.4. Storing the configuration of other components
9.5. Customizing the generated target filesystem
9.6. Adding custom user accounts
9.7. Customization after the images have been created
9.8. Adding project-specific patches
9.9. Adding project-specific packages
9.10. Quick guide to storing your project-specific customizations
10. Using SELinux in Buildroot
10.1. Enabling SELinux support
10.2. SELinux policy tweaking
11. Frequently Asked Questions & Troubleshooting
11.1. The boot hangs after Starting network…
11.2. Why is there no compiler on the target?
11.3. Why are there no development files on the target?
11.4. Why is there no documentation on the target?
11.5. Why are some packages not visible in the Buildroot config menu?
11.6. Why not use the target directory as a chroot directory?
11.7. Why doesn’t Buildroot generate binary packages (.deb, .ipkg…)?
11.8. How to speed-up the build process?
12. Known issues
13. Legal notice and licensing
13.1. Complying with open source licenses
13.2. Complying with the Buildroot license
14. Beyond Buildroot
14.1. Boot the generated images
14.2. Chroot
III. Developer guide
15. How Buildroot works
16. Coding style
16.1. Config.in file
16.2. The .mk file
16.3. The documentation
16.4. Support scripts
17. Adding support for a particular board
18. Adding new packages to Buildroot
18.1. Package directory
18.2. Config files
18.3. The .mk file
18.4. The .hash file
18.5. Infrastructure for packages with specific build systems
18.6. Infrastructure for autotools-based packages
18.7. Infrastructure for CMake-based packages
18.8. Infrastructure for Python packages
18.9. Infrastructure for LuaRocks-based packages
18.10. Infrastructure for Perl/CPAN packages
18.11. Infrastructure for virtual packages
18.12. Infrastructure for packages using kconfig for configuration files
18.13. Infrastructure for rebar-based packages
18.14. Infrastructure for Waf-based packages
18.15. Infrastructure for Meson-based packages
18.16. Integration of Cargo-based packages
18.17. Infrastructure for Go packages
18.18. Infrastructure for QMake-based packages
18.19. Infrastructure for packages building kernel modules
18.20. Infrastructure for asciidoc documents
18.21. Infrastructure specific to the Linux kernel package
18.22. Hooks available in the various build steps
18.23. Gettext integration and interaction with packages
18.24. Tips and tricks
18.25. Conclusion
19. Patching a package
19.1. Providing patches
19.2. How patches are applied
19.3. Format and licensing of the package patches
19.4. Integrating patches found on the Web
20. Download infrastructure
21. Debugging Buildroot
22. Contributing to Buildroot
22.1. Reproducing, analyzing and fixing bugs
22.2. Analyzing and fixing autobuild failures
22.3. Reviewing and testing patches
22.4. Work on items from the TODO list
22.5. Submitting patches
22.6. Reporting issues/bugs or getting help
22.7. Using the run-tests framework
23. DEVELOPERS file and get-developers
24. Release Engineering
24.1. Releases
24.2. Development
IV. Appendix
25. Makedev syntax documentation
26. Makeusers syntax documentation
27. Migrating from older Buildroot versions
27.1. Migrating to 2016.11
27.2. Migrating to 2017.08

Buildroot 2020.11-rc1 manual generated on 2020-11-04 -22:31:15 UTC from git revision 5b79a9cc47

The Buildroot manual is written by the Buildroot developers. +The Buildroot user manual

The Buildroot user manual


Table of Contents

I. Getting started
1. About Buildroot
2. System requirements
2.1. Mandatory packages
2.2. Optional packages
3. Getting Buildroot
4. Buildroot quick start
5. Community resources
II. User guide
6. Buildroot configuration
6.1. Cross-compilation toolchain
6.2. /dev management
6.3. init system
7. Configuration of other components
8. General Buildroot usage
8.1. make tips
8.2. Understanding when a full rebuild is necessary
8.3. Understanding how to rebuild packages
8.4. Offline builds
8.5. Building out-of-tree
8.6. Environment variables
8.7. Dealing efficiently with filesystem images
8.8. Details about packages
8.9. Graphing the dependencies between packages
8.10. Graphing the build duration
8.11. Graphing the filesystem size contribution of packages
8.12. Top-level parallel build
8.13. Integration with Eclipse
8.14. Advanced usage
9. Project-specific customization
9.1. Recommended directory structure
9.2. Keeping customizations outside of Buildroot
9.3. Storing the Buildroot configuration
9.4. Storing the configuration of other components
9.5. Customizing the generated target filesystem
9.6. Adding custom user accounts
9.7. Customization after the images have been created
9.8. Adding project-specific patches
9.9. Adding project-specific packages
9.10. Quick guide to storing your project-specific customizations
10. Using SELinux in Buildroot
10.1. Enabling SELinux support
10.2. SELinux policy tweaking
11. Frequently Asked Questions & Troubleshooting
11.1. The boot hangs after Starting network…
11.2. Why is there no compiler on the target?
11.3. Why are there no development files on the target?
11.4. Why is there no documentation on the target?
11.5. Why are some packages not visible in the Buildroot config menu?
11.6. Why not use the target directory as a chroot directory?
11.7. Why doesn’t Buildroot generate binary packages (.deb, .ipkg…)?
11.8. How to speed-up the build process?
12. Known issues
13. Legal notice and licensing
13.1. Complying with open source licenses
13.2. Complying with the Buildroot license
14. Beyond Buildroot
14.1. Boot the generated images
14.2. Chroot
III. Developer guide
15. How Buildroot works
16. Coding style
16.1. Config.in file
16.2. The .mk file
16.3. The documentation
16.4. Support scripts
17. Adding support for a particular board
18. Adding new packages to Buildroot
18.1. Package directory
18.2. Config files
18.3. The .mk file
18.4. The .hash file
18.5. Infrastructure for packages with specific build systems
18.6. Infrastructure for autotools-based packages
18.7. Infrastructure for CMake-based packages
18.8. Infrastructure for Python packages
18.9. Infrastructure for LuaRocks-based packages
18.10. Infrastructure for Perl/CPAN packages
18.11. Infrastructure for virtual packages
18.12. Infrastructure for packages using kconfig for configuration files
18.13. Infrastructure for rebar-based packages
18.14. Infrastructure for Waf-based packages
18.15. Infrastructure for Meson-based packages
18.16. Integration of Cargo-based packages
18.17. Infrastructure for Go packages
18.18. Infrastructure for QMake-based packages
18.19. Infrastructure for packages building kernel modules
18.20. Infrastructure for asciidoc documents
18.21. Infrastructure specific to the Linux kernel package
18.22. Hooks available in the various build steps
18.23. Gettext integration and interaction with packages
18.24. Tips and tricks
18.25. Conclusion
19. Patching a package
19.1. Providing patches
19.2. How patches are applied
19.3. Format and licensing of the package patches
19.4. Integrating patches found on the Web
20. Download infrastructure
21. Debugging Buildroot
22. Contributing to Buildroot
22.1. Reproducing, analyzing and fixing bugs
22.2. Analyzing and fixing autobuild failures
22.3. Reviewing and testing patches
22.4. Work on items from the TODO list
22.5. Submitting patches
22.6. Reporting issues/bugs or getting help
22.7. Using the run-tests framework
23. DEVELOPERS file and get-developers
24. Release Engineering
24.1. Releases
24.2. Development
IV. Appendix
25. Makedev syntax documentation
26. Makeusers syntax documentation
27. Migrating from older Buildroot versions
27.1. Migrating to 2016.11
27.2. Migrating to 2017.08

Buildroot 2020.11-rc2 manual generated on 2020-11-14 +13:52:47 UTC from git revision 6a33ea03b4

The Buildroot manual is written by the Buildroot developers. It is licensed under the GNU General Public License, version 2. Refer to the -COPYING +COPYING file in the Buildroot sources for the full text of this license.

Copyright © 2004-2020 The Buildroot developers

logo.png

Part I. Getting started

Chapter 1. About Buildroot

Buildroot is a tool that simplifies and automates the process of building a complete Linux system for an embedded system, using cross-compilation.

In order to achieve this, Buildroot is able to generate a @@ -153,7 +153,7 @@ for details on some specific configuration aspects.

Once everything is con read by the top-level Makefile.

To start the build process, simply run:

 $ make

By default, Buildroot does not support top-level parallel build, so running make -jN is not necessary. There is however experimental support for top-level parallel build, see -Section 8.11, “Top-level parallel build”.

The make command will generally perform the following steps:

An example that uses config files located in the toplevel directory and in your $HOME:

 $ make UCLIBC_CONFIG_FILE=uClibc.config BUSYBOX_CONFIG_FILE=$HOME/bb.config

If you want to use a compiler other than the default gcc or g++ for building helper-binaries on your host, then do

 $ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD

8.7. Dealing efficiently with filesystem images

Filesystem images can get pretty big, depending on the filesystem you choose, @@ -868,7 +868,14 @@ sparse mode of dd may result in a broken filesystem of an ext2 filesystem may be corrupted; or, if you have sparse files in your filesystem, those parts may not be all-zeroes when read back). You should only use sparse files when handling files on the build machine, not -when transferring them to an actual device that will be used on the target.

8.8. Graphing the dependencies between packages

One of Buildroot’s jobs is to know the dependencies between packages, +when transferring them to an actual device that will be used on the target.

8.8. Details about packages

Buildroot can produce a JSON blurb that describes the set of enabled +packages in the current configuration, together with their +dependencies, licenses and other metadata. This JSON blurb is produced +by using the show-info make target:

make show-info

Buildroot can also produce details about packages as HTML and JSON +output using the pkg-stats make target. Amongst other things, these +details include whether known CVEs (security vulnerabilities) affect +the packages in your current configuration. It also shows if there is +a newer upstream version for those packages.

make pkg-stats

8.9. Graphing the dependencies between packages

One of Buildroot’s jobs is to know the dependencies between packages, and make sure they are built in the right order. These dependencies can sometimes be quite complicated, and for a given system, it is often not easy to understand why such or such package was brought into @@ -907,7 +914,7 @@ supported.

BR2_GRAPH_OUT=svg make graph-depends

T --colors R,T,H, the comma-separated list of colors to draw the root package (R), the target packages (T) and the host packages (H). Defaults to: lightblue,grey,gainsboro -

BR2_GRAPH_DEPS_OPTS='-d 3 --no-transitive --colors=red,green,blue' make graph-depends

8.9. Graphing the build duration

When the build of a system takes a long time, it is sometimes useful +

BR2_GRAPH_DEPS_OPTS='-d 3 --no-transitive --colors=red,green,blue' make graph-depends

8.10. Graphing the build duration

When the build of a system takes a long time, it is sometimes useful to be able to understand which packages are the longest to build, to see if anything can be done to speed up the build. In order to help such build time analysis, Buildroot collects the build time of each @@ -931,7 +938,7 @@ most distributions), and also the argparse module i Python version older than 2.7 (python-argparse on most distributions).

By default, the output format for the graph is PDF, but a different format can be selected using the BR2_GRAPH_OUT environment variable. The -only other format supported is PNG:

BR2_GRAPH_OUT=png make graph-build

8.10. Graphing the filesystem size contribution of packages

When your target system grows, it is sometimes useful to understand +only other format supported is PNG:

BR2_GRAPH_OUT=png make graph-build

8.11. Graphing the filesystem size contribution of packages

When your target system grows, it is sometimes useful to understand how much each Buildroot package is contributing to the overall root filesystem size. To help with such an analysis, Buildroot collects data about files installed by each package and using this data, @@ -950,7 +957,7 @@ the different packages.

To generate these data after a build, run:

python-matplotlib on most distributions), and also the
 argparse module if you’re using a Python version older than 2.7
 (python-argparse on most distributions).

Just like for the duration graph, a BR2_GRAPH_OUT environment variable -is supported to adjust the output file format. See Section 8.8, “Graphing the dependencies between packages” +is supported to adjust the output file format. See Section 8.9, “Graphing the dependencies between packages” for details about this environment variable.

Additionally, one may set the environment variable BR2_GRAPH_SIZE_OPTS to further control the generated graph. Accepted options are:

  • --size-limit X, -l X, will group all packages which individual @@ -970,7 +977,7 @@ graph-size.

    To compare the root filesystem size of two different Bu for example after adjusting the configuration or when switching to another Buildroot release, use the size-stats-compare script. It takes two file-size-stats.csv files (produced by make graph-size) as input. -Refer to the help text of this script for more details:

    utils/size-stats-compare -h

8.11. Top-level parallel build

Note. This section deals with a very experimental feature, which is known to +Refer to the help text of this script for more details:

utils/size-stats-compare -h

8.12. Top-level parallel build

Note. This section deals with a very experimental feature, which is known to break even in some non-unusual situations. Use at your own risk.

Buildroot has always been capable of using parallel build on a per package basis: each package is built by Buildroot using make -jN (or the equivalent invocation for non-make-based build systems). The level @@ -1003,7 +1010,7 @@ At the end of the build, the global target

8.12. Integration with Eclipse

While a part of the embedded Linux developers like classical text +

8.13. Integration with Eclipse

While a part of the embedded Linux developers like classical text editors like Vim or Emacs, and command-line based interfaces, a number of other embedded Linux developers like richer graphical interfaces to do their development work. Eclipse being one of the most popular @@ -1025,7 +1032,7 @@ Start Eclipse to develop, execute and debug your own custom and installed by Buildroot.

The Buildroot Eclipse integration installation process and usage is described in detail at -https://github.com/mbats/eclipse-buildroot-bundle/wiki.

8.13. Advanced usage

8.13.1. Using the generated toolchain outside Buildroot

You may want to compile, for your target, your own programs or other +https://github.com/mbats/eclipse-buildroot-bundle/wiki.

8.14. Advanced usage

8.14.1. Using the generated toolchain outside Buildroot

You may want to compile, for your target, your own programs or other software that are not packaged in Buildroot. In order to do this you can use the toolchain that was generated by Buildroot.

The toolchain generated by Buildroot is located by default in output/host/. The simplest way to use it is to add @@ -1055,7 +1062,7 @@ Buildroot SDK: the PATH will contain the SDK binari cross-compile autotools projects. It also provides some useful commands. Note however that once this script is sourced, the environment is setup only for cross-compilation, and no longer for -native compilation.

8.13.2. Using gdb in Buildroot

Buildroot allows to do cross-debugging, where the debugger runs on the +native compilation.

8.14.2. Using gdb in Buildroot

Buildroot allows to do cross-debugging, where the debugger runs on the build machine and communicates with gdbserver on the target to control the execution of the program.

To achieve this:

  • If you are using an internal toolchain (built by Buildroot), you @@ -1076,7 +1083,7 @@ command line:

    <buildroot>/output/host/bin/<tuple
     with debugging symbols. Typically you start this command from the
     directory where foo is built (and not from output/target/ as the
     binaries in that directory are stripped).

    The <buildroot>/output/staging/usr/share/buildroot/gdbinit file will tell the -cross gdb where to find the libraries of the target.

    Finally, to connect to the target from the cross gdb:

    (gdb) target remote <target ip address>:2345

8.13.3. Using ccache in Buildroot

ccache is a compiler cache. It stores the +cross gdb where to find the libraries of the target.

Finally, to connect to the target from the cross gdb:

(gdb) target remote <target ip address>:2345

8.14.3. Using ccache in Buildroot

ccache is a compiler cache. It stores the object files resulting from each compilation process, and is able to skip future compilation of the same source file (with same compiler and same arguments) by using the pre-existing object files. When doing @@ -1104,7 +1111,7 @@ relative paths in the object file. Therefore, for example, the debugger will no longer find the file, unless you cd to the output directory first.

See the ccache manual’s section on "Compiling in different directories" for -more details about this rewriting of absolute paths.

8.13.4. Location of downloaded packages

The various tarballs that are downloaded by Buildroot are all stored +more details about this rewriting of absolute paths.

8.14.4. Location of downloaded packages

The various tarballs that are downloaded by Buildroot are all stored in BR2_DL_DIR, which by default is the dl directory. If you want to keep a complete version of Buildroot which is known to be working with the associated tarballs, you can make a copy of this directory. @@ -1115,7 +1122,7 @@ shared download location. This can be achieved by pointing the set, then the value of BR2_DL_DIR in the Buildroot configuration is overridden. The following line should be added to <~/.bashrc>.

 export BR2_DL_DIR=<shared download location>

The download location can also be set in the .config file, with the BR2_DL_DIR option. Unlike most options in the .config file, this value -is overridden by the BR2_DL_DIR environment variable.

8.13.5. Package-specific make targets

Running make <package> builds and installs that particular package +is overridden by the BR2_DL_DIR environment variable.

8.14.5. Package-specific make targets

Running make <package> builds and installs that particular package and its dependencies.

For packages relying on the Buildroot infrastructure, there are numerous special make targets that can be called independently like this:

make <package>-<target>

The package build targets are (in the order they are executed):

command/target Description

source

Fetch the source (download the tarball, clone @@ -1139,7 +1146,7 @@ graphs.

OVERRIDE_SRCDIR feature or when you modified a file directly in the build directory

reconfigure

Re-run the configure commands, then rebuild - this only makes sense when using the OVERRIDE_SRCDIR feature or when you modified a -file directly in the build directory

8.13.6. Using Buildroot during development

The normal operation of Buildroot is to download a tarball, extract +file directly in the build directory

8.14.6. Using Buildroot during development

The normal operation of Buildroot is to download a tarball, extract it, configure, compile and install the software component found inside this tarball. The source code is extracted in output/build/<package>-<version>, which is a temporary directory: @@ -2176,7 +2183,7 @@ Use a pre-built external toolchain instead of the default Buildroot switch back to an internal toolchain (that may provide a higher level of customization) once the rest of your system is working;

  • -Use the ccache compiler cache (see: Section 8.13.3, “Using ccache in Buildroot”); +Use the ccache compiler cache (see: Section 8.14.3, “Using ccache in Buildroot”);
  • Learn about rebuilding only the few packages you actually care about (see Section 8.3, “Understanding how to rebuild packages”), but beware that sometimes full @@ -2195,7 +2202,7 @@ Buy new hardware. SSDs and lots of RAM are key to speeding up the builds.
  • Experiment with top-level parallel build, see - Section 8.11, “Top-level parallel build”. + Section 8.12, “Top-level parallel build”.
  • Chapter 12. Known issues

    • It is not possible to pass extra linker options via BR2_TARGET_LDFLAGS if such options contain a $ sign. For example, the following is known @@ -2955,7 +2962,7 @@ flags. The argument to be given to LIBFOO_CONFIG_SCRIPTS is the file name(s) of the shell script(s) needing fixing. All these names are relative to $(STAGING_DIR)/usr/bin and if needed multiple names can be given.

      In addition, the scripts listed in LIBFOO_CONFIG_SCRIPTS are removed -from $(TARGET_DIR)/usr/bin, since they are not needed on the target.

      Example 18.1. Config script: divine package

      Package divine installs shell script $(STAGING_DIR)/usr/bin/divine-config.

      So its fixup would be:

      DIVINE_CONFIG_SCRIPTS = divine-config

      Example 18.2. Config script: imagemagick package:

      Package imagemagick installs the following scripts: +from $(TARGET_DIR)/usr/bin, since they are not needed on the target.

      Example 18.1. Config script: divine package

      Package divine installs shell script $(STAGING_DIR)/usr/bin/divine-config.

      So its fixup would be:

      DIVINE_CONFIG_SCRIPTS = divine-config

      Example 18.2. Config script: imagemagick package:

      Package imagemagick installs the following scripts: $(STAGING_DIR)/usr/bin/{Magick,Magick++,MagickCore,MagickWand,Wand}-config

      So it’s fixup would be:

      IMAGEMAGICK_CONFIG_SCRIPTS = \
          Magick-config Magick++-config \
          MagickCore-config MagickWand-config Wand-config

      On line 14, we specify the list of dependencies this package relies @@ -3418,7 +3425,7 @@ Of course the $(HOST_DIR), $( the current package host, staging and target directories. In both cases, it doesn’t make any difference from the package point of view: it should simply use HOST_DIR, STAGING_DIR and - TARGET_DIR. See Section 8.11, “Top-level parallel build” for more details + TARGET_DIR. See Section 8.12, “Top-level parallel build” for more details about per-package directory support.

    Finally, you can also use hooks. See Section 18.22, “Hooks available in the various build steps” for more information.

    18.6. Infrastructure for autotools-based packages

    18.6.1. autotools-package tutorial

    First, let’s see how to write a .mk file for an autotools-based package, with an example :

    01: ################################################################################
    @@ -5375,7 +5382,7 @@ large number of commits in the series;
     
  • deep impact of the changes in the rest of the project;
  • -RFC [4]; +RFC [4];
  • whenever you feel it will help presenting your work, your choices, the review process, etc. @@ -5589,7 +5596,7 @@ to trigger all run-test test case jobs:
  •  $ git push gitlab HEAD:<name>-runtime-tests
    • to trigger one test case job, a specific branch naming string is used that includes the full test case name. -
     $ git push gitlab HEAD:<name>-<test case name>


    [4] RFC: (Request for comments) change proposal

    Chapter 23. DEVELOPERS file and get-developers

    The main Buildroot directory contains a file named DEVELOPERS that +

     $ git push gitlab HEAD:<name>-<test case name>


    [4] RFC: (Request for comments) change proposal

    Chapter 23. DEVELOPERS file and get-developers

    The main Buildroot directory contains a file named DEVELOPERS that lists the developers involved with various areas of Buildroot. Thanks to this file, the get-developers tool allows to:

    • Calculate the list of developers to whom patches should be sent, by diff --git a/buildroot/docs/manual/manual.pdf b/buildroot/docs/manual/manual.pdf index 91ae33809..3658d23cf 100644 Binary files a/buildroot/docs/manual/manual.pdf and b/buildroot/docs/manual/manual.pdf differ diff --git a/buildroot/docs/manual/manual.text b/buildroot/docs/manual/manual.text index 9aa5d8fca..f5fec57bf 100644 --- a/buildroot/docs/manual/manual.text +++ b/buildroot/docs/manual/manual.text @@ -39,12 +39,13 @@ II. User guide 8.5. Building out-of-tree 8.6. Environment variables 8.7. Dealing efficiently with filesystem images - 8.8. Graphing the dependencies between packages - 8.9. Graphing the build duration - 8.10. Graphing the filesystem size contribution of packages - 8.11. Top-level parallel build - 8.12. Integration with Eclipse - 8.13. Advanced usage + 8.8. Details about packages + 8.9. Graphing the dependencies between packages + 8.10. Graphing the build duration + 8.11. Graphing the filesystem size contribution of packages + 8.12. Top-level parallel build + 8.13. Integration with Eclipse + 8.14. Advanced usage 9. Project-specific customization @@ -173,13 +174,13 @@ List of Examples --------------------------------------------------------------------- -Buildroot 2020.11-rc1 manual generated on 2020-11-04 22:31:20 UTC -from git revision 5b79a9cc47 +Buildroot 2020.11-rc2 manual generated on 2020-11-14 13:52:52 UTC +from git revision 6a33ea03b4 The Buildroot manual is written by the Buildroot developers. It is licensed under the GNU General Public License, version 2. Refer to the COPYING [http://git.buildroot.org/buildroot/tree/COPYING?id= -5b79a9cc47ff22e18c901d02d94f1e3c3cfdfae1] file in the Buildroot +6a33ea03b469a35f0dddcabd6e378819dc731024] file in the Buildroot sources for the full text of this license. Copyright © 2004-2020 The Buildroot developers @@ -399,7 +400,7 @@ To start the build process, simply run: By default, Buildroot does not support top-level parallel build, so running make -jN is not necessary. There is however experimental -support for top-level parallel build, see Section 8.11, “Top-level +support for top-level parallel build, see Section 8.12, “Top-level parallel build”. The make command will generally perform the following steps: @@ -550,12 +551,13 @@ Table of Contents 8.5. Building out-of-tree 8.6. Environment variables 8.7. Dealing efficiently with filesystem images - 8.8. Graphing the dependencies between packages - 8.9. Graphing the build duration - 8.10. Graphing the filesystem size contribution of packages - 8.11. Top-level parallel build - 8.12. Integration with Eclipse - 8.13. Advanced usage + 8.8. Details about packages + 8.9. Graphing the dependencies between packages + 8.10. Graphing the build duration + 8.11. Graphing the filesystem size contribution of packages + 8.12. Top-level parallel build + 8.13. Integration with Eclipse + 8.14. Advanced usage 9. Project-specific customization @@ -1117,7 +1119,7 @@ well as the configuration: Notes. If ccache is enabled, running make clean or distclean does not empty the compiler cache used by Buildroot. To delete it, refer to -Section 8.13.3, “Using ccache in Buildroot”. +Section 8.14.3, “Using ccache in Buildroot”. Dumping the internal make variables: One can dump the variables known to make, along with their values: @@ -1290,7 +1292,7 @@ above simply manipulate these stamp files to force Buildroot to restart a specific set of steps of a package build process. Further details about package special make targets are explained in -Section 8.13.5, “Package-specific make targets”. +Section 8.14.5, “Package-specific make targets”. 8.4. Offline builds @@ -1360,7 +1362,7 @@ passed to make or set in the environment: * BR2_DL_DIR to override the directory in which Buildroot stores/ retrieves downloaded files. Note that the Buildroot download directory can also be set from the configuration interface, so - through the Buildroot .config file. See Section 8.13.4, “Location + through the Buildroot .config file. See Section 8.14.4, “Location of downloaded packages” for more details on how you can set the download directory. * BR2_GRAPH_ALT, if set and non-empty, to use an alternate @@ -1368,12 +1370,12 @@ passed to make or set in the environment: * BR2_GRAPH_OUT to set the filetype of generated graphs, either pdf (the default), or png. * BR2_GRAPH_DEPS_OPTS to pass extra options to the dependency - graph; see Section 8.8, “Graphing the dependencies between + graph; see Section 8.9, “Graphing the dependencies between packages” for the accepted options * BR2_GRAPH_DOT_OPTS is passed verbatim as options to the dot utility to draw the dependency graph. * BR2_GRAPH_SIZE_OPTS to pass extra options to the size graph; see - Section 8.10, “Graphing the filesystem size contribution of + Section 8.11, “Graphing the filesystem size contribution of packages” for the acepted options An example that uses config files located in the toplevel directory @@ -1426,7 +1428,24 @@ when read back). You should only use sparse files when handling files on the build machine, not when transferring them to an actual device that will be used on the target. -8.8. Graphing the dependencies between packages +8.8. Details about packages + +Buildroot can produce a JSON blurb that describes the set of enabled +packages in the current configuration, together with their +dependencies, licenses and other metadata. This JSON blurb is +produced by using the show-info make target: + +make show-info + +Buildroot can also produce details about packages as HTML and JSON +output using the pkg-stats make target. Amongst other things, these +details include whether known CVEs (security vulnerabilities) affect +the packages in your current configuration. It also shows if there is +a newer upstream version for those packages. + +make pkg-stats + +8.9. Graphing the dependencies between packages One of Buildroot’s jobs is to know the dependencies between packages, and make sure they are built in the right order. These dependencies @@ -1488,7 +1507,7 @@ are: BR2_GRAPH_DEPS_OPTS='-d 3 --no-transitive --colors=red,green,blue' make graph-depends -8.9. Graphing the build duration +8.10. Graphing the build duration When the build of a system takes a long time, it is sometimes useful to be able to understand which packages are the longest to build, to @@ -1523,7 +1542,7 @@ The only other format supported is PNG: BR2_GRAPH_OUT=png make graph-build -8.10. Graphing the filesystem size contribution of packages +8.11. Graphing the filesystem size contribution of packages When your target system grows, it is sometimes useful to understand how much each Buildroot package is contributing to the overall root @@ -1553,7 +1572,7 @@ argparse module if you’re using a Python version older than 2.7 Just like for the duration graph, a BR2_GRAPH_OUT environment variable is supported to adjust the output file format. See -Section 8.8, “Graphing the dependencies between packages” for details +Section 8.9, “Graphing the dependencies between packages” for details about this environment variable. Additionally, one may set the environment variable @@ -1583,7 +1602,7 @@ details: utils/size-stats-compare -h -8.11. Top-level parallel build +8.12. Top-level parallel build Note. This section deals with a very experimental feature, which is known to break even in some non-unusual situations. Use at your own @@ -1628,7 +1647,7 @@ effects: will be empty and it’s only at the very end of the build that they will be populated. -8.12. Integration with Eclipse +8.13. Integration with Eclipse While a part of the embedded Linux developers like classical text editors like Vim or Emacs, and command-line based interfaces, a @@ -1656,9 +1675,9 @@ The Buildroot Eclipse integration installation process and usage is described in detail at https://github.com/mbats/ eclipse-buildroot-bundle/wiki. -8.13. Advanced usage +8.14. Advanced usage -8.13.1. Using the generated toolchain outside Buildroot +8.14.1. Using the generated toolchain outside Buildroot You may want to compile, for your target, your own programs or other software that are not packaged in Buildroot. In order to do this you @@ -1703,7 +1722,7 @@ provides some useful commands. Note however that once this script is sourced, the environment is setup only for cross-compilation, and no longer for native compilation. -8.13.2. Using gdb in Buildroot +8.14.2. Using gdb in Buildroot Buildroot allows to do cross-debugging, where the debugger runs on the build machine and communicates with gdbserver on the target to @@ -1748,7 +1767,7 @@ Finally, to connect to the target from the cross gdb: (gdb) target remote :2345 -8.13.3. Using ccache in Buildroot +8.14.3. Using ccache in Buildroot ccache [http://ccache.samba.org] is a compiler cache. It stores the object files resulting from each compilation process, and is able to @@ -1799,7 +1818,7 @@ directories" [https://ccache.samba.org/manual.html# _compiling_in_different_directories] for more details about this rewriting of absolute paths. -8.13.4. Location of downloaded packages +8.14.4. Location of downloaded packages The various tarballs that are downloaded by Buildroot are all stored in BR2_DL_DIR, which by default is the dl directory. If you want to @@ -1820,7 +1839,7 @@ The download location can also be set in the .config file, with the BR2_DL_DIR option. Unlike most options in the .config file, this value is overridden by the BR2_DL_DIR environment variable. -8.13.5. Package-specific make targets +8.14.5. Package-specific make targets Running make builds and installs that particular package and its dependencies. @@ -1918,7 +1937,7 @@ Additionally, there are some other useful make targets: | |the build directory | +------------------------------------------------------------+ -8.13.6. Using Buildroot during development +8.14.6. Using Buildroot during development The normal operation of Buildroot is to download a tarball, extract it, configure, compile and install the software component found @@ -3338,7 +3357,7 @@ help reduce the build time: not prevent you to switch back to an internal toolchain (that may provide a higher level of customization) once the rest of your system is working; - * Use the ccache compiler cache (see: Section 8.13.3, “Using ccache + * Use the ccache compiler cache (see: Section 8.14.3, “Using ccache in Buildroot”); * Learn about rebuilding only the few packages you actually care about (see Section 8.3, “Understanding how to rebuild packages”), @@ -3354,7 +3373,7 @@ help reduce the build time: a bit. * Buy new hardware. SSDs and lots of RAM are key to speeding up the builds. - * Experiment with top-level parallel build, see Section 8.11, + * Experiment with top-level parallel build, see Section 8.12, “Top-level parallel build”. Chapter 12. Known issues @@ -4935,7 +4954,7 @@ In the action definitions, you can use the following variables: to the current package host, staging and target directories. In both cases, it doesn’t make any difference from the package point of view: it should simply use HOST_DIR, STAGING_DIR and - TARGET_DIR. See Section 8.11, “Top-level parallel build” for more + TARGET_DIR. See Section 8.12, “Top-level parallel build” for more details about per-package directory support. Finally, you can also use hooks. See Section 18.22, “Hooks available diff --git a/buildroot/docs/website/download.html b/buildroot/docs/website/download.html index 7d2a3c1c9..07627d0f3 100644 --- a/buildroot/docs/website/download.html +++ b/buildroot/docs/website/download.html @@ -76,37 +76,37 @@
    -

    Latest release candidate: 2020.11-rc1

    +

    Latest release candidate: 2020.11-rc2

    diff --git a/buildroot/docs/website/news.html b/buildroot/docs/website/news.html index 5c4cea2d4..eab11e2f8 100644 --- a/buildroot/docs/website/news.html +++ b/buildroot/docs/website/news.html @@ -9,6 +9,27 @@

    News

      +
    • +
      +
      +
      +

      2020.11-rc2 released

      +

      14 November 2020

      +
      +
      +

      2020.11-rc2 has been released with more cleanups and build fixes. See the + CHANGES + file for details.

      + +

      Head to the downloads page to pick up the + 2020.11-rc2 + release candidate, and report any problems found to the + mailing list or + bug tracker.

      +
      +
      +
    • +
    • diff --git a/buildroot/linux/Config.in b/buildroot/linux/Config.in index 6d9d0af06..434623a72 100644 --- a/buildroot/linux/Config.in +++ b/buildroot/linux/Config.in @@ -31,7 +31,7 @@ config BR2_LINUX_KERNEL_LATEST_VERSION bool "Latest version (5.9)" config BR2_LINUX_KERNEL_LATEST_CIP_VERSION - bool "Latest CIP SLTS version (4.19.132-cip30)" + bool "Latest CIP SLTS version (4.19.152-cip37)" help CIP launched in the spring of 2016 to address the needs of organizations in industries such as power generation and @@ -44,13 +44,13 @@ config BR2_LINUX_KERNEL_LATEST_CIP_VERSION implementation of software building blocks that meet these requirements. - The CIP community plans to maintain 4.4 for security and + The CIP community plans to maintain 4.19 for security and bug fixes for more than 10 years. https://www.cip-project.org config BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION - bool "Latest CIP RT SLTS version (4.19.132-cip30-rt12)" + bool "Latest CIP RT SLTS version (4.19.152-cip37-rt16)" help Same as the CIP version, but this is the PREEMPT_RT realtime variant. @@ -125,9 +125,9 @@ endif config BR2_LINUX_KERNEL_VERSION string - default "5.9" if BR2_LINUX_KERNEL_LATEST_VERSION - default "4.19.132-cip30" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION - default "4.19.132-cip30-rt12" if BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION + default "5.9.8" if BR2_LINUX_KERNEL_LATEST_VERSION + default "4.19.152-cip37" if BR2_LINUX_KERNEL_LATEST_CIP_VERSION + default "4.19.152-cip37-rt16" if BR2_LINUX_KERNEL_LATEST_CIP_RT_VERSION default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \ if BR2_LINUX_KERNEL_CUSTOM_VERSION default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL diff --git a/buildroot/linux/linux.hash b/buildroot/linux/linux.hash index 4b76398c5..4219c7f31 100644 --- a/buildroot/linux/linux.hash +++ b/buildroot/linux/linux.hash @@ -1,15 +1,15 @@ # From https://www.kernel.org/pub/linux/kernel/v5.x/sha256sums.asc -sha256 3239a4ee1250bf2048be988cc8cb46c487b2c8a0de5b1b032d38394d5c6b1a06 linux-5.9.tar.xz -sha256 ee767991808d234ad9acd17f0ba94ba7979d30c528876bee6fba337ea540f0af linux-5.8.14.tar.xz -sha256 c0b3d8085c5ba235df38b00b740e053659709e8a5ca21957a239f6bc22c45007 linux-5.4.70.tar.xz +sha256 7656733b316562662026ac82a7c0be41440e16bbf1bdc5447b119e34ff3b86a6 linux-5.9.8.tar.xz +sha256 4ab4a3f694b7b4cfbe78871eab34c8039ad33692144c45c669827a594da85534 linux-5.8.18.tar.xz +sha256 a3e03e6970240dddc8174bf9f49b56d774c40125eabe1582d2ebe85b01addbf7 linux-5.4.77.tar.xz # From https://www.kernel.org/pub/linux/kernel/v4.x/sha256sums.asc -sha256 067814035c17e77dee84076dcc06a95eb675344cd926b7b79a16b80fee593364 linux-4.4.238.tar.xz -sha256 b1eaf60b771ec4df0546d2b7539e164355008ea2f680a0642ae430e9cb134a3f linux-4.9.238.tar.xz -sha256 5d404a0224a34b5379f1871cc46825487d557c2660459d2b5c3cd4871d699a38 linux-4.14.200.tar.xz -sha256 f2f709ef086a4d8cb3c15a857daa44dfecf1b88d7d7c53c980fb180f6dccbace linux-4.19.150.tar.xz +sha256 95de46b6bd72f66169629eb0e343b005778539864598eae76c3ca999645d58b5 linux-4.4.243.tar.xz +sha256 d3aa189ca7fcc6e52d6c0333a0d7acd8789e9a492b32dbf9476e926ffaa73984 linux-4.9.243.tar.xz +sha256 1c233efaa5063983293a02d4692acc9ced9c03e18857364855d4f612347086ac linux-4.14.206.tar.xz +sha256 76dca365255c1a13778c3b24f0eae14f4e66bc12fe79f5e6592b116fc57ef755 linux-4.19.157.tar.xz # Locally computed -sha256 c20f9014b89ea3e27f55f1d407aa5a4724ed38ac520c197291e9d644f164c43a linux-cip-4.19.132-cip30.tar.gz -sha256 81dd791d9ad6c3fddaeaffc6d7d8df0e13831283a5fe494c437ac7820d79ca39 linux-cip-4.19.132-cip30-rt12.tar.gz +sha256 d2a06f52143deb929b8d513cf9afc9bd065951389a80fa70bc4d63025b5b3fb9 linux-cip-4.19.152-cip37.tar.gz +sha256 bc1dacd3d0f526de3e8754a444e8e02a54521527af639ddb907cb35cda775a8c linux-cip-4.19.152-cip37-rt16.tar.gz # Licenses hashes sha256 fb5a425bd3b3cd6071a3a9aff9909a859e7c1158d54d32e07658398cd67eb6a0 COPYING diff --git a/buildroot/package/apparmor/apparmor.mk b/buildroot/package/apparmor/apparmor.mk index 4d08b0433..7ea0fabd9 100644 --- a/buildroot/package/apparmor/apparmor.mk +++ b/buildroot/package/apparmor/apparmor.mk @@ -88,7 +88,7 @@ endef define APPARMOR_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 0755 $(@D)/parser/apparmor.systemd \ $(TARGET_DIR)/lib/apparmor/apparmor.systemd - $(INSTALL) -D -m 0755 $(@D)/parser/apparmor.service \ + $(INSTALL) -D -m 0644 $(@D)/parser/apparmor.service \ $(TARGET_DIR)/usr/lib/systemd/system/apparmor.service endef diff --git a/buildroot/package/argp-standalone/argp-standalone.hash b/buildroot/package/argp-standalone/argp-standalone.hash index 579821440..c780f9e53 100644 --- a/buildroot/package/argp-standalone/argp-standalone.hash +++ b/buildroot/package/argp-standalone/argp-standalone.hash @@ -1,2 +1,5 @@ # Locally calculated after checking pgp signature -sha256 dec79694da1319acd2238ce95df57f3680fea2482096e483323fddf3d818d8be argp-standalone-1.3.tar.gz +sha256 dec79694da1319acd2238ce95df57f3680fea2482096e483323fddf3d818d8be argp-standalone-1.3.tar.gz + +# License file +sha256 bbb8919aa520069b0234faf5e83a94052d278419ffe97ca8e843ecc9b212d1ab argp.h diff --git a/buildroot/package/argp-standalone/argp-standalone.mk b/buildroot/package/argp-standalone/argp-standalone.mk index 977b9547b..651bc400f 100644 --- a/buildroot/package/argp-standalone/argp-standalone.mk +++ b/buildroot/package/argp-standalone/argp-standalone.mk @@ -8,6 +8,7 @@ ARGP_STANDALONE_VERSION = 1.3 ARGP_STANDALONE_SITE = http://www.lysator.liu.se/~nisse/archive ARGP_STANDALONE_INSTALL_STAGING = YES ARGP_STANDALONE_LICENSE = LGPL-2.0+ +ARGP_STANDALONE_LICENSE_FILES = argp.h ARGP_STANDALONE_CONF_ENV = \ CFLAGS="$(TARGET_CFLAGS) -fPIC -fgnu89-inline" diff --git a/buildroot/package/asterisk/asterisk.hash b/buildroot/package/asterisk/asterisk.hash index 1bb5da7d0..bd8363627 100644 --- a/buildroot/package/asterisk/asterisk.hash +++ b/buildroot/package/asterisk/asterisk.hash @@ -1,5 +1,5 @@ # Locally computed -sha256 5ebefa6387f89695361b8c105e2ad7ee6381f87a99012aeb85b886ddf6d518ac asterisk-16.13.0.tar.gz +sha256 226eaef400d2d335ce29d7b3c8aca8dfdfc5e854c215e0c47615c095ced12171 asterisk-16.14.1.tar.gz # sha1 from: http://downloads.asterisk.org/pub/telephony/sounds/releases # sha256 locally computed diff --git a/buildroot/package/asterisk/asterisk.mk b/buildroot/package/asterisk/asterisk.mk index b9e2b80dd..fb3eb6ec8 100644 --- a/buildroot/package/asterisk/asterisk.mk +++ b/buildroot/package/asterisk/asterisk.mk @@ -4,7 +4,7 @@ # ################################################################################ -ASTERISK_VERSION = 16.13.0 +ASTERISK_VERSION = 16.14.1 # Use the github mirror: it's an official mirror maintained by Digium, and # provides tarballs, which the main Asterisk git tree (behind Gerrit) does not. ASTERISK_SITE = $(call github,asterisk,asterisk,$(ASTERISK_VERSION)) diff --git a/buildroot/package/bandwidthd/bandwidthd.hash b/buildroot/package/bandwidthd/bandwidthd.hash index c73584de2..5b1bbce97 100644 --- a/buildroot/package/bandwidthd/bandwidthd.hash +++ b/buildroot/package/bandwidthd/bandwidthd.hash @@ -1,2 +1,3 @@ # Locally calculated -sha256 0270d0def6cc53c8d47d59a9dd093d51fbca1620adeef85c15e35a32010e26ab bandwidthd-2.0.1-auto-r11.tar.gz +sha256 0270d0def6cc53c8d47d59a9dd093d51fbca1620adeef85c15e35a32010e26ab bandwidthd-2.0.1-auto-r11.tar.gz +sha256 58573c40770e0c0b91f3eef8192952832321a344f66a4fb2d966095cbbfc86c2 README diff --git a/buildroot/package/bandwidthd/bandwidthd.mk b/buildroot/package/bandwidthd/bandwidthd.mk index 990d8c5d8..88222a910 100644 --- a/buildroot/package/bandwidthd/bandwidthd.mk +++ b/buildroot/package/bandwidthd/bandwidthd.mk @@ -10,6 +10,7 @@ BANDWIDTHD_SITE = $(call github,nroach44,bandwidthd,v$(BANDWIDTHD_VERSION)) # Specified as "any version of the GPL that is current as of your # download" by upstream. BANDWIDTHD_LICENSE = GPL +BANDWIDTHD_LICENSE_FILES = README BANDWIDTHD_DEPENDENCIES = gd libpng libpcap host-pkgconf diff --git a/buildroot/package/bitcoin/0001-src-randomenv.cpp-fix-build-on-uclibc.patch b/buildroot/package/bitcoin/0001-src-randomenv.cpp-fix-build-on-uclibc.patch new file mode 100644 index 000000000..8038a311d --- /dev/null +++ b/buildroot/package/bitcoin/0001-src-randomenv.cpp-fix-build-on-uclibc.patch @@ -0,0 +1,48 @@ +From 330cb33985d0ce97c20f4a0f0bbda0fbffe098d4 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Mon, 9 Nov 2020 21:18:40 +0100 +Subject: [PATCH] src/randomenv.cpp: fix build on uclibc + +Check for HAVE_STRONG_GETAUXVAL or HAVE_WEAK_GETAUXVAL before using +getauxval to avoid a build failure on uclibc + +Signed-off-by: Fabrice Fontaine +[Upstream status: https://github.com/bitcoin/bitcoin/pull/20358] +--- + src/randomenv.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/randomenv.cpp b/src/randomenv.cpp +index 07122b7f6..5e07c3db4 100644 +--- a/src/randomenv.cpp ++++ b/src/randomenv.cpp +@@ -53,7 +53,7 @@ + #include + #endif + #endif +-#ifdef __linux__ ++#if defined(HAVE_STRONG_GETAUXVAL) || defined(HAVE_WEAK_GETAUXVAL) + #include + #endif + +@@ -326,7 +326,7 @@ void RandAddStaticEnv(CSHA512& hasher) + // Bitcoin client version + hasher << CLIENT_VERSION; + +-#ifdef __linux__ ++#if defined(HAVE_STRONG_GETAUXVAL) || defined(HAVE_WEAK_GETAUXVAL) + // Information available through getauxval() + # ifdef AT_HWCAP + hasher << getauxval(AT_HWCAP); +@@ -346,7 +346,7 @@ void RandAddStaticEnv(CSHA512& hasher) + const char* exec_str = (const char*)getauxval(AT_EXECFN); + if (exec_str) hasher.Write((const unsigned char*)exec_str, strlen(exec_str) + 1); + # endif +-#endif // __linux__ ++#endif // HAVE_STRONG_GETAUXVAL || HAVE_WEAK_GETAUXVAL + + #ifdef HAVE_GETCPUID + AddAllCPUID(hasher); +-- +2.28.0 + diff --git a/buildroot/package/bitcoin/Config.in b/buildroot/package/bitcoin/Config.in index 1f08f9f26..65af15293 100644 --- a/buildroot/package/bitcoin/Config.in +++ b/buildroot/package/bitcoin/Config.in @@ -18,9 +18,6 @@ config BR2_PACKAGE_BITCOIN select BR2_PACKAGE_BOOST_SYSTEM select BR2_PACKAGE_BOOST_FILESYSTEM select BR2_PACKAGE_BOOST_THREAD - select BR2_PACKAGE_BOOST_CHRONO - select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS - select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBEVENT help Bitcoin Core is an open source project which maintains and diff --git a/buildroot/package/bitcoin/bitcoin.hash b/buildroot/package/bitcoin/bitcoin.hash index fe7c1562a..d39eb38e9 100644 --- a/buildroot/package/bitcoin/bitcoin.hash +++ b/buildroot/package/bitcoin/bitcoin.hash @@ -1,5 +1,5 @@ -# From https://bitcoincore.org/bin/bitcoin-core-0.19.0.1/SHA256SUMS.asc -sha256 7ac9f972249a0a16ed01352ca2a199a5448fe87a4ea74923404a40b4086de284 bitcoin-0.19.0.1.tar.gz +# From https://bitcoincore.org/bin/bitcoin-core-0.20.1/SHA256SUMS.asc +sha256 4bbd62fd6acfa5e9864ebf37a24a04bc2dcfe3e3222f056056288d854c53b978 bitcoin-0.20.1.tar.gz # Hash for license file -sha256 9a0f75d688e9cf5c69d3efdaa2a83af496700d252b212ec6a72f7784b47fed0c COPYING +sha256 96fe807030b21f88305adc32af62f9aa19915f2783509fd6f52aea02cf83f644 COPYING diff --git a/buildroot/package/bitcoin/bitcoin.mk b/buildroot/package/bitcoin/bitcoin.mk index 040c55b8a..9d2094c02 100644 --- a/buildroot/package/bitcoin/bitcoin.mk +++ b/buildroot/package/bitcoin/bitcoin.mk @@ -4,12 +4,13 @@ # ################################################################################ -BITCOIN_VERSION = 0.19.0.1 +BITCOIN_VERSION = 0.20.1 BITCOIN_SITE = https://bitcoincore.org/bin/bitcoin-core-$(BITCOIN_VERSION) BITCOIN_AUTORECONF = YES BITCOIN_LICENSE = MIT BITCOIN_LICENSE_FILES = COPYING -BITCOIN_DEPENDENCIES = host-pkgconf boost openssl libevent +BITCOIN_DEPENDENCIES = host-pkgconf boost libevent +BITCOIN_MAKE_ENV = BITCOIN_GENBUILD_NO_GIT=1 BITCOIN_CONF_OPTS = \ --disable-bench \ --disable-wallet \ diff --git a/buildroot/package/busybox/0003-hwclock-Fix-settimeofday-for-glibc-v2.31.patch b/buildroot/package/busybox/0003-hwclock-Fix-settimeofday-for-glibc-v2.31.patch new file mode 100644 index 000000000..cab346acf --- /dev/null +++ b/buildroot/package/busybox/0003-hwclock-Fix-settimeofday-for-glibc-v2.31.patch @@ -0,0 +1,58 @@ +From 1a5d6fcbb5e606ab4acdf22afa26361a25f1d43b Mon Sep 17 00:00:00 2001 +From: Eddie James +Date: Mon, 10 Aug 2020 09:59:02 -0500 +Subject: [PATCH] hwclock: Fix settimeofday for glibc v2.31+ + +The glibc implementation changed for settimeofday, resulting in "invalid +argument" error when attempting to set both timezone and time with a single +call. Fix this by calling settimeofday twice + +Signed-off-by: Eddie James +Signed-off-by: Denys Vlasenko +--- + util-linux/hwclock.c | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c +index dc97d8fb4..2479e7416 100644 +--- a/util-linux/hwclock.c ++++ b/util-linux/hwclock.c +@@ -122,16 +122,20 @@ static void to_sys_clock(const char **pp_rtcname, int utc) + struct timeval tv; + struct timezone tz; + +- tz.tz_minuteswest = timezone/60; ++ tz.tz_minuteswest = timezone / 60; + /* ^^^ used to also subtract 60*daylight, but it's wrong: + * daylight!=0 means "this timezone has some DST + * during the year", not "DST is in effect now". + */ + tz.tz_dsttime = 0; + ++ /* glibc v2.31+ returns an error if both args are non-NULL */ ++ if (settimeofday(NULL, &tz)) ++ bb_simple_perror_msg_and_die("settimeofday"); ++ + tv.tv_sec = read_rtc(pp_rtcname, NULL, utc); + tv.tv_usec = 0; +- if (settimeofday(&tv, &tz)) ++ if (settimeofday(&tv, NULL)) + bb_simple_perror_msg_and_die("settimeofday"); + } + +@@ -283,7 +287,11 @@ static void set_system_clock_timezone(int utc) + gettimeofday(&tv, NULL); + if (!utc) + tv.tv_sec += tz.tz_minuteswest * 60; +- if (settimeofday(&tv, &tz)) ++ ++ /* glibc v2.31+ returns an error if both args are non-NULL */ ++ if (settimeofday(NULL, &tz)) ++ bb_simple_perror_msg_and_die("settimeofday"); ++ if (settimeofday(&tv, NULL)) + bb_simple_perror_msg_and_die("settimeofday"); + } + +-- +2.17.1 + diff --git a/buildroot/package/cryptsetup/cryptsetup.mk b/buildroot/package/cryptsetup/cryptsetup.mk index a2abf776c..a59a0c757 100644 --- a/buildroot/package/cryptsetup/cryptsetup.mk +++ b/buildroot/package/cryptsetup/cryptsetup.mk @@ -8,8 +8,10 @@ CRYPTSETUP_VERSION_MAJOR = 2.3 CRYPTSETUP_VERSION = $(CRYPTSETUP_VERSION_MAJOR).4 CRYPTSETUP_SOURCE = cryptsetup-$(CRYPTSETUP_VERSION).tar.xz CRYPTSETUP_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/cryptsetup/v$(CRYPTSETUP_VERSION_MAJOR) -CRYPTSETUP_DEPENDENCIES = lvm2 popt util-linux host-pkgconf json-c libargon2 \ +CRYPTSETUP_DEPENDENCIES = \ + lvm2 popt host-pkgconf json-c libargon2 \ $(if $(BR2_PACKAGE_LIBICONV),libiconv) \ + $(if $(BR2_PACKAGE_UTIL_LINUX_LIBS),util-linux-libs,util-linux) \ $(TARGET_NLS_DEPENDENCIES) CRYPTSETUP_LICENSE = GPL-2.0+ (programs), LGPL-2.1+ (library) CRYPTSETUP_LICENSE_FILES = COPYING COPYING.LGPL diff --git a/buildroot/package/cups-filters/S82cups-browsed b/buildroot/package/cups-filters/S82cups-browsed index 08909c7f9..f17bbe746 100644 --- a/buildroot/package/cups-filters/S82cups-browsed +++ b/buildroot/package/cups-filters/S82cups-browsed @@ -6,7 +6,7 @@ PIDFILE="/var/run/$DAEMON.pid" start() { printf 'Starting %s: ' "$DAEMON" # shellcheck disable=SC2086 # we need the word splitting - start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/sbin/$DAEMON" \ + start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ -- -c /etc/cups/cups-browsed.conf status=$? if [ "$status" -eq 0 ]; then diff --git a/buildroot/package/darkhttpd/darkhttpd.hash b/buildroot/package/darkhttpd/darkhttpd.hash index 39152e3cb..b6618db89 100644 --- a/buildroot/package/darkhttpd/darkhttpd.hash +++ b/buildroot/package/darkhttpd/darkhttpd.hash @@ -1,2 +1,3 @@ # Locally generated -sha256 a50417b622b32b5f421b3132cb94ebeff04f02c5fb87fba2e31147d23de50505 darkhttpd-1.12.tar.bz2 +sha256 a50417b622b32b5f421b3132cb94ebeff04f02c5fb87fba2e31147d23de50505 darkhttpd-1.12.tar.bz2 +sha256 6e1a2e45d8dd3c8835222e3c82e5cccde8e60f02d55555910e18715ec5dc6d04 darkhttpd.c diff --git a/buildroot/package/darkhttpd/darkhttpd.mk b/buildroot/package/darkhttpd/darkhttpd.mk index f4831a942..4b65cffe6 100644 --- a/buildroot/package/darkhttpd/darkhttpd.mk +++ b/buildroot/package/darkhttpd/darkhttpd.mk @@ -8,6 +8,7 @@ DARKHTTPD_VERSION = 1.12 DARKHTTPD_SITE = https://unix4lyfe.org/darkhttpd DARKHTTPD_SOURCE = darkhttpd-$(DARKHTTPD_VERSION).tar.bz2 DARKHTTPD_LICENSE = MIT +DARKHTTPD_LICENSE_FILES = darkhttpd.c define DARKHTTPD_BUILD_CMDS $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) diff --git a/buildroot/package/davfs2/davfs2.mk b/buildroot/package/davfs2/davfs2.mk index a82e9d2f7..1099f1b13 100644 --- a/buildroot/package/davfs2/davfs2.mk +++ b/buildroot/package/davfs2/davfs2.mk @@ -18,4 +18,8 @@ DAVFS2_CONF_ENV += \ ac_cv_path_NEON_CONFIG=$(STAGING_DIR)/usr/bin/neon-config \ LIBS=$(TARGET_NLS_LIBS) +define DAVFS2_USERS + davfs2 -1 davfs2 -1 * - - - davfs user +endef + $(eval $(autotools-package)) diff --git a/buildroot/package/domoticz/0003-Build-failure-with-python-3-9.patch b/buildroot/package/domoticz/0003-Build-failure-with-python-3-9.patch new file mode 100644 index 000000000..3b07436e8 --- /dev/null +++ b/buildroot/package/domoticz/0003-Build-failure-with-python-3-9.patch @@ -0,0 +1,36 @@ +From b3525e2a970ae3e783665040b1e0db5fc3391327 Mon Sep 17 00:00:00 2001 +From: Jose Zapater +Date: Mon, 2 Nov 2020 09:46:17 +0100 +Subject: [PATCH] Build failure with python 3.9 + +Signed-off-by: Jose Zapater + +[Retrieved from: +https://github.com/domoticz/domoticz/commit/b3525e2a970ae3e783665040b1e0db5fc3391327] +Signed-off-by: Fabrice Fontaine +--- + hardware/plugins/DelayedLink.h | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/hardware/plugins/DelayedLink.h b/hardware/plugins/DelayedLink.h +index c90a7d8e69..cb71478685 100644 +--- a/hardware/plugins/DelayedLink.h ++++ b/hardware/plugins/DelayedLink.h +@@ -14,6 +14,17 @@ + #include + #include "../../main/Helper.h" + ++#ifndef _Py_DEC_REFTOTAL ++ /* _Py_DEC_REFTOTAL macro has been removed from Python 3.9 by: ++ https://github.com/python/cpython/commit/49932fec62c616ec88da52642339d83ae719e924 */ ++# ifdef Py_REF_DEBUG ++# define _Py_DEC_REFTOTAL _Py_RefTotal-- ++# else ++# define _Py_DEC_REFTOTAL ++# define _Py_Dealloc ++# endif ++#endif ++ + #if PY_VERSION_HEX >= 0x030800f0 + static inline void + py3__Py_DECREF(const char *filename, int lineno, PyObject *op) diff --git a/buildroot/package/domoticz/0004-Load-python-3-9-shared-libs.patch b/buildroot/package/domoticz/0004-Load-python-3-9-shared-libs.patch new file mode 100644 index 000000000..c157fd354 --- /dev/null +++ b/buildroot/package/domoticz/0004-Load-python-3-9-shared-libs.patch @@ -0,0 +1,41 @@ +From 4e1d21967d27d286cbc837b98a1a9f031f7dde58 Mon Sep 17 00:00:00 2001 +From: Jose Zapater +Date: Fri, 6 Nov 2020 07:40:37 +0100 +Subject: [PATCH] Load python 3.9 shared libs + +Signed-off-by: Jose Zapater + +[Retrieved from: +https://github.com/domoticz/domoticz/commit/4e1d21967d27d286cbc837b98a1a9f031f7dde58] +Signed-off-by: Fabrice Fontaine +--- + hardware/plugins/DelayedLink.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/hardware/plugins/DelayedLink.h b/hardware/plugins/DelayedLink.h +index cb71478685..409c9dce1b 100644 +--- a/hardware/plugins/DelayedLink.h ++++ b/hardware/plugins/DelayedLink.h +@@ -193,12 +193,14 @@ namespace Plugins { + if (!shared_lib_) { + #ifdef WIN32 + # ifdef _DEBUG ++ if (!shared_lib_) shared_lib_ = LoadLibrary("python39_d.dll"); + if (!shared_lib_) shared_lib_ = LoadLibrary("python38_d.dll"); + if (!shared_lib_) shared_lib_ = LoadLibrary("python37_d.dll"); + if (!shared_lib_) shared_lib_ = LoadLibrary("python36_d.dll"); + if (!shared_lib_) shared_lib_ = LoadLibrary("python35_d.dll"); + if (!shared_lib_) shared_lib_ = LoadLibrary("python34_d.dll"); + # else ++ if (!shared_lib_) shared_lib_ = LoadLibrary("python39.dll"); + if (!shared_lib_) shared_lib_ = LoadLibrary("python38.dll"); + if (!shared_lib_) shared_lib_ = LoadLibrary("python37.dll"); + if (!shared_lib_) shared_lib_ = LoadLibrary("python36.dll"); +@@ -206,6 +208,7 @@ namespace Plugins { + if (!shared_lib_) shared_lib_ = LoadLibrary("python34.dll"); + # endif + #else ++ if (!shared_lib_) FindLibrary("python3.9", true); + if (!shared_lib_) FindLibrary("python3.8", true); + if (!shared_lib_) FindLibrary("python3.7", true); + if (!shared_lib_) FindLibrary("python3.6", true); diff --git a/buildroot/package/elf2flt/0003-elf2flt-handle-binutils-2.34.patch b/buildroot/package/elf2flt/0003-elf2flt-handle-binutils-2.34.patch new file mode 100644 index 000000000..16d563338 --- /dev/null +++ b/buildroot/package/elf2flt/0003-elf2flt-handle-binutils-2.34.patch @@ -0,0 +1,377 @@ +From 26165906f85d82f0a4456f34b5c60fcaaef48535 Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Wed, 5 Feb 2020 10:31:32 +0100 +Subject: [PATCH] elf2flt: handle binutils >= 2.34 + +The latest Binutils release (2.34) is not compatible with elf2flt due +to a change in bfd_section_* macros [1]. The issue has been reported +to the Binutils mailing list but Alan Modra recommend to bundle +libbfd library sources into each projects using it [2]. That's +because the API is not stable over the time without any backward +compatibility guaranties. + +On the other hand, the elf2flt tools needs to support modified +version of binutils for specific arch/target [3]. + +Add two tests in the configure script to detect this API change +in order to support binutils < 2.34 and binutils >= 2.34. + +Upstream status: [4] + +[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=fd3619828e94a24a92cddec42cbc0ab33352eeb4 +[2] https://sourceware.org/ml/binutils/2020-02/msg00044.html +[3] https://github.com/uclinux-dev/elf2flt/issues/14 +[4] https://github.com/uclinux-dev/elf2flt/pull/15 + +Signed-off-by: Romain Naour +--- + configure.ac | 16 +++++++++++ + elf2flt.c | 81 +++++++++++++++++++++++++++++----------------------- + 2 files changed, 61 insertions(+), 36 deletions(-) + +diff --git a/configure.ac b/configure.ac +index e82eb1d..cf7dea8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -229,6 +229,22 @@ AC_CHECK_FUNCS([ \ + strsignal \ + ]) + ++dnl Various bfd section macros and functions like bfd_section_size() have been ++dnl modified starting with binutils >= 2.34. ++dnl Check if the prototypes take a bfd argument. ++if test "$binutils_build_dir" != "NONE"; then ++ CFLAGS="-I$binutils_include_dir -I$bfd_include_dir $CFLAGS" ++fi ++ ++AC_TRY_COMPILE([#include ], ++ [const asection *sec; bfd_section_size(sec);], ++ bfd_section_api_takes_bfd=no, ++ bfd_section_api_takes_bfd=yes) ++if test "$bfd_section_api_takes_bfd" = "yes" ; then ++ AC_DEFINE(HAVE_BFD_SECTION_API_TAKES_BFD, 1, ++ [define to 1 for binutils < 2.34]) ++fi ++ + if test "$GCC" = yes ; then + CFLAGS="-Wall $CFLAGS" + if test "$werror" = 1 ; then +diff --git a/elf2flt.c b/elf2flt.c +index b93aecd..3bcf4fe 100644 +--- a/elf2flt.c ++++ b/elf2flt.c +@@ -149,6 +149,17 @@ const char *elf2flt_progname; + #define O_BINARY 0 + #endif + ++/* ++ * The bfd parameter isn't actually used by any of the bfd_section funcs and ++ * have been removed since binutils 2.34. ++ */ ++#ifdef HAVE_BFD_SECTION_API_TAKES_BFD ++#define elf2flt_bfd_section_size(s) bfd_section_size(NULL, s) ++#define elf2flt_bfd_section_vma(s) bfd_section_vma(NULL, s) ++#else ++#define elf2flt_bfd_section_size(s) bfd_section_size(s) ++#define elf2flt_bfd_section_vma(s) bfd_section_vma(s) ++#endif + + /* Extra output when running. */ + static int verbose = 0; +@@ -323,10 +334,8 @@ compare_relocs (const void *pa, const void *pb) + else if (!rb->sym_ptr_ptr || !*rb->sym_ptr_ptr) + return 1; + +- a_vma = bfd_section_vma(compare_relocs_bfd, +- (*(ra->sym_ptr_ptr))->section); +- b_vma = bfd_section_vma(compare_relocs_bfd, +- (*(rb->sym_ptr_ptr))->section); ++ a_vma = elf2flt_bfd_section_vma((*(ra->sym_ptr_ptr))->section); ++ b_vma = elf2flt_bfd_section_vma((*(rb->sym_ptr_ptr))->section); + va = (*(ra->sym_ptr_ptr))->value + a_vma + ra->addend; + vb = (*(rb->sym_ptr_ptr))->value + b_vma + rb->addend; + return va - vb; +@@ -403,7 +412,7 @@ output_relocs ( + } + + for (a = abs_bfd->sections; (a != (asection *) NULL); a = a->next) { +- section_vma = bfd_section_vma(abs_bfd, a); ++ section_vma = elf2flt_bfd_section_vma(a); + + if (verbose) + printf("SECTION: %s [%p]: flags=0x%x vma=0x%"PRIx32"\n", +@@ -442,7 +451,7 @@ output_relocs ( + continue; + if (verbose) + printf(" RELOCS: %s [%p]: flags=0x%x vma=0x%"BFD_VMA_FMT"x\n", +- r->name, r, r->flags, bfd_section_vma(abs_bfd, r)); ++ r->name, r, r->flags, elf2flt_bfd_section_vma(r)); + if ((r->flags & SEC_RELOC) == 0) + continue; + relsize = bfd_get_reloc_upper_bound(rel_bfd, r); +@@ -694,7 +703,7 @@ output_relocs ( + case R_BFIN_RIMM16: + case R_BFIN_LUIMM16: + case R_BFIN_HUIMM16: +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + + if (weak_und_symbol(sym_section->name, (*(q->sym_ptr_ptr)))) +@@ -727,7 +736,7 @@ output_relocs ( + break; + + case R_BFIN_BYTE4_DATA: +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + + if (weak_und_symbol (sym_section->name, (*(q->sym_ptr_ptr)))) +@@ -885,7 +894,7 @@ output_relocs ( + #if defined(TARGET_m68k) + case R_68K_32: + relocation_needed = 1; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_68K_PC16: +@@ -910,7 +919,7 @@ output_relocs ( + q->address, sym_addr, + (*p)->howto->rightshift, + *(uint32_t *)r_mem); +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_ARM_GOT32: +@@ -938,7 +947,7 @@ output_relocs ( + #ifdef TARGET_v850 + case R_V850_ABS32: + relocation_needed = 1; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_V850_ZDA_16_16_OFFSET: +@@ -960,7 +969,7 @@ output_relocs ( + sym_addr = (*(q->sym_ptr_ptr))->value; + q->address -= 1; + r_mem -= 1; /* tracks q->address */ +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + sym_addr |= (*(unsigned char *)r_mem<<24); + break; +@@ -973,7 +982,7 @@ output_relocs ( + /* Absolute symbol done not relocation */ + relocation_needed = !bfd_is_abs_section(sym_section); + sym_addr = (*(q->sym_ptr_ptr))->value; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_H8_DIR32: +@@ -986,7 +995,7 @@ output_relocs ( + } + relocation_needed = 1; + sym_addr = (*(q->sym_ptr_ptr))->value; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_H8_PCREL16: +@@ -1012,7 +1021,7 @@ output_relocs ( + #ifdef TARGET_microblaze + case R_MICROBLAZE_64: + /* work out the relocation */ +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + /* Write relocated pointer back */ + r_mem[2] = (sym_addr >> 24) & 0xff; +@@ -1026,7 +1035,7 @@ output_relocs ( + pflags = 0x80000000; + break; + case R_MICROBLAZE_32: +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + relocation_needed = 1; + break; +@@ -1058,7 +1067,7 @@ output_relocs ( + case R_NIOS2_BFD_RELOC_32: + relocation_needed = 1; + pflags = (FLAT_NIOS2_R_32 << 28); +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + /* modify target, in target order */ + *(unsigned long *)r_mem = htoniosl(sym_addr); +@@ -1068,7 +1077,7 @@ output_relocs ( + unsigned long exist_val; + relocation_needed = 1; + pflags = (FLAT_NIOS2_R_CALL26 << 28); +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + + /* modify target, in target order */ +@@ -1099,7 +1108,7 @@ output_relocs ( + ? FLAT_NIOS2_R_HIADJ_LO : FLAT_NIOS2_R_HI_LO; + pflags <<= 28; + +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + + /* modify high 16 bits, in target order */ +@@ -1132,7 +1141,7 @@ output_relocs ( + goto NIOS2_RELOC_ERR; + } + /* _gp holds a absolute value, otherwise the ld cannot generate correct code */ +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + //printf("sym=%x, %d, _gp=%x, %d\n", sym_addr+sym_vma, sym_addr+sym_vma, gp, gp); + sym_addr += sym_vma + q->addend; + sym_addr -= gp; +@@ -1213,7 +1222,7 @@ NIOS2_RELOC_ERR: + case R_SPARC_32: + case R_SPARC_UA32: + relocation_needed = 1; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_SPARC_PC22: +@@ -1232,7 +1241,7 @@ NIOS2_RELOC_ERR: + case R_SPARC_HI22: + relocation_needed = 1; + pflags = 0x80000000; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + sym_addr |= ( + htonl(*(uint32_t *)r_mem) +@@ -1242,7 +1251,7 @@ NIOS2_RELOC_ERR: + case R_SPARC_LO10: + relocation_needed = 1; + pflags = 0x40000000; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + sym_addr &= 0x000003ff; + sym_addr |= ( +@@ -1256,7 +1265,7 @@ NIOS2_RELOC_ERR: + #ifdef TARGET_sh + case R_SH_DIR32: + relocation_needed = 1; +- sym_vma = bfd_section_vma(abs_bfd, sym_section); ++ sym_vma = elf2flt_bfd_section_vma(sym_section); + sym_addr += sym_vma + q->addend; + break; + case R_SH_REL32: +@@ -1288,7 +1297,7 @@ NIOS2_RELOC_ERR: + case R_E1_CONST31: + relocation_needed = 1; + DBG_E1("Handling Reloc \n"); +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n", + sec_vma, sym_addr, q->address); + sym_addr = sec_vma + sym_addr; +@@ -1303,7 +1312,7 @@ NIOS2_RELOC_ERR: + relocation_needed = 0; + DBG_E1("Handling Reloc \n"); + DBG_E1("DONT RELOCATE AT LOADING\n"); +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n", + sec_vma, sym_addr, q->address); + sym_addr = sec_vma + sym_addr; +@@ -1330,7 +1339,7 @@ NIOS2_RELOC_ERR: + relocation_needed = 0; + DBG_E1("Handling Reloc \n"); + DBG_E1("DONT RELOCATE AT LOADING\n"); +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n", + sec_vma, sym_addr, q->address); + sym_addr = sec_vma + sym_addr; +@@ -1363,7 +1372,7 @@ NIOS2_RELOC_ERR: + DBG_E1("Handling Reloc \n"); + DIS29_RELOCATION: + relocation_needed = 1; +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%08x]\n", + sec_vma, sym_addr); + sym_addr = sec_vma + sym_addr; +@@ -1380,7 +1389,7 @@ DIS29_RELOCATION: + relocation_needed = 0; + DBG_E1("Handling Reloc \n"); + DBG_E1("DONT RELOCATE AT LOADING\n"); +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n", + sec_vma, sym_addr); + sym_addr = sec_vma + sym_addr; +@@ -1406,7 +1415,7 @@ DIS29_RELOCATION: + case R_E1_IMM32: + relocation_needed = 1; + DBG_E1("Handling Reloc \n"); +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n", + sec_vma, sym_addr); + sym_addr = sec_vma + sym_addr; +@@ -1422,7 +1431,7 @@ DIS29_RELOCATION: + case R_E1_WORD: + relocation_needed = 1; + DBG_E1("Handling Reloc \n"); +- sec_vma = bfd_section_vma(abs_bfd, sym_section); ++ sec_vma = elf2flt_bfd_section_vma(sym_section); + DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n", + sec_vma, sym_addr); + sym_addr = sec_vma + sym_addr; +@@ -1449,7 +1458,7 @@ DIS29_RELOCATION: + } + + sprintf(&addstr[0], "+0x%lx", sym_addr - (*(q->sym_ptr_ptr))->value - +- bfd_section_vma(abs_bfd, sym_section)); ++ elf2flt_bfd_section_vma(sym_section)); + + + /* +@@ -1887,8 +1896,8 @@ int main(int argc, char *argv[]) + } else + continue; + +- sec_size = bfd_section_size(abs_bfd, s); +- sec_vma = bfd_section_vma(abs_bfd, s); ++ sec_size = elf2flt_bfd_section_size(s); ++ sec_vma = elf2flt_bfd_section_vma(s); + + if (sec_vma < *vma) { + if (*len > 0) +@@ -1913,7 +1922,7 @@ int main(int argc, char *argv[]) + if (s->flags & SEC_CODE) + if (!bfd_get_section_contents(abs_bfd, s, + text + (s->vma - text_vma), 0, +- bfd_section_size(abs_bfd, s))) ++ elf2flt_bfd_section_size(s))) + { + fatal("read error section %s", s->name); + } +@@ -1939,7 +1948,7 @@ int main(int argc, char *argv[]) + if (s->flags & SEC_DATA) + if (!bfd_get_section_contents(abs_bfd, s, + data + (s->vma - data_vma), 0, +- bfd_section_size(abs_bfd, s))) ++ elf2flt_bfd_section_size(s))) + { + fatal("read error section %s", s->name); + } +-- +2.25.4 + diff --git a/buildroot/package/elf2flt/elf2flt.mk b/buildroot/package/elf2flt/elf2flt.mk index e7edd8b9d..3239af1b9 100644 --- a/buildroot/package/elf2flt/elf2flt.mk +++ b/buildroot/package/elf2flt/elf2flt.mk @@ -11,6 +11,9 @@ ELF2FLT_LICENSE_FILES = LICENSE.TXT HOST_ELF2FLT_DEPENDENCIES = host-binutils host-zlib +# 0003-elf2flt-handle-binutils-2.34.patch +HOST_ELF2FLT_AUTORECONF = YES + # It is not exactly a host variant, but more a cross variant, which is # why we pass a special --target option. HOST_ELF2FLT_CONF_OPTS = \ diff --git a/buildroot/package/fbset/fbset.hash b/buildroot/package/fbset/fbset.hash index ca8cc6d1f..5d9785d90 100644 --- a/buildroot/package/fbset/fbset.hash +++ b/buildroot/package/fbset/fbset.hash @@ -1,2 +1,3 @@ # Locally calculated -sha256 40ff4ab0247b75138a0887ed40f81c1a6184f340b77126c16d074b1075b41c20 fbset-2.1.tar.gz +sha256 40ff4ab0247b75138a0887ed40f81c1a6184f340b77126c16d074b1075b41c20 fbset-2.1.tar.gz +sha256 c3285709a0840899a789faefae1704e87f96f757e905a38a1931a9d4fde95ddd fbset.c diff --git a/buildroot/package/fbset/fbset.mk b/buildroot/package/fbset/fbset.mk index 787b4e1dc..8d2a477f8 100644 --- a/buildroot/package/fbset/fbset.mk +++ b/buildroot/package/fbset/fbset.mk @@ -8,6 +8,7 @@ FBSET_VERSION = 2.1 FBSET_SITE = http://users.telenet.be/geertu/Linux/fbdev FBSET_DEPENDENCIES = host-bison host-flex FBSET_LICENSE = GPL-2.0 +FBSET_LICENSE_FILES = fbset.c define FBSET_BUILD_CMDS $(MAKE1) $(TARGET_CONFIGURE_OPTS) -C $(@D) diff --git a/buildroot/package/fbtft/fbtft.hash b/buildroot/package/fbtft/fbtft.hash index 894d9794a..5d08d0ef8 100644 --- a/buildroot/package/fbtft/fbtft.hash +++ b/buildroot/package/fbtft/fbtft.hash @@ -1,2 +1,3 @@ # locally computed sha256 0e81de89fdd7ab810716fc0549e767527f342e829309dee5c2cca1e9d1728770 fbtft-274035404701245e7491c0c6471c5b72ade4d491.tar.gz +sha256 a9ca80d65a5ef10fe614a6c1e8c8d4d3b96637e8855a96c7cf0fa438526097a7 fbtft-core.c diff --git a/buildroot/package/fbtft/fbtft.mk b/buildroot/package/fbtft/fbtft.mk index b935e741d..cc11d867f 100644 --- a/buildroot/package/fbtft/fbtft.mk +++ b/buildroot/package/fbtft/fbtft.mk @@ -7,5 +7,6 @@ FBTFT_VERSION = 274035404701245e7491c0c6471c5b72ade4d491 FBTFT_SITE = $(call github,notro,fbtft,$(FBTFT_VERSION)) FBTFT_LICENSE = GPL-2.0 +FBTFT_LICENSE_FILES = fbtft-core.c $(eval $(generic-package)) diff --git a/buildroot/package/freetype/freetype.hash b/buildroot/package/freetype/freetype.hash index 7fc00f1c9..36571b51a 100644 --- a/buildroot/package/freetype/freetype.hash +++ b/buildroot/package/freetype/freetype.hash @@ -1,9 +1,8 @@ -# From https://sourceforge.net/projects/freetype/files/freetype2/2.10.2/ -md5 7c0d5a39f232d7eb9f9d7da76bf08074 freetype-2.10.2.tar.xz -sha1 b074d5c34dc0e3cc150be6e7aa6b07c9ec4ed875 freetype-2.10.2.tar.xz +# From https://sourceforge.net/projects/freetype/files/freetype2/2.10.4/ +sha1 0181862673f7216ad2b5074f95fc131209e30b27 freetype-2.10.4.tar.xz # Locally calculated -sha256 1543d61025d2e6312e0a1c563652555f17378a204a61e99928c9fcef030a2d8b freetype-2.10.2.tar.xz +sha256 86a854d8905b19698bbc8f23b860bc104246ce4854dcea8e3b0fb21284f75784 freetype-2.10.4.tar.xz sha256 fd056de4196903a676208ef58cfddafc7d583d1f28fa2e44c309cf84a59e62fb docs/LICENSE.TXT sha256 08c135755dd589039470f1fdbb400daaabaaa50d0b366d19cebff4d22986baa1 docs/FTL.TXT sha256 c4120c6752c910c299e3bd9cb3a46ff262c268303ca2069b61f92f10a5656c18 docs/GPLv2.TXT diff --git a/buildroot/package/freetype/freetype.mk b/buildroot/package/freetype/freetype.mk index f4d71bedf..e543aee0b 100644 --- a/buildroot/package/freetype/freetype.mk +++ b/buildroot/package/freetype/freetype.mk @@ -4,7 +4,7 @@ # ################################################################################ -FREETYPE_VERSION = 2.10.2 +FREETYPE_VERSION = 2.10.4 FREETYPE_SOURCE = freetype-$(FREETYPE_VERSION).tar.xz FREETYPE_SITE = http://download.savannah.gnu.org/releases/freetype FREETYPE_INSTALL_STAGING = YES diff --git a/buildroot/package/ghostscript/0001-bug-702985-drop-use-of-FT_CALLBACK_DEF.patch b/buildroot/package/ghostscript/0001-bug-702985-drop-use-of-FT_CALLBACK_DEF.patch new file mode 100644 index 000000000..044dcc72f --- /dev/null +++ b/buildroot/package/ghostscript/0001-bug-702985-drop-use-of-FT_CALLBACK_DEF.patch @@ -0,0 +1,55 @@ +From 41ef9a0bc36b9db7115fbe9623f989bfb47bbade Mon Sep 17 00:00:00 2001 +From: Chris Liddell +Date: Tue, 20 Oct 2020 09:49:45 +0100 +Subject: [PATCH] Bug 702985: drop use of FT_CALLBACK_DEF() def + +From 2.10.3, Freetype disappeared the FT_CALLBACK_DEF() macro, which is what +we used when defining our callbacks from Freetype. + +No guidance forthcoming from the Freetype developer who made those changes, +so change to explicitly declaring the callbacks file static. + +Should fix the reported build failures. + +Downloaded from upstream commit: +https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=41ef9a0bc36b + +Signed-off-by: Bernd Kuhls +--- + base/fapi_ft.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/base/fapi_ft.c b/base/fapi_ft.c +index 65fa6dcf4..21aef2f06 100644 +--- a/base/fapi_ft.c ++++ b/base/fapi_ft.c +@@ -125,7 +125,7 @@ static void + delete_inc_int_info(gs_fapi_server * a_server, + FT_IncrementalRec * a_inc_int_info); + +-FT_CALLBACK_DEF(void *) ++static void * + FF_alloc(FT_Memory memory, long size) + { + gs_memory_t *mem = (gs_memory_t *) memory->user; +@@ -133,7 +133,7 @@ FF_alloc(FT_Memory memory, long size) + return (gs_malloc(mem, size, 1, "FF_alloc")); + } + +-FT_CALLBACK_DEF(void *) ++static void * + FF_realloc(FT_Memory memory, long cur_size, long new_size, void *block) + { + gs_memory_t *mem = (gs_memory_t *) memory->user; +@@ -153,7 +153,7 @@ FT_CALLBACK_DEF(void *) + return (tmp); + } + +-FT_CALLBACK_DEF(void) ++static void + FF_free(FT_Memory memory, void *block) + { + gs_memory_t *mem = (gs_memory_t *) memory->user; +-- +2.17.1 + diff --git a/buildroot/package/glmark2/0001-wscript-use-find_program-to-find-wayland-scanner.patch b/buildroot/package/glmark2/0001-wscript-use-find_program-to-find-wayland-scanner.patch new file mode 100644 index 000000000..681f0c679 --- /dev/null +++ b/buildroot/package/glmark2/0001-wscript-use-find_program-to-find-wayland-scanner.patch @@ -0,0 +1,50 @@ +From 303d5c4fef1760ede5786bc62c7012dd7ae93722 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Sun, 8 Nov 2020 23:46:49 +0100 +Subject: [PATCH] wscript: use find_program to find wayland-scanner + +Use find_program instead of check_cfg to find wayland-scanner. This will +fix the following build failure when cross-compiling: + +[ 3/73] Compiling doc/glmark2.1.in +/bin/sh: 1: /usr/bin/wayland-scanner: not found + +Fixes: + - http://autobuild.buildroot.org/results//361dc40e558e2646cb93f405c7b1f621d400fea3 + +Signed-off-by: Fabrice Fontaine +--- + src/wscript_build | 2 +- + wscript | 3 +-- + 2 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/src/wscript_build b/src/wscript_build +index bbe7a77..ed3e8d6 100644 +--- a/src/wscript_build ++++ b/src/wscript_build +@@ -51,7 +51,7 @@ else: + + if 'WAYLAND_SCANNER_wayland_scanner' in bld.env.keys(): + def wayland_scanner_cmd(arg, src): +- return '%s %s < %s > ${TGT}' % (bld.env['WAYLAND_SCANNER_wayland_scanner'], arg, src) ++ return '%s %s < %s > ${TGT}' % (bld.env['WAYLAND_SCANNER_wayland_scanner'][0], arg, src) + + def wayland_proto_src_path(proto, ver): + wp_dir = bld.env['WAYLAND_PROTOCOLS_pkgdatadir'] +diff --git a/wscript b/wscript +index e09fa78..fe2494f 100644 +--- a/wscript ++++ b/wscript +@@ -227,8 +227,7 @@ def configure_linux(ctx): + # wayland-protocols >= 1.12 required for xdg-shell stable + ctx.check_cfg(package = 'wayland-protocols', atleast_version = '1.12', + variables = ['pkgdatadir'], uselib_store = 'WAYLAND_PROTOCOLS') +- ctx.check_cfg(package = 'wayland-scanner', variables = ['wayland_scanner'], +- uselib_store = 'WAYLAND_SCANNER') ++ ctx.find_program('wayland-scanner', var = 'WAYLAND_SCANNER_wayland_scanner') + + # Prepend CXX flags so that they can be overriden by the + # CXXFLAGS environment variable +-- +2.28.0 + diff --git a/buildroot/package/glmark2/Config.in b/buildroot/package/glmark2/Config.in index 153eb3b0a..40d0adcc8 100644 --- a/buildroot/package/glmark2/Config.in +++ b/buildroot/package/glmark2/Config.in @@ -24,6 +24,7 @@ config BR2_PACKAGE_GLMARK2_FLAVOR_WAYLAND_GLESV2 depends on BR2_PACKAGE_HAS_LIBGLES depends on BR2_PACKAGE_WAYLAND select BR2_PACKAGE_GLMARK2_FLAVOR_ANY + select BR2_PACKAGE_WAYLAND_PROTOCOLS config BR2_PACKAGE_GLMARK2_FLAVOR_WAYLAND_GL bool @@ -32,6 +33,7 @@ config BR2_PACKAGE_GLMARK2_FLAVOR_WAYLAND_GL depends on BR2_PACKAGE_HAS_LIBGL depends on BR2_PACKAGE_WAYLAND select BR2_PACKAGE_GLMARK2_FLAVOR_ANY + select BR2_PACKAGE_WAYLAND_PROTOCOLS config BR2_PACKAGE_GLMARK2_FLAVOR_X11_GLESV2 bool diff --git a/buildroot/package/glmark2/glmark2.mk b/buildroot/package/glmark2/glmark2.mk index ec62faada..9e47b426f 100644 --- a/buildroot/package/glmark2/glmark2.mk +++ b/buildroot/package/glmark2/glmark2.mk @@ -31,12 +31,12 @@ GLMARK2_FLAVORS += x11-gl endif ifeq ($(BR2_PACKAGE_GLMARK2_FLAVOR_WAYLAND_GLESV2),y) -GLMARK2_DEPENDENCIES += libgles wayland +GLMARK2_DEPENDENCIES += libgles wayland wayland-protocols GLMARK2_FLAVORS += wayland-glesv2 endif ifeq ($(BR2_PACKAGE_GLMARK2_FLAVOR_WAYLAND_GL),y) -GLMARK2_DEPENDENCIES += libgl wayland +GLMARK2_DEPENDENCIES += libgl wayland wayland-protocols GLMARK2_FLAVORS += wayland-gl endif diff --git a/buildroot/package/go/go.hash b/buildroot/package/go/go.hash index 9d651a1bf..79d6abe8d 100644 --- a/buildroot/package/go/go.hash +++ b/buildroot/package/go/go.hash @@ -1,4 +1,3 @@ # From https://golang.org/dl/ -sha256 28bf9d0bcde251011caae230a4a05d917b172ea203f2a62f2c2f9533589d4b4d go1.15.2.src.tar.gz -sha256 896a602570e54c8cdfc2c1348abd4ffd1016758d0bd086ccd9787dbfc9b64888 go1.15.3.src.tar.gz +sha256 c1076b90cf94b73ebed62a81d802cd84d43d02dea8c07abdc922c57a071c84f1 go1.15.5.src.tar.gz sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 LICENSE diff --git a/buildroot/package/go/go.mk b/buildroot/package/go/go.mk index dc3b35ff5..d2ab9b81d 100644 --- a/buildroot/package/go/go.mk +++ b/buildroot/package/go/go.mk @@ -4,7 +4,7 @@ # ################################################################################ -GO_VERSION = 1.15.3 +GO_VERSION = 1.15.5 GO_SITE = https://storage.googleapis.com/golang GO_SOURCE = go$(GO_VERSION).src.tar.gz diff --git a/buildroot/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk b/buildroot/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk index 78a378544..a9111ebdb 100644 --- a/buildroot/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk +++ b/buildroot/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk @@ -13,6 +13,7 @@ GST1_PLUGINS_BAD_INSTALL_STAGING = YES GST1_PLUGINS_BAD_LICENSE_FILES = COPYING GST1_PLUGINS_BAD_LICENSE = LGPL-2.0+ +GST1_PLUGINS_BAD_CFLAGS = $(TARGET_CFLAGS) -std=c99 -D_GNU_SOURCE GST1_PLUGINS_BAD_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS) GST1_PLUGINS_BAD_CONF_OPTS = \ diff --git a/buildroot/package/guile/0004-Makefile.am-fix-build-without-makeinfo.patch b/buildroot/package/guile/0003-Makefile.am-fix-build-without-makeinfo.patch similarity index 100% rename from buildroot/package/guile/0004-Makefile.am-fix-build-without-makeinfo.patch rename to buildroot/package/guile/0003-Makefile.am-fix-build-without-makeinfo.patch diff --git a/buildroot/package/guile/guile.mk b/buildroot/package/guile/guile.mk index 5750b85f4..0e7328f19 100644 --- a/buildroot/package/guile/guile.mk +++ b/buildroot/package/guile/guile.mk @@ -9,7 +9,7 @@ GUILE_SOURCE = guile-$(GUILE_VERSION).tar.xz GUILE_SITE = $(BR2_GNU_MIRROR)/guile GUILE_INSTALL_STAGING = YES # For 0002-calculate-csqrt_manually.patch and -# 0004-Makefile.am-fix-build-without-makeinfo.patch +# 0003-Makefile.am-fix-build-without-makeinfo.patch GUILE_AUTORECONF = YES GUILE_LICENSE = LGPL-3.0+ GUILE_LICENSE_FILES = LICENSE COPYING COPYING.LESSER @@ -38,6 +38,14 @@ ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM)$(BR2_OPTIMIZE_S),yy) GUILE_CFLAGS += -O2 endif +# jit triggers build failures with gcc < 5 +ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_5),) +GUILE_CONF_OPTS += --disable-jit +endif +ifeq ($(BR2_HOST_GCC_AT_LEAST_5),) +HOST_GUILE_CONF_OPTS += --disable-jit +endif + # It can use readline, but on the condition that it was build against # ncurses. If both aren't present disable readline support since the # host readline/ncurses support can poison the build. diff --git a/buildroot/package/jsoncpp/jsoncpp.hash b/buildroot/package/jsoncpp/jsoncpp.hash index 45f0b161f..0070a1874 100644 --- a/buildroot/package/jsoncpp/jsoncpp.hash +++ b/buildroot/package/jsoncpp/jsoncpp.hash @@ -1,3 +1,3 @@ # Locally computed -sha256 8593c1d69e703563d94d8c12244e2e18893eeb9a8a9f8aa3d09a327aa45c8f7d jsoncpp-1.9.3.tar.gz +sha256 e34a628a8142643b976c7233ef381457efad79468c67cb1ae0b83a33d7493999 jsoncpp-1.9.4.tar.gz sha256 95039d77a20e75b428207740d9a8f97b2dce3c89da4b21f1ad862b5997160e0a LICENSE diff --git a/buildroot/package/jsoncpp/jsoncpp.mk b/buildroot/package/jsoncpp/jsoncpp.mk index 276671694..cfded2bf0 100644 --- a/buildroot/package/jsoncpp/jsoncpp.mk +++ b/buildroot/package/jsoncpp/jsoncpp.mk @@ -4,7 +4,7 @@ # ################################################################################ -JSONCPP_VERSION = 1.9.3 +JSONCPP_VERSION = 1.9.4 JSONCPP_SITE = $(call github,open-source-parsers,jsoncpp,$(JSONCPP_VERSION)) JSONCPP_LICENSE = Public Domain or MIT JSONCPP_LICENSE_FILES = LICENSE diff --git a/buildroot/package/kmscube/kmscube.hash b/buildroot/package/kmscube/kmscube.hash index 6a4140c54..cb7abd48e 100644 --- a/buildroot/package/kmscube/kmscube.hash +++ b/buildroot/package/kmscube/kmscube.hash @@ -1,2 +1,3 @@ # Locally computed sha256 ec135069d8bee7f4fe38cb9dc96fbbd56e0057290fa25eff8b5b314ee473c502 kmscube-4660a7dca6512b6e658759d00cff7d4ad2a2059d.tar.gz +sha256 f622099ab0d274133f6e62d5fccfe970b61134d80ed036f45f8cf1e90c3d5a05 COPYING diff --git a/buildroot/package/kmscube/kmscube.mk b/buildroot/package/kmscube/kmscube.mk index dc8c69186..7b458376d 100644 --- a/buildroot/package/kmscube/kmscube.mk +++ b/buildroot/package/kmscube/kmscube.mk @@ -7,6 +7,7 @@ KMSCUBE_VERSION = 4660a7dca6512b6e658759d00cff7d4ad2a2059d KMSCUBE_SITE = https://gitlab.freedesktop.org/mesa/kmscube/-/archive/$(KMSCUBE_VERSION) KMSCUBE_LICENSE = MIT +KMSCUBE_LICENSE_FILES = COPYING KMSCUBE_DEPENDENCIES = host-pkgconf mesa3d libdrm $(eval $(meson-package)) diff --git a/buildroot/package/libcap/0001-Migrate-building-progs-tcapsh-static-to-sudotest.patch b/buildroot/package/libcap/0001-Migrate-building-progs-tcapsh-static-to-sudotest.patch new file mode 100644 index 000000000..856b7b1bb --- /dev/null +++ b/buildroot/package/libcap/0001-Migrate-building-progs-tcapsh-static-to-sudotest.patch @@ -0,0 +1,79 @@ +From 9b1c003748d4df78416d50fce139f0875224440b Mon Sep 17 00:00:00 2001 +From: "Andrew G. Morgan" +Date: Tue, 10 Nov 2020 20:47:45 -0800 +Subject: [PATCH] Migrate building progs/tcapsh-static to sudotest + +This addresses: + + https://bugzilla.kernel.org/show_bug.cgi?id=210135 + https://bugs.busybox.net/show_bug.cgi?id=13296 + +Some notes on expectations: + +When building DYNAMIC=yes folk want to avoid depending on a +static libc.a file in their build tree. The best we can do is +to move building static test tool objects to sudotest. + + make DYNAMIC=yes clean all test + +will build the progs binaries and run the tests with all dynamic +linking. It will, however, build the libcap.a etc libraries too +even though they are not used for linking. + + make DYNAMIC=no clean all test + +will build the progs binaries and run the tests with all static +linking. It will, however, build the libcap.so etc libraries too +even though they are not used for linking. + + make SHARED=no clean all test + +will build and link progs and test binaries statically against +libcap.a. No shared libraries (libcap.so etc) will be built. + +In all cases, whether linked against or not, libcap.a is built. + +Signed-off-by: Andrew G. Morgan +[Patch taken from upstream: +https://git.kernel.org/pub/scm/libs/libcap/libcap.git/commit/?id=9b1c003748d4df78416d50fce139f0875224440b] +Signed-off-by: Heiko Thiery +--- + tests/Makefile | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/tests/Makefile b/tests/Makefile +index fc39fee..1e7039d 100644 +--- a/tests/Makefile ++++ b/tests/Makefile +@@ -17,13 +17,13 @@ install: all + + ifeq ($(DYNAMIC),yes) + LINKEXTRA=-Wl,-rpath,../libcap +-DEPS=../libcap/libcap.so ../progs/tcapsh-static ++DEPS=../libcap/libcap.so + ifeq ($(PTHREADS),yes) + DEPS += ../libcap/libpsx.so + endif + else + LDFLAGS += --static +-DEPS=../libcap/libcap.a ../progs/tcapsh-static ++DEPS=../libcap/libcap.a + ifeq ($(PTHREADS),yes) + DEPS += ../libcap/libpsx.a + endif +@@ -71,10 +71,10 @@ libcap_psx_test: libcap_psx_test.c $(DEPS) + $(CC) $(CFLAGS) $(IPATH) $< -o $@ $(LINKEXTRA) $(LIBCAPLIB) $(LIBPSXLIB) $(LDFLAGS) + + # privileged +-run_libcap_launch_test: libcap_launch_test noop ++run_libcap_launch_test: libcap_launch_test noop ../progs/tcapsh-static + sudo ./libcap_launch_test + +-run_libcap_psx_launch_test: libcap_psx_launch_test ++run_libcap_psx_launch_test: libcap_psx_launch_test ../progs/tcapsh-static + sudo ./libcap_psx_launch_test + + libcap_launch_test: libcap_launch_test.c $(DEPS) +-- +2.20.1 + diff --git a/buildroot/package/libexif/0001-fixed-another-unsigned-integer-overflow.patch b/buildroot/package/libexif/0001-fixed-another-unsigned-integer-overflow.patch new file mode 100644 index 000000000..77bdfe89d --- /dev/null +++ b/buildroot/package/libexif/0001-fixed-another-unsigned-integer-overflow.patch @@ -0,0 +1,63 @@ +From ce03ad7ef4e8aeefce79192bf5b6f69fae396f0c Mon Sep 17 00:00:00 2001 +From: Marcus Meissner +Date: Mon, 8 Jun 2020 17:27:06 +0200 +Subject: [PATCH] fixed another unsigned integer overflow + +first fixed by google in android fork, +https://android.googlesource.com/platform/external/libexif/+/1e187b62682ffab5003c702657d6d725b4278f16%5E%21/#F0 + +(use a more generic overflow check method, also check second overflow instance.) + +https://security-tracker.debian.org/tracker/CVE-2020-0198 + +Downloaded from upstream commit: +https://github.com/libexif/libexif/commit/ce03ad7ef4e8aeefce79192bf5b6f69fae396f0c + +Signed-off-by: Bernd Kuhls +--- + libexif/exif-data.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/libexif/exif-data.c b/libexif/exif-data.c +index 8b280d3..b495726 100644 +--- a/libexif/exif-data.c ++++ b/libexif/exif-data.c +@@ -47,6 +47,8 @@ + #undef JPEG_MARKER_APP1 + #define JPEG_MARKER_APP1 0xe1 + ++#define CHECKOVERFLOW(offset,datasize,structsize) (( offset >= datasize) || (structsize > datasize) || (offset > datasize - structsize )) ++ + static const unsigned char ExifHeader[] = {0x45, 0x78, 0x69, 0x66, 0x00, 0x00}; + + struct _ExifDataPrivate +@@ -327,7 +329,7 @@ exif_data_load_data_thumbnail (ExifData *data, const unsigned char *d, + exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData", "Bogus thumbnail offset (%u).", o); + return; + } +- if (s > ds - o) { ++ if (CHECKOVERFLOW(o,ds,s)) { + exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData", "Bogus thumbnail size (%u), max would be %u.", s, ds-o); + return; + } +@@ -420,9 +422,9 @@ exif_data_load_data_content (ExifData *data, ExifIfd ifd, + } + + /* Read the number of entries */ +- if ((offset + 2 < offset) || (offset + 2 < 2) || (offset + 2 > ds)) { ++ if (CHECKOVERFLOW(offset, ds, 2)) { + exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "ExifData", +- "Tag data past end of buffer (%u > %u)", offset+2, ds); ++ "Tag data past end of buffer (%u+2 > %u)", offset, ds); + return; + } + n = exif_get_short (d + offset, data->priv->order); +@@ -431,7 +433,7 @@ exif_data_load_data_content (ExifData *data, ExifIfd ifd, + offset += 2; + + /* Check if we have enough data. */ +- if (offset + 12 * n > ds) { ++ if (CHECKOVERFLOW(offset, ds, 12*n)) { + n = (ds - offset) / 12; + exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData", + "Short data; only loading %hu entries...", n); diff --git a/buildroot/package/libexif/0002-fixed-a-incorrect-overflow-check.patch b/buildroot/package/libexif/0002-fixed-a-incorrect-overflow-check.patch new file mode 100644 index 000000000..1946f7822 --- /dev/null +++ b/buildroot/package/libexif/0002-fixed-a-incorrect-overflow-check.patch @@ -0,0 +1,36 @@ +From 9266d14b5ca4e29b970fa03272318e5f99386e06 Mon Sep 17 00:00:00 2001 +From: Marcus Meissner +Date: Thu, 5 Nov 2020 09:50:08 +0100 +Subject: [PATCH] fixed a incorrect overflow check that could be optimized + away. + +inspired by: +https://android.googlesource.com/platform/external/libexif/+/8e7345f3bc0bad06ac369d6cbc1124c8ceaf7d4b + +https://source.android.com/security/bulletin/2020-11-01 + +CVE-2020-0452 + +Downloaded from upstream commit, rebased for 0.6.22: +https://github.com/libexif/libexif/commit/9266d14b5ca4e29b970fa03272318e5f99386e06 + +Signed-off-by: Bernd Kuhls +--- + libexif/exif-entry.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libexif/exif-entry.c b/libexif/exif-entry.c +index 3fc0ff9..4b866ce 100644 +--- a/libexif/exif-entry.c ++++ b/libexif/exif-entry.c +@@ -1371,8 +1371,8 @@ exif_entry_get_value (ExifEntry *e, char *val, unsigned int maxlen) + { + unsigned char *utf16; + +- /* Sanity check the size to prevent overflow */ +- if (e->size+sizeof(uint16_t)+1 < e->size) break; ++ /* Sanity check the size to prevent overflow. Note EXIF files are 64kb at most. */ ++ if (e->size >= 65536 - sizeof(uint16_t)*2) break; + + /* The tag may not be U+0000-terminated , so make a local + U+0000-terminated copy before converting it */ diff --git a/buildroot/package/libexif/libexif.mk b/buildroot/package/libexif/libexif.mk index c945c275a..594e8855c 100644 --- a/buildroot/package/libexif/libexif.mk +++ b/buildroot/package/libexif/libexif.mk @@ -12,5 +12,9 @@ LIBEXIF_INSTALL_STAGING = YES LIBEXIF_DEPENDENCIES = host-pkgconf LIBEXIF_LICENSE = LGPL-2.1+ LIBEXIF_LICENSE_FILES = COPYING +# 0001-fixed-another-unsigned-integer-overflow.patch +LIBEXIF_IGNORE_CVES += CVE-2020-0198 +# 0002-fixed-a-incorrect-overflow-check.patch +LIBEXIF_IGNORE_CVES += CVE-2020-0452 $(eval $(autotools-package)) diff --git a/buildroot/package/libiqrf/libiqrf.hash b/buildroot/package/libiqrf/libiqrf.hash index b7f3b9bf2..df749def1 100644 --- a/buildroot/package/libiqrf/libiqrf.hash +++ b/buildroot/package/libiqrf/libiqrf.hash @@ -1,2 +1,3 @@ # Locally calculated -sha256 8111031dd9dd6093a1927eb32dd7476fe22cfee9190043aa8e4c88003c104b16 libiqrf-0.1.2.tar.gz +sha256 8111031dd9dd6093a1927eb32dd7476fe22cfee9190043aa8e4c88003c104b16 libiqrf-0.1.2.tar.gz +sha256 11e0700d7c23604d86fa1e7c54c7caa778d79eeb0035be8f80b5a552224ef015 src/iqrf.c diff --git a/buildroot/package/libiqrf/libiqrf.mk b/buildroot/package/libiqrf/libiqrf.mk index cd03373de..3f4e3e849 100644 --- a/buildroot/package/libiqrf/libiqrf.mk +++ b/buildroot/package/libiqrf/libiqrf.mk @@ -9,5 +9,6 @@ LIBIQRF_SITE = $(call github,nandra,libiqrf,v$(LIBIQRF_VERSION)) LIBIQRF_INSTALL_STAGING = YES LIBIQRF_DEPENDENCIES = libusb LIBIQRF_LICENSE = LGPL-2.1+ +LIBIQRF_LICENSE_FILES = src/iqrf.c $(eval $(cmake-package)) diff --git a/buildroot/package/libnetfilter_conntrack/0001-libnetfilter_conntrack.pc.in-add-LIBMNL_LIBS-to-Libs.patch b/buildroot/package/libnetfilter_conntrack/0001-libnetfilter_conntrack.pc.in-add-LIBMNL_LIBS-to-Libs.patch new file mode 100644 index 000000000..0b373d926 --- /dev/null +++ b/buildroot/package/libnetfilter_conntrack/0001-libnetfilter_conntrack.pc.in-add-LIBMNL_LIBS-to-Libs.patch @@ -0,0 +1,38 @@ +From 93bbd7e56cefc8488a61892b3bf5df63a175d20d Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Sun, 12 Apr 2020 14:05:15 +0200 +Subject: [PATCH] libnetfilter_conntrack.pc.in: add LIBMNL_LIBS to Libs.Private + +Since version 1.0.8 and commit +c1c0f16c1fedb46547c2e104beeaaeac5933b214, libnetfilter_conntrack depends +on libmnl so add it to Libs.Private. + +Otherwise, applications such as dnsmasq will fail to link on: + +/home/buildroot/autobuild/instance-0/output-1/host/bin/arm-linux-gcc -Wl,-elf2flt -static -o dnsmasq cache.o rfc1035.o util.o option.o forward.o network.o dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o helper.o tftp.o log.o conntrack.o dhcp6.o rfc3315.o dhcp-common.o outpacket.o radv.o slaac.o auth.o ipset.o domain.o dnssec.o blockdata.o tables.o loop.o inotify.o poll.o rrfilter.o edns0.o arp.o crypto.o dump.o ubus.o metrics.o -L/home/buildroot/autobuild/instance-0/output-1/host/bin/../arm-buildroot-uclinux-uclibcgnueabi/sysroot/usr/lib -lnetfilter_conntrack -L/home/buildroot/autobuild/instance-0/output-1/host/bin/../arm-buildroot-uclinux-uclibcgnueabi/sysroot/usr/lib -lnfnetlink +/home/buildroot/autobuild/instance-0/output-1/host/opt/ext-toolchain/arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: /home/buildroot/autobuild/instance-0/output-1/host/bin/../arm-buildroot-uclinux-uclibcgnueabi/sysroot/usr/lib/libnetfilter_conntrack.a(api.o): in function `nfct_fill_hdr.constprop.4': +api.c:(.text+0x34): undefined reference to `mnl_nlmsg_put_header' + +Fixes: + - http://autobuild.buildroot.org/results/3fdc2cba20162eb86eaa5c49a056fb40fb18a392 + +Signed-off-by: Fabrice Fontaine +[Upstream status: commit e94172f09e4d] +--- + libnetfilter_conntrack.pc.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libnetfilter_conntrack.pc.in b/libnetfilter_conntrack.pc.in +index 857f993..fbd7132 100644 +--- a/libnetfilter_conntrack.pc.in ++++ b/libnetfilter_conntrack.pc.in +@@ -12,5 +12,5 @@ Version: @VERSION@ + Requires: libnfnetlink + Conflicts: + Libs: -L${libdir} -lnetfilter_conntrack +-Libs.private: @LIBNFNETLINK_LIBS@ ++Libs.private: @LIBNFNETLINK_LIBS@ @LIBMNL_LIBS@ + Cflags: -I${includedir} +-- +2.25.1 + diff --git a/buildroot/package/libpam-tacplus/0001-Add-an-option-to-disable-Werror.patch b/buildroot/package/libpam-tacplus/0001-Add-an-option-to-disable-Werror.patch new file mode 100644 index 000000000..80da2f35b --- /dev/null +++ b/buildroot/package/libpam-tacplus/0001-Add-an-option-to-disable-Werror.patch @@ -0,0 +1,55 @@ +From 88c78901503d50d0a62d85c96994ca4d67ab61e0 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Fri, 13 Nov 2020 20:50:27 +0100 +Subject: [PATCH] Add an option to disable -Werror + +Allow the user to disable -Werror to avoid the following build failure +with gcc 4.8: + +libtac/lib/magic.c:138:13: error: ignoring return value of 'read', declared with attribute warn_unused_result [-Werror=unused-result] + (void) read(rfd, &seed, sizeof(seed)); + ^ + +Fixes: + - http://autobuild.buildroot.org/results/5c17226f12eba104d907693ec37fc101cc6d447f + +Signed-off-by: Fabrice Fontaine +--- + Makefile.am | 6 +++++- + configure.ac | 3 +++ + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 0be3cdb..4a137e9 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -8,7 +8,11 @@ + + ACLOCAL_AMFLAGS = -I config + AUTOMAKE_OPTIONS = subdir-objects +-AM_CFLAGS = -Wall -Wextra -Werror ++AM_CFLAGS = -Wall -Wextra ++ ++if ENABLE_WERROR ++AM_CFLAGS += -Werror ++endif + + if TACC + bin_PROGRAMS = tacc +diff --git a/configure.ac b/configure.ac +index d0c5eba..dd8a966 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -100,6 +100,9 @@ AC_SUBST(pamdir) + AC_ARG_ENABLE(doc, AS_HELP_STRING([--disable-doc], [do not build docs])) + AM_CONDITIONAL(DOC, test "x$enable_doc" != "xno") + ++AC_ARG_ENABLE(werror, AS_HELP_STRING([--disable-werror], [do not build with -Werror])) ++AM_CONDITIONAL(ENABLE_WERROR, test "x$enable_werror" != "xno") ++ + dnl -------------------------------------------------------------------- + dnl Switch for run-time debugging + AC_ARG_ENABLE(runtime-debugging, [AS_HELP_STRING([--enable-runtime-debugging], +-- +2.28.0 + diff --git a/buildroot/package/libpam-tacplus/libpam-tacplus.mk b/buildroot/package/libpam-tacplus/libpam-tacplus.mk index 4e1f8bd17..9dd8466bf 100644 --- a/buildroot/package/libpam-tacplus/libpam-tacplus.mk +++ b/buildroot/package/libpam-tacplus/libpam-tacplus.mk @@ -14,7 +14,10 @@ LIBPAM_TACPLUS_DEPENDENCIES = \ # Fetching from github, we need to generate the configure script LIBPAM_TACPLUS_AUTORECONF = YES LIBPAM_TACPLUS_INSTALL_STAGING = YES +# We're patching configure.ac +LIBPAM_TACPLUS_AUTORECONF = YES LIBPAM_TACPLUS_CONF_ENV = \ ax_cv_check_cflags___fstack_protector_all=$(if $(BR2_TOOLCHAIN_HAS_SSP),yes,no) +LIBPAM_TACPLUS_CONF_OPTS = --disable-werror $(eval $(autotools-package)) diff --git a/buildroot/package/libsigrokdecode/0001-configure-ac-Add-support-for-Python-3-9.patch b/buildroot/package/libsigrokdecode/0001-configure-ac-Add-support-for-Python-3-9.patch new file mode 100644 index 000000000..804e931dc --- /dev/null +++ b/buildroot/package/libsigrokdecode/0001-configure-ac-Add-support-for-Python-3-9.patch @@ -0,0 +1,28 @@ +From 9b0ad5177bd692f7556a4756bdbd2da81d9c34ce Mon Sep 17 00:00:00 2001 +From: =?utf8?q?Dan=20Hor=C3=A1k?= +Date: Tue, 4 Aug 2020 09:19:44 +0200 +Subject: [PATCH] configure.ac: Add support for Python 3.9. + +[Retrieved from: +https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=commit;h=9b0ad5177bd692f7556a4756bdbd2da81d9c34ce] +Signed-off-by: Fabrice Fontaine +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index f9958b3..2917cb3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -100,7 +100,7 @@ SR_PKG_CHECK_SUMMARY([srd_pkglibs_summary]) + # first, since usually only that variant will add "-lpython3.8". + # https://docs.python.org/3/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build + SR_PKG_CHECK([python3], [SRD_PKGLIBS], +- [python-3.8-embed], [python-3.8 >= 3.8], [python-3.7 >= 3.7], [python-3.6 >= 3.6], [python-3.5 >= 3.5], [python-3.4 >= 3.4], [python-3.3 >= 3.3], [python-3.2 >= 3.2], [python3 >= 3.2]) ++ [python-3.9-embed], [python-3.8-embed], [python-3.8 >= 3.8], [python-3.7 >= 3.7], [python-3.6 >= 3.6], [python-3.5 >= 3.5], [python-3.4 >= 3.4], [python-3.3 >= 3.3], [python-3.2 >= 3.2], [python3 >= 3.2]) + AS_IF([test "x$sr_have_python3" = xno], + [AC_MSG_ERROR([Cannot find Python 3 development headers.])]) + +-- +2.24.0.rc2 + diff --git a/buildroot/package/libsigrokdecode/libsigrokdecode.mk b/buildroot/package/libsigrokdecode/libsigrokdecode.mk index 8c9488784..18f2cbfee 100644 --- a/buildroot/package/libsigrokdecode/libsigrokdecode.mk +++ b/buildroot/package/libsigrokdecode/libsigrokdecode.mk @@ -10,5 +10,7 @@ LIBSIGROKDECODE_LICENSE = GPL-3.0+ LIBSIGROKDECODE_LICENSE_FILES = COPYING LIBSIGROKDECODE_INSTALL_STAGING = YES LIBSIGROKDECODE_DEPENDENCIES = host-pkgconf libglib2 python3 +# We're patching configure.ac +LIBSIGROKDECODE_AUTORECONF = YES $(eval $(autotools-package)) diff --git a/buildroot/package/linux-backports/linux-backports.mk b/buildroot/package/linux-backports/linux-backports.mk index 1d7d6e7f0..1827ee18b 100644 --- a/buildroot/package/linux-backports/linux-backports.mk +++ b/buildroot/package/linux-backports/linux-backports.mk @@ -11,6 +11,14 @@ LINUX_BACKPORTS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/projects/backports/stab LINUX_BACKPORTS_LICENSE = GPL-2.0 LINUX_BACKPORTS_LICENSE_FILES = COPYING +# flex and bison are needed to generate kconfig parser. We use the +# same logic as the linux kernel (we add host dependencies only if +# host does not have them). See linux/linux.mk and +# support/dependencies/check-host-bison-flex.mk. +LINUX_BACKPORTS_DEPENDENCIES = \ + $(BR2_BISON_HOST_DEPENDENCY) \ + $(BR2_FLEX_HOST_DEPENDENCY) + ifeq ($(BR2_PACKAGE_LINUX_BACKPORTS_USE_DEFCONFIG),y) LINUX_BACKPORTS_KCONFIG_FILE = $(LINUX_BACKPORTS_DIR)/defconfigs/$(call qstrip,$(BR2_PACKAGE_LINUX_BACKPORTS_DEFCONFIG)) else ifeq ($(BR2_PACKAGE_LINUX_BACKPORTS_USE_CUSTOM_CONFIG),y) @@ -33,6 +41,8 @@ LINUX_BACKPORTS_KCONFIG_OPTS = $(LINUX_BACKPORTS_MAKE_OPTS) # LINUX_BACKPORTS_MODULE_MAKE_OPTS is used by the kernel-module infra. # LINUX_BACKPORTS_MAKE_OPTS = \ + LEX=flex \ + YACC=bison \ BACKPORT_DIR=$(@D) \ KLIB_BUILD=$(LINUX_DIR) \ KLIB=$(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED) \ @@ -75,21 +85,24 @@ $(eval $(kconfig-package)) # not have been parsed yet, so the Linux build dir LINUX_DIR is not yet # known. Thus, we use a "secondary expansion" so the rule is re-evaluated # after all Makefiles are parsed, and thus at that time we will have the -# LINUX_DIR variable set to the proper value. +# LINUX_DIR variable set to the proper value. Moreover, since linux-4.19, +# the kernel's build system internally touches its .config file, so we +# can't use it as a stamp file. We use the LINUX_KCONFIG_STAMP_DOTCONFIG +# instead. # # Furthermore, we want to check the kernel version, since linux-backports # only supports kernels >= 3.0. To avoid overriding linux-backports' -# .config rule defined in the kconfig-package infra, we use an -# intermediate stamp-file. +# KCONFIG_STAMP_DOTCONFIG rule defined in the kconfig-package infra, we +# use an intermediate stamp-file. # # Finally, it must also come after the call to kconfig-package, so we get # LINUX_BACKPORTS_DIR properly defined (because the target part of the # rule is not re-evaluated). # -$(LINUX_BACKPORTS_DIR)/.config: $(LINUX_BACKPORTS_DIR)/.stamp_check_kernel_version +$(LINUX_BACKPORTS_DIR)/$(LINUX_BACKPORTS_KCONFIG_STAMP_DOTCONFIG): $(LINUX_BACKPORTS_DIR)/.stamp_check_kernel_version .SECONDEXPANSION: -$(LINUX_BACKPORTS_DIR)/.stamp_check_kernel_version: $$(LINUX_DIR)/.config +$(LINUX_BACKPORTS_DIR)/.stamp_check_kernel_version: $$(LINUX_DIR)/$$(LINUX_KCONFIG_STAMP_DOTCONFIG) $(Q)LINUX_VERSION_PROBED=$(LINUX_VERSION_PROBED); \ if [ $${LINUX_VERSION_PROBED%%.*} -lt 3 ]; then \ printf "Linux version '%s' is too old for linux-backports (needs 3.0 or later)\n" \ diff --git a/buildroot/package/linux-firmware/Config.in b/buildroot/package/linux-firmware/Config.in index d3b7a2b79..109af152f 100644 --- a/buildroot/package/linux-firmware/Config.in +++ b/buildroot/package/linux-firmware/Config.in @@ -119,6 +119,11 @@ config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271 help Firmware files for the Atheros 9271 module +config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA9377 + bool "Atheros 10k (QCA9377)" + help + Firmware files for the Atheros QCA9377 module + config BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA998X bool "Atheros 10k (QCA998X)" help diff --git a/buildroot/package/linux-firmware/linux-firmware.mk b/buildroot/package/linux-firmware/linux-firmware.mk index 5474377a3..f1c84a134 100644 --- a/buildroot/package/linux-firmware/linux-firmware.mk +++ b/buildroot/package/linux-firmware/linux-firmware.mk @@ -195,6 +195,14 @@ LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware endif # ath10k +ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA9377),y) +LINUX_FIRMWARE_FILES += ath10k/QCA9377/hw1.0/board-2.bin \ + ath10k/QCA9377/hw1.0/board.bin \ + ath10k/QCA9377/hw1.0/firmware-5.bin \ + ath10k/QCA9377/hw1.0/firmware-6.bin +LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.atheros_firmware +endif + ifeq ($(BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA998X),y) LINUX_FIRMWARE_FILES += ath10k/QCA988X/hw2.0/board.bin \ ath10k/QCA988X/hw2.0/firmware-4.bin \ diff --git a/buildroot/package/linux-headers/Config.in.host b/buildroot/package/linux-headers/Config.in.host index 16af0449a..8bd4449ef 100644 --- a/buildroot/package/linux-headers/Config.in.host +++ b/buildroot/package/linux-headers/Config.in.host @@ -346,13 +346,13 @@ endchoice config BR2_DEFAULT_KERNEL_HEADERS string - default "4.4.238" if BR2_KERNEL_HEADERS_4_4 - default "4.9.238" if BR2_KERNEL_HEADERS_4_9 - default "4.14.200" if BR2_KERNEL_HEADERS_4_14 - default "4.19.150" if BR2_KERNEL_HEADERS_4_19 - default "5.4.70" if BR2_KERNEL_HEADERS_5_4 - default "5.8.14" if BR2_KERNEL_HEADERS_5_8 - default "5.9" if BR2_KERNEL_HEADERS_5_9 + default "4.4.243" if BR2_KERNEL_HEADERS_4_4 + default "4.9.243" if BR2_KERNEL_HEADERS_4_9 + default "4.14.206" if BR2_KERNEL_HEADERS_4_14 + default "4.19.157" if BR2_KERNEL_HEADERS_4_19 + default "5.4.77" if BR2_KERNEL_HEADERS_5_4 + default "5.8.18" if BR2_KERNEL_HEADERS_5_8 + default "5.9.8" if BR2_KERNEL_HEADERS_5_9 default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION default "custom" if BR2_KERNEL_HEADERS_CUSTOM_TARBALL default BR2_KERNEL_HEADERS_CUSTOM_REPO_VERSION \ diff --git a/buildroot/package/lzlib/lzlib.hash b/buildroot/package/lzlib/lzlib.hash index f983862e4..4bb4c52c8 100644 --- a/buildroot/package/lzlib/lzlib.hash +++ b/buildroot/package/lzlib/lzlib.hash @@ -1,2 +1,3 @@ # Locally calculated -sha256 cbb0cac5825e940b4ea2f31a336d2aaf6db39847d456920afd8e443804420dbb lzlib-0.4.3.tar.gz +sha256 cbb0cac5825e940b4ea2f31a336d2aaf6db39847d456920afd8e443804420dbb lzlib-0.4.3.tar.gz +sha256 f817d4a37077e94e9adf379f46ba5cc0b68775d7add2bbd5b2ca68ba140ad5bb lzlib.c diff --git a/buildroot/package/lzlib/lzlib.mk b/buildroot/package/lzlib/lzlib.mk index f468a1c83..74624d501 100644 --- a/buildroot/package/lzlib/lzlib.mk +++ b/buildroot/package/lzlib/lzlib.mk @@ -8,6 +8,7 @@ LZLIB_VERSION = 0.4.3 LZLIB_SITE = $(call github,LuaDist,lzlib,$(LZLIB_VERSION)) LZLIB_DEPENDENCIES = lua zlib LZLIB_LICENSE = MIT +LZLIB_LICENSE_FILES = lzlib.c LZLIB_CONF_OPTS = -DINSTALL_CMOD="/usr/lib/lua/$(LUAINTERPRETER_ABIVER)" \ -DINSTALL_LMOD="/usr/share/lua/$(LUAINTERPRETER_ABIVER)" diff --git a/buildroot/package/mesa3d-headers/mesa3d-headers.mk b/buildroot/package/mesa3d-headers/mesa3d-headers.mk index afb2e799c..12020e655 100644 --- a/buildroot/package/mesa3d-headers/mesa3d-headers.mk +++ b/buildroot/package/mesa3d-headers/mesa3d-headers.mk @@ -12,7 +12,7 @@ endif # Not possible to directly refer to mesa3d variables, because of # first/second expansion trickery... -MESA3D_HEADERS_VERSION = 20.2.1 +MESA3D_HEADERS_VERSION = 20.2.2 MESA3D_HEADERS_SOURCE = mesa-$(MESA3D_HEADERS_VERSION).tar.xz MESA3D_HEADERS_SITE = https://mesa.freedesktop.org/archive MESA3D_HEADERS_DL_SUBDIR = mesa3d diff --git a/buildroot/package/mesa3d/0005-meson-Add-xcb-fixes-to-loader-when-using-x11-and-dri.patch b/buildroot/package/mesa3d/0005-meson-Add-xcb-fixes-to-loader-when-using-x11-and-dri.patch new file mode 100644 index 000000000..5746bc221 --- /dev/null +++ b/buildroot/package/mesa3d/0005-meson-Add-xcb-fixes-to-loader-when-using-x11-and-dri.patch @@ -0,0 +1,35 @@ +From da691ec75cc8a7b2d0ac0c5894521afda4bc601d Mon Sep 17 00:00:00 2001 +From: Duncan Hopkins +Date: Thu, 15 Oct 2020 12:14:57 +0100 +Subject: [PATCH] meson: Add xcb-fixes to loader when using x11 and dri3. Fixes + undefined symbol for xcb_xfixes_create_region in loader_dri3_helper.c + +loader_dr3_helper.c uses xcb_xfixes_create_region() that requires dep_xcb_xfixes to link. This is dependent on with_platform_x11 and with_dri3. +But the source meson file does not set this up dependent on with_dri3. +The build was initialsed using platforms=x11 and gallium-drivers=zink,swrast. + +Reviewed-by: Eric Anholt +Part-of: +(cherry picked from commit cf17d6251653f4a98e7c4f904ea2f0bc0ecedd5c) +Signed-off-by: Romain Naour +--- + meson.build | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index fbd3c4b8e8d..670cb521a2b 100644 +--- a/meson.build ++++ b/meson.build +@@ -1742,7 +1742,8 @@ if with_platform_x11 + dep_xxf86vm = dependency('xxf86vm') + endif + endif +- if (with_egl or ( ++ if (with_egl or ++ with_dri3 or ( + with_gallium_vdpau or with_gallium_xvmc or with_gallium_xa or + with_gallium_omx != 'disabled')) + dep_xcb_xfixes = dependency('xcb-xfixes') +-- +2.25.4 + diff --git a/buildroot/package/mesa3d/mesa3d.hash b/buildroot/package/mesa3d/mesa3d.hash index 287ddc1c0..7d3a92882 100644 --- a/buildroot/package/mesa3d/mesa3d.hash +++ b/buildroot/package/mesa3d/mesa3d.hash @@ -1,6 +1,6 @@ -# From https://lists.freedesktop.org/archives/mesa-announce/2020-October/000602.html -sha256 d1a46d9a3f291bc0e0374600bdcb59844fa3eafaa50398e472a36fc65fd0244a mesa-20.2.1.tar.xz -sha512 5d609359754db3e3679bffd5306c1f1d1cf46a2ea98428a9451fe0d99bbf73da863c5d94e6561712cd2012ad13615666cf3d712e54f379b34c091fead39d4795 mesa-20.2.1.tar.xz +# From https://lists.freedesktop.org/archives/mesa-announce/2020-November/000604.html +sha256 1f93eb1090cf71490cd0e204e04f8427a82b6ed534b7f49ca50cea7dcc89b861 mesa-20.2.2.tar.xz +sha512 36673a44fad8c6db3516b23b75825a52df520b9fe1387160301dd5051f420ebf0d1c7b4f8ff96a5547b79c2ba42fd782305ae23ac956f688b695c07b8fe73192 mesa-20.2.2.tar.xz # License sha256 1361129baa4519b6ed27a1bf4aeee33a58b060bf7bb9b6ea415ecede04e35e46 docs/license.rst diff --git a/buildroot/package/mesa3d/mesa3d.mk b/buildroot/package/mesa3d/mesa3d.mk index 620a6eece..a44d599b0 100644 --- a/buildroot/package/mesa3d/mesa3d.mk +++ b/buildroot/package/mesa3d/mesa3d.mk @@ -5,7 +5,7 @@ ################################################################################ # When updating the version, please also update mesa3d-headers -MESA3D_VERSION = 20.2.1 +MESA3D_VERSION = 20.2.2 MESA3D_SOURCE = mesa-$(MESA3D_VERSION).tar.xz MESA3D_SITE = https://mesa.freedesktop.org/archive MESA3D_LICENSE = MIT, SGI, Khronos diff --git a/buildroot/package/modem-manager/Config.in b/buildroot/package/modem-manager/Config.in index 062826fd0..c4c723776 100644 --- a/buildroot/package/modem-manager/Config.in +++ b/buildroot/package/modem-manager/Config.in @@ -6,7 +6,6 @@ config BR2_PACKAGE_MODEM_MANAGER select BR2_PACKAGE_DBUS # runtime dependency select BR2_PACKAGE_LIBGLIB2 select BR2_PACKAGE_LIBGUDEV if BR2_PACKAGE_HAS_UDEV - select BR2_PACKAGE_LIBXSLT help ModemManager is a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections. diff --git a/buildroot/package/modem-manager/modem-manager.mk b/buildroot/package/modem-manager/modem-manager.mk index 53cd0aff9..372e7da1e 100644 --- a/buildroot/package/modem-manager/modem-manager.mk +++ b/buildroot/package/modem-manager/modem-manager.mk @@ -9,9 +9,10 @@ MODEM_MANAGER_SOURCE = ModemManager-$(MODEM_MANAGER_VERSION).tar.xz MODEM_MANAGER_SITE = http://www.freedesktop.org/software/ModemManager MODEM_MANAGER_LICENSE = GPL-2.0+ (programs, plugins), LGPL-2.0+ (libmm-glib) MODEM_MANAGER_LICENSE_FILES = COPYING COPYING.LIB -MODEM_MANAGER_DEPENDENCIES = host-pkgconf libglib2 libxslt $(TARGET_NLS_DEPENDENCIES) +MODEM_MANAGER_DEPENDENCIES = host-pkgconf libglib2 $(TARGET_NLS_DEPENDENCIES) MODEM_MANAGER_INSTALL_STAGING = YES MODEM_MANAGER_CONF_OPTS = --disable-more-warnings +MODEM_MANAGER_CONF_ENV = ac_cv_prog_XSLTPROC_CHECK=yes ifeq ($(BR2_PACKAGE_MODEM_MANAGER_LIBQMI),y) MODEM_MANAGER_DEPENDENCIES += libqmi diff --git a/buildroot/package/mp4v2/0003-Static-cast-to-unsigned-int-for-cases.patch b/buildroot/package/mp4v2/0003-Static-cast-to-unsigned-int-for-cases.patch new file mode 100644 index 000000000..6c9b13bed --- /dev/null +++ b/buildroot/package/mp4v2/0003-Static-cast-to-unsigned-int-for-cases.patch @@ -0,0 +1,99 @@ +From a5ca35b044bbf13c0b16f0066bf24646604bb218 Mon Sep 17 00:00:00 2001 +From: "Jason A. Donenfeld" +Date: Thu, 6 Aug 2020 15:22:04 +0200 +Subject: [PATCH] Static cast to unsigned int for cases + +Signed-off-by: Jason A. Donenfeld +[Retrieved from: +https://gitweb.gentoo.org/repo/gentoo.git/tree/media-libs/libmp4v2/files/libmp4v2-2.0.0-unsigned-int-cast.patch] +Signed-off-by: Fabrice Fontaine +--- + libutil/Utility.cpp | 2 +- + util/mp4art.cpp | 2 +- + util/mp4chaps.cpp | 2 +- + util/mp4file.cpp | 2 +- + util/mp4subtitle.cpp | 2 +- + util/mp4track.cpp | 2 +- + 6 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/libutil/Utility.cpp b/libutil/Utility.cpp +index 76cdd12..d6739d4 100644 +--- a/libutil/Utility.cpp ++++ b/libutil/Utility.cpp +@@ -493,7 +493,7 @@ Utility::process_impl() + if( codes.find( code ) == codes.end() ) + continue; + +- switch( code ) { ++ switch( static_cast( code ) ) { + case 'z': + _optimize = true; + break; +diff --git a/util/mp4art.cpp b/util/mp4art.cpp +index add935e..6e7f531 100644 +--- a/util/mp4art.cpp ++++ b/util/mp4art.cpp +@@ -376,7 +376,7 @@ ArtUtility::utility_option( int code, bool& handled ) + { + handled = true; + +- switch( code ) { ++ switch( static_cast ( code ) ) { + case LC_ART_ANY: + _artFilter = numeric_limits::max(); + break; +diff --git a/util/mp4chaps.cpp b/util/mp4chaps.cpp +index 98400f8..ccc8b70 100644 +--- a/util/mp4chaps.cpp ++++ b/util/mp4chaps.cpp +@@ -632,7 +632,7 @@ ChapterUtility::utility_option( int code, bool& handled ) + { + handled = true; + +- switch( code ) { ++ switch( static_cast ( code ) ) { + case 'A': + case LC_CHPT_ANY: + _ChapterType = MP4ChapterTypeAny; +diff --git a/util/mp4file.cpp b/util/mp4file.cpp +index c27844b..b127cd1 100644 +--- a/util/mp4file.cpp ++++ b/util/mp4file.cpp +@@ -189,7 +189,7 @@ FileUtility::utility_option( int code, bool& handled ) + { + handled = true; + +- switch( code ) { ++ switch( static_cast( code ) ) { + case LC_LIST: + _action = &FileUtility::actionList; + break; +diff --git a/util/mp4subtitle.cpp b/util/mp4subtitle.cpp +index 7462153..19d977d 100644 +--- a/util/mp4subtitle.cpp ++++ b/util/mp4subtitle.cpp +@@ -164,7 +164,7 @@ SubtitleUtility::utility_option( int code, bool& handled ) + { + handled = true; + +- switch( code ) { ++ switch( static_cast( code ) ) { + case LC_LIST: + _action = &SubtitleUtility::actionList; + break; +diff --git a/util/mp4track.cpp b/util/mp4track.cpp +index d550506..cd63d7e 100644 +--- a/util/mp4track.cpp ++++ b/util/mp4track.cpp +@@ -788,7 +788,7 @@ TrackUtility::utility_option( int code, bool& handled ) + { + handled = true; + +- switch( code ) { ++ switch( static_cast( code ) ) { + case LC_TRACK_WILDCARD: + _trackMode = TM_WILDCARD; + break; +-- +2.28.0 + diff --git a/buildroot/package/oniguruma/0001-207-Out-of-bounds-write.patch b/buildroot/package/oniguruma/0001-207-Out-of-bounds-write.patch deleted file mode 100644 index 331744970..000000000 --- a/buildroot/package/oniguruma/0001-207-Out-of-bounds-write.patch +++ /dev/null @@ -1,25 +0,0 @@ -From cbe9f8bd9cfc6c3c87a60fbae58fa1a85db59df0 Mon Sep 17 00:00:00 2001 -From: "K.Kosako" -Date: Mon, 21 Sep 2020 12:58:29 +0900 -Subject: [PATCH] #207: Out-of-bounds write - -[Retrieved from: -https://github.com/kkos/oniguruma/commit/cbe9f8bd9cfc6c3c87a60fbae58fa1a85db59df0] -Signed-off-by: Fabrice Fontaine ---- - src/regcomp.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/regcomp.c b/src/regcomp.c -index f6494b6d..a0a68561 100644 ---- a/src/regcomp.c -+++ b/src/regcomp.c -@@ -6257,7 +6257,7 @@ concat_opt_exact_str(OptStr* to, UChar* s, UChar* end, OnigEncoding enc) - - for (i = to->len, p = s; p < end && i < OPT_EXACT_MAXLEN; ) { - len = enclen(enc, p); -- if (i + len > OPT_EXACT_MAXLEN) break; -+ if (i + len >= OPT_EXACT_MAXLEN) break; - for (j = 0; j < len && p < end; j++) - to->s[i++] = *p++; - } diff --git a/buildroot/package/oniguruma/oniguruma.hash b/buildroot/package/oniguruma/oniguruma.hash index 82354d4b9..668f21d37 100644 --- a/buildroot/package/oniguruma/oniguruma.hash +++ b/buildroot/package/oniguruma/oniguruma.hash @@ -1,3 +1,3 @@ # Locally calculated -sha256 2f25cc3165e6da4b12dcabdb6b77c48f436d835e127ec2e3cad7abae9ea8e9a6 onig-6.9.5.tar.gz +sha256 bd0faeb887f748193282848d01ec2dad8943b5dfcb8dc03ed52dcc963549e819 onig-6.9.6.tar.gz sha256 6c7038393e8f30fee16257e713f77e383712f1465d6d25929596746b10b42bd3 COPYING diff --git a/buildroot/package/oniguruma/oniguruma.mk b/buildroot/package/oniguruma/oniguruma.mk index c2330c738..e7aaa43c2 100644 --- a/buildroot/package/oniguruma/oniguruma.mk +++ b/buildroot/package/oniguruma/oniguruma.mk @@ -4,7 +4,7 @@ # ################################################################################ -ONIGURUMA_VERSION = 6.9.5 +ONIGURUMA_VERSION = 6.9.6 ONIGURUMA_SITE = \ https://github.com/kkos/oniguruma/releases/download/v$(ONIGURUMA_VERSION) ONIGURUMA_SOURCE = onig-$(ONIGURUMA_VERSION).tar.gz @@ -12,7 +12,4 @@ ONIGURUMA_LICENSE = BSD-2-Clause ONIGURUMA_LICENSE_FILES = COPYING ONIGURUMA_INSTALL_STAGING = YES -# 0001-207-Out-of-bounds-write.patch -ONIGURUMA_IGNORE_CVES += CVE-2020-26159 - $(eval $(autotools-package)) diff --git a/buildroot/package/openntpd/0002-Provide-fallback-definition-for-__packed.patch b/buildroot/package/openntpd/0002-Provide-fallback-definition-for-__packed.patch new file mode 100644 index 000000000..4d8f636b9 --- /dev/null +++ b/buildroot/package/openntpd/0002-Provide-fallback-definition-for-__packed.patch @@ -0,0 +1,43 @@ +From bc2cd89715155fe1fead19338dac5f4059917dfe Mon Sep 17 00:00:00 2001 +From: Michael Forney +Date: Thu, 20 Jun 2019 13:52:22 -0700 +Subject: [PATCH] Provide fallback definition for __packed + +Otherwise, systems that don't support it will treat it as a name for a +global `struct ntp_msg` variable. + +[Retrieved from: +https://github.com/openntpd-portable/openntpd-portable/commit/bc2cd89715155fe1fead19338dac5f4059917dfe] +Signed-off-by: Fabrice Fontaine +--- + include/sys/types.h | 4 ++++ + m4/check-os-options.m4 | 1 + + 2 files changed, 5 insertions(+) + +diff --git a/include/sys/types.h b/include/sys/types.h +index 86821c7..5492e20 100644 +--- a/include/sys/types.h ++++ b/include/sys/types.h +@@ -22,6 +22,10 @@ + # define __bounded__(x, y, z) + #endif + ++#if !defined(HAVE_ATTRIBUTE__PACKED) && !defined(__packed) ++# define __packed __attribute__((__packed__)) ++#endif ++ + /* + * Define BSD-style unsigned bits types for systems that do not have them. + */ +diff --git a/m4/check-os-options.m4 b/m4/check-os-options.m4 +index d4d02d9..4883d1f 100644 +--- a/m4/check-os-options.m4 ++++ b/m4/check-os-options.m4 +@@ -69,6 +69,7 @@ case $host_os in + HOST_ABI=elf + AC_DEFINE([HAVE_ATTRIBUTE__BOUNDED__], [1], [OpenBSD gcc has bounded]) + AC_DEFINE([HAVE_ATTRIBUTE__DEAD], [1], [OpenBSD gcc has __dead]) ++ AC_DEFINE([HAVE_ATTRIBUTE__PACKED], [1], [OpenBSD gcc has __packed]) + ;; + *solaris*) + HOST_OS=solaris diff --git a/buildroot/package/openntpd/0003-Zap-double-definition-of-conf-and-make-ibuf_dns-static-to-avoid-double.patch b/buildroot/package/openntpd/0003-Zap-double-definition-of-conf-and-make-ibuf_dns-static-to-avoid-double.patch new file mode 100644 index 000000000..f54237e31 --- /dev/null +++ b/buildroot/package/openntpd/0003-Zap-double-definition-of-conf-and-make-ibuf_dns-static-to-avoid-double.patch @@ -0,0 +1,54 @@ +From 956b4239d919d6922b9ba6ef39be0d1753f8ff34 Mon Sep 17 00:00:00 2001 +From: otto <> +Date: Sat, 11 Apr 2020 07:49:48 +0000 +Subject: [PATCH] Zap double definition of conf and make ibuf_dns static to + avoid double definition; from Michael Forney + +[Retrieved (and backported by updating paths and dropping date and +version updates) from: +https://github.com/openntpd-portable/openntpd-openbsd/commit/956b4239d919d6922b9ba6ef39be0d1753f8ff34] +Signed-off-by: Fabrice Fontaine +--- + src/usr.sbin/ntpd/ntp.c | 4 ++-- + src/usr.sbin/ntpd/ntp_dns.c | 4 ++-- + src/usr.sbin/ntpd/parse.y | 3 +-- + 3 files changed, 5 insertions(+), 6 deletions(-) + +diff --git a/src/ntp.c b/src/ntp.c +index ea9a4e922..ec3d6bc43 100644 +--- a/src/ntp.c ++++ b/src/ntp.c +@@ -42,7 +42,7 @@ + + volatile sig_atomic_t ntp_quit = 0; + struct imsgbuf *ibuf_main; +-struct imsgbuf *ibuf_dns; ++static struct imsgbuf *ibuf_dns; + struct ntpd_conf *conf; + struct ctl_conns ctl_conns; + u_int peer_cnt; +diff --git a/src/ntp_dns.c b/src/ntp_dns.c +index 2e1a97833..88391801c 100644 +--- a/src/ntp_dns.c ++++ b/src/ntp_dns.c +@@ -39,7 +39,7 @@ + #include "ntpd.h" + + volatile sig_atomic_t quit_dns = 0; +-struct imsgbuf *ibuf_dns; ++static struct imsgbuf *ibuf_dns; + + void sighdlr_dns(int); + int dns_dispatch_imsg(struct ntpd_conf *); +diff --git a/src/parse.y b/src/uparse.y +index 8d7ab09de..81d19bbff 100644 +--- a/src/parse.y ++++ b/src/parse.y +@@ -57,7 +57,6 @@ int lgetc(int); + int lungetc(int); + int findeol(void); + +-struct ntpd_conf *conf; + struct sockaddr_in query_addr4; + struct sockaddr_in6 query_addr6; + int poolseqnum; diff --git a/buildroot/package/python-lmdb/python-lmdb.hash b/buildroot/package/python-lmdb/python-lmdb.hash index 569d1d0bd..cb28536d3 100644 --- a/buildroot/package/python-lmdb/python-lmdb.hash +++ b/buildroot/package/python-lmdb/python-lmdb.hash @@ -1,5 +1,5 @@ # md5, sha256 from https://pypi.org/pypi/lmdb/json -md5 ae2efef18202e51c9e4a807a47900ce2 lmdb-0.98.tar.gz -sha256 0625bc28bf0893e6000a83be7234f915ca078c32f9e73d8ae48b3508db7af708 lmdb-0.98.tar.gz +md5 507049767b995c3c6a93b3bd97567c71 lmdb-0.99.tar.gz +sha256 f9eb844aaaacc8a4bc175e1c1f8a8fb538c330e378fd9eb40e8708d4dca7dc89 lmdb-0.99.tar.gz # Locally computed sha256 checksums sha256 310fe25c858a9515fc8c8d7d1f24a67c9496f84a91e0a0e41ea9975b1371e569 LICENSE diff --git a/buildroot/package/python-lmdb/python-lmdb.mk b/buildroot/package/python-lmdb/python-lmdb.mk index f92c7f775..bf98ba19c 100644 --- a/buildroot/package/python-lmdb/python-lmdb.mk +++ b/buildroot/package/python-lmdb/python-lmdb.mk @@ -4,9 +4,9 @@ # ################################################################################ -PYTHON_LMDB_VERSION = 0.98 +PYTHON_LMDB_VERSION = 0.99 PYTHON_LMDB_SOURCE = lmdb-$(PYTHON_LMDB_VERSION).tar.gz -PYTHON_LMDB_SITE = https://files.pythonhosted.org/packages/c0/5c/d56dbc2532ecf14fa004c543927500c0f645eaca8bd7ec39420c7546396a +PYTHON_LMDB_SITE = https://files.pythonhosted.org/packages/3b/66/aa6f3a3e338a3ca263575ce6f722c2fdcd21039a03b55c722e0ae0b216db PYTHON_LMDB_LICENSE = OLDAP-2.8 PYTHON_LMDB_LICENSE_FILES = LICENSE PYTHON_LMDB_SETUP_TYPE = setuptools diff --git a/buildroot/package/python-m2crypto/0001-setup.py-move-swig-default-includes-before-openssl.patch b/buildroot/package/python-m2crypto/0001-setup.py-move-swig-default-includes-before-openssl.patch new file mode 100644 index 000000000..f4d7e428f --- /dev/null +++ b/buildroot/package/python-m2crypto/0001-setup.py-move-swig-default-includes-before-openssl.patch @@ -0,0 +1,63 @@ +From 1aab31787a8d1ef9436d9cf81832691f729b6282 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Sat, 7 Nov 2020 23:26:30 +0100 +Subject: [PATCH] setup.py: move swig default includes before openssl + +Move swig default includes before openssl to avoid the following build +failure when cross-compiling for some architectures (e.g. arm, mips): + +swig -python -py3 -D__x86_64__ \ + -I/srv/storage/autobuild/run/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot/usr/include/python3.9 \ + -I/srv/storage/autobuild/run/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot/usr/include \ + -I/srv/storage/autobuild/run/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot/usr/include/openssl \ + -I/srv/storage/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/mipsel-buildroot-linux-gnu/8.3.0/include \ + -I/srv/storage/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/mipsel-buildroot-linux-gnu/8.3.0/include-fixed \ + -I/srv/storage/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/mipsel-buildroot-linux-gnu/8.3.0/../../../../mipsel-buildroot-linux-gnu/include \ + -I/srv/storage/autobuild/run/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot/usr/include \ + -includeall -modern -builtin -outdir \ + /srv/storage/autobuild/run/instance-0/output-1/build/python-m2crypto-0.36.0/M2Crypto -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i +Deprecated command line option: -modern. This option is now always on. +/srv/storage/autobuild/run/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot/usr/include/bits/types.h:139: +Error: CPP #error "". Use the -cpperraswarn option to continue swig processing. + +This build failure is probably raised because swig includes a wrong types.h file +from the openssl directory (e.g. +/srv/storage/autobuild/run/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot/usr/include) + +Fixes: + - http://autobuild.buildroot.org/results/7f63e6a2d8681cc3408f344556afd5dd16eb7368 + - http://autobuild.buildroot.org/results/d115a082418321e7dc4715c635f94b30b3cad387 + +Signed-off-by: Fabrice Fontaine +[Upstream status: +https://gitlab.com/m2crypto/m2crypto/-/merge_requests/248] +--- + setup.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index 89d03bb..0045fda 100644 +--- a/setup.py ++++ b/setup.py +@@ -154,6 +154,9 @@ class _M2CryptoBuildExt(build_ext.build_ext): + if sys.version_info[:1] >= (3,): + self.swig_opts.append('-py3') + ++ # swig seems to need the default header file directories ++ self.swig_opts.extend(['-I%s' % i for i in _get_additional_includes()]) ++ + log.debug('self.include_dirs = %s', self.include_dirs) + log.debug('self.library_dirs = %s', self.library_dirs) + +@@ -204,8 +207,6 @@ class _M2CryptoBuildExt(build_ext.build_ext): + self.swig_opts.append( + '-I' + os.path.join(openssl_include_dir, 'openssl')) + +- # swig seems to need the default header file directories +- self.swig_opts.extend(['-I%s' % i for i in _get_additional_includes()]) + self.swig_opts.append('-includeall') + self.swig_opts.append('-modern') + self.swig_opts.append('-builtin') +-- +2.28.0 + diff --git a/buildroot/package/python3/0034-lib-crypt-uClibc-ng-doesn-t-set-errno-when-encryptio.patch b/buildroot/package/python3/0034-lib-crypt-uClibc-ng-doesn-t-set-errno-when-encryptio.patch new file mode 100644 index 000000000..880277eb1 --- /dev/null +++ b/buildroot/package/python3/0034-lib-crypt-uClibc-ng-doesn-t-set-errno-when-encryptio.patch @@ -0,0 +1,40 @@ +From 3c83eedcc2df3ecf6c4a17953ca24dff60c1378e Mon Sep 17 00:00:00 2001 +From: Romain Naour +Date: Thu, 12 Nov 2020 00:16:18 +0100 +Subject: [PATCH] lib/crypt: uClibc-ng doesn't set errno when encryption method + is not available + +Since commit [1] in cpython, an exception is raised when an encryption method +is not available. This eception is handled only if errno is set to EINVAL by +crypt() but uClibc-ng doesn't set errno in crypt() [2]. + +Fixes: +https://gitlab.com/buildroot.org/buildroot/-/jobs/830981961 +https://gitlab.com/buildroot.org/buildroot/-/jobs/830981979 + +[1] https://github.com/python/cpython/commit/0d3fe8ae4961bf551e7d5e42559e2ede1a08fd7c +[2] https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/tree/libcrypt/crypt.c?h=v1.0.36#n29 + +Signed-off-by: Romain Naour +--- + Lib/crypt.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/Lib/crypt.py b/Lib/crypt.py +index 33dbc46bb3..4692a5270c 100644 +--- a/Lib/crypt.py ++++ b/Lib/crypt.py +@@ -94,7 +94,9 @@ def _add_method(name, *args, rounds=None): + result = crypt('', salt) + except OSError as e: + # Not all libc libraries support all encryption methods. +- if e.errno == errno.EINVAL: ++ # Not all libc libraries set errno when encryption method is not ++ # available. ++ if e.errno == errno.EINVAL or e.errno == 0: + return False + raise + if result and len(result) == method.total_size: +-- +2.25.4 + diff --git a/buildroot/package/rauc/rauc.mk b/buildroot/package/rauc/rauc.mk index 1915c783a..a6c7c0109 100644 --- a/buildroot/package/rauc/rauc.mk +++ b/buildroot/package/rauc/rauc.mk @@ -31,7 +31,7 @@ RAUC_DEPENDENCIES += systemd endif define RAUC_INSTALL_INIT_SYSTEMD - mkdir $(TARGET_DIR)/usr/lib/systemd/system/rauc.service.d + mkdir -p $(TARGET_DIR)/usr/lib/systemd/system/rauc.service.d printf '[Install]\nWantedBy=multi-user.target\n' \ >$(TARGET_DIR)/usr/lib/systemd/system/rauc.service.d/buildroot-enable.conf endef @@ -46,7 +46,8 @@ HOST_RAUC_CONF_OPTS += \ --disable-network \ --disable-json \ --disable-service \ - --without-dbuspolicydir + --without-dbuspolicydir \ + --with-systemdunitdir=no $(eval $(autotools-package)) $(eval $(host-autotools-package)) diff --git a/buildroot/package/s390-tools/0001-zkey-ekmfweb-fix-linking-of-libekmfweb.patch b/buildroot/package/s390-tools/0001-zkey-ekmfweb-fix-linking-of-libekmfweb.patch new file mode 100644 index 000000000..76a642af7 --- /dev/null +++ b/buildroot/package/s390-tools/0001-zkey-ekmfweb-fix-linking-of-libekmfweb.patch @@ -0,0 +1,53 @@ +From a4e6f7239d8cee37e58eac974482d6deefa8a137 Mon Sep 17 00:00:00 2001 +From: Alexander Egorenkov +Date: Thu, 5 Nov 2020 17:42:58 +0100 +Subject: [PATCH 1/1] zkey/ekmfweb: fix linking of libekmfweb + +Use -L compiler's parameter instead of the environment variable +LIBRARY_PATH. + +Fixes the following problem on buildroot: + +buildroot/qemu-s390x/host/bin/s390x-linux-gcc -shared -Wl,--version-script=zkey-ekmfweb.map -Wl,-z,defs,-Bsymbolic -Wl,-soname,zkey-ekmfweb.so.1 zkey-ekmfweb.o properties.o pkey.o cca.o ep11.o utils.o ../..//libutil/libutil.a -lekmfweb -ldl -lcrypto -o zkey-ekmfweb.so +buildroot/qemu-s390x/host/bin/s390x-linux-gcc -I ../../include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I ../include -std=gnu99 -Wno-unused-parameter -Wno-missing-field-initializers -DS390_TOOLS_RELEASE=2.15.1-build-20201105 -DS390_TOOLS_LIBDIR=/lib/s390-tools -DS390_TOOLS_DATADIR=/usr/share/s390-tools -DS390_TOOLS_SYSCONFDIR=/etc -DS390_TOOLS_BINDIR=/sbin -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_GNU_SOURCE -c udev_ccwgroup.c -o udev_ccwgroup.o +buildroot/qemu-s390x/host/bin/s390x-linux-gcc -I ../../include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I ../include -std=gnu99 -Wno-unused-parameter -Wno-missing-field-initializers -DS390_TOOLS_RELEASE=2.15.1-build-20201105 -DS390_TOOLS_LIBDIR=/lib/s390-tools -DS390_TOOLS_DATADIR=/usr/share/s390-tools -DS390_TOOLS_SYSCONFDIR=/etc -DS390_TOOLS_BINDIR=/sbin -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_GNU_SOURCE -c iscsi.c -o iscsi.o +buildroot/qemu-s390x/host/bin/s390x-linux-gcc -I ../../include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I ../include -std=gnu99 -Wno-unused-parameter -Wno-missing-field-initializers -DS390_TOOLS_RELEASE=2.15.1-build-20201105 -DS390_TOOLS_LIBDIR=/lib/s390-tools -DS390_TOOLS_DATADIR=/usr/share/s390-tools -DS390_TOOLS_SYSCONFDIR=/etc -DS390_TOOLS_BINDIR=/sbin -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_GNU_SOURCE -c dasd.c -o dasd.o +buildroot/qemu-s390x/host/opt/ext-toolchain/bin/../lib/gcc/s390x-buildroot-linux-gnu/9.3.0/../../../../s390x-buildroot-linux-gnu/bin/ld: cannot find -lekmfweb +collect2: error: ld returned 1 exit status +make[4]: *** [Makefile:36: zkey-ekmfweb.so] Error 1 +make[3]: *** [Makefile:128: ekmfweb] Error 2 +buildroot/qemu-s390x/host/bin/s390x-linux-gcc -I ../../include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I ../include -std=gnu99 -Wno-unused-parameter -Wno-missing-field-initializers -DS390_TOOLS_RELEASE=2.15.1-build-20201105 -DS390_TOOLS_LIBDIR=/lib/s390-tools -DS390_TOOLS_DATADIR=/usr/share/s390-tools -DS390_TOOLS_SYSCONFDIR=/etc -DS390_TOOLS_BINDIR=/sbin -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_GNU_SOURCE -c zfcp.c -o zfcp.o +make[2]: *** [Makefile:43: zkey] Error 2 +make[2]: *** Waiting for unfinished jobs.... + +Signed-off-by: Alexander Egorenkov +Acked-by: Ingo Franzki +--- + zkey/ekmfweb/Makefile | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/zkey/ekmfweb/Makefile b/zkey/ekmfweb/Makefile +index 79a16cb5..1a3a4977 100644 +--- a/zkey/ekmfweb/Makefile ++++ b/zkey/ekmfweb/Makefile +@@ -7,8 +7,6 @@ all: zkey-ekmfweb.so + + libs = $(rootdir)/libutil/libutil.a + +-export LIBRARY_PATH = $(rootdir)/libekmfweb:$LIBRARY_PATH +- + zkey-ekmfweb.o: zkey-ekmfweb.c zkey-ekmfweb.h ../kms-plugin.h \ + ../cca.h ../utils.h ../pkey.h ../properties.h \ + $(rootdir)include/ekmfweb/ekmfweb.h libekmfweb.dep +@@ -29,7 +27,7 @@ utils.o: ../utils.c ../utils.h ../pkey.h ../cca.h ../ep11.h + $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -fPIC -c $< -o $@ + + zkey-ekmfweb.so: ALL_CFLAGS += -fPIC +-zkey-ekmfweb.so: LDLIBS = -lekmfweb -ldl -lcrypto ++zkey-ekmfweb.so: LDLIBS = -L$(rootdir)/libekmfweb -lekmfweb -ldl -lcrypto + zkey-ekmfweb.so: ALL_LDFLAGS += -shared -Wl,--version-script=zkey-ekmfweb.map \ + -Wl,-z,defs,-Bsymbolic -Wl,-soname,zkey-ekmfweb.so.$(VERM) + zkey-ekmfweb.so: zkey-ekmfweb.o properties.o pkey.o cca.o ep11.o utils.o $(libs) +-- +2.26.2 + diff --git a/buildroot/package/s390-tools/s390-tools.hash b/buildroot/package/s390-tools/s390-tools.hash index 4f60b22b0..1de2399e0 100644 --- a/buildroot/package/s390-tools/s390-tools.hash +++ b/buildroot/package/s390-tools/s390-tools.hash @@ -1,3 +1,3 @@ # Locally computed: sha256 8dc1180031018756ccd5acf6c26c4175bcac79e512e8a2ea8569fdf5d3f9bd6c s390-tools-2.15.1.tar.gz -sha256 cca17a9a944ebec769adee4aebd805c912c357785ff2705a99ffe68563021f75 COPYING +sha256 cca17a9a944ebec769adee4aebd805c912c357785ff2705a99ffe68563021f75 LICENSE diff --git a/buildroot/package/slirp/Config.in b/buildroot/package/slirp/Config.in index 51dea9700..38fd5277a 100644 --- a/buildroot/package/slirp/Config.in +++ b/buildroot/package/slirp/Config.in @@ -1,16 +1,14 @@ config BR2_PACKAGE_SLIRP bool "slirp" + depends on BR2_USE_MMU # libglib2 + depends on BR2_USE_WCHAR # libglib2 + depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 + select BR2_PACKAGE_LIBGLIB2 help - The Spice project aims to provide a complete open source - solution for interaction with virtualized desktop devices. - The Spice project deals with both the virtualized devices - and the front-end. Interaction between front-end and - back-end is done using VD-Interfaces. + libslirp is a user-mode networking library used by virtual + machines, containers or various tools. - This package implements the slirp-part for Spice. Slirp - emulates a PPP or SLIP connection over a normal terminal. - - http://www.spice-space.org/ + https://gitlab.freedesktop.org/slirp/libslirp/ NOTE: This package has some history of a unique kind: @@ -21,5 +19,10 @@ config BR2_PACKAGE_SLIRP - during that period, QEMU (Fabrice BELLARD) forked the code and included it in QEMU - and it was imported from this breed by the Spice project - around May 2009 - - which is what we use here + around May 2009 which archived it in 2012 + - So we switched to + https://gitlab.freedesktop.org/slirp/libslirp + +comment "slirp needs a toolchain w/ wchar, threads" + depends on BR2_USE_MMU + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/buildroot/package/slirp/slirp.hash b/buildroot/package/slirp/slirp.hash new file mode 100644 index 000000000..fe295b3bf --- /dev/null +++ b/buildroot/package/slirp/slirp.hash @@ -0,0 +1,3 @@ +# Locally computed: +sha256 388b4b08a8cc0996cc5155cb027a097dc1a7f2cfe84b1121496608ab5366cc48 libslirp-4.3.1.tar.xz +sha256 b28aecf4796a6a22054167f0a976de13d9db335669d37afd2dc7ea4c335e1e13 COPYRIGHT diff --git a/buildroot/package/slirp/slirp.mk b/buildroot/package/slirp/slirp.mk index 7cfead65e..ed6d8855e 100644 --- a/buildroot/package/slirp/slirp.mk +++ b/buildroot/package/slirp/slirp.mk @@ -4,18 +4,14 @@ # ################################################################################ -# There's no tarball releases of slirp, so we use the git repo -# Also, there's no tag, so we use a random SHA1 (master's HEAD -# of today) -SLIRP_VERSION = 8c2da74c1385242f20799fec8c04f8378edc6550 -SLIRP_SITE = git://anongit.freedesktop.org/spice/slirp -SLIRP_LICENSE = BSD-4-Clause, BSD-2-Clause -# Note: The license file 'COPYRIGHT' is missing from the sources, -# although some files refer to it. +SLIRP_VERSION = 4.3.1 +SLIRP_SOURCE = libslirp-$(SLIRP_VERSION).tar.xz +# Other "official" tarballs don't ship .tarball-version resulting in a build +# failure: https://gitlab.freedesktop.org/slirp/libslirp/-/issues/24 +SLIRP_SITE = https://elmarco.fedorapeople.org +SLIRP_LICENSE = BSD-3-Clause +SLIRP_LICENSE_FILES = COPYRIGHT SLIRP_INSTALL_STAGING = YES +SLIRP_DEPENDENCIES = libglib2 -# As we're using the git tree, there's no ./configure, -# so we need to autoreconf. -SLIRP_AUTORECONF = YES - -$(eval $(autotools-package)) +$(eval $(meson-package)) diff --git a/buildroot/package/stress-ng/stress-ng.mk b/buildroot/package/stress-ng/stress-ng.mk index 57464e9bb..4afdb0a32 100644 --- a/buildroot/package/stress-ng/stress-ng.mk +++ b/buildroot/package/stress-ng/stress-ng.mk @@ -10,8 +10,11 @@ STRESS_NG_SITE = http://kernel.ubuntu.com/~cking/tarballs/stress-ng STRESS_NG_LICENSE = GPL-2.0+ STRESS_NG_LICENSE_FILES = COPYING -ifeq ($(BR2_PACKAGE_LIBBSD),y) +ifeq ($(BR2_PACKAGE_LIBBSD):$(BR2_STATIC_LIBS),y:) STRESS_NG_DEPENDENCIES += libbsd +else +STRESS_NG_MAKE_OPTS += HAVE_LIB_BSD=0 HAVE_WCSLCAT=0 \ + HAVE_WCSLCPY=0 HAVE_SETPROCTITLE=0 endif ifeq ($(BR2_PACKAGE_KEYUTILS),y) @@ -19,7 +22,7 @@ STRESS_NG_DEPENDENCIES += keyutils endif define STRESS_NG_BUILD_CMDS - $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) + $(TARGET_CONFIGURE_OPTS) $(MAKE) $(STRESS_NG_MAKE_OPTS) -C $(@D) endef # Don't use make install otherwise stress-ng will be rebuild without diff --git a/buildroot/package/suricata/suricata.mk b/buildroot/package/suricata/suricata.mk index f131fad1b..94c4784dd 100644 --- a/buildroot/package/suricata/suricata.mk +++ b/buildroot/package/suricata/suricata.mk @@ -43,6 +43,10 @@ SURICATA_CONF_OPTS = \ # download through wget/curl) SURICATA_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install install-conf +ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) +SURICATA_CONF_ENV += LIBS=-latomic +endif + ifeq ($(BR2_PACKAGE_FILE),y) SURICATA_DEPENDENCIES += file SURICATA_CONF_OPTS += --enable-libmagic diff --git a/buildroot/package/systemd/0001-update-done-Do-not-fail-with-read-only-etc-or-var.patch b/buildroot/package/systemd/0001-update-done-Do-not-fail-with-read-only-etc-or-var.patch new file mode 100644 index 000000000..01e7f1e90 --- /dev/null +++ b/buildroot/package/systemd/0001-update-done-Do-not-fail-with-read-only-etc-or-var.patch @@ -0,0 +1,34 @@ +From e2a23672a1bbf4d3411dce0289051b5a72bd4a67 Mon Sep 17 00:00:00 2001 +From: Felix Riemann +Date: Mon, 19 Oct 2020 18:54:53 +0200 +Subject: [PATCH] update-done: Do not fail with read-only /etc or /var + +With the switch from log_debug() to log_debug_errno() in commit c413bb28df +systemd-update-done would fail without any error message if /etc +or /var were read-only. This restores the previous behaviour to +silently ignore these directories again. + +[Romain: backport from 1eee15c3885fcc9f6a40df7e42347cb8fca71280] +Signed-off-by: Romain Naour +--- + src/update-done/update-done.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/update-done/update-done.c b/src/update-done/update-done.c +index e9d589e0e5..92c348d83b 100644 +--- a/src/update-done/update-done.c ++++ b/src/update-done/update-done.c +@@ -31,8 +31,8 @@ static int apply_timestamp(const char *path, struct timespec *ts) { + + r = write_string_file_atomic_label_ts(path, message, ts); + if (r == -EROFS) +- return log_debug_errno(r, "Cannot create \"%s\", file system is read-only.", path); +- if (r < 0) ++ log_debug_errno(r, "Cannot create \"%s\", file system is read-only.", path); ++ else if (r < 0) + return log_error_errno(r, "Failed to write \"%s\": %m", path); + return 0; + } +-- +2.25.4 + diff --git a/buildroot/package/tcpdump/0001-PPP-When-un-escaping-don-t-allocate-a-too-large-buffer.patch b/buildroot/package/tcpdump/0001-PPP-When-un-escaping-don-t-allocate-a-too-large-buffer.patch new file mode 100644 index 000000000..9e8674ac9 --- /dev/null +++ b/buildroot/package/tcpdump/0001-PPP-When-un-escaping-don-t-allocate-a-too-large-buffer.patch @@ -0,0 +1,67 @@ +From 32027e199368dad9508965aae8cd8de5b6ab5231 Mon Sep 17 00:00:00 2001 +From: Guy Harris +Date: Sat, 18 Apr 2020 14:04:59 -0700 +Subject: [PATCH] PPP: When un-escaping, don't allocate a too-large buffer. + +The buffer should be big enough to hold the captured data, but it +doesn't need to be big enough to hold the entire on-the-network packet, +if we haven't captured all of it. + +(backported from commit e4add0b010ed6f2180dcb05a13026242ed935334) + +[Retrieved from: +https://github.com/the-tcpdump-group/tcpdump/commit/32027e199368dad9508965aae8cd8de5b6ab5231] +Signed-off-by: Fabrice Fontaine +--- + print-ppp.c | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +diff --git a/print-ppp.c b/print-ppp.c +index 891761728..33fb03412 100644 +--- a/print-ppp.c ++++ b/print-ppp.c +@@ -1367,19 +1367,29 @@ print_bacp_config_options(netdissect_options *ndo, + return 0; + } + ++/* ++ * Un-escape RFC 1662 PPP in HDLC-like framing, with octet escapes. ++ * The length argument is the on-the-wire length, not the captured ++ * length; we can only un-escape the captured part. ++ */ + static void + ppp_hdlc(netdissect_options *ndo, + const u_char *p, int length) + { ++ u_int caplen = ndo->ndo_snapend - p; + u_char *b, *t, c; + const u_char *s; +- int i, proto; ++ u_int i; ++ int proto; + const void *se; + ++ if (caplen == 0) ++ return; ++ + if (length <= 0) + return; + +- b = (u_char *)malloc(length); ++ b = (u_char *)malloc(caplen); + if (b == NULL) + return; + +@@ -1388,10 +1398,10 @@ ppp_hdlc(netdissect_options *ndo, + * Do this so that we dont overwrite the original packet + * contents. + */ +- for (s = p, t = b, i = length; i > 0 && ND_TTEST(*s); i--) { ++ for (s = p, t = b, i = caplen; i != 0; i--) { + c = *s++; + if (c == 0x7d) { +- if (i <= 1 || !ND_TTEST(*s)) ++ if (i <= 1) + break; + i--; + c = *s++ ^ 0x20; diff --git a/buildroot/package/tcpdump/tcpdump.mk b/buildroot/package/tcpdump/tcpdump.mk index 01a46b9b5..8db35694e 100644 --- a/buildroot/package/tcpdump/tcpdump.mk +++ b/buildroot/package/tcpdump/tcpdump.mk @@ -18,6 +18,9 @@ TCPDUMP_CONF_OPTS = \ $(if $(BR2_PACKAGE_TCPDUMP_SMB),--enable-smb,--disable-smb) TCPDUMP_DEPENDENCIES = libpcap +# 0001-PPP-When-un-escaping-don-t-allocate-a-too-large-buffer.patch +TCPDUMP_IGNORE_CVES += CVE-2020-8037 + ifeq ($(BR2_STATIC_LIBS),y) TCPDUMP_CONF_OPTS += LIBS="`$(STAGING_DIR)/usr/bin/pcap-config --static --additional-libs`" endif diff --git a/buildroot/package/tinyproxy/tinyproxy.hash b/buildroot/package/tinyproxy/tinyproxy.hash index 099c97488..809674159 100644 --- a/buildroot/package/tinyproxy/tinyproxy.hash +++ b/buildroot/package/tinyproxy/tinyproxy.hash @@ -1,2 +1,3 @@ # locally computed -sha256 a23a8f647f622f01e51b93fa882ea5a15c20e026d45c3aafa81ec579e464daf7 tinyproxy-1.10.0.tar.bz2 +sha256 a23a8f647f622f01e51b93fa882ea5a15c20e026d45c3aafa81ec579e464daf7 tinyproxy-1.10.0.tar.bz2 +sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING diff --git a/buildroot/package/tmux/0001-Do-not-write-after-the-end-of-the-array-and-overwrit.patch b/buildroot/package/tmux/0001-Do-not-write-after-the-end-of-the-array-and-overwrit.patch new file mode 100644 index 000000000..d169322ed --- /dev/null +++ b/buildroot/package/tmux/0001-Do-not-write-after-the-end-of-the-array-and-overwrit.patch @@ -0,0 +1,35 @@ +From a868bacb46e3c900530bed47a1c6f85b0fbe701c Mon Sep 17 00:00:00 2001 +From: nicm +Date: Thu, 29 Oct 2020 16:33:01 +0000 +Subject: [PATCH] Do not write after the end of the array and overwrite the + stack when colon-separated SGR sequences contain empty arguments. Reported by + Sergey Nizovtsev. + +[Peter: Fixes CVE-2020-27347] +Signed-off-by: Peter Korsgaard +--- + input.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/input.c b/input.c +index 42a60c92..c280c0d9 100644 +--- a/input.c ++++ b/input.c +@@ -1976,8 +1976,13 @@ input_csi_dispatch_sgr_colon(struct input_ctx *ictx, u_int i) + free(copy); + return; + } +- } else ++ } else { + n++; ++ if (n == nitems(p)) { ++ free(copy); ++ return; ++ } ++ } + log_debug("%s: %u = %d", __func__, n - 1, p[n - 1]); + } + free(copy); +-- +2.20.1 + diff --git a/buildroot/package/tmux/tmux.mk b/buildroot/package/tmux/tmux.mk index 169c9bb83..00e77ad76 100644 --- a/buildroot/package/tmux/tmux.mk +++ b/buildroot/package/tmux/tmux.mk @@ -10,6 +10,9 @@ TMUX_LICENSE = ISC TMUX_LICENSE_FILES = COPYING TMUX_DEPENDENCIES = libevent ncurses host-pkgconf +# 0001-Do-not-write-after-the-end-of-the-array-and-overwrit.patch +TMUX_IGNORE_CVES += CVE-2020-27347 + # Add /usr/bin/tmux to /etc/shells otherwise some login tools like dropbear # can reject the user connection. See man shells. define TMUX_ADD_TMUX_TO_SHELLS diff --git a/buildroot/package/tor/tor.hash b/buildroot/package/tor/tor.hash index ddf1a880f..7aa7280f2 100644 --- a/buildroot/package/tor/tor.hash +++ b/buildroot/package/tor/tor.hash @@ -1,3 +1,3 @@ # Locally computed -sha256 a45ca00afe765e3baa839767c9dd6ac9a46dd01720a3a8ff4d86558c12359926 tor-0.4.4.5.tar.gz +sha256 5f154c155803adf5c89e87cab53017b6908c5ebe50c65839e8cf4fbd2abe1fdc tor-0.4.4.6.tar.gz sha256 ae2afe6cd3fd9d512afbaa1ef218757eb00aa6b6aa5e2dfc2774b6837e373fa1 LICENSE diff --git a/buildroot/package/tor/tor.mk b/buildroot/package/tor/tor.mk index fe9b52670..b7095aa39 100644 --- a/buildroot/package/tor/tor.mk +++ b/buildroot/package/tor/tor.mk @@ -4,7 +4,7 @@ # ################################################################################ -TOR_VERSION = 0.4.4.5 +TOR_VERSION = 0.4.4.6 TOR_SITE = https://dist.torproject.org TOR_LICENSE = BSD-3-Clause TOR_LICENSE_FILES = LICENSE diff --git a/buildroot/package/uclibc/Config.in b/buildroot/package/uclibc/Config.in index 494758bd9..e59fef3c6 100644 --- a/buildroot/package/uclibc/Config.in +++ b/buildroot/package/uclibc/Config.in @@ -107,7 +107,6 @@ config BR2_UCLIBC_TARGET_ARCH default "i386" if BR2_i386 default "x86_64" if BR2_x86_64 default "riscv64" if BR2_RISCV_64 - default "riscv32" if BR2_RISCV_32 config BR2_UCLIBC_MIPS_ABI string diff --git a/buildroot/package/waf/waf.hash b/buildroot/package/waf/waf.hash index 15db32f38..afca0f31b 100644 --- a/buildroot/package/waf/waf.hash +++ b/buildroot/package/waf/waf.hash @@ -1,3 +1,4 @@ # Locally computed sha1 92212071a63ce38fdfd69fb8332f04e84d1f6635 waf-2.0.20 sha256 bf971e98edc2414968a262c6aa6b88541a26c3cd248689c89f4c57370955ee7f waf-2.0.20 +sha256 bf971e98edc2414968a262c6aa6b88541a26c3cd248689c89f4c57370955ee7f waf diff --git a/buildroot/package/waf/waf.mk b/buildroot/package/waf/waf.mk index 56b6d9e03..9c5e72d9e 100644 --- a/buildroot/package/waf/waf.mk +++ b/buildroot/package/waf/waf.mk @@ -7,6 +7,8 @@ WAF_VERSION = 2.0.20 WAF_SOURCE = waf-$(WAF_VERSION) WAF_SITE = https://waf.io +WAF_LICENSE = BSD-3-Clause +WAF_LICENSE_FILES = waf define HOST_WAF_EXTRACT_CMDS $(INSTALL) -D -m 0755 $(HOST_WAF_DL_DIR)/waf-$(WAF_VERSION) $(@D)/waf diff --git a/buildroot/package/webkitgtk/webkitgtk.mk b/buildroot/package/webkitgtk/webkitgtk.mk index 1f8582daf..84078f8b9 100644 --- a/buildroot/package/webkitgtk/webkitgtk.mk +++ b/buildroot/package/webkitgtk/webkitgtk.mk @@ -66,7 +66,7 @@ ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) WEBKITGTK_CONF_OPTS += \ -DENABLE_ACCELERATED_2D_CANVAS=ON \ -DENABLE_GLES2=OFF \ - -DENABLE_OPENGL=ON \ + -DENABLE_GRAPHICS_CONTEXT_GL=ON \ -DENABLE_X11_TARGET=ON WEBKITGTK_DEPENDENCIES += libgl \ xlib_libXcomposite xlib_libXdamage xlib_libXrender xlib_libXt @@ -84,13 +84,13 @@ WEBKITGTK_DEPENDENCIES += libegl ifeq ($(BR2_PACKAGE_HAS_LIBGLES),y) WEBKITGTK_CONF_OPTS += \ -DENABLE_GLES2=ON \ - -DENABLE_OPENGL=ON + -DENABLE_GRAPHICS_CONTEXT_GL=ON WEBKITGTK_DEPENDENCIES += libgles else # Disable general OpenGL (shading) if there's no GLESv2 WEBKITGTK_CONF_OPTS += \ -DENABLE_GLES2=OFF \ - -DENABLE_OPENGL=OFF + -DENABLE_GRAPHICS_CONTEXT_GL=OFF endif # We must explicitly state the wayland target ifeq ($(BR2_PACKAGE_LIBGTK3_WAYLAND),y) @@ -104,6 +104,13 @@ else WEBKITGTK_CONF_OPTS += -DUSE_GSTREAMER_GL=OFF endif +ifeq ($(BR2_INIT_SYSTEMD),y) +WEBKITGTK_CONF_OPTS += -DUSE_SYSTEMD=ON +WEBKITGTK_DEPENDENCIES += systemd +else +WEBKITGTK_CONF_OPTS += -DUSE_SYSTEMD=OFF +endif + # JIT is not supported for MIPS r6, but the WebKit build system does not # have a check for these processors. The same goes for ARMv5 and ARMv6. # Disable JIT forcibly here and use the CLoop interpreter instead. diff --git a/buildroot/package/wireguard-linux-compat/wireguard-linux-compat.hash b/buildroot/package/wireguard-linux-compat/wireguard-linux-compat.hash index 833e1af2f..8895875cf 100644 --- a/buildroot/package/wireguard-linux-compat/wireguard-linux-compat.hash +++ b/buildroot/package/wireguard-linux-compat/wireguard-linux-compat.hash @@ -1,4 +1,4 @@ -# https://lists.zx2c4.com/pipermail/wireguard/2020-September/005817.html -sha256 ad33b2d2267a37e0f65c97e65e7d4d926d5aef7d530c251b63fbf919048eead9 wireguard-linux-compat-1.0.20200908.tar.xz +# https://lists.zx2c4.com/pipermail/wireguard/2020-November/005997.html +sha256 89eae7f0c0bd6c8df3ba2e090984974ff68741a9f26aa0922890f8ca727897e1 wireguard-linux-compat-1.0.20201112.tar.xz # Locally calculated sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING diff --git a/buildroot/package/wireguard-linux-compat/wireguard-linux-compat.mk b/buildroot/package/wireguard-linux-compat/wireguard-linux-compat.mk index 082d10c53..76585e0bc 100644 --- a/buildroot/package/wireguard-linux-compat/wireguard-linux-compat.mk +++ b/buildroot/package/wireguard-linux-compat/wireguard-linux-compat.mk @@ -4,7 +4,7 @@ # ################################################################################ -WIREGUARD_LINUX_COMPAT_VERSION = 1.0.20200908 +WIREGUARD_LINUX_COMPAT_VERSION = 1.0.20201112 WIREGUARD_LINUX_COMPAT_SITE = https://git.zx2c4.com/wireguard-linux-compat/snapshot WIREGUARD_LINUX_COMPAT_SOURCE = wireguard-linux-compat-$(WIREGUARD_LINUX_COMPAT_VERSION).tar.xz WIREGUARD_LINUX_COMPAT_LICENSE = GPL-2.0 diff --git a/buildroot/package/wpewebkit/0002-WebProcess-InjectedBundle-fix-compile-without-video-.patch b/buildroot/package/wpewebkit/0002-WebProcess-InjectedBundle-fix-compile-without-video-.patch new file mode 100644 index 000000000..e684c4e3e --- /dev/null +++ b/buildroot/package/wpewebkit/0002-WebProcess-InjectedBundle-fix-compile-without-video-.patch @@ -0,0 +1,42 @@ +From 1ca7dea56db25969844699bc82fe7c78cb3d2eda Mon Sep 17 00:00:00 2001 +From: Peter Seiderer +Date: Tue, 10 Nov 2020 23:06:45 +0100 +Subject: [PATCH] WebProcess/InjectedBundle: fix compile without video support +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes: + + .../wpewebkit-2.30.2/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp:242:30: error: ‘class WebCore::Settings’ has no member named ‘setGenericCueAPIEnabled’; did you mean ‘setBeaconAPIEnabled’? + page->settings().setGenericCueAPIEnabled(enabled); + ^~~~~~~~~~~~~~~~~~~~~~~ + setBeaconAPIEnabled + +Signed-off-by: Peter Seiderer +--- + Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp b/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp +index 61326f2e..d7776997 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp +@@ -236,12 +236,14 @@ void InjectedBundle::overrideBoolPreferenceForTestRunner(WebPageGroupProxy* page + RuntimeEnabledFeatures::sharedFeatures().setWebRTCMDNSICECandidatesEnabled(enabled); + #endif + ++#if ENABLE(VIDEO) + if (preference == "WebKitGenericCueAPIEnabled") { + WebPreferencesStore::overrideBoolValueForKey(WebPreferencesKey::genericCueAPIEnabledKey(), enabled); + for (auto* page : pages) + page->settings().setGenericCueAPIEnabled(enabled); + return; + } ++#endif + + #if ENABLE(GPU_PROCESS) + if (preference == "WebKitUseGPUProcessForMedia" || preference == "WebKitCaptureAudioInGPUProcessEnabledKey") { +-- +2.29.2 + diff --git a/buildroot/package/wpewebkit/wpewebkit.mk b/buildroot/package/wpewebkit/wpewebkit.mk index 6233505ca..6f83775e9 100644 --- a/buildroot/package/wpewebkit/wpewebkit.mk +++ b/buildroot/package/wpewebkit/wpewebkit.mk @@ -63,6 +63,13 @@ else WPEWEBKIT_CONF_OPTS += -DUSE_WOFF2=OFF endif +ifeq ($(BR2_INIT_SYSTEMD),y) +WPEWEBKIT_CONF_OPTS += -DUSE_SYSTEMD=ON +WPEWEBKIT_DEPENDENCIES += systemd +else +WPEWEBKIT_CONF_OPTS += -DUSE_SYSTEMD=OFF +endif + # JIT is not supported for MIPS r6, but the WebKit build system does not # have a check for these processors. The same goes for ARMv5 and ARMv6. # Disable JIT forcibly here and use the CLoop interpreter instead. diff --git a/buildroot/package/xen/Config.in b/buildroot/package/xen/Config.in index 57ab40eba..af6acd353 100644 --- a/buildroot/package/xen/Config.in +++ b/buildroot/package/xen/Config.in @@ -28,6 +28,7 @@ config BR2_PACKAGE_XEN_TOOLS select BR2_PACKAGE_NCURSES select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_PIXMAN + select BR2_PACKAGE_SLIRP select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID select BR2_PACKAGE_YAJL diff --git a/buildroot/package/xen/xen.mk b/buildroot/package/xen/xen.mk index a30e80e5e..8cbe532d2 100644 --- a/buildroot/package/xen/xen.mk +++ b/buildroot/package/xen/xen.mk @@ -18,6 +18,7 @@ XEN_ARCH = arm32 endif XEN_CONF_OPTS = \ + --disable-golang \ --disable-ocamltools \ --with-initddir=/etc/init.d @@ -40,7 +41,8 @@ XEN_CONF_OPTS += --disable-xen endif ifeq ($(BR2_PACKAGE_XEN_TOOLS),y) -XEN_DEPENDENCIES += dtc libaio libglib2 ncurses openssl pixman util-linux yajl +XEN_DEPENDENCIES += \ + dtc libaio libglib2 ncurses openssl pixman slirp util-linux yajl ifeq ($(BR2_PACKAGE_ARGP_STANDALONE),y) XEN_DEPENDENCIES += argp-standalone endif diff --git a/buildroot/support/scripts/cve-checker b/buildroot/support/scripts/cve-checker deleted file mode 100755 index 998ea5b8a..000000000 --- a/buildroot/support/scripts/cve-checker +++ /dev/null @@ -1,196 +0,0 @@ -#!/usr/bin/env python - -# Copyright (C) 2009 by Thomas Petazzoni -# Copyright (C) 2020 by Gregory CLEMENT -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -import argparse -import datetime -import os -import json -import sys -import cve as cvecheck - - -class Package: - def __init__(self, name, version, ignored_cves): - self.name = name - self.version = version - self.cves = list() - self.ignored_cves = ignored_cves - - -def check_package_cves(nvd_path, packages): - if not os.path.isdir(nvd_path): - os.makedirs(nvd_path) - - for cve in cvecheck.CVE.read_nvd_dir(nvd_path): - for pkg_name in cve.pkg_names: - pkg = packages.get(pkg_name, '') - if pkg and cve.affects(pkg.name, pkg.version, pkg.ignored_cves) == cve.CVE_AFFECTS: - pkg.cves.append(cve.identifier) - - -html_header = """ - - - -CVE status for Buildroot configuration - - -

      -""" - - -html_footer = """ - - - -""" - - -def dump_html_pkg(f, pkg): - f.write(" \n") - f.write(" %s\n" % pkg.name) - - # Current version - if len(pkg.version) > 20: - version = pkg.version[:20] + "..." - else: - version = pkg.version - f.write(" %s\n" % version) - - # CVEs - td_class = ["centered"] - if len(pkg.cves) == 0: - td_class.append("correct") - else: - td_class.append("wrong") - f.write(" \n" % " ".join(td_class)) - for cve in pkg.cves: - f.write(" %s
      \n" % (cve, cve)) - f.write(" \n") - - f.write(" \n") - - -def dump_html_all_pkgs(f, packages): - f.write(""" - - - - - - -""") - for pkg in packages: - dump_html_pkg(f, pkg) - f.write("
      PackageVersionCVEs
      ") - - -def dump_html_gen_info(f, date): - f.write("

      Generated on %s

      \n" % (str(date))) - - -def dump_html(packages, date, output): - with open(output, 'w') as f: - f.write(html_header) - dump_html_all_pkgs(f, packages) - dump_html_gen_info(f, date) - f.write(html_footer) - - -def dump_json(packages, date, output): - # Format packages as a dictionnary instead of a list - pkgs = { - pkg.name: { - "version": pkg.version, - "cves": pkg.cves, - } for pkg in packages - } - # The actual structure to dump, add date to it - final = {'packages': pkgs, - 'date': str(date)} - with open(output, 'w') as f: - json.dump(final, f, indent=2, separators=(',', ': ')) - f.write('\n') - - -def resolvepath(path): - return os.path.abspath(os.path.expanduser(path)) - - -def parse_args(): - parser = argparse.ArgumentParser() - output = parser.add_argument_group('output', 'Output file(s)') - output.add_argument('--html', dest='html', type=resolvepath, - help='HTML output file') - output.add_argument('--json', dest='json', type=resolvepath, - help='JSON output file') - parser.add_argument('--nvd-path', dest='nvd_path', - help='Path to the local NVD database', type=resolvepath, - required=True) - args = parser.parse_args() - if not args.html and not args.json: - parser.error('at least one of --html or --json (or both) is required') - return args - - -def __main__(): - packages = list() - content = json.load(sys.stdin) - for item in content: - pkg = content[item] - p = Package(item, pkg.get('version', ''), pkg.get('ignore_cves', '')) - packages.append(p) - - args = parse_args() - date = datetime.datetime.utcnow() - - print("Checking packages CVEs") - check_package_cves(args.nvd_path, {p.name: p for p in packages}) - - if args.html: - print("Write HTML") - dump_html(packages, date, args.html) - if args.json: - print("Write JSON") - dump_json(packages, date, args.json) - - -__main__() diff --git a/buildroot/support/scripts/pkg-stats b/buildroot/support/scripts/pkg-stats index 503cc45c1..d44f8241c 100755 --- a/buildroot/support/scripts/pkg-stats +++ b/buildroot/support/scripts/pkg-stats @@ -28,7 +28,9 @@ import subprocess import json import sys -sys.path.append('utils/') +brpath = os.path.normpath(os.path.join(os.path.dirname(__file__), "..", "..")) + +sys.path.append(os.path.join(brpath, "utils")) from getdeveloperlib import parse_developers # noqa: E402 import cve as cvecheck # noqa: E402 @@ -66,7 +68,7 @@ def get_defconfig_list(): """ return [ Defconfig(name[:-len('_defconfig')], os.path.join('configs', name)) - for name in os.listdir('configs') + for name in os.listdir(os.path.join(brpath, 'configs')) if name.endswith('_defconfig') ] @@ -108,9 +110,10 @@ class Package: Fills in the .url field """ self.status['url'] = ("warning", "no Config.in") - for filename in os.listdir(os.path.dirname(self.path)): + pkgdir = os.path.dirname(os.path.join(brpath, self.path)) + for filename in os.listdir(pkgdir): if fnmatch.fnmatch(filename, 'Config.*'): - fp = open(os.path.join(os.path.dirname(self.path), filename), "r") + fp = open(os.path.join(pkgdir, filename), "r") for config_line in fp: if URL_RE.match(config_line): self.url = config_line.strip() @@ -138,7 +141,7 @@ class Package: Fills in the .infras field """ self.infras = list() - with open(self.path, 'r') as f: + with open(os.path.join(brpath, self.path), 'r') as f: lines = f.readlines() for l in lines: match = INFRA_RE.match(l) @@ -178,7 +181,7 @@ class Package: return hashpath = self.path.replace(".mk", ".hash") - if os.path.exists(hashpath): + if os.path.exists(os.path.join(brpath, hashpath)): self.status['hash'] = ("ok", "found") else: self.status['hash'] = ("error", "missing") @@ -191,7 +194,7 @@ class Package: self.status['patches'] = ("na", "no valid package infra") return - pkgdir = os.path.dirname(self.path) + pkgdir = os.path.dirname(os.path.join(brpath, self.path)) for subdir, _, _ in os.walk(pkgdir): self.patch_files = fnmatch.filter(os.listdir(subdir), '*.patch') @@ -214,8 +217,8 @@ class Package: """ Fills in the .warnings and .status['pkg-check'] fields """ - cmd = ["./utils/check-package"] - pkgdir = os.path.dirname(self.path) + cmd = [os.path.join(brpath, "utils/check-package")] + pkgdir = os.path.dirname(os.path.join(brpath, self.path)) self.status['pkg-check'] = ("error", "Missing") for root, dirs, files in os.walk(pkgdir): for f in files: @@ -300,11 +303,12 @@ def get_pkglist(npackages, package_list): "toolchain/toolchain-wrapper.mk"] packages = list() count = 0 - for root, dirs, files in os.walk("."): + for root, dirs, files in os.walk(brpath): + root = os.path.relpath(root, brpath) rootdir = root.split("/") - if len(rootdir) < 2: + if len(rootdir) < 1: continue - if rootdir[1] not in WALK_USEFUL_SUBDIRS: + if rootdir[0] not in WALK_USEFUL_SUBDIRS: continue for f in files: if not f.endswith(".mk"): @@ -316,8 +320,7 @@ def get_pkglist(npackages, package_list): pkgpath = os.path.join(root, f) skip = False for exclude in WALK_EXCLUDES: - # pkgpath[2:] strips the initial './' - if re.match(exclude, pkgpath[2:]): + if re.match(exclude, pkgpath): skip = True continue if skip: @@ -330,6 +333,12 @@ def get_pkglist(npackages, package_list): return packages +def get_config_packages(): + cmd = ["make", "--no-print-directory", "show-info"] + js = json.loads(subprocess.check_output(cmd)) + return js.keys() + + def package_init_make_info(): # Fetch all variables at once variables = subprocess.check_output(["make", "BR2_HAVE_DOT_CONFIG=y", "-s", "printvars", @@ -678,7 +687,7 @@ def boolean_str(b): def dump_html_pkg(f, pkg): f.write(" \n") - f.write(" %s\n" % pkg.path[2:]) + f.write(" %s\n" % pkg.path) # Patch count td_class = ["centered"] @@ -926,6 +935,8 @@ def parse_args(): output.add_argument('--json', dest='json', type=resolvepath, help='JSON output file') packages = parser.add_mutually_exclusive_group() + packages.add_argument('-c', dest='configpackages', action='store_true', + help='Apply to packages enabled in current configuration') packages.add_argument('-n', dest='npackages', type=int, action='store', help='Number of packages') packages.add_argument('-p', dest='packages', action='store', @@ -942,15 +953,18 @@ def __main__(): args = parse_args() if args.packages: package_list = args.packages.split(",") + elif args.configpackages: + package_list = get_config_packages() else: package_list = None date = datetime.datetime.utcnow() - commit = subprocess.check_output(['git', 'rev-parse', + commit = subprocess.check_output(['git', '-C', brpath, + 'rev-parse', 'HEAD']).splitlines()[0].decode() print("Build package list ...") packages = get_pkglist(args.npackages, package_list) print("Getting developers ...") - developers = parse_developers() + developers = parse_developers(brpath) print("Build defconfig list ...") defconfigs = get_defconfig_list() for d in defconfigs: diff --git a/buildroot/support/testing/tests/boot/test_syslinux.py b/buildroot/support/testing/tests/boot/test_syslinux.py index f25cddfb6..467d564e1 100644 --- a/buildroot/support/testing/tests/boot/test_syslinux.py +++ b/buildroot/support/testing/tests/boot/test_syslinux.py @@ -6,6 +6,7 @@ class TestSysLinuxBase(infra.basetest.BRTest): """ BR2_x86_i686=y BR2_TOOLCHAIN_EXTERNAL=y + BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://toolchains.bootlin.com/downloads/releases/toolchains/x86-i686/tarballs/x86-i686--glibc--bleeding-edge-2018.11-1.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_8=y diff --git a/buildroot/support/testing/tests/core/test_file_capabilities.py b/buildroot/support/testing/tests/core/test_file_capabilities.py index 945b48a4c..b9ece18d7 100644 --- a/buildroot/support/testing/tests/core/test_file_capabilities.py +++ b/buildroot/support/testing/tests/core/test_file_capabilities.py @@ -44,4 +44,4 @@ class TestFileCapabilities(infra.basetest.BRTest): self.assertIn("cap_kill", output[0]) self.assertIn("cap_sys_nice", output[0]) self.assertIn("cap_sys_time", output[0]) - self.assertIn("+eip", output[0]) + self.assertIn("=eip", output[0]) diff --git a/buildroot/support/testing/tests/core/test_hardening.py b/buildroot/support/testing/tests/core/test_hardening.py index edfb3315d..60e14303a 100644 --- a/buildroot/support/testing/tests/core/test_hardening.py +++ b/buildroot/support/testing/tests/core/test_hardening.py @@ -10,6 +10,7 @@ class TestHardeningBase(infra.basetest.BRTest): BR2_powerpc64=y BR2_powerpc_e5500=y BR2_TOOLCHAIN_EXTERNAL=y + BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e5500/tarballs/powerpc64-e5500--glibc--stable-2018.02-2.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_6=y diff --git a/buildroot/support/testing/tests/core/test_selinux.py b/buildroot/support/testing/tests/core/test_selinux.py index 28d99d3a6..683a424d6 100644 --- a/buildroot/support/testing/tests/core/test_selinux.py +++ b/buildroot/support/testing/tests/core/test_selinux.py @@ -5,12 +5,12 @@ import infra.basetest class TestSELinuxInfra(infra.basetest.BRTest): config = infra.basetest.BASIC_TOOLCHAIN_CONFIG +\ - """ - BR2_PACKAGE_REFPOLICY=y - BR2_PACKAGE_PYTHON3=y - BR2_PACKAGE_SETOOLS=y - BR2_TARGET_ROOTFS_CPIO=y - """ + """ + BR2_PACKAGE_REFPOLICY=y + BR2_PACKAGE_PYTHON3=y + BR2_PACKAGE_SETOOLS=y + BR2_TARGET_ROOTFS_CPIO=y + """ def base_test_run(self): cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") @@ -18,11 +18,12 @@ class TestSELinuxInfra(infra.basetest.BRTest): options=["-initrd", cpio_file]) self.emulator.login() + class TestSELinuxExtraModules(TestSELinuxInfra): config = TestSELinuxInfra.config + \ - """ - BR2_REFPOLICY_EXTRA_MODULES="ntp tor" - """ + """ + BR2_REFPOLICY_EXTRA_MODULES="ntp tor" + """ def test_run(self): TestSELinuxInfra.base_test_run(self) @@ -35,11 +36,12 @@ class TestSELinuxExtraModules(TestSELinuxInfra): self.assertEqual(ret, 0) self.assertEqual(out[2].strip(), "tor_t") + class TestSELinuxExtraModulesDirs(TestSELinuxInfra): config = TestSELinuxInfra.config + \ - """ - BR2_REFPOLICY_EXTRA_MODULES_DIRS="{}" - """.format(infra.filepath("tests/core/test_selinux/extra_modules")) + """ + BR2_REFPOLICY_EXTRA_MODULES_DIRS="{}" + """.format(infra.filepath("tests/core/test_selinux/extra_modules")) def test_run(self): TestSELinuxInfra.base_test_run(self) @@ -48,23 +50,25 @@ class TestSELinuxExtraModulesDirs(TestSELinuxInfra): self.assertEqual(ret, 0) self.assertEqual(out[2].strip(), "buildroot_test_t") + class TestSELinuxCustomGit(TestSELinuxInfra): config = TestSELinuxInfra.config + \ - """ - BR2_PACKAGE_REFPOLICY_CUSTOM_GIT=y - BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_URL="https://github.com/SELinuxProject/refpolicy.git" - BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_VERSION="RELEASE_2_20200818" - """ + """ + BR2_PACKAGE_REFPOLICY_CUSTOM_GIT=y + BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_URL="https://github.com/SELinuxProject/refpolicy.git" + BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_VERSION="RELEASE_2_20200818" + """ def test_run(self): pass + class TestSELinuxPackage(TestSELinuxInfra): br2_external = [infra.filepath("tests/core/test_selinux/br2_external")] config = TestSELinuxInfra.config + \ - """ - BR2_PACKAGE_SELINUX_TEST=y - """ + """ + BR2_PACKAGE_SELINUX_TEST=y + """ def test_run(self): TestSELinuxInfra.base_test_run(self) diff --git a/buildroot/support/testing/tests/init/test_systemd.py b/buildroot/support/testing/tests/init/test_systemd.py index 371be4ad7..c0ef5e120 100644 --- a/buildroot/support/testing/tests/init/test_systemd.py +++ b/buildroot/support/testing/tests/init/test_systemd.py @@ -91,7 +91,6 @@ class TestInitSystemSystemdRwIfupdown(InitSystemSystemdBase): """ BR2_SYSTEM_DHCP="eth0" # BR2_PACKAGE_SYSTEMD_NETWORKD is not set - # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set BR2_TARGET_ROOTFS_EXT2=y """ @@ -106,7 +105,7 @@ class TestInitSystemSystemdRoFull(InitSystemSystemdBase): """ BR2_SYSTEM_DHCP="eth0" # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set - BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY=y + BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE=y BR2_PACKAGE_SYSTEMD_BACKLIGHT=y BR2_PACKAGE_SYSTEMD_BINFMT=y BR2_PACKAGE_SYSTEMD_COREDUMP=y @@ -136,7 +135,7 @@ class TestInitSystemSystemdRwFull(InitSystemSystemdBase): config = InitSystemSystemdBase.config + \ """ BR2_SYSTEM_DHCP="eth0" - BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY=y + BR2_PACKAGE_SYSTEMD_JOURNAL_REMOTE=y BR2_PACKAGE_SYSTEMD_BACKLIGHT=y BR2_PACKAGE_SYSTEMD_BINFMT=y BR2_PACKAGE_SYSTEMD_COREDUMP=y diff --git a/buildroot/support/testing/tests/init/test_systemd_selinux.py b/buildroot/support/testing/tests/init/test_systemd_selinux.py index 9a98a3282..73604cfc3 100644 --- a/buildroot/support/testing/tests/init/test_systemd_selinux.py +++ b/buildroot/support/testing/tests/init/test_systemd_selinux.py @@ -50,6 +50,7 @@ class TestSELinuxSystemd(infra.basetest.BRTest): self.assertEqual(ret, 0) self.assertEqual(out[0], "system_u:system_r:init_t\0") + class TestSELinuxSystemdExt4(TestSELinuxSystemd): config = TestSELinuxSystemd.config + \ """ @@ -61,6 +62,7 @@ class TestSELinuxSystemdExt4(TestSELinuxSystemd): def test_run(self): self.run_tests("ext4") + class TestSELinuxSystemdSquashfs(TestSELinuxSystemd): config = TestSELinuxSystemd.config + \ """ diff --git a/buildroot/toolchain/toolchain-buildroot/Config.in b/buildroot/toolchain/toolchain-buildroot/Config.in index f34dd84c2..2058ff1eb 100644 --- a/buildroot/toolchain/toolchain-buildroot/Config.in +++ b/buildroot/toolchain/toolchain-buildroot/Config.in @@ -31,7 +31,7 @@ config BR2_TOOLCHAIN_BUILDROOT_UCLIBC BR2_arm || BR2_armeb || \ BR2_i386 || BR2_m68k || BR2_microblaze || \ BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \ - BR2_or1k || BR2_powerpc || BR2_riscv || BR2_sh2a || \ + BR2_or1k || BR2_powerpc || BR2_RISCV_64 || BR2_sh2a || \ BR2_sh4 || BR2_sh4eb || BR2_sparc || BR2_xtensa || \ BR2_x86_64 select BR2_TOOLCHAIN_USES_UCLIBC diff --git a/buildroot/toolchain/toolchain-external/toolchain-external-arm-arm/Config.in b/buildroot/toolchain/toolchain-external/toolchain-external-arm-arm/Config.in index 4748ab53a..29509635a 100644 --- a/buildroot/toolchain/toolchain-external/toolchain-external-arm-arm/Config.in +++ b/buildroot/toolchain/toolchain-external/toolchain-external-arm-arm/Config.in @@ -1,12 +1,13 @@ -comment "Arm toolchains available for Cortex-A + EABIhf" +comment "Arm toolchains available for Cortex-A with NEON + EABIhf" depends on BR2_arm - depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF + depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF || !BR2_ARM_CPU_HAS_NEON depends on !BR2_STATIC_LIBS config BR2_TOOLCHAIN_EXTERNAL_ARM_ARM bool "Arm ARM 2019.12" depends on BR2_arm depends on BR2_ARM_CPU_ARMV7A || BR2_ARM_CPU_ARMV8A + depends on BR2_ARM_CPU_HAS_NEON depends on BR2_HOSTARCH = "x86_64" depends on BR2_ARM_EABIHF depends on !BR2_STATIC_LIBS @@ -20,10 +21,10 @@ config BR2_TOOLCHAIN_EXTERNAL_ARM_ARM select BR2_TOOLCHAIN_HAS_OPENMP help Arm toolchain for the ARM architecture. It uses GCC 9.2.1, - GDB 8.3.0, glibc 2.30, Binutils 2.33.1. It generates code that - runs on all Cortex-A profile devices, but tuned for the - Cortex-A9. The code generated uses the hard floating point - calling convention, and uses the VFPv3-D16 FPU instructions. + GDB 8.3.0, glibc 2.30, Binutils 2.33.1. It generates code + that runs on all Cortex-A profile devices. The code + generated uses the hard floating point calling convention, + and uses the NEON FPU instructions. This is the same toolchain that was previously distributed by Linaro.