From 86598c849cb5ea6a6132ef4885584f48094b809f Mon Sep 17 00:00:00 2001 From: Andrej Valek Date: Thu, 26 Jan 2023 13:46:45 -0800 Subject: busybox: 1.35.0 -> 1.36.0 - update to next (un)stable version 1.36.0 - refresh defconfig - disable new applets (tree, tsort, seedrng) - use hw-accel for sha1/256 sums when available - remove and refresh already merged patches (From OE-Core rev: 2e9989a8f8b5b93476e551475df010add32aac31) Signed-off-by: Andrej Valek Signed-off-by: Khem Raj Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- .../recipes-core/busybox/busybox-inittab_1.35.0.bb | 85 -------------- .../recipes-core/busybox/busybox-inittab_1.36.0.bb | 85 ++++++++++++++ .../busybox/0001-devmem-add-128-bit-width.patch | 128 --------------------- .../busybox/busybox/CVE-2022-30065.patch | 29 ----- meta/recipes-core/busybox/busybox/defconfig | 10 +- .../busybox/busybox/recognize_connmand.patch | 10 +- meta/recipes-core/busybox/busybox/sha1sum.cfg | 2 + meta/recipes-core/busybox/busybox/sha256sum.cfg | 1 + meta/recipes-core/busybox/busybox_1.35.0.bb | 57 --------- meta/recipes-core/busybox/busybox_1.36.0.bb | 55 +++++++++ 10 files changed, 156 insertions(+), 306 deletions(-) delete mode 100644 meta/recipes-core/busybox/busybox-inittab_1.35.0.bb create mode 100644 meta/recipes-core/busybox/busybox-inittab_1.36.0.bb delete mode 100644 meta/recipes-core/busybox/busybox/0001-devmem-add-128-bit-width.patch delete mode 100644 meta/recipes-core/busybox/busybox/CVE-2022-30065.patch delete mode 100644 meta/recipes-core/busybox/busybox_1.35.0.bb create mode 100644 meta/recipes-core/busybox/busybox_1.36.0.bb (limited to 'meta/recipes-core/busybox') diff --git a/meta/recipes-core/busybox/busybox-inittab_1.35.0.bb b/meta/recipes-core/busybox/busybox-inittab_1.35.0.bb deleted file mode 100644 index 868d7a230f..0000000000 --- a/meta/recipes-core/busybox/busybox-inittab_1.35.0.bb +++ /dev/null @@ -1,85 +0,0 @@ -SUMMARY = "inittab configuration for BusyBox" -LICENSE = "GPL-2.0-only" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" - -SRC_URI = "file://inittab" - -S = "${WORKDIR}" - -INHIBIT_DEFAULT_DEPS = "1" - -do_compile() { - : -} - -do_install() { - install -d ${D}${sysconfdir} - install -D -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab - tmp="${SERIAL_CONSOLES}" - [ -n "$tmp" ] && echo >> ${D}${sysconfdir}/inittab - for i in $tmp - do - j=`echo ${i} | sed s/\;/\ /g` - id=`echo ${i} | sed -e 's/^.*;//' -e 's/;.*//'` - echo "$id::respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab - done - if [ "${USE_VT}" = "1" ]; then - cat <>${D}${sysconfdir}/inittab -# ${base_sbindir}/getty invocations for the runlevels. -# -# The "id" field MUST be the same as the last -# characters of the device (after "tty"). -# -# Format: -# ::: -# - -EOF - - for n in ${SYSVINIT_ENABLED_GETTYS} - do - echo "tty$n:12345:respawn:${base_sbindir}/getty 38400 tty$n" >> ${D}${sysconfdir}/inittab - done - echo "" >> ${D}${sysconfdir}/inittab - fi - -} - -pkg_postinst:${PN} () { -# run this on host and on target -if [ "${SERIAL_CONSOLES_CHECK}" = "" ]; then - exit 0 -fi -} - -pkg_postinst_ontarget:${PN} () { -# run this on the target -if [ -e /proc/consoles ]; then - tmp="${SERIAL_CONSOLES_CHECK}" - for i in $tmp - do - j=`echo ${i} | sed -e s/^.*\;//g -e s/\:.*//g` - k=`echo ${i} | sed s/^.*\://g` - if [ -z "`grep ${j} /proc/consoles`" ]; then - if [ -z "${k}" ] || [ -z "`grep ${k} /proc/consoles`" ] || [ ! -e /dev/${j} ]; then - sed -i -e /^.*${j}\ /d -e /^.*${j}$/d /etc/inittab - fi - fi - done - kill -HUP 1 -else - exit 1 -fi -} - -# SERIAL_CONSOLES is generally defined by the MACHINE .conf. -# Set PACKAGE_ARCH appropriately. -PACKAGE_ARCH = "${MACHINE_ARCH}" - -FILES:${PN} = "${sysconfdir}/inittab" -CONFFILES:${PN} = "${sysconfdir}/inittab" - -RCONFLICTS:${PN} = "sysvinit-inittab" - -USE_VT ?= "1" -SYSVINIT_ENABLED_GETTYS ?= "1" diff --git a/meta/recipes-core/busybox/busybox-inittab_1.36.0.bb b/meta/recipes-core/busybox/busybox-inittab_1.36.0.bb new file mode 100644 index 0000000000..868d7a230f --- /dev/null +++ b/meta/recipes-core/busybox/busybox-inittab_1.36.0.bb @@ -0,0 +1,85 @@ +SUMMARY = "inittab configuration for BusyBox" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" + +SRC_URI = "file://inittab" + +S = "${WORKDIR}" + +INHIBIT_DEFAULT_DEPS = "1" + +do_compile() { + : +} + +do_install() { + install -d ${D}${sysconfdir} + install -D -m 0644 ${WORKDIR}/inittab ${D}${sysconfdir}/inittab + tmp="${SERIAL_CONSOLES}" + [ -n "$tmp" ] && echo >> ${D}${sysconfdir}/inittab + for i in $tmp + do + j=`echo ${i} | sed s/\;/\ /g` + id=`echo ${i} | sed -e 's/^.*;//' -e 's/;.*//'` + echo "$id::respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab + done + if [ "${USE_VT}" = "1" ]; then + cat <>${D}${sysconfdir}/inittab +# ${base_sbindir}/getty invocations for the runlevels. +# +# The "id" field MUST be the same as the last +# characters of the device (after "tty"). +# +# Format: +# ::: +# + +EOF + + for n in ${SYSVINIT_ENABLED_GETTYS} + do + echo "tty$n:12345:respawn:${base_sbindir}/getty 38400 tty$n" >> ${D}${sysconfdir}/inittab + done + echo "" >> ${D}${sysconfdir}/inittab + fi + +} + +pkg_postinst:${PN} () { +# run this on host and on target +if [ "${SERIAL_CONSOLES_CHECK}" = "" ]; then + exit 0 +fi +} + +pkg_postinst_ontarget:${PN} () { +# run this on the target +if [ -e /proc/consoles ]; then + tmp="${SERIAL_CONSOLES_CHECK}" + for i in $tmp + do + j=`echo ${i} | sed -e s/^.*\;//g -e s/\:.*//g` + k=`echo ${i} | sed s/^.*\://g` + if [ -z "`grep ${j} /proc/consoles`" ]; then + if [ -z "${k}" ] || [ -z "`grep ${k} /proc/consoles`" ] || [ ! -e /dev/${j} ]; then + sed -i -e /^.*${j}\ /d -e /^.*${j}$/d /etc/inittab + fi + fi + done + kill -HUP 1 +else + exit 1 +fi +} + +# SERIAL_CONSOLES is generally defined by the MACHINE .conf. +# Set PACKAGE_ARCH appropriately. +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES:${PN} = "${sysconfdir}/inittab" +CONFFILES:${PN} = "${sysconfdir}/inittab" + +RCONFLICTS:${PN} = "sysvinit-inittab" + +USE_VT ?= "1" +SYSVINIT_ENABLED_GETTYS ?= "1" diff --git a/meta/recipes-core/busybox/busybox/0001-devmem-add-128-bit-width.patch b/meta/recipes-core/busybox/busybox/0001-devmem-add-128-bit-width.patch deleted file mode 100644 index 985e2bf1d9..0000000000 --- a/meta/recipes-core/busybox/busybox/0001-devmem-add-128-bit-width.patch +++ /dev/null @@ -1,128 +0,0 @@ -From d432049f288c9acdc4a7caa729c68ceba3c5dca1 Mon Sep 17 00:00:00 2001 -From: Aaro Koskinen -Date: Thu, 25 Aug 2022 18:47:02 +0300 -Subject: [PATCH] devmem: add 128-bit width - -Add 128-bit width if the compiler provides the needed type. - -function old new delta -devmem_main 405 464 +59 -.rodata 109025 109043 +18 ------------------------------------------------------------------------------- -(add/remove: 0/0 grow/shrink: 2/0 up/down: 77/0) Total: 77 bytes - -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=d432049f288c9acdc4a7caa729c68ceba3c5dca1] - -Signed-off-by: Aaro Koskinen -Signed-off-by: Aaro Koskinen -Signed-off-by: Denys Vlasenko -Signed-off-by: Mingli Yu ---- - miscutils/devmem.c | 68 ++++++++++++++++++++++++++++++---------------- - 1 file changed, 44 insertions(+), 24 deletions(-) - -diff --git a/miscutils/devmem.c b/miscutils/devmem.c -index f9f0276bc..f21621bd6 100644 ---- a/miscutils/devmem.c -+++ b/miscutils/devmem.c -@@ -29,7 +29,6 @@ int devmem_main(int argc UNUSED_PARAM, char **argv) - { - void *map_base, *virt_addr; - uint64_t read_result; -- uint64_t writeval = writeval; /* for compiler */ - off_t target; - unsigned page_size, mapped_size, offset_in_page; - int fd; -@@ -64,9 +63,6 @@ int devmem_main(int argc UNUSED_PARAM, char **argv) - width = strchrnul(bhwl, (argv[2][0] | 0x20)) - bhwl; - width = sizes[width]; - } -- /* VALUE */ -- if (argv[3]) -- writeval = bb_strtoull(argv[3], NULL, 0); - } else { /* argv[2] == NULL */ - /* make argv[3] to be a valid thing to fetch */ - argv--; -@@ -96,28 +92,46 @@ int devmem_main(int argc UNUSED_PARAM, char **argv) - virt_addr = (char*)map_base + offset_in_page; - - if (!argv[3]) { -- switch (width) { -- case 8: -- read_result = *(volatile uint8_t*)virt_addr; -- break; -- case 16: -- read_result = *(volatile uint16_t*)virt_addr; -- break; -- case 32: -- read_result = *(volatile uint32_t*)virt_addr; -- break; -- case 64: -- read_result = *(volatile uint64_t*)virt_addr; -- break; -- default: -- bb_simple_error_msg_and_die("bad width"); -+#ifdef __SIZEOF_INT128__ -+ if (width == 128) { -+ unsigned __int128 rd = -+ *(volatile unsigned __int128 *)virt_addr; -+ printf("0x%016llX%016llX\n", -+ (unsigned long long)(uint64_t)(rd >> 64), -+ (unsigned long long)(uint64_t)rd -+ ); -+ } else -+#endif -+ { -+ switch (width) { -+ case 8: -+ read_result = *(volatile uint8_t*)virt_addr; -+ break; -+ case 16: -+ read_result = *(volatile uint16_t*)virt_addr; -+ break; -+ case 32: -+ read_result = *(volatile uint32_t*)virt_addr; -+ break; -+ case 64: -+ read_result = *(volatile uint64_t*)virt_addr; -+ break; -+ default: -+ bb_simple_error_msg_and_die("bad width"); -+ } -+// printf("Value at address 0x%"OFF_FMT"X (%p): 0x%llX\n", -+// target, virt_addr, -+// (unsigned long long)read_result); -+ /* Zero-padded output shows the width of access just done */ -+ printf("0x%0*llX\n", (width >> 2), (unsigned long long)read_result); - } --// printf("Value at address 0x%"OFF_FMT"X (%p): 0x%llX\n", --// target, virt_addr, --// (unsigned long long)read_result); -- /* Zero-padded output shows the width of access just done */ -- printf("0x%0*llX\n", (width >> 2), (unsigned long long)read_result); - } else { -+ /* parse VALUE */ -+#ifdef __SIZEOF_INT128__ -+ unsigned __int128 writeval = strtoumax(argv[3], NULL, 0); -+#else -+ uint64_t writeval = bb_strtoull(argv[3], NULL, 0); -+#endif - switch (width) { - case 8: - *(volatile uint8_t*)virt_addr = writeval; -@@ -135,6 +149,12 @@ int devmem_main(int argc UNUSED_PARAM, char **argv) - *(volatile uint64_t*)virt_addr = writeval; - // read_result = *(volatile uint64_t*)virt_addr; - break; -+#ifdef __SIZEOF_INT128__ -+ case 128: -+ *(volatile unsigned __int128 *)virt_addr = writeval; -+// read_result = *(volatile uint64_t*)virt_addr; -+ break; -+#endif - default: - bb_simple_error_msg_and_die("bad width"); - } --- -2.25.1 - diff --git a/meta/recipes-core/busybox/busybox/CVE-2022-30065.patch b/meta/recipes-core/busybox/busybox/CVE-2022-30065.patch deleted file mode 100644 index 25ad653b25..0000000000 --- a/meta/recipes-core/busybox/busybox/CVE-2022-30065.patch +++ /dev/null @@ -1,29 +0,0 @@ -Fix use-after-free in awk. - -CVE: CVE-2022-30065 -Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2022-June/089768.html] -Signed-off-by: Ross Burton - -fixes https://bugs.busybox.net/show_bug.cgi?id=14781 - -Signed-off-by: Natanael Copa ---- - editors/awk.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/editors/awk.c b/editors/awk.c -index 079d0bde5..728ee8685 100644 ---- a/editors/awk.c -+++ b/editors/awk.c -@@ -3128,6 +3128,9 @@ static var *evaluate(node *op, var *res) - - case XC( OC_MOVE ): - debug_printf_eval("MOVE\n"); -+ /* make sure that we never return a temp var */ -+ if (L.v == TMPVAR0) -+ L.v = res; - /* if source is a temporary string, jusk relink it to dest */ - if (R.v == TMPVAR1 - && !(R.v->type & VF_NUMBER) --- -2.36.1 diff --git a/meta/recipes-core/busybox/busybox/defconfig b/meta/recipes-core/busybox/busybox/defconfig index 5e1e1f5638..3d36447c63 100644 --- a/meta/recipes-core/busybox/busybox/defconfig +++ b/meta/recipes-core/busybox/busybox/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.35.0 -# Sun Dec 26 16:55:55 2021 +# Busybox version: 1.36.0 +# Tue Jan 3 14:17:01 2023 # CONFIG_HAVE_DOT_CONFIG=y @@ -123,6 +123,9 @@ CONFIG_UNICODE_WIDE_WCHARS=y # CONFIG_UNICODE_BIDI_SUPPORT is not set # CONFIG_UNICODE_NEUTRAL_TABLE is not set # CONFIG_UNICODE_PRESERVE_BROKEN is not set +# CONFIG_LOOP_CONFIGURE is not set +# CONFIG_NO_LOOP_CONFIGURE is not set +CONFIG_TRY_LOOP_CONFIGURE=y # # Applets @@ -338,6 +341,7 @@ CONFIG_FEATURE_TR_CLASSES=y # CONFIG_FEATURE_TR_EQUIV is not set CONFIG_TRUE=y # CONFIG_TRUNCATE is not set +# CONFIG_TSORT is not set CONFIG_TTY=y CONFIG_UNAME=y CONFIG_UNAME_OSNAME="GNU/Linux" @@ -831,10 +835,12 @@ CONFIG_MICROCOM=y CONFIG_RFKILL=y # CONFIG_RUNLEVEL is not set # CONFIG_RX is not set +# CONFIG_SEEDRNG is not set # CONFIG_SETFATTR is not set # CONFIG_SETSERIAL is not set CONFIG_STRINGS=y CONFIG_TIME=y +# CONFIG_TREE is not set CONFIG_TS=y # CONFIG_TTYSIZE is not set # CONFIG_UBIATTACH is not set diff --git a/meta/recipes-core/busybox/busybox/recognize_connmand.patch b/meta/recipes-core/busybox/busybox/recognize_connmand.patch index f42c74caad..4f28beb556 100644 --- a/meta/recipes-core/busybox/busybox/recognize_connmand.patch +++ b/meta/recipes-core/busybox/busybox/recognize_connmand.patch @@ -4,14 +4,14 @@ Upstream-Status: Inappropriate [OE-Core] Signed-off-by: Saul Wold -Index: busybox-1.22.1/networking/ifupdown.c +Index: busybox-1.36.0/networking/ifupdown.c =================================================================== ---- busybox-1.22.1.orig/networking/ifupdown.c -+++ busybox-1.22.1/networking/ifupdown.c -@@ -521,6 +521,10 @@ struct dhcp_client_t { +--- busybox-1.36.0.orig/networking/ifupdown.c ++++ busybox-1.36.0/networking/ifupdown.c +@@ -628,6 +628,10 @@ struct dhcp_client_t { }; - static const struct dhcp_client_t ext_dhcp_clients[] = { + static const struct dhcp_client_t ext_dhcp_clients[] ALIGN_PTR = { + { "connmand", + "true", + "true", diff --git a/meta/recipes-core/busybox/busybox/sha1sum.cfg b/meta/recipes-core/busybox/busybox/sha1sum.cfg index 20e72d9263..01137a2486 100644 --- a/meta/recipes-core/busybox/busybox/sha1sum.cfg +++ b/meta/recipes-core/busybox/busybox/sha1sum.cfg @@ -1 +1,3 @@ CONFIG_SHA1SUM=y +CONFIG_SHA1_SMALL=3 +CONFIG_SHA1_HWACCEL=y diff --git a/meta/recipes-core/busybox/busybox/sha256sum.cfg b/meta/recipes-core/busybox/busybox/sha256sum.cfg index ce652ae4c6..a5b0ab22d1 100644 --- a/meta/recipes-core/busybox/busybox/sha256sum.cfg +++ b/meta/recipes-core/busybox/busybox/sha256sum.cfg @@ -1 +1,2 @@ CONFIG_SHA256SUM=y +CONFIG_SHA256_HWACCEL=y diff --git a/meta/recipes-core/busybox/busybox_1.35.0.bb b/meta/recipes-core/busybox/busybox_1.35.0.bb deleted file mode 100644 index e9ca6fdb1a..0000000000 --- a/meta/recipes-core/busybox/busybox_1.35.0.bb +++ /dev/null @@ -1,57 +0,0 @@ -require busybox.inc - -SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ - file://0001-depmod-Ignore-.debug-directories.patch \ - file://busybox-udhcpc-no_deconfig.patch \ - file://find-touchscreen.sh \ - file://busybox-cron \ - file://busybox-httpd \ - file://busybox-udhcpd \ - file://default.script \ - file://simple.script \ - file://hwclock.sh \ - file://syslog \ - file://syslog-startup.conf \ - file://syslog.conf \ - file://busybox-syslog.default \ - file://mdev \ - file://mdev.conf \ - file://mdev-mount.sh \ - file://defconfig \ - file://busybox-syslog.service.in \ - file://busybox-klogd.service.in \ - file://fail_on_no_media.patch \ - file://run-ptest \ - file://inetd.conf \ - file://inetd \ - file://login-utilities.cfg \ - file://recognize_connmand.patch \ - file://busybox-cross-menuconfig.patch \ - file://mount-via-label.cfg \ - file://sha1sum.cfg \ - file://sha256sum.cfg \ - file://getopts.cfg \ - file://longopts.cfg \ - file://resize.cfg \ - ${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \ - ${@["", "file://rcS.default"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \ - ${@["", "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager') == 'busybox-mdev')]} \ - file://syslog.cfg \ - file://unicode.cfg \ - file://rev.cfg \ - file://pgrep.cfg \ - file://rcS \ - file://rcK \ - file://makefile-libbb-race.patch \ - file://0001-testsuite-check-uudecode-before-using-it.patch \ - file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \ - file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \ - file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \ - file://0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch \ - file://0002-nslookup-sanitize-all-printed-strings-with-printable.patch \ - file://CVE-2022-30065.patch \ - file://0001-devmem-add-128-bit-width.patch \ - " -SRC_URI:append:libc-musl = " file://musl.cfg " - -SRC_URI[tarball.sha256sum] = "faeeb244c35a348a334f4a59e44626ee870fb07b6884d68c10ae8bc19f83a694" diff --git a/meta/recipes-core/busybox/busybox_1.36.0.bb b/meta/recipes-core/busybox/busybox_1.36.0.bb new file mode 100644 index 0000000000..e46d43e681 --- /dev/null +++ b/meta/recipes-core/busybox/busybox_1.36.0.bb @@ -0,0 +1,55 @@ +require busybox.inc + +SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \ + file://0001-depmod-Ignore-.debug-directories.patch \ + file://busybox-udhcpc-no_deconfig.patch \ + file://find-touchscreen.sh \ + file://busybox-cron \ + file://busybox-httpd \ + file://busybox-udhcpd \ + file://default.script \ + file://simple.script \ + file://hwclock.sh \ + file://syslog \ + file://syslog-startup.conf \ + file://syslog.conf \ + file://busybox-syslog.default \ + file://mdev \ + file://mdev.conf \ + file://mdev-mount.sh \ + file://defconfig \ + file://busybox-syslog.service.in \ + file://busybox-klogd.service.in \ + file://fail_on_no_media.patch \ + file://run-ptest \ + file://inetd.conf \ + file://inetd \ + file://login-utilities.cfg \ + file://recognize_connmand.patch \ + file://busybox-cross-menuconfig.patch \ + file://mount-via-label.cfg \ + file://sha1sum.cfg \ + file://sha256sum.cfg \ + file://getopts.cfg \ + file://longopts.cfg \ + file://resize.cfg \ + ${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \ + ${@["", "file://rcS.default"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \ + ${@["", "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager') == 'busybox-mdev')]} \ + file://syslog.cfg \ + file://unicode.cfg \ + file://rev.cfg \ + file://pgrep.cfg \ + file://rcS \ + file://rcK \ + file://makefile-libbb-race.patch \ + file://0001-testsuite-check-uudecode-before-using-it.patch \ + file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \ + file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \ + file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \ + file://0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch \ + file://0002-nslookup-sanitize-all-printed-strings-with-printable.patch \ + " +SRC_URI:append:libc-musl = " file://musl.cfg " + +SRC_URI[tarball.sha256sum] = "542750c8af7cb2630e201780b4f99f3dcceeb06f505b479ec68241c1e6af61a5" -- cgit v1.2.3-54-g00ecf