Compare commits
122 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d745e94683 | |||
| 82ba42f299 | |||
| 750a0504ea | |||
| b43d109a04 | |||
| 22b996fef0 | |||
| ac82b697a1 | |||
| bf28669487 | |||
| d01f300db3 | |||
| 506a4991ca | |||
| 2183dc9463 | |||
| 520e584c48 | |||
| 7fd4596d39 | |||
| 86fc36173f | |||
| 867f1b7320 | |||
| e1e3a781b5 | |||
| 843f396a24 | |||
| a706b10c7b | |||
| 45a3980c1b | |||
| 331edb02ba | |||
| 63c9553a2f | |||
| 720c192ae3 | |||
| a680850a74 | |||
| 5c81ad144b | |||
| 7c83f9db9b | |||
| 18ee901e2f | |||
| bfc45524dd | |||
| 6031a0634b | |||
| fd9bcdac97 | |||
| abc86f9a4b | |||
| 5630491a81 | |||
| db87bb911f | |||
| cf7e1c1e9e | |||
| b1c134376a | |||
| 3af4f64c08 | |||
| 4a806020cb | |||
| 4063c447fe | |||
| 7b3729439d | |||
| 3431ca2cd4 | |||
| 7952623621 | |||
| e6c01fe3bb | |||
| 88454ec6e2 | |||
| 65c4e391c7 | |||
| 819cf70954 | |||
| f47ba21946 | |||
| 254bcfee18 | |||
| 7a21a995f9 | |||
| 2da6c49e0b | |||
| 4f0eeb2ddd | |||
| 3d5f3769dc | |||
| e22c1848bf | |||
| 12b7130bc5 | |||
| 05a2e38af2 | |||
| dce5ba6dcb | |||
| 8232ff1ed3 | |||
| a34098ccc2 | |||
| 4a4d8f7258 | |||
| f34e9d9f6e | |||
| f0fb2d244d | |||
| 701f943d20 | |||
| 58ea6ad528 | |||
| 7e10bd4825 | |||
| 17a169042e | |||
| 2bcace3da7 | |||
| 7da3340081 | |||
| f87be52921 | |||
| 2fbb653713 | |||
| 98bd08f603 | |||
| d2bad2d079 | |||
| e8af016894 | |||
| d9ecca758b | |||
| 572ec0fc93 | |||
| 37a757038e | |||
| 50dffb7d4a | |||
| 5a9013c6d1 | |||
| f383d667e9 | |||
| 4313bc4b45 | |||
| fdb7391ba8 | |||
| 103facc2f2 | |||
| 475000af0e | |||
| ace9345c96 | |||
| 4c05a1fd66 | |||
| 457e09a2f8 | |||
| 65f93a4f3f | |||
| 35400f5661 | |||
| 842dbd20f0 | |||
| ef2798d8b0 | |||
| dbf660aea8 | |||
| 7f7c6ea114 | |||
| a3b9426194 | |||
| 6d3669070a | |||
| 33156ba957 | |||
| 334401cc8d | |||
| fd49d225a3 | |||
| ff4d2c18b6 | |||
| 4720122d2c | |||
| 59af8829ae | |||
| 5ec89c79ee | |||
| e42b881a59 | |||
| 4d63e4332d | |||
| 79da53917e | |||
| cd12cca54c | |||
| dad64de907 | |||
| a8c1ce2172 | |||
| 2b5fe1c29e | |||
| 0ccdc2c089 | |||
| 521b95c13a | |||
| a67eba5404 | |||
| 42f38b057c | |||
| b2609e56d6 | |||
| 6588353417 | |||
| b7fb34cc88 | |||
| 37fa007ab6 | |||
| 12ff4e2348 | |||
| 6dee0734aa | |||
| b1cb4d9ea9 | |||
| 5648030f9a | |||
| ad0eab0037 | |||
| 0c0b7006bd | |||
| de4be78ba1 | |||
| 48fb7bbdca | |||
| dbc02af63b | |||
| 183c367ddc |
@@ -1,3 +1,49 @@
|
||||
2017.02.8, Released November 27th, 2017
|
||||
|
||||
Important / security related fixes.
|
||||
|
||||
Qt: 5.6 version updated to 5.6.3.
|
||||
|
||||
Reproducible: Do not override SOURCE_DATE_EPOCH if already set
|
||||
in the environment.
|
||||
|
||||
Updated/fixed packages: apr, apr-util, arqp-standalone,
|
||||
collectd, dvb-apps, ffmpeg, google-breakpad, gstreamer,
|
||||
imagemagick, libfastjson, libglib2, libpjsip, libplist,
|
||||
localedef, luajit, mesa3d, openssh, openssl, postgresql,
|
||||
python3, python-pyqt5, qt5base, qt5canvas3d, qt5connectivity,
|
||||
qt5declarative, qt5engineio, qt5graphicaleffects,
|
||||
qt5imageformats, qt5location, qt5multimedia, qt5quickcontrols,
|
||||
qt5quickcontrols2, qt5script, qt5sensors, qt5serialbus,
|
||||
qt5serialport, qt5svg, qt5tools, qt5webchannel, qt5webkit,
|
||||
qt5websockets, qt5x11extras, qt5xmlpatterns, quagga, ruby,
|
||||
samba4, snmppp, ti-gfx, vboot-utils, webkitgtk, wireshark,
|
||||
xapp_xdriinfo.
|
||||
|
||||
Issues resolved (http://bugs.buildroot.org):
|
||||
|
||||
10326: mesa3d package fails to build when BR2_SHARED_STATIC_LIBS=y
|
||||
10361: python3 python-config script generates invalid includes
|
||||
10501: host-localedef fails to compile on Ubuntu 17.10
|
||||
|
||||
2017.02.7, Released October 28th, 2017
|
||||
|
||||
Important / security related fixes.
|
||||
|
||||
Webkitgtk bumped to the 2.18.x series, fixing a large number
|
||||
of security issues.
|
||||
|
||||
Defconfigs: wandboard: Correct rootfs offset
|
||||
|
||||
Toolchain: Linaro toolchains updated to 2017.08 release,
|
||||
fixing a number of issues. Musl: fix for CVE-2017-15650.
|
||||
|
||||
Updated/fixed packages: busybox, bzip2, dnsmasq, git, go,
|
||||
hostapd, irssi, iucode-tool, lame, libcurl, libffi, libnspr,
|
||||
libnss, nodejs, openssh, openvpn, qemu, qt, redis, sdl2,
|
||||
webkitgtk, wget, wpa_supplicant, xen, xlib_libXfont,
|
||||
xlib_libXfont2, xserver_xorg-server
|
||||
|
||||
2017.02.6, Released September 24th, 2017
|
||||
|
||||
Important / security related fixes.
|
||||
|
||||
@@ -467,7 +467,7 @@ choice
|
||||
config BR2_OPTIMIZE_0
|
||||
bool "optimization level 0"
|
||||
help
|
||||
Do not optimize. This is the default.
|
||||
Do not optimize.
|
||||
|
||||
config BR2_OPTIMIZE_1
|
||||
bool "optimization level 1"
|
||||
@@ -534,6 +534,7 @@ config BR2_OPTIMIZE_S
|
||||
-falign-loops -falign-labels -freorder-blocks
|
||||
-freorder-blocks-and-partition -fprefetch-loop-arrays
|
||||
-ftree-vect-loop-version
|
||||
This is the default.
|
||||
|
||||
endchoice
|
||||
|
||||
|
||||
@@ -86,9 +86,9 @@ else # umask / $(CURDIR) / $(O)
|
||||
all:
|
||||
|
||||
# Set and export the version string
|
||||
export BR2_VERSION := 2017.02.6
|
||||
export BR2_VERSION := 2017.02.8
|
||||
# Actual time the release is cut (for reproducible builds)
|
||||
BR2_VERSION_EPOCH = 1506285000
|
||||
BR2_VERSION_EPOCH = 1511823000
|
||||
|
||||
# Save running make version since it's clobbered by the make package
|
||||
RUNNING_MAKE_VERSION := $(MAKE_VERSION)
|
||||
@@ -253,7 +253,7 @@ export LANG = C
|
||||
export LC_ALL = C
|
||||
export GZIP = -n
|
||||
BR2_VERSION_GIT_EPOCH = $(shell GIT_DIR=$(TOPDIR)/.git $(GIT) log -1 --format=%at)
|
||||
export SOURCE_DATE_EPOCH = $(if $(wildcard $(TOPDIR)/.git),$(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH))
|
||||
export SOURCE_DATE_EPOCH ?= $(if $(wildcard $(TOPDIR)/.git),$(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH))
|
||||
DEPENDENCIES_HOST_PREREQ += host-fakedate
|
||||
endif
|
||||
|
||||
@@ -481,6 +481,8 @@ include Makefile.legacy
|
||||
include package/Makefile.in
|
||||
include support/dependencies/dependencies.mk
|
||||
|
||||
PACKAGES += $(DEPENDENCIES_HOST_PREREQ)
|
||||
|
||||
include toolchain/*.mk
|
||||
include toolchain/*/*.mk
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ image sdcard.img {
|
||||
partition rootfs {
|
||||
partition-type = 0x83
|
||||
image = "rootfs.ext4"
|
||||
offset = 1M
|
||||
size = 512M
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ and to the kernel configuration file as follows (e.g. by running
|
||||
----
|
||||
BR2_GLOBAL_PATCH_DIR=$(BR2_EXTERNAL_BAR_42_PATH)/patches/
|
||||
BR2_ROOTFS_OVERLAY=$(BR2_EXTERNAL_BAR_42_PATH)/board/<boardname>/overlay/
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=$(BR2_EXTERNAL_BAR_42_FOO)/board/<boardname>/kernel.config
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=$(BR2_EXTERNAL_BAR_42_PATH)/board/<boardname>/kernel.config
|
||||
----
|
||||
|
||||
===== Example layout
|
||||
@@ -263,7 +263,7 @@ illustration, of course):
|
||||
| |BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_BAR_42_PATH)/patches/"
|
||||
| |BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/overlay/"
|
||||
| |BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/post-image.sh"
|
||||
| |BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_BAR_42_FOO)/board/my-board/kernel.config"
|
||||
| |BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_BAR_42_PATH)/board/my-board/kernel.config"
|
||||
| `----
|
||||
|
|
||||
|- patches/linux/0001-some-change.patch
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
# From http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz.sha1
|
||||
sha1 72cc3ac693b52fb831063d5c0de18723bc8e0095 apr-util-1.5.4.tar.gz
|
||||
# From http://www.apache.org/dist/apr/apr-util-1.6.1.tar.bz2.sha256
|
||||
sha256 d3e12f7b6ad12687572a3a39475545a072608f4ba03a6ce8a3778f607dd0035b apr-util-1.6.1.tar.bz2
|
||||
# Locally calculated
|
||||
sha256 ef5609d18601645ad6fe22c6c122094be40e976725c1d0490778abacc836e7a2 LICENSE
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
APR_UTIL_VERSION = 1.5.4
|
||||
APR_UTIL_VERSION = 1.6.1
|
||||
APR_UTIL_SOURCE = apr-util-$(APR_UTIL_VERSION).tar.bz2
|
||||
APR_UTIL_SITE = http://archive.apache.org/dist/apr
|
||||
APR_UTIL_LICENSE = Apache-2.0
|
||||
APR_UTIL_LICENSE_FILES = LICENSE
|
||||
|
||||
@@ -42,10 +42,10 @@ diff -uNr apr-1.5.1.org/Makefile.in apr-1.5.1/Makefile.in
|
||||
|
||||
# get substituted into some targets
|
||||
APR_MAJOR_VERSION=@APR_MAJOR_VERSION@
|
||||
@@ -134,8 +136,13 @@
|
||||
@@ -134,8 +134,13 @@
|
||||
$(APR_MKDIR) tools
|
||||
$(LT_COMPILE)
|
||||
|
||||
OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS)
|
||||
tools/gen_test_char.lo: make_tools_dir
|
||||
+ifdef CC_FOR_BUILD
|
||||
+tools/gen_test_char@EXEEXT@: tools/gen_test_char.c $(LOCAL_LIBS)
|
||||
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DCROSS_COMPILE -o $@ $<
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
# From http://archive.apache.org/dist/apr/apr-1.5.1.tar.gz.sha1
|
||||
sha1 9caa83e3f50f3abc9fab7c4a3f2739a12b14c3a3 apr-1.5.1.tar.gz
|
||||
# From http://www.apache.org/dist/apr/apr-1.6.3.tar.bz2.sha256
|
||||
sha256 131f06d16d7aabd097fa992a33eec2b6af3962f93e6d570a9bd4d85e95993172 apr-1.6.3.tar.bz2
|
||||
# Locally calculated
|
||||
sha256 f854aeef66ecd55a126226e82b3f26793fc3b1c584647f6a0edc5639974c38ad LICENSE
|
||||
|
||||
+2
-1
@@ -4,7 +4,8 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
APR_VERSION = 1.5.1
|
||||
APR_VERSION = 1.6.3
|
||||
APR_SOURCE = apr-$(APR_VERSION).tar.bz2
|
||||
APR_SITE = http://archive.apache.org/dist/apr
|
||||
APR_LICENSE = Apache-2.0
|
||||
APR_LICENSE_FILES = LICENSE
|
||||
|
||||
@@ -66,15 +66,3 @@ index e797b11..828f435 100644
|
||||
|
||||
/* Internal routines. */
|
||||
extern void _argp_fmtstream_update (argp_fmtstream_t __fs);
|
||||
@@ -216,7 +220,11 @@
|
||||
#endif
|
||||
|
||||
#ifndef ARGP_FS_EI
|
||||
+#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__)
|
||||
#define ARGP_FS_EI extern inline
|
||||
+#else
|
||||
+#define ARGP_FS_EI inline
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
ARGP_FS_EI size_t
|
||||
|
||||
@@ -10,7 +10,7 @@ ARGP_STANDALONE_INSTALL_STAGING = YES
|
||||
ARGP_STANDALONE_LICENSE = LGPLv2+
|
||||
|
||||
ARGP_STANDALONE_CONF_ENV = \
|
||||
CFLAGS="$(TARGET_CFLAGS) -fPIC"
|
||||
CFLAGS="$(TARGET_CFLAGS) -fPIC -fgnu89-inline"
|
||||
|
||||
define ARGP_STANDALONE_INSTALL_STAGING_CMDS
|
||||
$(INSTALL) -D $(@D)/libargp.a $(STAGING_DIR)/usr/lib/libargp.a
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
From dac762a702d01c8c2d42135795cc9bf23ff324a2 Mon Sep 17 00:00:00 2001
|
||||
From: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Date: Wed, 11 Jan 2017 20:16:45 +0100
|
||||
Subject: [PATCH] wget: fix for brain-damaged HTTP servers. Closes 9471
|
||||
|
||||
write(3, "GET / HTTP/1.1\r\nUser-Agent: Wget\r\nConnection: close\r\n\r\n", 74) = 74
|
||||
shutdown(3, SHUT_WR) = 0
|
||||
alarm(900) = 900
|
||||
read(3, "", 1024) = 0
|
||||
write(2, "wget: error getting response\n", 29) = 29
|
||||
exit(1)
|
||||
|
||||
The peer simply does not return anything. It closes its connection.
|
||||
|
||||
Probably it detects wget closing its writing end: shutdown(3, SHUT_WR).
|
||||
|
||||
The point it, closing write side of the socket is _valid_ for HTTP.
|
||||
wget sent the full request, it won't be sending anything more:
|
||||
it will only receive the response, and that's it.
|
||||
|
||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
networking/wget.c | 26 ++++++++++++++++++--------
|
||||
1 file changed, 18 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/networking/wget.c b/networking/wget.c
|
||||
index b082a0f59..afb09f587 100644
|
||||
--- a/networking/wget.c
|
||||
+++ b/networking/wget.c
|
||||
@@ -141,6 +141,8 @@
|
||||
#endif
|
||||
|
||||
|
||||
+#define SSL_SUPPORTED (ENABLE_FEATURE_WGET_OPENSSL || ENABLE_FEATURE_WGET_SSL_HELPER)
|
||||
+
|
||||
struct host_info {
|
||||
char *allocated;
|
||||
const char *path;
|
||||
@@ -151,7 +153,7 @@ struct host_info {
|
||||
};
|
||||
static const char P_FTP[] ALIGN1 = "ftp";
|
||||
static const char P_HTTP[] ALIGN1 = "http";
|
||||
-#if ENABLE_FEATURE_WGET_OPENSSL || ENABLE_FEATURE_WGET_SSL_HELPER
|
||||
+#if SSL_SUPPORTED
|
||||
static const char P_HTTPS[] ALIGN1 = "https";
|
||||
#endif
|
||||
|
||||
@@ -452,7 +454,7 @@ static void parse_url(const char *src_url, struct host_info *h)
|
||||
if (strcmp(url, P_FTP) == 0) {
|
||||
h->port = bb_lookup_port(P_FTP, "tcp", 21);
|
||||
} else
|
||||
-#if ENABLE_FEATURE_WGET_OPENSSL || ENABLE_FEATURE_WGET_SSL_HELPER
|
||||
+#if SSL_SUPPORTED
|
||||
if (strcmp(url, P_HTTPS) == 0) {
|
||||
h->port = bb_lookup_port(P_HTTPS, "tcp", 443);
|
||||
h->protocol = P_HTTPS;
|
||||
@@ -1093,12 +1095,20 @@ static void download_one_url(const char *url)
|
||||
}
|
||||
|
||||
fflush(sfp);
|
||||
- /* If we use SSL helper, keeping our end of the socket open for writing
|
||||
- * makes our end (i.e. the same fd!) readable (EAGAIN instead of EOF)
|
||||
- * even after child closes its copy of the fd.
|
||||
- * This helps:
|
||||
- */
|
||||
- shutdown(fileno(sfp), SHUT_WR);
|
||||
+
|
||||
+/* Tried doing this unconditionally.
|
||||
+ * Cloudflare and nginx/1.11.5 are shocked to see SHUT_WR on non-HTTPS.
|
||||
+ */
|
||||
+#if SSL_SUPPORTED
|
||||
+ if (target.protocol == P_HTTPS) {
|
||||
+ /* If we use SSL helper, keeping our end of the socket open for writing
|
||||
+ * makes our end (i.e. the same fd!) readable (EAGAIN instead of EOF)
|
||||
+ * even after child closes its copy of the fd.
|
||||
+ * This helps:
|
||||
+ */
|
||||
+ shutdown(fileno(sfp), SHUT_WR);
|
||||
+ }
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* Retrieve HTTP response line and check for "200" status code.
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,494 @@
|
||||
From fa654812e79d2422b41cfff6443e2abcb7737517 Mon Sep 17 00:00:00 2001
|
||||
From: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Date: Thu, 5 Jan 2017 11:43:53 +0100
|
||||
Subject: [PATCH] unzip: properly use CDF to find compressed files. Closes 9536
|
||||
|
||||
function old new delta
|
||||
unzip_main 2437 2350 -87
|
||||
|
||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
archival/unzip.c | 285 +++++++++++++++++++++++++++++---------------------
|
||||
testsuite/unzip.tests | 6 +-
|
||||
2 files changed, 168 insertions(+), 123 deletions(-)
|
||||
|
||||
diff --git a/archival/unzip.c b/archival/unzip.c
|
||||
index c540485ac..edef22f75 100644
|
||||
--- a/archival/unzip.c
|
||||
+++ b/archival/unzip.c
|
||||
@@ -16,7 +16,6 @@
|
||||
* TODO
|
||||
* Zip64 + other methods
|
||||
*/
|
||||
-
|
||||
//config:config UNZIP
|
||||
//config: bool "unzip"
|
||||
//config: default y
|
||||
@@ -24,8 +23,17 @@
|
||||
//config: unzip will list or extract files from a ZIP archive,
|
||||
//config: commonly found on DOS/WIN systems. The default behavior
|
||||
//config: (with no options) is to extract the archive into the
|
||||
-//config: current directory. Use the `-d' option to extract to a
|
||||
-//config: directory of your choice.
|
||||
+//config: current directory.
|
||||
+//config:
|
||||
+//config:config FEATURE_UNZIP_CDF
|
||||
+//config: bool "Read and use Central Directory data"
|
||||
+//config: default y
|
||||
+//config: depends on UNZIP
|
||||
+//config: help
|
||||
+//config: If you know that you only need to deal with simple
|
||||
+//config: ZIP files without deleted/updated files, SFX archves etc,
|
||||
+//config: you can reduce code size by unselecting this option.
|
||||
+//config: To support less trivial ZIPs, say Y.
|
||||
|
||||
//applet:IF_UNZIP(APPLET(unzip, BB_DIR_USR_BIN, BB_SUID_DROP))
|
||||
//kbuild:lib-$(CONFIG_UNZIP) += unzip.o
|
||||
@@ -80,30 +88,20 @@ typedef union {
|
||||
uint32_t ucmpsize PACKED; /* 18-21 */
|
||||
uint16_t filename_len; /* 22-23 */
|
||||
uint16_t extra_len; /* 24-25 */
|
||||
+ /* filename follows (not NUL terminated) */
|
||||
+ /* extra field follows */
|
||||
+ /* data follows */
|
||||
} formatted PACKED;
|
||||
} zip_header_t; /* PACKED - gcc 4.2.1 doesn't like it (spews warning) */
|
||||
|
||||
-/* Check the offset of the last element, not the length. This leniency
|
||||
- * allows for poor packing, whereby the overall struct may be too long,
|
||||
- * even though the elements are all in the right place.
|
||||
- */
|
||||
-struct BUG_zip_header_must_be_26_bytes {
|
||||
- char BUG_zip_header_must_be_26_bytes[
|
||||
- offsetof(zip_header_t, formatted.extra_len) + 2
|
||||
- == ZIP_HEADER_LEN ? 1 : -1];
|
||||
-};
|
||||
-
|
||||
-#define FIX_ENDIANNESS_ZIP(zip_header) do { \
|
||||
- (zip_header).formatted.version = SWAP_LE16((zip_header).formatted.version ); \
|
||||
- (zip_header).formatted.method = SWAP_LE16((zip_header).formatted.method ); \
|
||||
- (zip_header).formatted.modtime = SWAP_LE16((zip_header).formatted.modtime ); \
|
||||
- (zip_header).formatted.moddate = SWAP_LE16((zip_header).formatted.moddate ); \
|
||||
+#define FIX_ENDIANNESS_ZIP(zip_header) \
|
||||
+do { if (BB_BIG_ENDIAN) { \
|
||||
(zip_header).formatted.crc32 = SWAP_LE32((zip_header).formatted.crc32 ); \
|
||||
(zip_header).formatted.cmpsize = SWAP_LE32((zip_header).formatted.cmpsize ); \
|
||||
(zip_header).formatted.ucmpsize = SWAP_LE32((zip_header).formatted.ucmpsize ); \
|
||||
(zip_header).formatted.filename_len = SWAP_LE16((zip_header).formatted.filename_len); \
|
||||
(zip_header).formatted.extra_len = SWAP_LE16((zip_header).formatted.extra_len ); \
|
||||
-} while (0)
|
||||
+}} while (0)
|
||||
|
||||
#define CDF_HEADER_LEN 42
|
||||
|
||||
@@ -115,8 +113,8 @@ typedef union {
|
||||
uint16_t version_needed; /* 2-3 */
|
||||
uint16_t cdf_flags; /* 4-5 */
|
||||
uint16_t method; /* 6-7 */
|
||||
- uint16_t mtime; /* 8-9 */
|
||||
- uint16_t mdate; /* 10-11 */
|
||||
+ uint16_t modtime; /* 8-9 */
|
||||
+ uint16_t moddate; /* 10-11 */
|
||||
uint32_t crc32; /* 12-15 */
|
||||
uint32_t cmpsize; /* 16-19 */
|
||||
uint32_t ucmpsize; /* 20-23 */
|
||||
@@ -127,27 +125,27 @@ typedef union {
|
||||
uint16_t internal_file_attributes; /* 32-33 */
|
||||
uint32_t external_file_attributes PACKED; /* 34-37 */
|
||||
uint32_t relative_offset_of_local_header PACKED; /* 38-41 */
|
||||
+ /* filename follows (not NUL terminated) */
|
||||
+ /* extra field follows */
|
||||
+ /* comment follows */
|
||||
} formatted PACKED;
|
||||
} cdf_header_t;
|
||||
|
||||
-struct BUG_cdf_header_must_be_42_bytes {
|
||||
- char BUG_cdf_header_must_be_42_bytes[
|
||||
- offsetof(cdf_header_t, formatted.relative_offset_of_local_header) + 4
|
||||
- == CDF_HEADER_LEN ? 1 : -1];
|
||||
-};
|
||||
-
|
||||
-#define FIX_ENDIANNESS_CDF(cdf_header) do { \
|
||||
+#define FIX_ENDIANNESS_CDF(cdf_header) \
|
||||
+do { if (BB_BIG_ENDIAN) { \
|
||||
+ (cdf_header).formatted.version_made_by = SWAP_LE16((cdf_header).formatted.version_made_by); \
|
||||
+ (cdf_header).formatted.version_needed = SWAP_LE16((cdf_header).formatted.version_needed); \
|
||||
+ (cdf_header).formatted.method = SWAP_LE16((cdf_header).formatted.method ); \
|
||||
+ (cdf_header).formatted.modtime = SWAP_LE16((cdf_header).formatted.modtime ); \
|
||||
+ (cdf_header).formatted.moddate = SWAP_LE16((cdf_header).formatted.moddate ); \
|
||||
(cdf_header).formatted.crc32 = SWAP_LE32((cdf_header).formatted.crc32 ); \
|
||||
(cdf_header).formatted.cmpsize = SWAP_LE32((cdf_header).formatted.cmpsize ); \
|
||||
(cdf_header).formatted.ucmpsize = SWAP_LE32((cdf_header).formatted.ucmpsize ); \
|
||||
(cdf_header).formatted.file_name_length = SWAP_LE16((cdf_header).formatted.file_name_length); \
|
||||
(cdf_header).formatted.extra_field_length = SWAP_LE16((cdf_header).formatted.extra_field_length); \
|
||||
(cdf_header).formatted.file_comment_length = SWAP_LE16((cdf_header).formatted.file_comment_length); \
|
||||
- IF_DESKTOP( \
|
||||
- (cdf_header).formatted.version_made_by = SWAP_LE16((cdf_header).formatted.version_made_by); \
|
||||
(cdf_header).formatted.external_file_attributes = SWAP_LE32((cdf_header).formatted.external_file_attributes); \
|
||||
- ) \
|
||||
-} while (0)
|
||||
+}} while (0)
|
||||
|
||||
#define CDE_HEADER_LEN 16
|
||||
|
||||
@@ -166,20 +164,38 @@ typedef union {
|
||||
} formatted PACKED;
|
||||
} cde_header_t;
|
||||
|
||||
-struct BUG_cde_header_must_be_16_bytes {
|
||||
+#define FIX_ENDIANNESS_CDE(cde_header) \
|
||||
+do { if (BB_BIG_ENDIAN) { \
|
||||
+ (cde_header).formatted.cdf_offset = SWAP_LE32((cde_header).formatted.cdf_offset); \
|
||||
+}} while (0)
|
||||
+
|
||||
+struct BUG {
|
||||
+ /* Check the offset of the last element, not the length. This leniency
|
||||
+ * allows for poor packing, whereby the overall struct may be too long,
|
||||
+ * even though the elements are all in the right place.
|
||||
+ */
|
||||
+ char BUG_zip_header_must_be_26_bytes[
|
||||
+ offsetof(zip_header_t, formatted.extra_len) + 2
|
||||
+ == ZIP_HEADER_LEN ? 1 : -1];
|
||||
+ char BUG_cdf_header_must_be_42_bytes[
|
||||
+ offsetof(cdf_header_t, formatted.relative_offset_of_local_header) + 4
|
||||
+ == CDF_HEADER_LEN ? 1 : -1];
|
||||
char BUG_cde_header_must_be_16_bytes[
|
||||
sizeof(cde_header_t) == CDE_HEADER_LEN ? 1 : -1];
|
||||
};
|
||||
|
||||
-#define FIX_ENDIANNESS_CDE(cde_header) do { \
|
||||
- (cde_header).formatted.cdf_offset = SWAP_LE32((cde_header).formatted.cdf_offset); \
|
||||
-} while (0)
|
||||
|
||||
enum { zip_fd = 3 };
|
||||
|
||||
|
||||
-#if ENABLE_DESKTOP
|
||||
+/* This value means that we failed to find CDF */
|
||||
+#define BAD_CDF_OFFSET ((uint32_t)0xffffffff)
|
||||
+
|
||||
+#if !ENABLE_FEATURE_UNZIP_CDF
|
||||
|
||||
+# define find_cdf_offset() BAD_CDF_OFFSET
|
||||
+
|
||||
+#else
|
||||
/* Seen in the wild:
|
||||
* Self-extracting PRO2K3XP_32.exe contains 19078464 byte zip archive,
|
||||
* where CDE was nearly 48 kbytes before EOF.
|
||||
@@ -188,25 +204,26 @@ enum { zip_fd = 3 };
|
||||
* To make extraction work, bumped PEEK_FROM_END from 16k to 64k.
|
||||
*/
|
||||
#define PEEK_FROM_END (64*1024)
|
||||
-
|
||||
-/* This value means that we failed to find CDF */
|
||||
-#define BAD_CDF_OFFSET ((uint32_t)0xffffffff)
|
||||
-
|
||||
/* NB: does not preserve file position! */
|
||||
static uint32_t find_cdf_offset(void)
|
||||
{
|
||||
cde_header_t cde_header;
|
||||
+ unsigned char *buf;
|
||||
unsigned char *p;
|
||||
off_t end;
|
||||
- unsigned char *buf = xzalloc(PEEK_FROM_END);
|
||||
uint32_t found;
|
||||
|
||||
- end = xlseek(zip_fd, 0, SEEK_END);
|
||||
+ end = lseek(zip_fd, 0, SEEK_END);
|
||||
+ if (end == (off_t) -1)
|
||||
+ return BAD_CDF_OFFSET;
|
||||
+
|
||||
end -= PEEK_FROM_END;
|
||||
if (end < 0)
|
||||
end = 0;
|
||||
+
|
||||
dbg("Looking for cdf_offset starting from 0x%"OFF_FMT"x", end);
|
||||
xlseek(zip_fd, end, SEEK_SET);
|
||||
+ buf = xzalloc(PEEK_FROM_END);
|
||||
full_read(zip_fd, buf, PEEK_FROM_END);
|
||||
|
||||
found = BAD_CDF_OFFSET;
|
||||
@@ -252,30 +269,36 @@ static uint32_t find_cdf_offset(void)
|
||||
static uint32_t read_next_cdf(uint32_t cdf_offset, cdf_header_t *cdf_ptr)
|
||||
{
|
||||
off_t org;
|
||||
+ uint32_t magic;
|
||||
|
||||
- org = xlseek(zip_fd, 0, SEEK_CUR);
|
||||
+ if (cdf_offset == BAD_CDF_OFFSET)
|
||||
+ return cdf_offset;
|
||||
|
||||
- if (!cdf_offset)
|
||||
- cdf_offset = find_cdf_offset();
|
||||
-
|
||||
- if (cdf_offset != BAD_CDF_OFFSET) {
|
||||
- dbg("Reading CDF at 0x%x", (unsigned)cdf_offset);
|
||||
- xlseek(zip_fd, cdf_offset + 4, SEEK_SET);
|
||||
- xread(zip_fd, cdf_ptr->raw, CDF_HEADER_LEN);
|
||||
- FIX_ENDIANNESS_CDF(*cdf_ptr);
|
||||
- dbg(" file_name_length:%u extra_field_length:%u file_comment_length:%u",
|
||||
- (unsigned)cdf_ptr->formatted.file_name_length,
|
||||
- (unsigned)cdf_ptr->formatted.extra_field_length,
|
||||
- (unsigned)cdf_ptr->formatted.file_comment_length
|
||||
- );
|
||||
- cdf_offset += 4 + CDF_HEADER_LEN
|
||||
- + cdf_ptr->formatted.file_name_length
|
||||
- + cdf_ptr->formatted.extra_field_length
|
||||
- + cdf_ptr->formatted.file_comment_length;
|
||||
+ org = xlseek(zip_fd, 0, SEEK_CUR);
|
||||
+ dbg("Reading CDF at 0x%x", (unsigned)cdf_offset);
|
||||
+ xlseek(zip_fd, cdf_offset, SEEK_SET);
|
||||
+ xread(zip_fd, &magic, 4);
|
||||
+ /* Central Directory End? */
|
||||
+ if (magic == ZIP_CDE_MAGIC) {
|
||||
+ dbg("got ZIP_CDE_MAGIC");
|
||||
+ return 0; /* EOF */
|
||||
}
|
||||
+ xread(zip_fd, cdf_ptr->raw, CDF_HEADER_LEN);
|
||||
+ /* Caller doesn't need this: */
|
||||
+ /* dbg("Returning file position to 0x%"OFF_FMT"x", org); */
|
||||
+ /* xlseek(zip_fd, org, SEEK_SET); */
|
||||
+
|
||||
+ FIX_ENDIANNESS_CDF(*cdf_ptr);
|
||||
+ dbg(" file_name_length:%u extra_field_length:%u file_comment_length:%u",
|
||||
+ (unsigned)cdf_ptr->formatted.file_name_length,
|
||||
+ (unsigned)cdf_ptr->formatted.extra_field_length,
|
||||
+ (unsigned)cdf_ptr->formatted.file_comment_length
|
||||
+ );
|
||||
+ cdf_offset += 4 + CDF_HEADER_LEN
|
||||
+ + cdf_ptr->formatted.file_name_length
|
||||
+ + cdf_ptr->formatted.extra_field_length
|
||||
+ + cdf_ptr->formatted.file_comment_length;
|
||||
|
||||
- dbg("Returning file position to 0x%"OFF_FMT"x", org);
|
||||
- xlseek(zip_fd, org, SEEK_SET);
|
||||
return cdf_offset;
|
||||
};
|
||||
#endif
|
||||
@@ -324,6 +347,7 @@ static void unzip_extract(zip_header_t *zip_header, int dst_fd)
|
||||
bb_error_msg("bad length");
|
||||
}
|
||||
}
|
||||
+ /* TODO? method 12: bzip2, method 14: LZMA */
|
||||
}
|
||||
|
||||
static void my_fgets80(char *buf80)
|
||||
@@ -339,15 +363,12 @@ int unzip_main(int argc, char **argv)
|
||||
{
|
||||
enum { O_PROMPT, O_NEVER, O_ALWAYS };
|
||||
|
||||
- zip_header_t zip_header;
|
||||
smallint quiet = 0;
|
||||
- IF_NOT_DESKTOP(const) smallint verbose = 0;
|
||||
+ IF_NOT_FEATURE_UNZIP_CDF(const) smallint verbose = 0;
|
||||
smallint listing = 0;
|
||||
smallint overwrite = O_PROMPT;
|
||||
smallint x_opt_seen;
|
||||
-#if ENABLE_DESKTOP
|
||||
uint32_t cdf_offset;
|
||||
-#endif
|
||||
unsigned long total_usize;
|
||||
unsigned long total_size;
|
||||
unsigned total_entries;
|
||||
@@ -430,7 +451,7 @@ int unzip_main(int argc, char **argv)
|
||||
break;
|
||||
|
||||
case 'v': /* Verbose list */
|
||||
- IF_DESKTOP(verbose++;)
|
||||
+ IF_FEATURE_UNZIP_CDF(verbose++;)
|
||||
listing = 1;
|
||||
break;
|
||||
|
||||
@@ -545,78 +566,102 @@ int unzip_main(int argc, char **argv)
|
||||
total_usize = 0;
|
||||
total_size = 0;
|
||||
total_entries = 0;
|
||||
-#if ENABLE_DESKTOP
|
||||
- cdf_offset = 0;
|
||||
-#endif
|
||||
+ cdf_offset = find_cdf_offset(); /* try to seek to the end, find CDE and CDF start */
|
||||
while (1) {
|
||||
- uint32_t magic;
|
||||
+ zip_header_t zip_header;
|
||||
mode_t dir_mode = 0777;
|
||||
-#if ENABLE_DESKTOP
|
||||
+#if ENABLE_FEATURE_UNZIP_CDF
|
||||
mode_t file_mode = 0666;
|
||||
#endif
|
||||
|
||||
- /* Check magic number */
|
||||
- xread(zip_fd, &magic, 4);
|
||||
- /* Central directory? It's at the end, so exit */
|
||||
- if (magic == ZIP_CDF_MAGIC) {
|
||||
- dbg("got ZIP_CDF_MAGIC");
|
||||
- break;
|
||||
- }
|
||||
-#if ENABLE_DESKTOP
|
||||
- /* Data descriptor? It was a streaming file, go on */
|
||||
- if (magic == ZIP_DD_MAGIC) {
|
||||
- dbg("got ZIP_DD_MAGIC");
|
||||
- /* skip over duplicate crc32, cmpsize and ucmpsize */
|
||||
- unzip_skip(3 * 4);
|
||||
- continue;
|
||||
- }
|
||||
-#endif
|
||||
- if (magic != ZIP_FILEHEADER_MAGIC)
|
||||
- bb_error_msg_and_die("invalid zip magic %08X", (int)magic);
|
||||
- dbg("got ZIP_FILEHEADER_MAGIC");
|
||||
-
|
||||
- /* Read the file header */
|
||||
- xread(zip_fd, zip_header.raw, ZIP_HEADER_LEN);
|
||||
- FIX_ENDIANNESS_ZIP(zip_header);
|
||||
- if ((zip_header.formatted.method != 0) && (zip_header.formatted.method != 8)) {
|
||||
- bb_error_msg_and_die("unsupported method %d", zip_header.formatted.method);
|
||||
- }
|
||||
-#if !ENABLE_DESKTOP
|
||||
- if (zip_header.formatted.zip_flags & SWAP_LE16(0x0009)) {
|
||||
- bb_error_msg_and_die("zip flags 1 and 8 are not supported");
|
||||
- }
|
||||
-#else
|
||||
- if (zip_header.formatted.zip_flags & SWAP_LE16(0x0001)) {
|
||||
- /* 0x0001 - encrypted */
|
||||
- bb_error_msg_and_die("zip flag 1 (encryption) is not supported");
|
||||
- }
|
||||
+ if (!ENABLE_FEATURE_UNZIP_CDF || cdf_offset == BAD_CDF_OFFSET) {
|
||||
+ /* Normally happens when input is unseekable.
|
||||
+ *
|
||||
+ * Valid ZIP file has Central Directory at the end
|
||||
+ * with central directory file headers (CDFs).
|
||||
+ * After it, there is a Central Directory End structure.
|
||||
+ * CDFs identify what files are in the ZIP and where
|
||||
+ * they are located. This allows ZIP readers to load
|
||||
+ * the list of files without reading the entire ZIP archive.
|
||||
+ * ZIP files may be appended to, only files specified in
|
||||
+ * the CD are valid. Scanning for local file headers is
|
||||
+ * not a correct algorithm.
|
||||
+ *
|
||||
+ * We try to do the above, and resort to "linear" reading
|
||||
+ * of ZIP file only if seek failed or CDE wasn't found.
|
||||
+ */
|
||||
+ uint32_t magic;
|
||||
|
||||
- if (cdf_offset != BAD_CDF_OFFSET) {
|
||||
+ /* Check magic number */
|
||||
+ xread(zip_fd, &magic, 4);
|
||||
+ /* Central directory? It's at the end, so exit */
|
||||
+ if (magic == ZIP_CDF_MAGIC) {
|
||||
+ dbg("got ZIP_CDF_MAGIC");
|
||||
+ break;
|
||||
+ }
|
||||
+ /* Data descriptor? It was a streaming file, go on */
|
||||
+ if (magic == ZIP_DD_MAGIC) {
|
||||
+ dbg("got ZIP_DD_MAGIC");
|
||||
+ /* skip over duplicate crc32, cmpsize and ucmpsize */
|
||||
+ unzip_skip(3 * 4);
|
||||
+ continue;
|
||||
+ }
|
||||
+ if (magic != ZIP_FILEHEADER_MAGIC)
|
||||
+ bb_error_msg_and_die("invalid zip magic %08X", (int)magic);
|
||||
+ dbg("got ZIP_FILEHEADER_MAGIC");
|
||||
+
|
||||
+ xread(zip_fd, zip_header.raw, ZIP_HEADER_LEN);
|
||||
+ FIX_ENDIANNESS_ZIP(zip_header);
|
||||
+ if ((zip_header.formatted.method != 0)
|
||||
+ && (zip_header.formatted.method != 8)
|
||||
+ ) {
|
||||
+ /* TODO? method 12: bzip2, method 14: LZMA */
|
||||
+ bb_error_msg_and_die("unsupported method %d", zip_header.formatted.method);
|
||||
+ }
|
||||
+ if (zip_header.formatted.zip_flags & SWAP_LE16(0x0009)) {
|
||||
+ bb_error_msg_and_die("zip flags 1 and 8 are not supported");
|
||||
+ }
|
||||
+ }
|
||||
+#if ENABLE_FEATURE_UNZIP_CDF
|
||||
+ else {
|
||||
+ /* cdf_offset is valid (and we know the file is seekable) */
|
||||
cdf_header_t cdf_header;
|
||||
cdf_offset = read_next_cdf(cdf_offset, &cdf_header);
|
||||
- /*
|
||||
- * Note: cdf_offset can become BAD_CDF_OFFSET after the above call.
|
||||
- */
|
||||
+ if (cdf_offset == 0) /* EOF? */
|
||||
+ break;
|
||||
+# if 0
|
||||
+ xlseek(zip_fd,
|
||||
+ SWAP_LE32(cdf_header.formatted.relative_offset_of_local_header) + 4,
|
||||
+ SEEK_SET);
|
||||
+ xread(zip_fd, zip_header.raw, ZIP_HEADER_LEN);
|
||||
+ FIX_ENDIANNESS_ZIP(zip_header);
|
||||
if (zip_header.formatted.zip_flags & SWAP_LE16(0x0008)) {
|
||||
/* 0x0008 - streaming. [u]cmpsize can be reliably gotten
|
||||
- * only from Central Directory. See unzip_doc.txt
|
||||
+ * only from Central Directory.
|
||||
*/
|
||||
zip_header.formatted.crc32 = cdf_header.formatted.crc32;
|
||||
zip_header.formatted.cmpsize = cdf_header.formatted.cmpsize;
|
||||
zip_header.formatted.ucmpsize = cdf_header.formatted.ucmpsize;
|
||||
}
|
||||
+# else
|
||||
+ /* CDF has the same data as local header, no need to read the latter */
|
||||
+ memcpy(&zip_header.formatted.version,
|
||||
+ &cdf_header.formatted.version_needed, ZIP_HEADER_LEN);
|
||||
+ xlseek(zip_fd,
|
||||
+ SWAP_LE32(cdf_header.formatted.relative_offset_of_local_header) + 4 + ZIP_HEADER_LEN,
|
||||
+ SEEK_SET);
|
||||
+# endif
|
||||
if ((cdf_header.formatted.version_made_by >> 8) == 3) {
|
||||
/* This archive is created on Unix */
|
||||
dir_mode = file_mode = (cdf_header.formatted.external_file_attributes >> 16);
|
||||
}
|
||||
}
|
||||
- if (cdf_offset == BAD_CDF_OFFSET
|
||||
- && (zip_header.formatted.zip_flags & SWAP_LE16(0x0008))
|
||||
- ) {
|
||||
- /* If it's a streaming zip, we _require_ CDF */
|
||||
- bb_error_msg_and_die("can't find file table");
|
||||
- }
|
||||
#endif
|
||||
+
|
||||
+ if (zip_header.formatted.zip_flags & SWAP_LE16(0x0001)) {
|
||||
+ /* 0x0001 - encrypted */
|
||||
+ bb_error_msg_and_die("zip flag 1 (encryption) is not supported");
|
||||
+ }
|
||||
dbg("File cmpsize:0x%x extra_len:0x%x ucmpsize:0x%x",
|
||||
(unsigned)zip_header.formatted.cmpsize,
|
||||
(unsigned)zip_header.formatted.extra_len,
|
||||
@@ -751,7 +796,7 @@ int unzip_main(int argc, char **argv)
|
||||
overwrite = O_ALWAYS;
|
||||
case 'y': /* Open file and fall into unzip */
|
||||
unzip_create_leading_dirs(dst_fn);
|
||||
-#if ENABLE_DESKTOP
|
||||
+#if ENABLE_FEATURE_UNZIP_CDF
|
||||
dst_fd = xopen3(dst_fn, O_WRONLY | O_CREAT | O_TRUNC, file_mode);
|
||||
#else
|
||||
dst_fd = xopen(dst_fn, O_WRONLY | O_CREAT | O_TRUNC);
|
||||
diff --git a/testsuite/unzip.tests b/testsuite/unzip.tests
|
||||
index d8738a3bd..d9c45242c 100755
|
||||
--- a/testsuite/unzip.tests
|
||||
+++ b/testsuite/unzip.tests
|
||||
@@ -31,11 +31,10 @@ rmdir foo
|
||||
rm foo.zip
|
||||
|
||||
# File containing some damaged encrypted stream
|
||||
+optional FEATURE_UNZIP_CDF
|
||||
testing "unzip (bad archive)" "uudecode; unzip bad.zip 2>&1; echo \$?" \
|
||||
"Archive: bad.zip
|
||||
- inflating: ]3j½r«IK-%Ix
|
||||
-unzip: corrupted data
|
||||
-unzip: inflate error
|
||||
+unzip: short read
|
||||
1
|
||||
" \
|
||||
"" "\
|
||||
@@ -49,6 +48,7 @@ BDYAAAAMAAEADQAAADIADQAAAEEAAAASw73Ct1DKokohPXQiNzA+FAI1HCcW
|
||||
NzITNFBLBQUKAC4JAA04Cw0EOhZQSwUGAQAABAIAAgCZAAAAeQAAAAIALhM=
|
||||
====
|
||||
"
|
||||
+SKIP=
|
||||
|
||||
rm *
|
||||
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
From f8692dc6a0035788a83821fa18b987d8748f97a7 Mon Sep 17 00:00:00 2001
|
||||
From: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Date: Thu, 5 Jan 2017 11:47:28 +0100
|
||||
Subject: [PATCH] typo fix in config help text
|
||||
|
||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
archival/unzip.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/archival/unzip.c b/archival/unzip.c
|
||||
index edef22f75..f1726439d 100644
|
||||
--- a/archival/unzip.c
|
||||
+++ b/archival/unzip.c
|
||||
@@ -31,7 +31,7 @@
|
||||
//config: depends on UNZIP
|
||||
//config: help
|
||||
//config: If you know that you only need to deal with simple
|
||||
-//config: ZIP files without deleted/updated files, SFX archves etc,
|
||||
+//config: ZIP files without deleted/updated files, SFX archives etc,
|
||||
//config: you can reduce code size by unselecting this option.
|
||||
//config: To support less trivial ZIPs, say Y.
|
||||
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
From 50504d3a3badb8ab80bd33797abcbb3b7427c267 Mon Sep 17 00:00:00 2001
|
||||
From: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
|
||||
Date: Thu, 5 Jan 2017 19:07:54 +0100
|
||||
Subject: [PATCH] unzip: remove now-pointless lseek which returns current
|
||||
position
|
||||
|
||||
archival/unzip.c: In function 'read_next_cdf':
|
||||
archival/unzip.c:271:8: warning: variable 'org' set but
|
||||
not used [-Wunused-but-set-variable]
|
||||
off_t org;
|
||||
^~~
|
||||
|
||||
Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
|
||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
archival/unzip.c | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/archival/unzip.c b/archival/unzip.c
|
||||
index f1726439d..98a71c09d 100644
|
||||
--- a/archival/unzip.c
|
||||
+++ b/archival/unzip.c
|
||||
@@ -268,13 +268,11 @@ static uint32_t find_cdf_offset(void)
|
||||
|
||||
static uint32_t read_next_cdf(uint32_t cdf_offset, cdf_header_t *cdf_ptr)
|
||||
{
|
||||
- off_t org;
|
||||
uint32_t magic;
|
||||
|
||||
if (cdf_offset == BAD_CDF_OFFSET)
|
||||
return cdf_offset;
|
||||
|
||||
- org = xlseek(zip_fd, 0, SEEK_CUR);
|
||||
dbg("Reading CDF at 0x%x", (unsigned)cdf_offset);
|
||||
xlseek(zip_fd, cdf_offset, SEEK_SET);
|
||||
xread(zip_fd, &magic, 4);
|
||||
@@ -284,9 +282,6 @@ static uint32_t read_next_cdf(uint32_t cdf_offset, cdf_header_t *cdf_ptr)
|
||||
return 0; /* EOF */
|
||||
}
|
||||
xread(zip_fd, cdf_ptr->raw, CDF_HEADER_LEN);
|
||||
- /* Caller doesn't need this: */
|
||||
- /* dbg("Returning file position to 0x%"OFF_FMT"x", org); */
|
||||
- /* xlseek(zip_fd, org, SEEK_SET); */
|
||||
|
||||
FIX_ENDIANNESS_CDF(*cdf_ptr);
|
||||
dbg(" file_name_length:%u extra_field_length:%u file_comment_length:%u",
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,509 @@
|
||||
From ee72302ac5e3b0b2217f616ab316d3c89e5a1f4c Mon Sep 17 00:00:00 2001
|
||||
From: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Date: Sun, 8 Jan 2017 14:14:19 +0100
|
||||
Subject: [PATCH] unzip: do not use CDF.extra_len, read local file header.
|
||||
Closes 9536
|
||||
|
||||
While at it, shorten many field and variable names.
|
||||
|
||||
function old new delta
|
||||
unzip_main 2334 2376 +42
|
||||
|
||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
archival/unzip.c | 236 ++++++++++++++++++++++++++------------------------
|
||||
testsuite/unzip.tests | 4 +-
|
||||
2 files changed, 125 insertions(+), 115 deletions(-)
|
||||
|
||||
diff --git a/archival/unzip.c b/archival/unzip.c
|
||||
index 98a71c09d..921493591 100644
|
||||
--- a/archival/unzip.c
|
||||
+++ b/archival/unzip.c
|
||||
@@ -62,8 +62,8 @@
|
||||
enum {
|
||||
#if BB_BIG_ENDIAN
|
||||
ZIP_FILEHEADER_MAGIC = 0x504b0304,
|
||||
- ZIP_CDF_MAGIC = 0x504b0102, /* central directory's file header */
|
||||
- ZIP_CDE_MAGIC = 0x504b0506, /* "end of central directory" record */
|
||||
+ ZIP_CDF_MAGIC = 0x504b0102, /* CDF item */
|
||||
+ ZIP_CDE_MAGIC = 0x504b0506, /* End of CDF */
|
||||
ZIP_DD_MAGIC = 0x504b0708,
|
||||
#else
|
||||
ZIP_FILEHEADER_MAGIC = 0x04034b50,
|
||||
@@ -91,16 +91,16 @@ typedef union {
|
||||
/* filename follows (not NUL terminated) */
|
||||
/* extra field follows */
|
||||
/* data follows */
|
||||
- } formatted PACKED;
|
||||
+ } fmt PACKED;
|
||||
} zip_header_t; /* PACKED - gcc 4.2.1 doesn't like it (spews warning) */
|
||||
|
||||
-#define FIX_ENDIANNESS_ZIP(zip_header) \
|
||||
+#define FIX_ENDIANNESS_ZIP(zip) \
|
||||
do { if (BB_BIG_ENDIAN) { \
|
||||
- (zip_header).formatted.crc32 = SWAP_LE32((zip_header).formatted.crc32 ); \
|
||||
- (zip_header).formatted.cmpsize = SWAP_LE32((zip_header).formatted.cmpsize ); \
|
||||
- (zip_header).formatted.ucmpsize = SWAP_LE32((zip_header).formatted.ucmpsize ); \
|
||||
- (zip_header).formatted.filename_len = SWAP_LE16((zip_header).formatted.filename_len); \
|
||||
- (zip_header).formatted.extra_len = SWAP_LE16((zip_header).formatted.extra_len ); \
|
||||
+ (zip).fmt.crc32 = SWAP_LE32((zip).fmt.crc32 ); \
|
||||
+ (zip).fmt.cmpsize = SWAP_LE32((zip).fmt.cmpsize ); \
|
||||
+ (zip).fmt.ucmpsize = SWAP_LE32((zip).fmt.ucmpsize ); \
|
||||
+ (zip).fmt.filename_len = SWAP_LE16((zip).fmt.filename_len); \
|
||||
+ (zip).fmt.extra_len = SWAP_LE16((zip).fmt.extra_len ); \
|
||||
}} while (0)
|
||||
|
||||
#define CDF_HEADER_LEN 42
|
||||
@@ -118,39 +118,39 @@ typedef union {
|
||||
uint32_t crc32; /* 12-15 */
|
||||
uint32_t cmpsize; /* 16-19 */
|
||||
uint32_t ucmpsize; /* 20-23 */
|
||||
- uint16_t file_name_length; /* 24-25 */
|
||||
- uint16_t extra_field_length; /* 26-27 */
|
||||
+ uint16_t filename_len; /* 24-25 */
|
||||
+ uint16_t extra_len; /* 26-27 */
|
||||
uint16_t file_comment_length; /* 28-29 */
|
||||
uint16_t disk_number_start; /* 30-31 */
|
||||
- uint16_t internal_file_attributes; /* 32-33 */
|
||||
- uint32_t external_file_attributes PACKED; /* 34-37 */
|
||||
+ uint16_t internal_attributes; /* 32-33 */
|
||||
+ uint32_t external_attributes PACKED; /* 34-37 */
|
||||
uint32_t relative_offset_of_local_header PACKED; /* 38-41 */
|
||||
/* filename follows (not NUL terminated) */
|
||||
/* extra field follows */
|
||||
- /* comment follows */
|
||||
- } formatted PACKED;
|
||||
+ /* file comment follows */
|
||||
+ } fmt PACKED;
|
||||
} cdf_header_t;
|
||||
|
||||
-#define FIX_ENDIANNESS_CDF(cdf_header) \
|
||||
+#define FIX_ENDIANNESS_CDF(cdf) \
|
||||
do { if (BB_BIG_ENDIAN) { \
|
||||
- (cdf_header).formatted.version_made_by = SWAP_LE16((cdf_header).formatted.version_made_by); \
|
||||
- (cdf_header).formatted.version_needed = SWAP_LE16((cdf_header).formatted.version_needed); \
|
||||
- (cdf_header).formatted.method = SWAP_LE16((cdf_header).formatted.method ); \
|
||||
- (cdf_header).formatted.modtime = SWAP_LE16((cdf_header).formatted.modtime ); \
|
||||
- (cdf_header).formatted.moddate = SWAP_LE16((cdf_header).formatted.moddate ); \
|
||||
- (cdf_header).formatted.crc32 = SWAP_LE32((cdf_header).formatted.crc32 ); \
|
||||
- (cdf_header).formatted.cmpsize = SWAP_LE32((cdf_header).formatted.cmpsize ); \
|
||||
- (cdf_header).formatted.ucmpsize = SWAP_LE32((cdf_header).formatted.ucmpsize ); \
|
||||
- (cdf_header).formatted.file_name_length = SWAP_LE16((cdf_header).formatted.file_name_length); \
|
||||
- (cdf_header).formatted.extra_field_length = SWAP_LE16((cdf_header).formatted.extra_field_length); \
|
||||
- (cdf_header).formatted.file_comment_length = SWAP_LE16((cdf_header).formatted.file_comment_length); \
|
||||
- (cdf_header).formatted.external_file_attributes = SWAP_LE32((cdf_header).formatted.external_file_attributes); \
|
||||
+ (cdf).fmt.version_made_by = SWAP_LE16((cdf).fmt.version_made_by); \
|
||||
+ (cdf).fmt.version_needed = SWAP_LE16((cdf).fmt.version_needed); \
|
||||
+ (cdf).fmt.method = SWAP_LE16((cdf).fmt.method ); \
|
||||
+ (cdf).fmt.modtime = SWAP_LE16((cdf).fmt.modtime ); \
|
||||
+ (cdf).fmt.moddate = SWAP_LE16((cdf).fmt.moddate ); \
|
||||
+ (cdf).fmt.crc32 = SWAP_LE32((cdf).fmt.crc32 ); \
|
||||
+ (cdf).fmt.cmpsize = SWAP_LE32((cdf).fmt.cmpsize ); \
|
||||
+ (cdf).fmt.ucmpsize = SWAP_LE32((cdf).fmt.ucmpsize ); \
|
||||
+ (cdf).fmt.filename_len = SWAP_LE16((cdf).fmt.filename_len); \
|
||||
+ (cdf).fmt.extra_len = SWAP_LE16((cdf).fmt.extra_len ); \
|
||||
+ (cdf).fmt.file_comment_length = SWAP_LE16((cdf).fmt.file_comment_length); \
|
||||
+ (cdf).fmt.external_attributes = SWAP_LE32((cdf).fmt.external_attributes); \
|
||||
}} while (0)
|
||||
|
||||
-#define CDE_HEADER_LEN 16
|
||||
+#define CDE_LEN 16
|
||||
|
||||
typedef union {
|
||||
- uint8_t raw[CDE_HEADER_LEN];
|
||||
+ uint8_t raw[CDE_LEN];
|
||||
struct {
|
||||
/* uint32_t signature; 50 4b 05 06 */
|
||||
uint16_t this_disk_no;
|
||||
@@ -159,14 +159,14 @@ typedef union {
|
||||
uint16_t cdf_entries_total;
|
||||
uint32_t cdf_size;
|
||||
uint32_t cdf_offset;
|
||||
- /* uint16_t file_comment_length; */
|
||||
- /* .ZIP file comment (variable size) */
|
||||
- } formatted PACKED;
|
||||
-} cde_header_t;
|
||||
+ /* uint16_t archive_comment_length; */
|
||||
+ /* archive comment follows */
|
||||
+ } fmt PACKED;
|
||||
+} cde_t;
|
||||
|
||||
-#define FIX_ENDIANNESS_CDE(cde_header) \
|
||||
+#define FIX_ENDIANNESS_CDE(cde) \
|
||||
do { if (BB_BIG_ENDIAN) { \
|
||||
- (cde_header).formatted.cdf_offset = SWAP_LE32((cde_header).formatted.cdf_offset); \
|
||||
+ (cde).fmt.cdf_offset = SWAP_LE32((cde).fmt.cdf_offset); \
|
||||
}} while (0)
|
||||
|
||||
struct BUG {
|
||||
@@ -175,13 +175,13 @@ struct BUG {
|
||||
* even though the elements are all in the right place.
|
||||
*/
|
||||
char BUG_zip_header_must_be_26_bytes[
|
||||
- offsetof(zip_header_t, formatted.extra_len) + 2
|
||||
+ offsetof(zip_header_t, fmt.extra_len) + 2
|
||||
== ZIP_HEADER_LEN ? 1 : -1];
|
||||
char BUG_cdf_header_must_be_42_bytes[
|
||||
- offsetof(cdf_header_t, formatted.relative_offset_of_local_header) + 4
|
||||
+ offsetof(cdf_header_t, fmt.relative_offset_of_local_header) + 4
|
||||
== CDF_HEADER_LEN ? 1 : -1];
|
||||
- char BUG_cde_header_must_be_16_bytes[
|
||||
- sizeof(cde_header_t) == CDE_HEADER_LEN ? 1 : -1];
|
||||
+ char BUG_cde_must_be_16_bytes[
|
||||
+ sizeof(cde_t) == CDE_LEN ? 1 : -1];
|
||||
};
|
||||
|
||||
|
||||
@@ -207,7 +207,7 @@ enum { zip_fd = 3 };
|
||||
/* NB: does not preserve file position! */
|
||||
static uint32_t find_cdf_offset(void)
|
||||
{
|
||||
- cde_header_t cde_header;
|
||||
+ cde_t cde;
|
||||
unsigned char *buf;
|
||||
unsigned char *p;
|
||||
off_t end;
|
||||
@@ -228,7 +228,7 @@ static uint32_t find_cdf_offset(void)
|
||||
|
||||
found = BAD_CDF_OFFSET;
|
||||
p = buf;
|
||||
- while (p <= buf + PEEK_FROM_END - CDE_HEADER_LEN - 4) {
|
||||
+ while (p <= buf + PEEK_FROM_END - CDE_LEN - 4) {
|
||||
if (*p != 'P') {
|
||||
p++;
|
||||
continue;
|
||||
@@ -240,19 +240,19 @@ static uint32_t find_cdf_offset(void)
|
||||
if (*++p != 6)
|
||||
continue;
|
||||
/* we found CDE! */
|
||||
- memcpy(cde_header.raw, p + 1, CDE_HEADER_LEN);
|
||||
- FIX_ENDIANNESS_CDE(cde_header);
|
||||
+ memcpy(cde.raw, p + 1, CDE_LEN);
|
||||
+ FIX_ENDIANNESS_CDE(cde);
|
||||
/*
|
||||
* I've seen .ZIP files with seemingly valid CDEs
|
||||
* where cdf_offset points past EOF - ??
|
||||
* This check ignores such CDEs:
|
||||
*/
|
||||
- if (cde_header.formatted.cdf_offset < end + (p - buf)) {
|
||||
- found = cde_header.formatted.cdf_offset;
|
||||
+ if (cde.fmt.cdf_offset < end + (p - buf)) {
|
||||
+ found = cde.fmt.cdf_offset;
|
||||
dbg("Possible cdf_offset:0x%x at 0x%"OFF_FMT"x",
|
||||
(unsigned)found, end + (p-3 - buf));
|
||||
dbg(" cdf_offset+cdf_size:0x%x",
|
||||
- (unsigned)(found + SWAP_LE32(cde_header.formatted.cdf_size)));
|
||||
+ (unsigned)(found + SWAP_LE32(cde.fmt.cdf_size)));
|
||||
/*
|
||||
* We do not "break" here because only the last CDE is valid.
|
||||
* I've seen a .zip archive which contained a .zip file,
|
||||
@@ -266,7 +266,7 @@ static uint32_t find_cdf_offset(void)
|
||||
return found;
|
||||
};
|
||||
|
||||
-static uint32_t read_next_cdf(uint32_t cdf_offset, cdf_header_t *cdf_ptr)
|
||||
+static uint32_t read_next_cdf(uint32_t cdf_offset, cdf_header_t *cdf)
|
||||
{
|
||||
uint32_t magic;
|
||||
|
||||
@@ -276,23 +276,25 @@ static uint32_t read_next_cdf(uint32_t cdf_offset, cdf_header_t *cdf_ptr)
|
||||
dbg("Reading CDF at 0x%x", (unsigned)cdf_offset);
|
||||
xlseek(zip_fd, cdf_offset, SEEK_SET);
|
||||
xread(zip_fd, &magic, 4);
|
||||
- /* Central Directory End? */
|
||||
+ /* Central Directory End? Assume CDF has ended.
|
||||
+ * (more correct method is to use cde.cdf_entries_total counter)
|
||||
+ */
|
||||
if (magic == ZIP_CDE_MAGIC) {
|
||||
dbg("got ZIP_CDE_MAGIC");
|
||||
return 0; /* EOF */
|
||||
}
|
||||
- xread(zip_fd, cdf_ptr->raw, CDF_HEADER_LEN);
|
||||
+ xread(zip_fd, cdf->raw, CDF_HEADER_LEN);
|
||||
|
||||
- FIX_ENDIANNESS_CDF(*cdf_ptr);
|
||||
- dbg(" file_name_length:%u extra_field_length:%u file_comment_length:%u",
|
||||
- (unsigned)cdf_ptr->formatted.file_name_length,
|
||||
- (unsigned)cdf_ptr->formatted.extra_field_length,
|
||||
- (unsigned)cdf_ptr->formatted.file_comment_length
|
||||
+ FIX_ENDIANNESS_CDF(*cdf);
|
||||
+ dbg(" filename_len:%u extra_len:%u file_comment_length:%u",
|
||||
+ (unsigned)cdf->fmt.filename_len,
|
||||
+ (unsigned)cdf->fmt.extra_len,
|
||||
+ (unsigned)cdf->fmt.file_comment_length
|
||||
);
|
||||
cdf_offset += 4 + CDF_HEADER_LEN
|
||||
- + cdf_ptr->formatted.file_name_length
|
||||
- + cdf_ptr->formatted.extra_field_length
|
||||
- + cdf_ptr->formatted.file_comment_length;
|
||||
+ + cdf->fmt.filename_len
|
||||
+ + cdf->fmt.extra_len
|
||||
+ + cdf->fmt.file_comment_length;
|
||||
|
||||
return cdf_offset;
|
||||
};
|
||||
@@ -315,28 +317,28 @@ static void unzip_create_leading_dirs(const char *fn)
|
||||
free(name);
|
||||
}
|
||||
|
||||
-static void unzip_extract(zip_header_t *zip_header, int dst_fd)
|
||||
+static void unzip_extract(zip_header_t *zip, int dst_fd)
|
||||
{
|
||||
- if (zip_header->formatted.method == 0) {
|
||||
+ if (zip->fmt.method == 0) {
|
||||
/* Method 0 - stored (not compressed) */
|
||||
- off_t size = zip_header->formatted.ucmpsize;
|
||||
+ off_t size = zip->fmt.ucmpsize;
|
||||
if (size)
|
||||
bb_copyfd_exact_size(zip_fd, dst_fd, size);
|
||||
} else {
|
||||
/* Method 8 - inflate */
|
||||
transformer_state_t xstate;
|
||||
init_transformer_state(&xstate);
|
||||
- xstate.bytes_in = zip_header->formatted.cmpsize;
|
||||
+ xstate.bytes_in = zip->fmt.cmpsize;
|
||||
xstate.src_fd = zip_fd;
|
||||
xstate.dst_fd = dst_fd;
|
||||
if (inflate_unzip(&xstate) < 0)
|
||||
bb_error_msg_and_die("inflate error");
|
||||
/* Validate decompression - crc */
|
||||
- if (zip_header->formatted.crc32 != (xstate.crc32 ^ 0xffffffffL)) {
|
||||
+ if (zip->fmt.crc32 != (xstate.crc32 ^ 0xffffffffL)) {
|
||||
bb_error_msg_and_die("crc error");
|
||||
}
|
||||
/* Validate decompression - size */
|
||||
- if (zip_header->formatted.ucmpsize != xstate.bytes_out) {
|
||||
+ if (zip->fmt.ucmpsize != xstate.bytes_out) {
|
||||
/* Don't die. Who knows, maybe len calculation
|
||||
* was botched somewhere. After all, crc matched! */
|
||||
bb_error_msg("bad length");
|
||||
@@ -563,7 +565,7 @@ int unzip_main(int argc, char **argv)
|
||||
total_entries = 0;
|
||||
cdf_offset = find_cdf_offset(); /* try to seek to the end, find CDE and CDF start */
|
||||
while (1) {
|
||||
- zip_header_t zip_header;
|
||||
+ zip_header_t zip;
|
||||
mode_t dir_mode = 0777;
|
||||
#if ENABLE_FEATURE_UNZIP_CDF
|
||||
mode_t file_mode = 0666;
|
||||
@@ -589,7 +591,7 @@ int unzip_main(int argc, char **argv)
|
||||
|
||||
/* Check magic number */
|
||||
xread(zip_fd, &magic, 4);
|
||||
- /* Central directory? It's at the end, so exit */
|
||||
+ /* CDF item? Assume there are no more files, exit */
|
||||
if (magic == ZIP_CDF_MAGIC) {
|
||||
dbg("got ZIP_CDF_MAGIC");
|
||||
break;
|
||||
@@ -605,71 +607,74 @@ int unzip_main(int argc, char **argv)
|
||||
bb_error_msg_and_die("invalid zip magic %08X", (int)magic);
|
||||
dbg("got ZIP_FILEHEADER_MAGIC");
|
||||
|
||||
- xread(zip_fd, zip_header.raw, ZIP_HEADER_LEN);
|
||||
- FIX_ENDIANNESS_ZIP(zip_header);
|
||||
- if ((zip_header.formatted.method != 0)
|
||||
- && (zip_header.formatted.method != 8)
|
||||
+ xread(zip_fd, zip.raw, ZIP_HEADER_LEN);
|
||||
+ FIX_ENDIANNESS_ZIP(zip);
|
||||
+ if ((zip.fmt.method != 0)
|
||||
+ && (zip.fmt.method != 8)
|
||||
) {
|
||||
/* TODO? method 12: bzip2, method 14: LZMA */
|
||||
- bb_error_msg_and_die("unsupported method %d", zip_header.formatted.method);
|
||||
+ bb_error_msg_and_die("unsupported method %d", zip.fmt.method);
|
||||
}
|
||||
- if (zip_header.formatted.zip_flags & SWAP_LE16(0x0009)) {
|
||||
+ if (zip.fmt.zip_flags & SWAP_LE16(0x0009)) {
|
||||
bb_error_msg_and_die("zip flags 1 and 8 are not supported");
|
||||
}
|
||||
}
|
||||
#if ENABLE_FEATURE_UNZIP_CDF
|
||||
else {
|
||||
/* cdf_offset is valid (and we know the file is seekable) */
|
||||
- cdf_header_t cdf_header;
|
||||
- cdf_offset = read_next_cdf(cdf_offset, &cdf_header);
|
||||
+ cdf_header_t cdf;
|
||||
+ cdf_offset = read_next_cdf(cdf_offset, &cdf);
|
||||
if (cdf_offset == 0) /* EOF? */
|
||||
break;
|
||||
-# if 0
|
||||
+# if 1
|
||||
xlseek(zip_fd,
|
||||
- SWAP_LE32(cdf_header.formatted.relative_offset_of_local_header) + 4,
|
||||
+ SWAP_LE32(cdf.fmt.relative_offset_of_local_header) + 4,
|
||||
SEEK_SET);
|
||||
- xread(zip_fd, zip_header.raw, ZIP_HEADER_LEN);
|
||||
- FIX_ENDIANNESS_ZIP(zip_header);
|
||||
- if (zip_header.formatted.zip_flags & SWAP_LE16(0x0008)) {
|
||||
+ xread(zip_fd, zip.raw, ZIP_HEADER_LEN);
|
||||
+ FIX_ENDIANNESS_ZIP(zip);
|
||||
+ if (zip.fmt.zip_flags & SWAP_LE16(0x0008)) {
|
||||
/* 0x0008 - streaming. [u]cmpsize can be reliably gotten
|
||||
* only from Central Directory.
|
||||
*/
|
||||
- zip_header.formatted.crc32 = cdf_header.formatted.crc32;
|
||||
- zip_header.formatted.cmpsize = cdf_header.formatted.cmpsize;
|
||||
- zip_header.formatted.ucmpsize = cdf_header.formatted.ucmpsize;
|
||||
+ zip.fmt.crc32 = cdf.fmt.crc32;
|
||||
+ zip.fmt.cmpsize = cdf.fmt.cmpsize;
|
||||
+ zip.fmt.ucmpsize = cdf.fmt.ucmpsize;
|
||||
}
|
||||
# else
|
||||
- /* CDF has the same data as local header, no need to read the latter */
|
||||
- memcpy(&zip_header.formatted.version,
|
||||
- &cdf_header.formatted.version_needed, ZIP_HEADER_LEN);
|
||||
+ /* CDF has the same data as local header, no need to read the latter...
|
||||
+ * ...not really. An archive was seen with cdf.extra_len == 6 but
|
||||
+ * zip.extra_len == 0.
|
||||
+ */
|
||||
+ memcpy(&zip.fmt.version,
|
||||
+ &cdf.fmt.version_needed, ZIP_HEADER_LEN);
|
||||
xlseek(zip_fd,
|
||||
- SWAP_LE32(cdf_header.formatted.relative_offset_of_local_header) + 4 + ZIP_HEADER_LEN,
|
||||
+ SWAP_LE32(cdf.fmt.relative_offset_of_local_header) + 4 + ZIP_HEADER_LEN,
|
||||
SEEK_SET);
|
||||
# endif
|
||||
- if ((cdf_header.formatted.version_made_by >> 8) == 3) {
|
||||
+ if ((cdf.fmt.version_made_by >> 8) == 3) {
|
||||
/* This archive is created on Unix */
|
||||
- dir_mode = file_mode = (cdf_header.formatted.external_file_attributes >> 16);
|
||||
+ dir_mode = file_mode = (cdf.fmt.external_attributes >> 16);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
- if (zip_header.formatted.zip_flags & SWAP_LE16(0x0001)) {
|
||||
+ if (zip.fmt.zip_flags & SWAP_LE16(0x0001)) {
|
||||
/* 0x0001 - encrypted */
|
||||
bb_error_msg_and_die("zip flag 1 (encryption) is not supported");
|
||||
}
|
||||
dbg("File cmpsize:0x%x extra_len:0x%x ucmpsize:0x%x",
|
||||
- (unsigned)zip_header.formatted.cmpsize,
|
||||
- (unsigned)zip_header.formatted.extra_len,
|
||||
- (unsigned)zip_header.formatted.ucmpsize
|
||||
+ (unsigned)zip.fmt.cmpsize,
|
||||
+ (unsigned)zip.fmt.extra_len,
|
||||
+ (unsigned)zip.fmt.ucmpsize
|
||||
);
|
||||
|
||||
/* Read filename */
|
||||
free(dst_fn);
|
||||
- dst_fn = xzalloc(zip_header.formatted.filename_len + 1);
|
||||
- xread(zip_fd, dst_fn, zip_header.formatted.filename_len);
|
||||
+ dst_fn = xzalloc(zip.fmt.filename_len + 1);
|
||||
+ xread(zip_fd, dst_fn, zip.fmt.filename_len);
|
||||
|
||||
/* Skip extra header bytes */
|
||||
- unzip_skip(zip_header.formatted.extra_len);
|
||||
+ unzip_skip(zip.fmt.extra_len);
|
||||
|
||||
/* Guard against "/abspath", "/../" and similar attacks */
|
||||
overlapping_strcpy(dst_fn, strip_unsafe_prefix(dst_fn));
|
||||
@@ -684,32 +689,32 @@ int unzip_main(int argc, char **argv)
|
||||
/* List entry */
|
||||
char dtbuf[sizeof("mm-dd-yyyy hh:mm")];
|
||||
sprintf(dtbuf, "%02u-%02u-%04u %02u:%02u",
|
||||
- (zip_header.formatted.moddate >> 5) & 0xf, // mm: 0x01e0
|
||||
- (zip_header.formatted.moddate) & 0x1f, // dd: 0x001f
|
||||
- (zip_header.formatted.moddate >> 9) + 1980, // yy: 0xfe00
|
||||
- (zip_header.formatted.modtime >> 11), // hh: 0xf800
|
||||
- (zip_header.formatted.modtime >> 5) & 0x3f // mm: 0x07e0
|
||||
- // seconds/2 are not shown, encoded in ----------- 0x001f
|
||||
+ (zip.fmt.moddate >> 5) & 0xf, // mm: 0x01e0
|
||||
+ (zip.fmt.moddate) & 0x1f, // dd: 0x001f
|
||||
+ (zip.fmt.moddate >> 9) + 1980, // yy: 0xfe00
|
||||
+ (zip.fmt.modtime >> 11), // hh: 0xf800
|
||||
+ (zip.fmt.modtime >> 5) & 0x3f // mm: 0x07e0
|
||||
+ // seconds/2 not shown, encoded in -- 0x001f
|
||||
);
|
||||
if (!verbose) {
|
||||
// " Length Date Time Name\n"
|
||||
// "--------- ---------- ----- ----"
|
||||
printf( "%9u " "%s " "%s\n",
|
||||
- (unsigned)zip_header.formatted.ucmpsize,
|
||||
+ (unsigned)zip.fmt.ucmpsize,
|
||||
dtbuf,
|
||||
dst_fn);
|
||||
} else {
|
||||
- unsigned long percents = zip_header.formatted.ucmpsize - zip_header.formatted.cmpsize;
|
||||
+ unsigned long percents = zip.fmt.ucmpsize - zip.fmt.cmpsize;
|
||||
if ((int32_t)percents < 0)
|
||||
percents = 0; /* happens if ucmpsize < cmpsize */
|
||||
percents = percents * 100;
|
||||
- if (zip_header.formatted.ucmpsize)
|
||||
- percents /= zip_header.formatted.ucmpsize;
|
||||
+ if (zip.fmt.ucmpsize)
|
||||
+ percents /= zip.fmt.ucmpsize;
|
||||
// " Length Method Size Cmpr Date Time CRC-32 Name\n"
|
||||
// "-------- ------ ------- ---- ---------- ----- -------- ----"
|
||||
printf( "%8u %s" "%9u%4u%% " "%s " "%08x " "%s\n",
|
||||
- (unsigned)zip_header.formatted.ucmpsize,
|
||||
- zip_header.formatted.method == 0 ? "Stored" : "Defl:N", /* Defl is method 8 */
|
||||
+ (unsigned)zip.fmt.ucmpsize,
|
||||
+ zip.fmt.method == 0 ? "Stored" : "Defl:N", /* Defl is method 8 */
|
||||
/* TODO: show other methods?
|
||||
* 1 - Shrunk
|
||||
* 2 - Reduced with compression factor 1
|
||||
@@ -722,15 +727,16 @@ int unzip_main(int argc, char **argv)
|
||||
* 10 - PKWARE Data Compression Library Imploding
|
||||
* 11 - Reserved by PKWARE
|
||||
* 12 - BZIP2
|
||||
+ * 14 - LZMA
|
||||
*/
|
||||
- (unsigned)zip_header.formatted.cmpsize,
|
||||
+ (unsigned)zip.fmt.cmpsize,
|
||||
(unsigned)percents,
|
||||
dtbuf,
|
||||
- zip_header.formatted.crc32,
|
||||
+ zip.fmt.crc32,
|
||||
dst_fn);
|
||||
- total_size += zip_header.formatted.cmpsize;
|
||||
+ total_size += zip.fmt.cmpsize;
|
||||
}
|
||||
- total_usize += zip_header.formatted.ucmpsize;
|
||||
+ total_usize += zip.fmt.ucmpsize;
|
||||
i = 'n';
|
||||
} else if (dst_fd == STDOUT_FILENO) {
|
||||
/* Extracting to STDOUT */
|
||||
@@ -798,9 +804,11 @@ int unzip_main(int argc, char **argv)
|
||||
#endif
|
||||
case -1: /* Unzip */
|
||||
if (!quiet) {
|
||||
- printf(" inflating: %s\n", dst_fn);
|
||||
+ printf(/* zip.fmt.method == 0
|
||||
+ ? " extracting: %s\n"
|
||||
+ : */ " inflating: %s\n", dst_fn);
|
||||
}
|
||||
- unzip_extract(&zip_header, dst_fd);
|
||||
+ unzip_extract(&zip, dst_fd);
|
||||
if (dst_fd != STDOUT_FILENO) {
|
||||
/* closing STDOUT is potentially bad for future business */
|
||||
close(dst_fd);
|
||||
@@ -811,7 +819,7 @@ int unzip_main(int argc, char **argv)
|
||||
overwrite = O_NEVER;
|
||||
case 'n':
|
||||
/* Skip entry data */
|
||||
- unzip_skip(zip_header.formatted.cmpsize);
|
||||
+ unzip_skip(zip.fmt.cmpsize);
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
diff --git a/testsuite/unzip.tests b/testsuite/unzip.tests
|
||||
index d9c45242c..2e4becdb8 100755
|
||||
--- a/testsuite/unzip.tests
|
||||
+++ b/testsuite/unzip.tests
|
||||
@@ -34,7 +34,9 @@ rm foo.zip
|
||||
optional FEATURE_UNZIP_CDF
|
||||
testing "unzip (bad archive)" "uudecode; unzip bad.zip 2>&1; echo \$?" \
|
||||
"Archive: bad.zip
|
||||
-unzip: short read
|
||||
+ inflating: ]3j½r«IK-%Ix
|
||||
+unzip: corrupted data
|
||||
+unzip: inflate error
|
||||
1
|
||||
" \
|
||||
"" "\
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
From 4316dff48aacb29307e1b52cb761fef603759b9d Mon Sep 17 00:00:00 2001
|
||||
From: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Date: Mon, 18 Sep 2017 13:09:11 +0200
|
||||
Subject: [PATCH] httpd: fix handling of range requests
|
||||
|
||||
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
networking/httpd.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/networking/httpd.c b/networking/httpd.c
|
||||
index d301d598d..84d819723 100644
|
||||
--- a/networking/httpd.c
|
||||
+++ b/networking/httpd.c
|
||||
@@ -2337,7 +2337,7 @@ static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr)
|
||||
if (STRNCASECMP(iobuf, "Range:") == 0) {
|
||||
/* We know only bytes=NNN-[MMM] */
|
||||
char *s = skip_whitespace(iobuf + sizeof("Range:")-1);
|
||||
- if (is_prefixed_with(s, "bytes=") == 0) {
|
||||
+ if (is_prefixed_with(s, "bytes=")) {
|
||||
s += sizeof("bytes=")-1;
|
||||
range_start = BB_STRTOOFF(s, &s, 10);
|
||||
if (s[0] != '-' || range_start < 0) {
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -12,13 +12,13 @@ BZIP2_LICENSE_FILES = LICENSE
|
||||
|
||||
ifeq ($(BR2_STATIC_LIBS),)
|
||||
define BZIP2_BUILD_SHARED_CMDS
|
||||
$(TARGET_MAKE_ENV)
|
||||
$(TARGET_MAKE_ENV) \
|
||||
$(MAKE) -C $(@D) -f Makefile-libbz2_so $(TARGET_CONFIGURE_OPTS)
|
||||
endef
|
||||
endif
|
||||
|
||||
define BZIP2_BUILD_CMDS
|
||||
$(TARGET_MAKE_ENV)
|
||||
$(TARGET_MAKE_ENV) \
|
||||
$(MAKE) -C $(@D) libbz2.a bzip2 bzip2recover $(TARGET_CONFIGURE_OPTS)
|
||||
$(BZIP2_BUILD_SHARED_CMDS)
|
||||
endef
|
||||
|
||||
@@ -24,9 +24,23 @@ COLLECTD_PLUGINS_DISABLE = \
|
||||
|
||||
COLLECTD_CONF_ENV += LIBS="-lm"
|
||||
|
||||
#
|
||||
# NOTE: There's also a third availible setting "intswap", which might
|
||||
# be needed on some old ARM hardware (see [2]), but is not being
|
||||
# accounted for as per discussion [1]
|
||||
#
|
||||
# [1] http://lists.busybox.net/pipermail/buildroot/2017-November/206100.html
|
||||
# [2] http://lists.busybox.net/pipermail/buildroot/2017-November/206251.html
|
||||
#
|
||||
ifeq ($(BR2_ENDIAN),"BIG")
|
||||
COLLECTD_FP_LAYOUT=endianflip
|
||||
else
|
||||
COLLECTD_FP_LAYOUT=nothing
|
||||
endif
|
||||
|
||||
COLLECTD_CONF_OPTS += \
|
||||
--with-nan-emulation \
|
||||
--with-fp-layout=nothing \
|
||||
--with-fp-layout=$(COLLECTD_FP_LAYOUT) \
|
||||
--with-perl-bindings=no \
|
||||
$(foreach p, $(COLLECTD_PLUGINS_DISABLE), --disable-$(p)) \
|
||||
$(if $(BR2_PACKAGE_COLLECTD_AGGREGATION),--enable-aggregation,--disable-aggregation) \
|
||||
|
||||
@@ -1,2 +1,6 @@
|
||||
# Locally calculated after checking pgp signature
|
||||
sha256 4b92698dee19ca0cb2a8f2e48f1d2dffd01a21eb15d1fbed4cf085630c8c9f96 dnsmasq-2.76.tar.xz
|
||||
# http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.78.tar.xz.asc
|
||||
sha256 89949f438c74b0c7543f06689c319484bd126cc4b1f8c745c742ab397681252b dnsmasq-2.78.tar.xz
|
||||
# Locally calculated
|
||||
sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING
|
||||
sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING-v3
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
DNSMASQ_VERSION = 2.76
|
||||
DNSMASQ_VERSION = 2.78
|
||||
DNSMASQ_SOURCE = dnsmasq-$(DNSMASQ_VERSION).tar.xz
|
||||
DNSMASQ_SITE = http://thekelleys.org.uk/dnsmasq
|
||||
DNSMASQ_MAKE_ENV = $(TARGET_MAKE_ENV) CC="$(TARGET_CC)"
|
||||
@@ -58,7 +58,7 @@ DNSMASQ_MAKE_OPTS += LIBS+="-ldl"
|
||||
endif
|
||||
|
||||
define DNSMASQ_ENABLE_LUA
|
||||
$(SED) 's/lua5.1/lua/g' $(DNSMASQ_DIR)/Makefile
|
||||
$(SED) 's/lua5.2/lua/g' $(DNSMASQ_DIR)/Makefile
|
||||
$(SED) 's^.*#define HAVE_LUASCRIPT.*^#define HAVE_LUASCRIPT^' \
|
||||
$(DNSMASQ_DIR)/src/config.h
|
||||
endef
|
||||
|
||||
@@ -15,6 +15,8 @@ DVB_APPS_DEPENDENCIES = libiconv
|
||||
DVB_APPS_LDLIBS += -liconv
|
||||
endif
|
||||
|
||||
DVB_APPS_MAKE_OPTS = PERL5LIB=$(@D)/util/scan
|
||||
|
||||
ifeq ($(BR2_STATIC_LIBS),y)
|
||||
DVB_APPS_MAKE_OPTS += enable_shared=no
|
||||
else ifeq ($(BR2_SHARED_LIBS),y)
|
||||
@@ -25,7 +27,7 @@ DVB_APPS_INSTALL_STAGING = YES
|
||||
|
||||
define DVB_APPS_BUILD_CMDS
|
||||
$(TARGET_CONFIGURE_OPTS) LDLIBS="$(DVB_APPS_LDLIBS)" \
|
||||
$(MAKE) -C $(@D) CROSS_ROOT=$(STAGING_DIR) \
|
||||
$(MAKE1) -C $(@D) CROSS_ROOT=$(STAGING_DIR) \
|
||||
$(DVB_APPS_MAKE_OPTS)
|
||||
endef
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Locally calculated
|
||||
sha256 42e7362692318afc666f14378dd445effa9a1b09787504a6ab5811fe442674cd ffmpeg-3.2.8.tar.xz
|
||||
sha256 1131d37890ed3dcbc3970452b200a56ceb36b73eaa51d1c23c770c90f928537f ffmpeg-3.2.9.tar.xz
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
FFMPEG_VERSION = 3.2.8
|
||||
FFMPEG_VERSION = 3.2.9
|
||||
FFMPEG_SOURCE = ffmpeg-$(FFMPEG_VERSION).tar.xz
|
||||
FFMPEG_SITE = http://ffmpeg.org/releases
|
||||
FFMPEG_INSTALL_STAGING = YES
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# From: https://www.kernel.org/pub/software/scm/git/sha256sums.asc
|
||||
sha256 f8b8ac499034e9f6e44e67dd54351bc5654e228e4cd3b55f6f1c8e736c977ce6 git-2.12.4.tar.xz
|
||||
sha256 a8c3b3c7dd9202d0e80f824ceb74b4340b60aa8f1ec4ffdde3e982fa5ae16eab git-2.12.5.tar.xz
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
GIT_VERSION = 2.12.4
|
||||
GIT_VERSION = 2.12.5
|
||||
GIT_SOURCE = git-$(GIT_VERSION).tar.xz
|
||||
GIT_SITE = https://www.kernel.org/pub/software/scm/git
|
||||
GIT_LICENSE = GPLv2, LGPLv2.1+
|
||||
|
||||
+8
-6
@@ -52,7 +52,7 @@ HOST_GO_TARGET_ENV = \
|
||||
# set, build in cgo support for any go programs that may need it. Note that
|
||||
# any target package needing cgo support must include
|
||||
# 'depends on BR2_TOOLCHAIN_HAS_THREADS' in its config file.
|
||||
ifeq (BR2_TOOLCHAIN_HAS_THREADS,y)
|
||||
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
|
||||
HOST_GO_CGO_ENABLED = 1
|
||||
else
|
||||
HOST_GO_CGO_ENABLED = 0
|
||||
@@ -74,8 +74,8 @@ HOST_GO_MAKE_ENV = \
|
||||
GOARCH=$(GO_GOARCH) \
|
||||
$(if $(GO_GOARM),GOARM=$(GO_GOARM)) \
|
||||
GOOS=linux \
|
||||
CGO_ENABLED=$(HOST_GO_CGO_ENABLED) \
|
||||
CC=$(HOSTCC_NOCCACHE)
|
||||
CC=$(HOSTCC_NOCCACHE) \
|
||||
CXX=$(HOSTCXX_NOCCACHE)
|
||||
|
||||
HOST_GO_TARGET_CC = \
|
||||
CC_FOR_TARGET="$(TARGET_CC)" \
|
||||
@@ -83,16 +83,18 @@ HOST_GO_TARGET_CC = \
|
||||
|
||||
HOST_GO_HOST_CC = \
|
||||
CC_FOR_TARGET=$(HOSTCC_NOCCACHE) \
|
||||
CXX_FOR_TARGET=$(HOSTCC_NOCCACHE)
|
||||
CXX_FOR_TARGET=$(HOSTCXX_NOCCACHE)
|
||||
|
||||
HOST_GO_TMP = $(@D)/host-go-tmp
|
||||
|
||||
define HOST_GO_BUILD_CMDS
|
||||
cd $(@D)/src && $(HOST_GO_MAKE_ENV) $(HOST_GO_HOST_CC) ./make.bash
|
||||
cd $(@D)/src && \
|
||||
$(HOST_GO_MAKE_ENV) $(HOST_GO_HOST_CC) CGO_ENABLED=0 ./make.bash
|
||||
mkdir -p $(HOST_GO_TMP)
|
||||
mv $(@D)/pkg/tool $(HOST_GO_TMP)/
|
||||
mv $(@D)/bin/ $(HOST_GO_TMP)/
|
||||
cd $(@D)/src && $(HOST_GO_MAKE_ENV) $(HOST_GO_TARGET_CC) ./make.bash
|
||||
cd $(@D)/src && \
|
||||
$(HOST_GO_MAKE_ENV) $(HOST_GO_TARGET_CC) CGO_ENABLED=$(HOST_GO_CGO_ENABLED) ./make.bash
|
||||
endef
|
||||
|
||||
define HOST_GO_INSTALL_CMDS
|
||||
|
||||
+257
@@ -0,0 +1,257 @@
|
||||
From 7975a962e1d6dbad5a46792a54e647abd7caf5f1 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Mentovai <mark@chromium.org>
|
||||
Date: Tue, 19 Sep 2017 22:48:30 -0400
|
||||
Subject: [PATCH] Replace remaining references to 'struct ucontext' with
|
||||
'ucontext_t'
|
||||
|
||||
This relands
|
||||
https://chromium.googlesource.com/breakpad/breakpad/src/+/e3035bc406cee8a4d765e59ad46eb828705f17f4,
|
||||
which was accidentally committed to breakpad/breakpad/src, the read-only
|
||||
mirror of src in breakpad/breakpad. (Well, it should have been
|
||||
read-only.) See https://crbug.com/766164.
|
||||
|
||||
This fixes issues with glibc-2.26.
|
||||
|
||||
See https://bugs.gentoo.org/show_bug.cgi?id=628782 ,
|
||||
https://sourceware.org/git/?p=glibc.git;h=251287734e89a52da3db682a8241eb6bccc050c9 , and
|
||||
https://sourceware.org/ml/libc-alpha/2017-08/msg00010.html for context.
|
||||
Change-Id: Id66f474d636dd2afa450bab925c5514a800fdd6f
|
||||
Reviewed-on: https://chromium-review.googlesource.com/674304
|
||||
Reviewed-by: Mark Mentovai <mark@chromium.org>
|
||||
|
||||
(cherry picked from commit bddcc58860f522a0d4cbaa7e9d04058caee0db9d)
|
||||
[Romain: backport from upstream]
|
||||
Signed-off-by: Romain Naour <romain.naour@gmail.com>
|
||||
---
|
||||
.../linux/dump_writer_common/ucontext_reader.cc | 32 +++++++++++-----------
|
||||
.../linux/dump_writer_common/ucontext_reader.h | 14 +++++-----
|
||||
src/client/linux/handler/exception_handler.cc | 10 +++----
|
||||
src/client/linux/handler/exception_handler.h | 6 ++--
|
||||
.../linux/microdump_writer/microdump_writer.cc | 2 +-
|
||||
.../linux/minidump_writer/minidump_writer.cc | 2 +-
|
||||
6 files changed, 33 insertions(+), 33 deletions(-)
|
||||
|
||||
diff --git a/src/client/linux/dump_writer_common/ucontext_reader.cc b/src/client/linux/dump_writer_common/ucontext_reader.cc
|
||||
index c80724d..052ce37 100644
|
||||
--- a/src/client/linux/dump_writer_common/ucontext_reader.cc
|
||||
+++ b/src/client/linux/dump_writer_common/ucontext_reader.cc
|
||||
@@ -36,19 +36,19 @@ namespace google_breakpad {
|
||||
|
||||
// Minidump defines register structures which are different from the raw
|
||||
// structures which we get from the kernel. These are platform specific
|
||||
-// functions to juggle the ucontext and user structures into minidump format.
|
||||
+// functions to juggle the ucontext_t and user structures into minidump format.
|
||||
|
||||
#if defined(__i386__)
|
||||
|
||||
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.gregs[REG_ESP];
|
||||
}
|
||||
|
||||
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.gregs[REG_EIP];
|
||||
}
|
||||
|
||||
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||
const struct _libc_fpstate* fp) {
|
||||
const greg_t* regs = uc->uc_mcontext.gregs;
|
||||
|
||||
@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
|
||||
#elif defined(__x86_64)
|
||||
|
||||
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.gregs[REG_RSP];
|
||||
}
|
||||
|
||||
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.gregs[REG_RIP];
|
||||
}
|
||||
|
||||
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||
const struct _libc_fpstate* fpregs) {
|
||||
const greg_t* regs = uc->uc_mcontext.gregs;
|
||||
|
||||
@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
|
||||
#elif defined(__ARM_EABI__)
|
||||
|
||||
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.arm_sp;
|
||||
}
|
||||
|
||||
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.arm_pc;
|
||||
}
|
||||
|
||||
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
|
||||
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
|
||||
out->context_flags = MD_CONTEXT_ARM_FULL;
|
||||
|
||||
out->iregs[0] = uc->uc_mcontext.arm_r0;
|
||||
@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
|
||||
|
||||
#elif defined(__aarch64__)
|
||||
|
||||
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.sp;
|
||||
}
|
||||
|
||||
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.pc;
|
||||
}
|
||||
|
||||
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||
const struct fpsimd_context* fpregs) {
|
||||
out->context_flags = MD_CONTEXT_ARM64_FULL;
|
||||
|
||||
@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
|
||||
#elif defined(__mips__)
|
||||
|
||||
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP];
|
||||
}
|
||||
|
||||
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.pc;
|
||||
}
|
||||
|
||||
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
|
||||
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
|
||||
#if _MIPS_SIM == _ABI64
|
||||
out->context_flags = MD_CONTEXT_MIPS64_FULL;
|
||||
#elif _MIPS_SIM == _ABIO32
|
||||
diff --git a/src/client/linux/dump_writer_common/ucontext_reader.h b/src/client/linux/dump_writer_common/ucontext_reader.h
|
||||
index b6e77b4..2de80b7 100644
|
||||
--- a/src/client/linux/dump_writer_common/ucontext_reader.h
|
||||
+++ b/src/client/linux/dump_writer_common/ucontext_reader.h
|
||||
@@ -39,23 +39,23 @@
|
||||
|
||||
namespace google_breakpad {
|
||||
|
||||
-// Wraps platform-dependent implementations of accessors to ucontext structs.
|
||||
+// Wraps platform-dependent implementations of accessors to ucontext_t structs.
|
||||
struct UContextReader {
|
||||
- static uintptr_t GetStackPointer(const struct ucontext* uc);
|
||||
+ static uintptr_t GetStackPointer(const ucontext_t* uc);
|
||||
|
||||
- static uintptr_t GetInstructionPointer(const struct ucontext* uc);
|
||||
+ static uintptr_t GetInstructionPointer(const ucontext_t* uc);
|
||||
|
||||
- // Juggle a arch-specific ucontext into a minidump format
|
||||
+ // Juggle a arch-specific ucontext_t into a minidump format
|
||||
// out: the minidump structure
|
||||
// info: the collection of register structures.
|
||||
#if defined(__i386__) || defined(__x86_64)
|
||||
- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||
const struct _libc_fpstate* fp);
|
||||
#elif defined(__aarch64__)
|
||||
- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||
const struct fpsimd_context* fpregs);
|
||||
#else
|
||||
- static void FillCPUContext(RawContextCPU *out, const ucontext *uc);
|
||||
+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc);
|
||||
#endif
|
||||
};
|
||||
|
||||
diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
|
||||
index b63f973..3d809b8 100644
|
||||
--- a/src/client/linux/handler/exception_handler.cc
|
||||
+++ b/src/client/linux/handler/exception_handler.cc
|
||||
@@ -439,9 +439,9 @@ bool ExceptionHandler::HandleSignal(int sig, siginfo_t* info, void* uc) {
|
||||
// Fill in all the holes in the struct to make Valgrind happy.
|
||||
memset(&g_crash_context_, 0, sizeof(g_crash_context_));
|
||||
memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
|
||||
- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext));
|
||||
+ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t));
|
||||
#if defined(__aarch64__)
|
||||
- struct ucontext* uc_ptr = (struct ucontext*)uc;
|
||||
+ ucontext_t* uc_ptr = (ucontext_t*)uc;
|
||||
struct fpsimd_context* fp_ptr =
|
||||
(struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
|
||||
if (fp_ptr->head.magic == FPSIMD_MAGIC) {
|
||||
@@ -450,9 +450,9 @@ bool ExceptionHandler::HandleSignal(int sig, siginfo_t* info, void* uc) {
|
||||
}
|
||||
#elif !defined(__ARM_EABI__) && !defined(__mips__)
|
||||
// FP state is not part of user ABI on ARM Linux.
|
||||
- // In case of MIPS Linux FP state is already part of struct ucontext
|
||||
+ // In case of MIPS Linux FP state is already part of ucontext_t
|
||||
// and 'float_state' is not a member of CrashContext.
|
||||
- struct ucontext* uc_ptr = (struct ucontext*)uc;
|
||||
+ ucontext_t* uc_ptr = (ucontext_t*)uc;
|
||||
if (uc_ptr->uc_mcontext.fpregs) {
|
||||
memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
|
||||
sizeof(g_crash_context_.float_state));
|
||||
@@ -476,7 +476,7 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
|
||||
// ExceptionHandler::HandleSignal().
|
||||
siginfo.si_code = SI_USER;
|
||||
siginfo.si_pid = getpid();
|
||||
- struct ucontext context;
|
||||
+ ucontext_t context;
|
||||
getcontext(&context);
|
||||
return HandleSignal(sig, &siginfo, &context);
|
||||
}
|
||||
diff --git a/src/client/linux/handler/exception_handler.h b/src/client/linux/handler/exception_handler.h
|
||||
index 591c310..42f4055 100644
|
||||
--- a/src/client/linux/handler/exception_handler.h
|
||||
+++ b/src/client/linux/handler/exception_handler.h
|
||||
@@ -191,11 +191,11 @@ class ExceptionHandler {
|
||||
struct CrashContext {
|
||||
siginfo_t siginfo;
|
||||
pid_t tid; // the crashing thread.
|
||||
- struct ucontext context;
|
||||
+ ucontext_t context;
|
||||
#if !defined(__ARM_EABI__) && !defined(__mips__)
|
||||
// #ifdef this out because FP state is not part of user ABI for Linux ARM.
|
||||
- // In case of MIPS Linux FP state is already part of struct
|
||||
- // ucontext so 'float_state' is not required.
|
||||
+ // In case of MIPS Linux FP state is already part of ucontext_t so
|
||||
+ // 'float_state' is not required.
|
||||
fpstate_t float_state;
|
||||
#endif
|
||||
};
|
||||
diff --git a/src/client/linux/microdump_writer/microdump_writer.cc b/src/client/linux/microdump_writer/microdump_writer.cc
|
||||
index 6f5b435..a508667 100644
|
||||
--- a/src/client/linux/microdump_writer/microdump_writer.cc
|
||||
+++ b/src/client/linux/microdump_writer/microdump_writer.cc
|
||||
@@ -571,7 +571,7 @@ class MicrodumpWriter {
|
||||
|
||||
void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
|
||||
|
||||
- const struct ucontext* const ucontext_;
|
||||
+ const ucontext_t* const ucontext_;
|
||||
#if !defined(__ARM_EABI__) && !defined(__mips__)
|
||||
const google_breakpad::fpstate_t* const float_state_;
|
||||
#endif
|
||||
diff --git a/src/client/linux/minidump_writer/minidump_writer.cc b/src/client/linux/minidump_writer/minidump_writer.cc
|
||||
index 86009b9..f2aec73 100644
|
||||
--- a/src/client/linux/minidump_writer/minidump_writer.cc
|
||||
+++ b/src/client/linux/minidump_writer/minidump_writer.cc
|
||||
@@ -1248,7 +1248,7 @@ class MinidumpWriter {
|
||||
const int fd_; // File descriptor where the minidum should be written.
|
||||
const char* path_; // Path to the file where the minidum should be written.
|
||||
|
||||
- const struct ucontext* const ucontext_; // also from the signal handler
|
||||
+ const ucontext_t* const ucontext_; // also from the signal handler
|
||||
#if !defined(__ARM_EABI__) && !defined(__mips__)
|
||||
const google_breakpad::fpstate_t* const float_state_; // ditto
|
||||
#endif
|
||||
--
|
||||
2.9.5
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
comment "gstreamer 0.10 needs a toolchain w/ wchar, threads"
|
||||
comment "gstreamer 0.10 needs a toolchain w/ wchar, threads, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
|
||||
BR2_STATIC_LIBS
|
||||
|
||||
config BR2_PACKAGE_GSTREAMER
|
||||
bool "gstreamer 0.10"
|
||||
depends on BR2_USE_WCHAR # glib2
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
|
||||
depends on BR2_USE_MMU # glib2
|
||||
depends on !BR2_STATIC_LIBS
|
||||
select BR2_PACKAGE_LIBGLIB2
|
||||
help
|
||||
GStreamer is an open source multimedia framework.
|
||||
|
||||
@@ -10,7 +10,7 @@ config BR2_PACKAGE_HOSTAPD
|
||||
IEEE 802.1X/WPA/WPA2/EAP authenticators, RADIUS client,
|
||||
EAP server and RADIUS authentication server.
|
||||
|
||||
http://hostap.epitest.fi/
|
||||
http://w1.fi/hostapd/
|
||||
|
||||
if BR2_PACKAGE_HOSTAPD
|
||||
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
# Locally calculated
|
||||
sha256 01526b90c1d23bec4b0f052039cc4456c2fd19347b4d830d1d58a0a6aea7117d hostapd-2.6.tar.gz
|
||||
sha256 529113cc81256c6178f3c1cf25dd8d3f33e6d770e4a180bd31c6ab7e4917f40b rebased-v2.6-0001-hostapd-Avoid-key-reinstallation-in-FT-handshake.patch
|
||||
sha256 147c8abe07606905d16404fb2d2c8849796ca7c85ed8673c09bb50038bcdeb9e rebased-v2.6-0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch
|
||||
|
||||
@@ -5,7 +5,10 @@
|
||||
################################################################################
|
||||
|
||||
HOSTAPD_VERSION = 2.6
|
||||
HOSTAPD_SITE = http://hostap.epitest.fi/releases
|
||||
HOSTAPD_SITE = http://w1.fi/releases
|
||||
HOSTAPD_PATCH = \
|
||||
http://w1.fi/security/2017-1/rebased-v2.6-0001-hostapd-Avoid-key-reinstallation-in-FT-handshake.patch \
|
||||
http://w1.fi/security/2017-1/rebased-v2.6-0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch
|
||||
HOSTAPD_SUBDIR = hostapd
|
||||
HOSTAPD_CONFIG = $(HOSTAPD_DIR)/$(HOSTAPD_SUBDIR)/.config
|
||||
HOSTAPD_DEPENDENCIES = host-pkgconf libnl
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Locally computed
|
||||
sha256 5a45e29509dbb23793a9c8db5c47ef1114c1ee82c9ca60053eaf06b3fc243e2c 7.0.7-1.tar.gz
|
||||
sha256 924d1161ed2399bcb72f98419072b3130a466e07d9a6fce43d27458ffa907ffa 7.0.7-10.tar.gz
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
IMAGEMAGICK_VERSION = 7.0.7-1
|
||||
IMAGEMAGICK_VERSION = 7.0.7-10
|
||||
IMAGEMAGICK_SOURCE = $(IMAGEMAGICK_VERSION).tar.gz
|
||||
IMAGEMAGICK_SITE = https://github.com/ImageMagick/ImageMagick/archive
|
||||
IMAGEMAGICK_LICENSE = Apache-2.0
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
# Locally calculated after checking pgp signature
|
||||
sha256 b85c07dbafe178213eccdc69f5f8f0ac024dea01c67244668f91ec1c06b986ca irssi-1.0.4.tar.xz
|
||||
sha256 c2556427e12eb06cabfed40839ac6f57eb8b1aa6365fab6dfcd331b7a04bb914 irssi-1.0.5.tar.xz
|
||||
# Locally calculated
|
||||
sha256 a1a27cb2ecee8d5378fbb3562f577104a445d6d66fee89286e16758305e63e2b COPYING
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
IRSSI_VERSION = 1.0.4
|
||||
IRSSI_VERSION = 1.0.5
|
||||
IRSSI_SOURCE = irssi-$(IRSSI_VERSION).tar.xz
|
||||
# Do not use the github helper here. The generated tarball is *NOT* the
|
||||
# same as the one uploaded by upstream for the release.
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
# Locally computed
|
||||
sha256 33271652032f20f866a212bc98ea01a8db65c4ac839fa820aa23da974fd6ff62 iucode-tool_1.5.tar.xz
|
||||
sha256 9810daf925b8a9ca244adc4e1916bcab65601c9ebe87e91c2281f78055982971 iucode-tool_2.2.tar.xz
|
||||
sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 COPYING
|
||||
|
||||
@@ -4,11 +4,10 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
IUCODE_TOOL_VERSION = 1.5
|
||||
IUCODE_TOOL_VERSION = 2.2
|
||||
IUCODE_TOOL_SOURCE = iucode-tool_$(IUCODE_TOOL_VERSION).tar.xz
|
||||
IUCODE_TOOL_SITE = https://gitlab.com/iucode-tool/releases/raw/master
|
||||
ifeq ($(BR2_PACKAGE_ARGP_STANDALONE),y)
|
||||
IUCODE_TOOL_CONF_ENV = LIBS="-largp"
|
||||
IUCODE_TOOL_DEPENDENCIES = argp-standalone
|
||||
endif
|
||||
IUCODE_TOOL_LICENSE = GPLv2+
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
Various patches to fix autoreconf errors.
|
||||
|
||||
All patches besides
|
||||
- AM_ICONV in configure.in
|
||||
are already applied upstream:
|
||||
http://lame.cvs.sourceforge.net/viewvc/lame/lame/configure.in?r1=1.145&r2=1.146
|
||||
http://lame.cvs.sourceforge.net/viewvc/lame/lame/doc/html/Makefile.am?r1=1.8&r2=1.9
|
||||
http://lame.cvs.sourceforge.net/viewvc/lame/lame/doc/man/Makefile.am?r1=1.1&r2=1.2
|
||||
|
||||
libmp3lame/i386/Makefile.am patch ported from Debian
|
||||
http://anonscm.debian.org/cgit/pkg-multimedia/lame.git/tree/debian/patches/ansi2knr2devnull.patch
|
||||
|
||||
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
||||
|
||||
diff -uNr lame-3.99.5.org/configure.in lame-3.99.5/configure.in
|
||||
--- lame-3.99.5.org/configure.in 2012-02-28 19:50:27.000000000 +0100
|
||||
+++ lame-3.99.5/configure.in 2015-04-11 11:36:15.464835008 +0200
|
||||
@@ -77,9 +77,6 @@
|
||||
AC_MSG_RESULT(${GCC_version})
|
||||
fi
|
||||
|
||||
-dnl more automake stuff
|
||||
-AM_C_PROTOTYPES
|
||||
-
|
||||
AC_CHECK_HEADER(dmalloc.h)
|
||||
if test "${ac_cv_header_dmalloc_h}" = "yes"; then
|
||||
AM_WITH_DMALLOC
|
||||
@@ -376,8 +373,6 @@
|
||||
AC_CHECK_LIB(curses, initscr, HAVE_TERMCAP="curses")
|
||||
AC_CHECK_LIB(ncurses, initscr, HAVE_TERMCAP="ncurses")
|
||||
|
||||
-AM_ICONV
|
||||
-
|
||||
dnl math lib
|
||||
AC_CHECK_LIB(m, cos, USE_LIBM="-lm")
|
||||
dnl free fast math library
|
||||
diff -uNr lame-3.99.5.org/doc/html/Makefile.am lame-3.99.5/doc/html/Makefile.am
|
||||
--- lame-3.99.5.org/doc/html/Makefile.am 2010-09-30 22:58:40.000000000 +0200
|
||||
+++ lame-3.99.5/doc/html/Makefile.am 2015-04-11 11:37:02.880239754 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
## $Id: Makefile.am,v 1.7 2010/09/30 20:58:40 jaz001 Exp $
|
||||
|
||||
-AUTOMAKE_OPTIONS = foreign ansi2knr
|
||||
+AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
docdir = $(datadir)/doc
|
||||
pkgdocdir = $(docdir)/$(PACKAGE)
|
||||
diff -uNr lame-3.99.5.org/doc/man/Makefile.am lame-3.99.5/doc/man/Makefile.am
|
||||
--- lame-3.99.5.org/doc/man/Makefile.am 2000-10-22 13:39:44.000000000 +0200
|
||||
+++ lame-3.99.5/doc/man/Makefile.am 2015-04-11 11:37:08.704167318 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
## $Id: Makefile.am,v 1.1 2000/10/22 11:39:44 aleidinger Exp $
|
||||
|
||||
-AUTOMAKE_OPTIONS = foreign ansi2knr
|
||||
+AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
man_MANS = lame.1
|
||||
EXTRA_DIST = ${man_MANS}
|
||||
diff -uNr lame-3.99.5.org/libmp3lame/i386/Makefile.am lame-3.99.5/libmp3lame/i386/Makefile.am
|
||||
--- lame-3.99.5.org/libmp3lame/i386/Makefile.am 2011-04-04 11:42:34.000000000 +0200
|
||||
+++ lame-3.99.5/libmp3lame/i386/Makefile.am 2015-04-11 11:37:35.191833351 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
## $Id: Makefile.am,v 1.26 2011/04/04 09:42:34 aleidinger Exp $
|
||||
|
||||
-AUTOMAKE_OPTIONS = foreign $(top_srcdir)/ansi2knr
|
||||
+AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
DEFS = @DEFS@ @CONFIG_DEFS@
|
||||
|
||||
@@ -1,210 +0,0 @@
|
||||
Include GTK-1 autoconf directives in build system.
|
||||
Applied-Upstream: http://lame.cvs.sf.net/viewvc/lame/lame/acinclude.m4?r1=1.5&r2=1.6
|
||||
|
||||
Downloaded from
|
||||
http://lame.cvs.sf.net/viewvc/lame/lame/acinclude.m4?r1=1.5&r2=1.6&view=patch
|
||||
|
||||
to fix autoreconf.
|
||||
|
||||
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
||||
|
||||
--- a/acinclude.m4 2006/12/21 09:03:03 1.5
|
||||
+++ b/acinclude.m4 2012/06/18 20:51:05 1.6
|
||||
@@ -85,4 +85,197 @@
|
||||
[AC_MSG_WARN(can't check for IEEE854 compliant 80 bit floats)]
|
||||
)])]) # alex_IEEE854_FLOAT80
|
||||
|
||||
+# Configure paths for GTK+
|
||||
+# Owen Taylor 97-11-3
|
||||
|
||||
+dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
|
||||
+dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
|
||||
+dnl
|
||||
+AC_DEFUN([AM_PATH_GTK],
|
||||
+[dnl
|
||||
+dnl Get the cflags and libraries from the gtk-config script
|
||||
+dnl
|
||||
+AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
|
||||
+ gtk_config_prefix="$withval", gtk_config_prefix="")
|
||||
+AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
|
||||
+ gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
|
||||
+AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
|
||||
+ , enable_gtktest=yes)
|
||||
+
|
||||
+ for module in . $4
|
||||
+ do
|
||||
+ case "$module" in
|
||||
+ gthread)
|
||||
+ gtk_config_args="$gtk_config_args gthread"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+
|
||||
+ if test x$gtk_config_exec_prefix != x ; then
|
||||
+ gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
|
||||
+ if test x${GTK_CONFIG+set} != xset ; then
|
||||
+ GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
|
||||
+ fi
|
||||
+ fi
|
||||
+ if test x$gtk_config_prefix != x ; then
|
||||
+ gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
|
||||
+ if test x${GTK_CONFIG+set} != xset ; then
|
||||
+ GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
|
||||
+ fi
|
||||
+ fi
|
||||
+
|
||||
+ AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
|
||||
+ min_gtk_version=ifelse([$1], ,0.99.7,$1)
|
||||
+ AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
|
||||
+ no_gtk=""
|
||||
+ if test "$GTK_CONFIG" = "no" ; then
|
||||
+ no_gtk=yes
|
||||
+ else
|
||||
+ GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
|
||||
+ GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
|
||||
+ gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
|
||||
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
+ gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
|
||||
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
+ gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
|
||||
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
+ if test "x$enable_gtktest" = "xyes" ; then
|
||||
+ ac_save_CFLAGS="$CFLAGS"
|
||||
+ ac_save_LIBS="$LIBS"
|
||||
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
|
||||
+ LIBS="$GTK_LIBS $LIBS"
|
||||
+dnl
|
||||
+dnl Now check if the installed GTK is sufficiently new. (Also sanity
|
||||
+dnl checks the results of gtk-config to some extent
|
||||
+dnl
|
||||
+ rm -f conf.gtktest
|
||||
+ AC_TRY_RUN([
|
||||
+#include <gtk/gtk.h>
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ int major, minor, micro;
|
||||
+ char *tmp_version;
|
||||
+
|
||||
+ system ("touch conf.gtktest");
|
||||
+
|
||||
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
|
||||
+ tmp_version = g_strdup("$min_gtk_version");
|
||||
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
|
||||
+ printf("%s, bad version string\n", "$min_gtk_version");
|
||||
+ exit(1);
|
||||
+ }
|
||||
+
|
||||
+ if ((gtk_major_version != $gtk_config_major_version) ||
|
||||
+ (gtk_minor_version != $gtk_config_minor_version) ||
|
||||
+ (gtk_micro_version != $gtk_config_micro_version))
|
||||
+ {
|
||||
+ printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
|
||||
+ $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
|
||||
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
|
||||
+ printf ("*** was found! If gtk-config was correct, then it is best\n");
|
||||
+ printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
|
||||
+ printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
|
||||
+ printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
|
||||
+ printf("*** required on your system.\n");
|
||||
+ printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
|
||||
+ printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
|
||||
+ printf("*** before re-running configure\n");
|
||||
+ }
|
||||
+#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
|
||||
+ else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
|
||||
+ (gtk_minor_version != GTK_MINOR_VERSION) ||
|
||||
+ (gtk_micro_version != GTK_MICRO_VERSION))
|
||||
+ {
|
||||
+ printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
|
||||
+ GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
|
||||
+ printf("*** library (version %d.%d.%d)\n",
|
||||
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
|
||||
+ }
|
||||
+#endif /* defined (GTK_MAJOR_VERSION) ... */
|
||||
+ else
|
||||
+ {
|
||||
+ if ((gtk_major_version > major) ||
|
||||
+ ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
|
||||
+ ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
|
||||
+ {
|
||||
+ return 0;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
|
||||
+ gtk_major_version, gtk_minor_version, gtk_micro_version);
|
||||
+ printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
|
||||
+ major, minor, micro);
|
||||
+ printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
|
||||
+ printf("***\n");
|
||||
+ printf("*** If you have already installed a sufficiently new version, this error\n");
|
||||
+ printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
|
||||
+ printf("*** being found. The easiest way to fix this is to remove the old version\n");
|
||||
+ printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
|
||||
+ printf("*** correct copy of gtk-config. (In this case, you will have to\n");
|
||||
+ printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
|
||||
+ printf("*** so that the correct libraries are found at run-time))\n");
|
||||
+ }
|
||||
+ }
|
||||
+ return 1;
|
||||
+}
|
||||
+],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||
+ CFLAGS="$ac_save_CFLAGS"
|
||||
+ LIBS="$ac_save_LIBS"
|
||||
+ fi
|
||||
+ fi
|
||||
+ if test "x$no_gtk" = x ; then
|
||||
+ AC_MSG_RESULT(yes)
|
||||
+ ifelse([$2], , :, [$2])
|
||||
+ else
|
||||
+ AC_MSG_RESULT(no)
|
||||
+ if test "$GTK_CONFIG" = "no" ; then
|
||||
+ echo "*** The gtk-config script installed by GTK could not be found"
|
||||
+ echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
|
||||
+ echo "*** your path, or set the GTK_CONFIG environment variable to the"
|
||||
+ echo "*** full path to gtk-config."
|
||||
+ else
|
||||
+ if test -f conf.gtktest ; then
|
||||
+ :
|
||||
+ else
|
||||
+ echo "*** Could not run GTK test program, checking why..."
|
||||
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
|
||||
+ LIBS="$LIBS $GTK_LIBS"
|
||||
+ AC_TRY_LINK([
|
||||
+#include <gtk/gtk.h>
|
||||
+#include <stdio.h>
|
||||
+], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
|
||||
+ [ echo "*** The test program compiled, but did not run. This usually means"
|
||||
+ echo "*** that the run-time linker is not finding GTK or finding the wrong"
|
||||
+ echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
|
||||
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
|
||||
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
|
||||
+ echo "*** is required on your system"
|
||||
+ echo "***"
|
||||
+ echo "*** If you have an old version installed, it is best to remove it, although"
|
||||
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
|
||||
+ echo "***"
|
||||
+ echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
|
||||
+ echo "*** came with the system with the command"
|
||||
+ echo "***"
|
||||
+ echo "*** rpm --erase --nodeps gtk gtk-devel" ],
|
||||
+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
|
||||
+ echo "*** exact error that occured. This usually means GTK was incorrectly installed"
|
||||
+ echo "*** or that you have moved GTK since it was installed. In the latter case, you"
|
||||
+ echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
|
||||
+ CFLAGS="$ac_save_CFLAGS"
|
||||
+ LIBS="$ac_save_LIBS"
|
||||
+ fi
|
||||
+ fi
|
||||
+ GTK_CFLAGS=""
|
||||
+ GTK_LIBS=""
|
||||
+ ifelse([$3], , :, [$3])
|
||||
+ fi
|
||||
+ AC_SUBST(GTK_CFLAGS)
|
||||
+ AC_SUBST(GTK_LIBS)
|
||||
+ rm -f conf.gtktest
|
||||
+])
|
||||
@@ -1,24 +0,0 @@
|
||||
Fix compile on 32bit Intel
|
||||
|
||||
Downloaded from
|
||||
http://anonscm.debian.org/cgit/pkg-multimedia/lame.git/tree/debian/patches/msse.patch
|
||||
|
||||
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
||||
|
||||
Description: Build xmm_quantize_sub.c with -msse
|
||||
Author: Sebastian Ramacher <sramacher@debian.org>
|
||||
Bug: http://sourceforge.net/p/lame/bugs/443/
|
||||
Bug-Debian: https://bugs.debian.org/760047
|
||||
Forwarded: http://sourceforge.net/p/lame/bugs/443/
|
||||
Last-Update: 2014-08-31
|
||||
|
||||
--- lame-3.99.5+repack1.orig/libmp3lame/vector/Makefile.am
|
||||
+++ lame-3.99.5+repack1/libmp3lame/vector/Makefile.am
|
||||
@@ -20,6 +20,7 @@ xmm_sources = xmm_quantize_sub.c
|
||||
|
||||
if WITH_XMM
|
||||
liblamevectorroutines_la_SOURCES = $(xmm_sources)
|
||||
+liblamevectorroutines_la_CFLAGS = -msse
|
||||
endif
|
||||
|
||||
noinst_HEADERS = lame_intrin.h
|
||||
@@ -1,2 +1,3 @@
|
||||
# Locally computed:
|
||||
sha256 24346b4158e4af3bd9f2e194bb23eb473c75fb7377011523353196b19b9a23ff lame-3.99.5.tar.gz
|
||||
sha256 ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e lame-3.100.tar.gz
|
||||
sha256 bfe4a52dc4645385f356a8e83cc54216a293e3b6f1cb4f79f5fc0277abf937fd COPYING
|
||||
|
||||
@@ -4,11 +4,9 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LAME_VERSION_MAJOR = 3.99
|
||||
LAME_VERSION = $(LAME_VERSION_MAJOR).5
|
||||
LAME_SITE = http://downloads.sourceforge.net/project/lame/lame/$(LAME_VERSION_MAJOR)
|
||||
LAME_VERSION = 3.100
|
||||
LAME_SITE = http://downloads.sourceforge.net/project/lame/lame/$(LAME_VERSION)
|
||||
LAME_DEPENDENCIES = host-pkgconf
|
||||
LAME_AUTORECONF = YES
|
||||
LAME_INSTALL_STAGING = YES
|
||||
LAME_CONF_ENV = GTK_CONFIG=/bin/false
|
||||
LAME_CONF_OPTS = --enable-dynamic-frontends
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
From 7d84bd820ef412d251b643a4faced105668f4ebd Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Fri, 11 Aug 2017 18:52:37 +0200
|
||||
Subject: [PATCH] curl/system.h: support more architectures
|
||||
|
||||
The long list of architectures in include/curl/system.h is annoying to
|
||||
maintain, and needs to be extended for each and every architecture to
|
||||
support.
|
||||
|
||||
Instead, let's rely on the __SIZEOF_LONG__ define of the gcc compiler
|
||||
(we are in the GNUC condition anyway), which tells us if long is 4
|
||||
bytes or 8 bytes.
|
||||
|
||||
This fixes the build of libcurl 7.55.0 on architectures such as
|
||||
OpenRISC or ARC.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
include/curl/system.h | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/curl/system.h b/include/curl/system.h
|
||||
index 79abf8f..0e13075 100644
|
||||
--- a/include/curl/system.h
|
||||
+++ b/include/curl/system.h
|
||||
@@ -403,7 +403,7 @@
|
||||
# if !defined(__LP64__) && (defined(__ILP32__) || \
|
||||
defined(__i386__) || defined(__ppc__) || defined(__arm__) || \
|
||||
defined(__sparc__) || defined(__mips__) || defined(__sh__) || \
|
||||
- defined(__XTENSA__))
|
||||
+ defined(__XTENSA__) || (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4))
|
||||
# define CURL_SIZEOF_LONG 4
|
||||
# define CURL_TYPEOF_CURL_OFF_T long long
|
||||
# define CURL_FORMAT_CURL_OFF_T "lld"
|
||||
@@ -412,7 +412,8 @@
|
||||
# define CURL_SUFFIX_CURL_OFF_T LL
|
||||
# define CURL_SUFFIX_CURL_OFF_TU ULL
|
||||
# elif defined(__LP64__) || \
|
||||
- defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__)
|
||||
+ defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \
|
||||
+ (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8)
|
||||
# define CURL_SIZEOF_LONG 8
|
||||
# define CURL_TYPEOF_CURL_OFF_T long
|
||||
# define CURL_FORMAT_CURL_OFF_T "ld"
|
||||
--
|
||||
2.9.4
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# Locally calculated after checking pgp signature
|
||||
# https://curl.haxx.se/download/curl-7.55.0.tar.xz.asc
|
||||
sha256 cdd58522f8607fd4e871df79d73acb3155075e2134641e5adab12a0962df059d curl-7.55.0.tar.xz
|
||||
# https://curl.haxx.se/download/curl-7.56.1.tar.xz.asc
|
||||
sha256 8eed282cf3a0158d567a0feaa3c4619e8e847970597b5a2c81879e8f0d1a39d1 curl-7.56.1.tar.xz
|
||||
sha256 cbcf511f5702f7baf5424193a792bc9c18fab22bcbec2e6a587598389dc632c2 COPYING
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBCURL_VERSION = 7.55.0
|
||||
LIBCURL_VERSION = 7.56.1
|
||||
LIBCURL_SOURCE = curl-$(LIBCURL_VERSION).tar.xz
|
||||
LIBCURL_SITE = https://curl.haxx.se/download
|
||||
LIBCURL_DEPENDENCIES = host-pkgconf \
|
||||
@@ -22,6 +22,12 @@ LIBCURL_INSTALL_STAGING = YES
|
||||
LIBCURL_CONF_OPTS = --disable-manual --disable-ntlm-wb \
|
||||
--enable-hidden-symbols --with-random=/dev/urandom --disable-curldebug
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
|
||||
LIBCURL_CONF_OPTS += --enable-threaded-resolver
|
||||
else
|
||||
LIBCURL_CONF_OPTS += --disable-threaded-resolver
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBCURL_VERBOSE),y)
|
||||
LIBCURL_CONF_OPTS += --enable-verbose
|
||||
else
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
LIBFASTJSON_VERSION = v0.99.4
|
||||
LIBFASTJSON_SITE = $(call github,rsyslog,libfastjson,$(LIBFASTJSON_VERSION))
|
||||
LIBFASTJSON_INSTALL_STAGING = YES
|
||||
LIBFASTJSON_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99'
|
||||
# From git
|
||||
LIBFASTJSON_AUTORECONF = YES
|
||||
LIBFASTJSON_LICENSE = MIT
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
From 1f43e5edfd91bee80e518432b80db01f1bf226e3 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Sun, 22 Oct 2017 15:02:11 +0200
|
||||
Subject: [PATCH] mips: use __linux__ and not linux
|
||||
|
||||
The "linux" symbol is not POSIX compliant [1], and therefore not
|
||||
defined when building with -std=c99. Due to this, the linux
|
||||
conditional block doesn't get used on Linux when building Python 3.x
|
||||
(which is built with -std=c99). To fix this, we use the POSIX
|
||||
compliant __linux__ symbol, which is defined when -std=c99 is used.
|
||||
|
||||
This fixes the build of Python 3.x on MIPS/musl configuration, as it
|
||||
makes sures that <asm/sgidefs.h> gets included and not <sgidefs.h>.
|
||||
|
||||
[1] https://sourceforge.net/p/predef/wiki/OperatingSystems/
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
src/mips/ffitarget.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/mips/ffitarget.h b/src/mips/ffitarget.h
|
||||
index 717d659..6faa358 100644
|
||||
--- a/src/mips/ffitarget.h
|
||||
+++ b/src/mips/ffitarget.h
|
||||
@@ -32,7 +32,7 @@
|
||||
#error "Please do not include ffitarget.h directly into your source. Use ffi.h instead."
|
||||
#endif
|
||||
|
||||
-#ifdef linux
|
||||
+#ifdef __linux__
|
||||
# include <asm/sgidefs.h>
|
||||
#elif defined(__rtems__)
|
||||
/*
|
||||
--
|
||||
2.13.6
|
||||
|
||||
@@ -10,6 +10,8 @@ LIBGLIB2_SOURCE = glib-$(LIBGLIB2_VERSION).tar.xz
|
||||
LIBGLIB2_SITE = http://ftp.gnome.org/pub/gnome/sources/glib/$(LIBGLIB2_VERSION_MAJOR)
|
||||
LIBGLIB2_LICENSE = LGPLv2+
|
||||
LIBGLIB2_LICENSE_FILES = COPYING
|
||||
# 0002-disable-tests.patch
|
||||
LIBGLIB2_AUTORECONF = YES
|
||||
|
||||
LIBGLIB2_INSTALL_STAGING = YES
|
||||
LIBGLIB2_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) LDFLAGS=-L$(STAGING_DIR)/usr/lib install
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
# From https://ftp.mozilla.org/pub/nspr/releases/v4.14/src/SHA256SUMS
|
||||
sha256 64fc18826257403a9132240aa3c45193d577a84b08e96f7e7770a97c074d17d5 nspr-4.14.tar.gz
|
||||
# From https://ftp.mozilla.org/pub/nspr/releases/v4.17/src/SHA256SUMS
|
||||
sha256 590a0aea29412ae22d7728038c21ef2ab42646e48172a47d2e4bb782846d1095 nspr-4.17.tar.gz
|
||||
# Locally calculated
|
||||
sha256 fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85 nspr/LICENSE
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBNSPR_VERSION = 4.14
|
||||
LIBNSPR_VERSION = 4.17
|
||||
LIBNSPR_SOURCE = nspr-$(LIBNSPR_VERSION).tar.gz
|
||||
LIBNSPR_SITE = https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v$(LIBNSPR_VERSION)/src
|
||||
LIBNSPR_SUBDIR = nspr
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
# From https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_30_2_RTM/src/SHA256SUMS
|
||||
sha256 0d4a77ff26bcee79fa8afe0125e0df6ae9e798b6b36782fa29e28febf7cfce24 nss-3.30.2.tar.gz
|
||||
# From https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_33_RTM/src/SHA256SUMS
|
||||
sha256 98f0dabd36408e83dd3a11727336cc3cdfee4cbdd9aede2b2831eb2389c284e4 nss-3.33.tar.gz
|
||||
# Locally calculated
|
||||
sha256 a20c1a32d1f8102432360b42e932869f7c11c7cdbacf9cac554c422132af47f4 nss/COPYING
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBNSS_VERSION = 3.30.2
|
||||
LIBNSS_VERSION = 3.33
|
||||
LIBNSS_SOURCE = nss-$(LIBNSS_VERSION).tar.gz
|
||||
LIBNSS_SITE = https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_$(subst .,_,$(LIBNSS_VERSION))_RTM/src
|
||||
LIBNSS_DISTDIR = dist
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
Re #2059 (misc): Fixed possible function name clash with md5 due to non-static function.
|
||||
|
||||
Backported from: https://trac.pjsip.org/repos/changeset/5688
|
||||
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
|
||||
|
||||
Index: pjlib-util/src/pjlib-util/md5.c
|
||||
===================================================================
|
||||
diff --git a/pjproject/pjlib-util/src/pjlib-util/md5.c b/pjproject/pjlib-util/src/pjlib-util/md5.c
|
||||
--- a/pjlib-util/src/pjlib-util/md5.c (revision 5687)
|
||||
+++ b/pjlib-util/src/pjlib-util/md5.c (revision 5688)
|
||||
@@ -29,13 +29,13 @@
|
||||
#ifndef HIGHFIRST
|
||||
#define byteReverse(buf, len) /* Nothing */
|
||||
#else
|
||||
-void byteReverse(unsigned char *buf, unsigned longs);
|
||||
+static void byteReverse(unsigned char *buf, unsigned longs);
|
||||
|
||||
#ifndef ASM_MD5
|
||||
/*
|
||||
* Note: this code is harmless on little-endian machines.
|
||||
*/
|
||||
-void byteReverse(unsigned char *buf, unsigned longs)
|
||||
+static void byteReverse(unsigned char *buf, unsigned longs)
|
||||
{
|
||||
pj_uint32_t t;
|
||||
do {
|
||||
@@ -1,5 +1,6 @@
|
||||
# From http://www.pjsip.org/release/2.6/MD5SUM.TXT
|
||||
md5 c347a672679e7875ce572e18517884b2 pjproject-2.6.tar.bz2
|
||||
# From http://www.pjsip.org/release/2.7.1/MD5SUM.TXT
|
||||
md5 99a64110fa5c2debff40e0e8d4676380 pjproject-2.7.1.tar.bz2
|
||||
|
||||
# Locally computed
|
||||
sha256 2f5a1da1c174d845871c758bd80fbb580fca7799d3cfaa0d3c4e082b5161c7b4 pjproject-2.6.tar.bz2
|
||||
sha256 59fabc62a02b2b80857297cfb10e2c68c473f4a0acc6e848cfefe8421f2c3126 pjproject-2.7.1.tar.bz2
|
||||
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBPJSIP_VERSION = 2.6
|
||||
LIBPJSIP_VERSION = 2.7.1
|
||||
LIBPJSIP_SOURCE = pjproject-$(LIBPJSIP_VERSION).tar.bz2
|
||||
LIBPJSIP_SITE = http://www.pjsip.org/release/$(LIBPJSIP_VERSION)
|
||||
LIBPJSIP_DEPENDENCIES = libsrtp
|
||||
@@ -50,7 +50,6 @@ LIBPJSIP_CONF_OPTS = \
|
||||
--disable-openh264 \
|
||||
--disable-libyuv \
|
||||
--disable-ipp \
|
||||
--disable-ssl \
|
||||
--disable-silk \
|
||||
--with-external-srtp
|
||||
|
||||
|
||||
@@ -20,11 +20,13 @@ config BR2_PACKAGE_LIBPLAYER_GSTREAMER
|
||||
depends on BR2_USE_WCHAR # glib2
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
|
||||
depends on BR2_USE_MMU # glib2
|
||||
depends on !BR2_STATIC_LIBS # gstreamer
|
||||
select BR2_PACKAGE_GSTREAMER
|
||||
|
||||
comment "gstreamer backend needs a toolchain w/ wchar, threads"
|
||||
comment "gstreamer backend needs a toolchain w/ wchar, threads, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
|
||||
BR2_STATIC_LIBS
|
||||
|
||||
config BR2_PACKAGE_LIBPLAYER_PYTHON
|
||||
depends on BR2_PACKAGE_PYTHON
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
config BR2_PACKAGE_LIBPLIST
|
||||
bool "libplist"
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
select BR2_PACKAGE_LIBXML2
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
help
|
||||
libplist is a client for manipulating Apple Property List
|
||||
(.plist) files
|
||||
|
||||
http://www.libimobiledevice.org/
|
||||
|
||||
comment "libplist needs a toolchain w/ C++"
|
||||
depends on !BR2_INSTALL_LIBSTDCPP
|
||||
comment "libplist needs a toolchain w/ C++, threads"
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Locally calculated
|
||||
sha256 0effdedcb3de128c4930d8c03a3854c74c426c16728b8ab5f0a5b6bdc0b644be libplist-1.12.tar.bz2
|
||||
sha256 3a7e9694c2d9a85174ba1fa92417cfabaea7f6d19631e544948dc7e17e82f602 libplist-2.0.0.tar.bz2
|
||||
|
||||
@@ -4,17 +4,13 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBPLIST_VERSION = 1.12
|
||||
LIBPLIST_VERSION = 2.0.0
|
||||
LIBPLIST_SOURCE = libplist-$(LIBPLIST_VERSION).tar.bz2
|
||||
LIBPLIST_SITE = http://www.libimobiledevice.org/downloads
|
||||
LIBPLIST_DEPENDENCIES = libxml2 host-pkgconf
|
||||
LIBPLIST_INSTALL_STAGING = YES
|
||||
LIBPLIST_LICENSE = LGPLv2.1+
|
||||
LIBPLIST_LICENSE_FILES = COPYING
|
||||
|
||||
# Straight out of the git tree:
|
||||
LIBPLIST_AUTORECONF = YES
|
||||
|
||||
# Disable building Python bindings, because it requires host-cython, which
|
||||
# is not packaged in Buildroot at all.
|
||||
LIBPLIST_CONF_OPTS = --without-cython
|
||||
|
||||
@@ -214,15 +214,15 @@ endchoice
|
||||
|
||||
config BR2_DEFAULT_KERNEL_HEADERS
|
||||
string
|
||||
default "3.2.93" if BR2_KERNEL_HEADERS_3_2
|
||||
default "3.2.96" if BR2_KERNEL_HEADERS_3_2
|
||||
default "3.4.113" if BR2_KERNEL_HEADERS_3_4
|
||||
default "3.10.107" if BR2_KERNEL_HEADERS_3_10
|
||||
default "3.10.108" if BR2_KERNEL_HEADERS_3_10
|
||||
default "3.12.74" if BR2_KERNEL_HEADERS_3_12
|
||||
default "3.18.71" if BR2_KERNEL_HEADERS_3_18
|
||||
default "3.18.72" if BR2_KERNEL_HEADERS_3_18
|
||||
default "3.19.8" if BR2_KERNEL_HEADERS_3_19
|
||||
default "4.0.9" if BR2_KERNEL_HEADERS_4_0
|
||||
default "4.1.44" if BR2_KERNEL_HEADERS_4_1
|
||||
default "4.4.88" if BR2_KERNEL_HEADERS_4_4
|
||||
default "4.1.46" if BR2_KERNEL_HEADERS_4_1
|
||||
default "4.4.102" if BR2_KERNEL_HEADERS_4_4
|
||||
default "4.8.17" if BR2_KERNEL_HEADERS_4_8
|
||||
default "4.9.51" if BR2_KERNEL_HEADERS_4_9
|
||||
default "4.9.65" if BR2_KERNEL_HEADERS_4_9
|
||||
default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
From: Bernhard Walle <bernhard@bwalle.de>
|
||||
Date: Mon, 2 Oct 2017 16:55:23 +0200
|
||||
Subject: [PATCH] Don't include <xlocale.h>
|
||||
|
||||
This header has been removed in glibc 2.26:
|
||||
|
||||
https://abi-laboratory.pro/tracker/changelog/glibc/2.26/log.html
|
||||
|
||||
------------------------ >8 ------------------------
|
||||
* The nonstandard header <xlocale.h> has been removed. Most programs should
|
||||
use <locale.h> instead. If you have a specific need for the definition of
|
||||
locale_t with no other declarations, please contact
|
||||
libc-alpha@sourceware.org and explain.
|
||||
------------------------ 8< ------------------------
|
||||
|
||||
Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
|
||||
|
||||
Upstream: https://git.pengutronix.de/cgit/ptxdist/tree/patches/localedef-eglibc-2.14.1-r17443-ptx1/0003-Don-t-include-xlocale.h.patch
|
||||
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
|
||||
---
|
||||
eglibc/locale/langinfo.h | 2 +-
|
||||
eglibc/locale/locale.h | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/eglibc/locale/langinfo.h b/eglibc/locale/langinfo.h
|
||||
index 0a5336507196..76707a4584c1 100644
|
||||
--- a/eglibc/locale/langinfo.h
|
||||
+++ b/eglibc/locale/langinfo.h
|
||||
@@ -589,7 +589,7 @@ extern char *nl_langinfo (nl_item __item) __THROW;
|
||||
more information. */
|
||||
|
||||
/* Get locale datatype definition. */
|
||||
-# include <xlocale.h>
|
||||
+# include <locale.h>
|
||||
|
||||
/* Just like nl_langinfo but get the information from the locale object L. */
|
||||
extern char *nl_langinfo_l (nl_item __item, __locale_t __l);
|
||||
diff --git a/eglibc/locale/locale.h b/eglibc/locale/locale.h
|
||||
index 2aa19e76acb2..18be711a2d40 100644
|
||||
--- a/eglibc/locale/locale.h
|
||||
+++ b/eglibc/locale/locale.h
|
||||
@@ -143,7 +143,7 @@ __END_NAMESPACE_STD
|
||||
This is a proof-of-concept implementation. */
|
||||
|
||||
/* Get locale datatype definition. */
|
||||
-# include <xlocale.h>
|
||||
+# include_next <locale.h>
|
||||
|
||||
/* Return a reference to a data structure representing a set of locale
|
||||
datasets. Unlike for the CATEGORY parameter for `setlocale' the
|
||||
@@ -1,5 +1,8 @@
|
||||
config BR2_PACKAGE_LUAJIT_ARCH_SUPPORTS
|
||||
bool
|
||||
# -m32 flag is used for 32bit builds and host-luajit has
|
||||
# limited architecture support
|
||||
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
|
||||
default y if BR2_i386 || \
|
||||
(BR2_x86_64 && BR2_HOSTARCH='x86_64') || \
|
||||
BR2_powerpc || BR2_arm || BR2_armeb || \
|
||||
|
||||
@@ -22,6 +22,12 @@ MESA3D_DEPENDENCIES = \
|
||||
expat \
|
||||
libdrm
|
||||
|
||||
# Disable static, otherwise configure will fail with: "Cannot enable both static
|
||||
# and shared."
|
||||
ifeq ($(BR2_SHARED_STATIC_LIBS),y)
|
||||
MESA3D_CONF_OPTS += --disable-static
|
||||
endif
|
||||
|
||||
# The Sourcery MIPS toolchain has a special (non-upstream) feature to
|
||||
# have "compact exception handling", which unfortunately breaks with
|
||||
# mesa3d, so we disable it here by passing -mno-compact-eh.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
comment "midori needs libgtk3 and a glibc toolchain w/ C++, gcc >= 4.9"
|
||||
comment "midori needs libgtk3 and a glibc toolchain w/ C++, gcc >= 5"
|
||||
depends on BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_PACKAGE_LIBGTK3 \
|
||||
|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_TOOLCHAIN_USES_GLIBC
|
||||
|| !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || !BR2_TOOLCHAIN_USES_GLIBC
|
||||
|
||||
config BR2_PACKAGE_MIDORI
|
||||
bool "midori"
|
||||
@@ -18,7 +18,7 @@ config BR2_PACKAGE_MIDORI
|
||||
depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt, gcr, gnupg2
|
||||
depends on BR2_PACKAGE_LIBGTK3
|
||||
depends on BR2_INSTALL_LIBSTDCPP # webkitgtk
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # webkitgtk
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # webkitgtk
|
||||
depends on BR2_TOOLCHAIN_USES_GLIBC # webkitgtk
|
||||
depends on BR2_PACKAGE_WEBKITGTK_ARCH_SUPPORTS
|
||||
help
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
From 45ca5d3fcb6f874bf5ba55d0e9651cef68515395 Mon Sep 17 00:00:00 2001
|
||||
From: Rich Felker <dalias@aerifal.cx>
|
||||
Date: Wed, 18 Oct 2017 14:50:03 -0400
|
||||
Subject: [PATCH] in dns parsing callback, enforce MAXADDRS to preclude
|
||||
overflow
|
||||
|
||||
MAXADDRS was chosen not to need enforcement, but the logic used to
|
||||
compute it assumes the answers received match the RR types of the
|
||||
queries. specifically, it assumes that only one replu contains A
|
||||
record answers. if the replies to both the A and the AAAA query have
|
||||
their answer sections filled with A records, MAXADDRS can be exceeded
|
||||
and clobber the stack of the calling function.
|
||||
|
||||
this bug was found and reported by Felix Wilhelm.
|
||||
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
src/network/lookup_name.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/network/lookup_name.c b/src/network/lookup_name.c
|
||||
index 066be4d5..209c20f0 100644
|
||||
--- a/src/network/lookup_name.c
|
||||
+++ b/src/network/lookup_name.c
|
||||
@@ -111,6 +111,7 @@ static int dns_parse_callback(void *c, int rr, const void *data, int len, const
|
||||
{
|
||||
char tmp[256];
|
||||
struct dpc_ctx *ctx = c;
|
||||
+ if (ctx->cnt >= MAXADDRS) return -1;
|
||||
switch (rr) {
|
||||
case RR_A:
|
||||
if (len != 4) return -1;
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
From 7fa541f6c0a31e3ddcab6ea85040b531bbaa4651 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Bark <martin@barkynet.com>
|
||||
Date: Tue, 12 Jul 2016 19:03:28 +0100
|
||||
Subject: [PATCH] inspector: don't build when ssl support is disabled
|
||||
|
||||
Signed-off-by: Martin Bark <martin@barkynet.com>
|
||||
---
|
||||
node.gyp | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/node.gyp b/node.gyp
|
||||
index 8a8bd00..fdccd60 100644
|
||||
--- a/node.gyp
|
||||
+++ b/node.gyp
|
||||
@@ -302,7 +302,7 @@
|
||||
'deps/v8/src/third_party/vtune/v8vtune.gyp:v8_vtune'
|
||||
],
|
||||
}],
|
||||
- [ 'v8_inspector=="true"', {
|
||||
+ [ 'v8_inspector=="true" and node_use_openssl =="true"', {
|
||||
'defines': [
|
||||
'HAVE_INSPECTOR=1',
|
||||
'V8_INSPECTOR_USE_STL=1',
|
||||
@@ -828,7 +828,7 @@
|
||||
],
|
||||
|
||||
'conditions': [
|
||||
- ['v8_inspector=="true"', {
|
||||
+ ['v8_inspector=="true" and node_use_openssl =="true"', {
|
||||
'sources': [
|
||||
'src/inspector_socket.cc',
|
||||
'test/cctest/test_inspector_socket.cc'
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+3
-3
@@ -15,12 +15,12 @@ diff --git a/tools/gyp/pylib/gyp/generator/make.py b/tools/gyp/pylib/gyp/generat
|
||||
index b88a433..0a1f2e0 100644
|
||||
--- a/tools/gyp/pylib/gyp/generator/make.py
|
||||
+++ b/tools/gyp/pylib/gyp/generator/make.py
|
||||
@@ -142,7 +142,7 @@ cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^)
|
||||
@@ -147,7 +147,7 @@ cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^)
|
||||
# special "figure out circular dependencies" flags around the entire
|
||||
# input list during linking.
|
||||
quiet_cmd_link = LINK($(TOOLSET)) $@
|
||||
-cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS)
|
||||
+cmd_link = $(CXX.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS)
|
||||
-cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) $(LIBS) -Wl,--end-group
|
||||
+cmd_link = $(CXX.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) $(LIBS) -Wl,--end-group
|
||||
|
||||
# We support two kinds of shared objects (.so):
|
||||
# 1) shared_library, which is just bundling together many dependent libraries
|
||||
+3
-3
@@ -33,9 +33,9 @@ diff --git a/src/node.cc b/src/node.cc
|
||||
index 57415bba41..ec78339d89 100644
|
||||
--- a/src/node.cc
|
||||
+++ b/src/node.cc
|
||||
@@ -4233,8 +4233,10 @@ void Init(int* argc,
|
||||
if (config_warning_file.empty())
|
||||
SafeGetenv("NODE_REDIRECT_WARNINGS", &config_warning_file);
|
||||
@@ -4389,8 +4389,10 @@ void Init(int* argc,
|
||||
V8::SetFlagsFromString(NODE_V8_OPTIONS, sizeof(NODE_V8_OPTIONS) - 1);
|
||||
#endif
|
||||
|
||||
+#if HAVE_OPENSSL
|
||||
if (openssl_config.empty())
|
||||
@@ -43,7 +43,7 @@ config BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
|
||||
|
||||
config BR2_PACKAGE_NODEJS_VERSION_STRING
|
||||
string
|
||||
default "6.11.1" if BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
|
||||
default "6.11.5" if BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
|
||||
default "0.10.48"
|
||||
|
||||
config BR2_PACKAGE_NODEJS_NPM
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# From upstream URL: http://nodejs.org/dist/v0.10.48/SHASUMS256.txt
|
||||
sha256 365a93d9acc076a0d93f087d269f376abeebccad599a9dab72f2f6ed96c8ae6e node-v0.10.48.tar.xz
|
||||
|
||||
# From upstream URL: http://nodejs.org/dist/v6.11.1/SHASUMS256.txt
|
||||
sha256 6f6655b85919aa54cb045a6d69a226849802fcc26491d0db4ce59873e41cc2b8 node-v6.11.1.tar.xz
|
||||
# From upstream URL: http://nodejs.org/dist/v6.11.5/SHASUMS256.txt
|
||||
sha256 1c6de415216799fbaeca82304b3fef87accc7101ebf2ead7d5c545e0779e8aaf node-v6.11.5.tar.xz
|
||||
|
||||
@@ -211,13 +211,16 @@ config BR2_PACKAGE_OPENCV_WITH_GSTREAMER
|
||||
depends on BR2_USE_MMU # gstreamer -> libglib2
|
||||
depends on BR2_USE_WCHAR # gstreamer -> libglib2
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # gstreamer -> libglib2
|
||||
depends on !BR2_STATIC_LIBS # gstreamer
|
||||
select BR2_PACKAGE_GSTREAMER
|
||||
select BR2_PACKAGE_GST_PLUGINS_BASE
|
||||
select BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_APP
|
||||
|
||||
comment "gstreamer-0.10 support needs a toolchain w/ wchar, threads"
|
||||
comment "gstreamer-0.10 support needs a toolchain w/ wchar, threads, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
|
||||
BR2_STATIC_LIBS
|
||||
|
||||
|
||||
config BR2_PACKAGE_OPENCV_WITH_GSTREAMER1
|
||||
bool "gstreamer-1.x"
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
From f4fcd8c788a4854d4ebae400cf55e3957f906835 Mon Sep 17 00:00:00 2001
|
||||
From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
|
||||
Date: Tue, 20 Jun 2017 16:42:11 +0100
|
||||
Subject: [PATCH] configure.ac: detect MIPS ABI
|
||||
|
||||
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
|
||||
[Upstream commit: ttps://github.com/openssh/openssh-portable/commit/f4fcd8c788a4854d4ebae400cf55e3957f906835]
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
configure.ac | 21 +++++++++++++++++++++
|
||||
1 file changed, 21 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 18079acba..f990cfe08 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -746,6 +746,27 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
|
||||
fi
|
||||
AC_CHECK_HEADERS([linux/seccomp.h linux/filter.h linux/audit.h], [],
|
||||
[], [#include <linux/types.h>])
|
||||
+ # Obtain MIPS ABI
|
||||
+ case "$host" in
|
||||
+ mips*)
|
||||
+ AC_COMPILE_IFELSE([
|
||||
+#if _MIPS_SIM != _ABIO32
|
||||
+#error
|
||||
+#endif
|
||||
+ ],[mips_abi="o32"],[AC_COMPILE_IFELSE([
|
||||
+#if _MIPS_SIM != _ABIN32
|
||||
+#error
|
||||
+#endif
|
||||
+ ],[mips_abi="n32"],[AC_COMPILE_IFELSE([
|
||||
+#if _MIPS_SIM != _ABI64
|
||||
+#error
|
||||
+#endif
|
||||
+ ],[mips_abi="n64"],[AC_MSG_ERROR([unknown MIPS ABI])
|
||||
+ ])
|
||||
+ ])
|
||||
+ ])
|
||||
+ ;;
|
||||
+ esac
|
||||
AC_MSG_CHECKING([for seccomp architecture])
|
||||
seccomp_audit_arch=
|
||||
case "$host" in
|
||||
@@ -0,0 +1,63 @@
|
||||
From afc3e31b637db9dae106d4fad78f7b481c8c24e3 Mon Sep 17 00:00:00 2001
|
||||
From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
|
||||
Date: Tue, 20 Jun 2017 16:42:28 +0100
|
||||
Subject: [PATCH] configure.ac: properly set seccomp_audit_arch for MIPS64
|
||||
|
||||
Currently seccomp_audit_arch is set to AUDIT_ARCH_MIPS64 or
|
||||
AUDIT_ARCH_MIPSEL64 (depending on the endinness) when openssh is built
|
||||
for MIPS64. However, that's only valid for n64 ABI. The right macros for
|
||||
n32 ABI defined in seccomp.h are AUDIT_ARCH_MIPS64N32 and
|
||||
AUDIT_ARCH_MIPSEL64N32, for big and little endian respectively.
|
||||
|
||||
Because of that an sshd built for MIPS64 n32 rejects connection attempts
|
||||
and the output of strace reveals that the problem is related to seccomp
|
||||
audit:
|
||||
|
||||
[pid 194] prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, {len=57,
|
||||
filter=0x555d5da0}) = 0
|
||||
[pid 194] write(7, "\0\0\0]\0\0\0\5\0\0\0Ulist_hostkey_types: "..., 97) = ?
|
||||
[pid 193] <... poll resumed> ) = 2 ([{fd=5, revents=POLLIN|POLLHUP},
|
||||
{fd=6, revents=POLLHUP}])
|
||||
[pid 194] +++ killed by SIGSYS +++
|
||||
|
||||
This patch fixes that problem by setting the right value to
|
||||
seccomp_audit_arch taking into account the MIPS64 ABI.
|
||||
|
||||
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
|
||||
[Upstream commit: https://github.com/openssh/openssh-portable/commit/afc3e31b637db9dae106d4fad78f7b481c8c24e3]
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
configure.ac | 18 ++++++++++++++++--
|
||||
1 file changed, 16 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index f990cfe08..5d640f679 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -801,10 +801,24 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
|
||||
seccomp_audit_arch=AUDIT_ARCH_MIPSEL
|
||||
;;
|
||||
mips64-*)
|
||||
- seccomp_audit_arch=AUDIT_ARCH_MIPS64
|
||||
+ case "$mips_abi" in
|
||||
+ "n32")
|
||||
+ seccomp_audit_arch=AUDIT_ARCH_MIPS64N32
|
||||
+ ;;
|
||||
+ "n64")
|
||||
+ seccomp_audit_arch=AUDIT_ARCH_MIPS64
|
||||
+ ;;
|
||||
+ esac
|
||||
;;
|
||||
mips64el-*)
|
||||
- seccomp_audit_arch=AUDIT_ARCH_MIPSEL64
|
||||
+ case "$mips_abi" in
|
||||
+ "n32")
|
||||
+ seccomp_audit_arch=AUDIT_ARCH_MIPSEL64N32
|
||||
+ ;;
|
||||
+ "n64")
|
||||
+ seccomp_audit_arch=AUDIT_ARCH_MIPSEL64
|
||||
+ ;;
|
||||
+ esac
|
||||
;;
|
||||
esac
|
||||
if test "x$seccomp_audit_arch" != "x" ; then
|
||||
@@ -0,0 +1,35 @@
|
||||
From 9a43657a3dcb868b4f36ade3aba5dcf0871fb412 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Korsgaard <peter@korsgaard.com>
|
||||
Date: Mon, 30 Oct 2017 23:36:56 +0100
|
||||
Subject: [PATCH] openbsd-compat/bsd-getpagesize.c: include includes.h for
|
||||
config.h defines
|
||||
|
||||
The configure script checks for getpagesize() and sets HAVE_GETPAGESIZE in
|
||||
config.h, but bsd-getpagesize.c forgot to include includes.h (which
|
||||
indirectly includes config.h) so the checks always fails, causing linker
|
||||
issues when linking statically on systems with getpagesize():
|
||||
|
||||
http://autobuild.buildroot.net/results/8cc/8cc30818a400c7a392a3de787cabc9cd8425495f/build-end.log
|
||||
|
||||
Fix it by including includes.h
|
||||
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
openbsd-compat/bsd-getpagesize.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/openbsd-compat/bsd-getpagesize.c b/openbsd-compat/bsd-getpagesize.c
|
||||
index 9daddfbd..416a8d4c 100644
|
||||
--- a/openbsd-compat/bsd-getpagesize.c
|
||||
+++ b/openbsd-compat/bsd-getpagesize.c
|
||||
@@ -1,5 +1,7 @@
|
||||
/* Placed in the public domain */
|
||||
|
||||
+#include "includes.h"
|
||||
+
|
||||
#ifndef HAVE_GETPAGESIZE
|
||||
|
||||
#include <unistd.h>
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# From http://www.openssh.com/txt/release-7.5 (base64 encoded)
|
||||
sha256 9846e3c5fab9f0547400b4d2c017992f914222b3fd1f8eee6c7dc6bc5e59f9f0 openssh-7.5p1.tar.gz
|
||||
sha256 310860606c4175cdfd095e724f624df27340c89a916f7a09300bcb7988d5cfbf afc3e31b637db9dae106d4fad78f7b481c8c24e3.patch
|
||||
sha256 395aa1006967713b599555440e09f898781a5559e496223587401768ece10904 f4fcd8c788a4854d4ebae400cf55e3957f906835.patch
|
||||
# From http://www.openssh.com/txt/release-7.6 (base64 encoded)
|
||||
sha256 a323caeeddfe145baaa0db16e98d784b1fbc7dd436a6bf1f479dfd5cd1d21723 openssh-7.6p1.tar.gz
|
||||
# Locally calculated
|
||||
sha256 05a4c25ef464e19656c5259bd4f4da8428efab01044f3541b79fbb3ff209350f LICENCE
|
||||
|
||||
@@ -4,16 +4,14 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
OPENSSH_VERSION = 7.5p1
|
||||
OPENSSH_VERSION = 7.6p1
|
||||
OPENSSH_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable
|
||||
OPENSSH_LICENSE = BSD-3c, BSD-2c, Public Domain
|
||||
OPENSSH_LICENSE_FILES = LICENCE
|
||||
# Autoreconf needed due to the following patches modifying configure.ac:
|
||||
# f4fcd8c788a4854d4ebae400cf55e3957f906835.patch
|
||||
# afc3e31b637db9dae106d4fad78f7b481c8c24e3.patch
|
||||
# 0001-configure-ac-detect-mips-abi.patch
|
||||
# 0002-configure-ac-properly-set-seccomp-audit-arch-for-mips64.patch
|
||||
OPENSSH_AUTORECONF = YES
|
||||
OPENSSH_PATCH = https://github.com/openssh/openssh-portable/commit/f4fcd8c788a4854d4ebae400cf55e3957f906835.patch \
|
||||
https://github.com/openssh/openssh-portable/commit/afc3e31b637db9dae106d4fad78f7b481c8c24e3.patch
|
||||
OPENSSH_CONF_ENV = LD="$(TARGET_CC)" LDFLAGS="$(TARGET_CFLAGS)"
|
||||
OPENSSH_CONF_OPTS = \
|
||||
--sysconfdir=/etc/ssh \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# From https://www.openssl.org/source/openssl-1.0.2k.tar.gz.sha256
|
||||
sha256 6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0 openssl-1.0.2k.tar.gz
|
||||
# From https://www.openssl.org/source/openssl-1.0.2m.tar.gz.sha256
|
||||
sha256 8c6ff15ec6b319b50788f42c7abc2890c08ba5a1cdcd3810eb9092deada37b0f openssl-1.0.2m.tar.gz
|
||||
# Locally computed
|
||||
sha256 eddd8a5123748052c598214487ac178e4bfa4e31ba2ec520c70d59c8c5bfa2e9 openssl-1.0.2a-parallel-install-dirs.patch?id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d
|
||||
sha256 147c3eeaad614c044749ea527cb433eae5e2d5cad34a78c6ba61cd967bfbe01f openssl-1.0.2a-parallel-obj-headers.patch?id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
OPENSSL_VERSION = 1.0.2k
|
||||
OPENSSL_VERSION = 1.0.2m
|
||||
OPENSSL_SITE = http://www.openssl.org/source
|
||||
OPENSSL_LICENSE = OpenSSL or SSLeay
|
||||
OPENSSL_LICENSE_FILES = LICENSE
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Locally calculated after checking signature
|
||||
sha256 15e15fc97f189b52aee7c90ec8355aa77469c773125110b4c2f089abecde36fb openvpn-2.4.3.tar.xz
|
||||
sha256 96cd1b8fe1e8cb2920f07c3fd3985faea756e16fdeebd11d3e146d5bd2b04a80 openvpn-2.4.4.tar.xz
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
OPENVPN_VERSION = 2.4.3
|
||||
OPENVPN_VERSION = 2.4.4
|
||||
OPENVPN_SOURCE = openvpn-$(OPENVPN_VERSION).tar.xz
|
||||
OPENVPN_SITE = http://swupdate.openvpn.net/community/releases
|
||||
OPENVPN_DEPENDENCIES = host-pkgconf openssl
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
# From https://ftp.postgresql.org/pub/source/v9.6.5/postgresql-9.6.5.tar.bz2.sha256
|
||||
sha256 06da12a7e3dddeb803962af8309fa06da9d6989f49e22865335f0a14bad0744c postgresql-9.6.5.tar.bz2
|
||||
# From https://ftp.postgresql.org/pub/source/v9.6.6/postgresql-9.6.6.tar.bz2.sha256
|
||||
sha256 399cdffcb872f785ba67e25d275463d74521566318cfef8fe219050d063c8154 postgresql-9.6.6.tar.bz2
|
||||
# License file, Locally calculated
|
||||
sha256 7dc8de32741ad1b03e21710771b55a1b9d460671d47f28a8840f917e38c66676 COPYRIGHT
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
POSTGRESQL_VERSION = 9.6.5
|
||||
POSTGRESQL_VERSION = 9.6.6
|
||||
POSTGRESQL_SOURCE = postgresql-$(POSTGRESQL_VERSION).tar.bz2
|
||||
POSTGRESQL_SITE = http://ftp.postgresql.org/pub/source/v$(POSTGRESQL_VERSION)
|
||||
POSTGRESQL_LICENSE = PostgreSQL
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
Fix the build with Qt 5.6.2
|
||||
Fix the build with Qt 5.6.{2,3}
|
||||
|
||||
Building PyQt 5.7 with versions of Qt older than Qt 5.7 is supposed to
|
||||
work, but currently fails in practice. In fact, this is due to the
|
||||
fact that the %Timeline variable in QtCoremod.sip didn't contain the
|
||||
5.6.2 Qt version, so if this version was used, PyQt was assuming it
|
||||
5.6.{2,3} Qt versions, so if this version was used, PyQt was assuming it
|
||||
was the later version 5.7, and therefore started enabling APIs only
|
||||
available in Qt 5.7, causing build failures when building against Qt
|
||||
5.6.2.
|
||||
5.6.{2,3}.
|
||||
|
||||
Adding Qt_5_6_2 to the timeline fixes this problem. This fix was
|
||||
suggested by Phil Thompson <phil@riverbankcomputing.com>.
|
||||
Adding Qt_5_6_2 and Qt_5_6_3 to the timeline fixes this problem. This
|
||||
fix was suggested by Phil Thompson <phil@riverbankcomputing.com>.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
@@ -22,7 +22,7 @@ Index: PyQt5_gpl-5.7/sip/QtCore/QtCoremod.sip
|
||||
%Module(name=PyQt5.QtCore, call_super_init=True, default_VirtualErrorHandler=PyQt5, keyword_arguments="Optional", version=1)
|
||||
|
||||
-%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_7_0}
|
||||
+%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_6_2 Qt_5_7_0}
|
||||
+%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_6_2 Qt_5_6_3 Qt_5_7_0}
|
||||
|
||||
%Platforms {WS_X11 WS_WIN WS_MACX}
|
||||
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
From 21f787cb9bf0c1440981262f03bc881c5b77c0d8 Mon Sep 17 00:00:00 2001
|
||||
From: Matt Weber <matthew.weber@rockwellcollins.com>
|
||||
Date: Fri, 6 Oct 2017 09:54:15 -0500
|
||||
Subject: [PATCH] python-config.sh: don't reassign ${prefix}
|
||||
|
||||
When prefix is set to a path like /usr during crossbuild
|
||||
the sed operations end up executing twice, once for the prefix
|
||||
reassignment and another for includedir if it is set as a string
|
||||
including the ${prefix} variable. This results in an issue
|
||||
when the build directory is under /usr.
|
||||
|
||||
This patch updates the remaining location which uses the prefix
|
||||
variable to also sed and update to use the real path.
|
||||
|
||||
Upstream bug report:
|
||||
https://bugs.python.org/issue31713
|
||||
|
||||
Buildroot bug:
|
||||
https://bugs.busybox.net/show_bug.cgi?id=10361
|
||||
|
||||
Fixes failures like the following:
|
||||
dbus-python-1.2.4 | NOK | http://autobuild.buildroot.net/results/758858efa97b6273c1b470513f5492258a6d8853
|
||||
|
||||
Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com>
|
||||
---
|
||||
Misc/python-config.sh.in | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Misc/python-config.sh.in b/Misc/python-config.sh.in
|
||||
index f905a71..e06be0f 100644
|
||||
--- a/Misc/python-config.sh.in
|
||||
+++ b/Misc/python-config.sh.in
|
||||
@@ -29,7 +29,7 @@ prefix_real=$(installed_prefix "$0")
|
||||
|
||||
# Use sed to fix paths from their built-to locations to their installed-to
|
||||
# locations.
|
||||
-prefix=$(echo "$prefix_build" | sed "s#^$prefix_build#$prefix_real#")
|
||||
+prefix=$prefix_build
|
||||
exec_prefix_build="@exec_prefix@"
|
||||
exec_prefix=$(echo "$exec_prefix_build" | sed "s#^$exec_prefix_build#$prefix_real#")
|
||||
includedir=$(echo "@includedir@" | sed "s#^$prefix_build#$prefix_real#")
|
||||
@@ -47,7 +46,7 @@ LINKFORSHARED="@LINKFORSHARED@"
|
||||
OPT="@OPT@"
|
||||
PY_ENABLE_SHARED="@PY_ENABLE_SHARED@"
|
||||
LDVERSION="@LDVERSION@"
|
||||
-LIBDEST=${prefix}/lib/python${VERSION}
|
||||
+LIBDEST=$( echo "${prefix}/lib/python${VERSION}" | sed "s#^$prefix_build#$prefix_real#")
|
||||
LIBPL=$(echo "@LIBPL@" | sed "s#^$prefix_build#$prefix_real#")
|
||||
SO="@EXT_SUFFIX@"
|
||||
PYTHONFRAMEWORK="@PYTHONFRAMEWORK@"
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
From d3f1e7e9ff9aae3f770b0bcb9aa3c2f787f76a1b Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Fri, 5 May 2017 09:07:15 +0200
|
||||
Subject: [PATCH] user-exec: fix usage of mcontext structure on ARM/uClibc
|
||||
|
||||
user-exec.c has some conditional code to decide how to use the
|
||||
mcontext structure. Unfortunately, since uClibc defines __GLIBC__, but
|
||||
with old versions of __GLIBC__ and __GLIBC_MINOR__, an old code path
|
||||
gets used, which doesn't apply to uClibc.
|
||||
|
||||
Fix this by excluding __UCLIBC__, which ensures we fall back to the
|
||||
general case of using uc_mcontext.arm_pc, which works fine with
|
||||
uClibc.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
user-exec.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/user-exec.c b/user-exec.c
|
||||
index 6db0758..2b3d116 100644
|
||||
--- a/user-exec.c
|
||||
+++ b/user-exec.c
|
||||
@@ -409,7 +409,7 @@ int cpu_signal_handler(int host_signum, void *pinfo,
|
||||
|
||||
#if defined(__NetBSD__)
|
||||
pc = uc->uc_mcontext.__gregs[_REG_R15];
|
||||
-#elif defined(__GLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 3))
|
||||
+#elif defined(__GLIBC__) && !defined(__UCLIBC__) && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 3))
|
||||
pc = uc->uc_mcontext.gregs[R15];
|
||||
#else
|
||||
pc = uc->uc_mcontext.arm_pc;
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Locally computed, tarball verified with GPG signature
|
||||
sha256 326e739506ba690daf69fc17bd3913a6c313d9928d743bd8eddb82f403f81e53 qemu-2.7.0.tar.bz2
|
||||
sha256 7b50634d729dcabe4a96d74062832274fa2f4c883e82904f5e6955f801edab54 qemu-2.8.1.1.tar.xz
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
QEMU_VERSION = 2.7.0
|
||||
QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.bz2
|
||||
QEMU_SITE = http://wiki.qemu.org/download
|
||||
QEMU_VERSION = 2.8.1.1
|
||||
QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.xz
|
||||
QEMU_SITE = http://download.qemu.org
|
||||
QEMU_LICENSE = GPLv2, LGPLv2.1, MIT, BSD-3c, BSD-2c, Others/BSD-1c
|
||||
QEMU_LICENSE_FILES = COPYING COPYING.LIB
|
||||
# NOTE: there is no top-level license file for non-(L)GPL licenses;
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
From f566411fb314b7e4ab01f28e25e942cfaf8c59b7 Mon Sep 17 00:00:00 2001
|
||||
From: Evgeniy Didin <didin@synopsys.com>
|
||||
Date: Fri, 15 Sep 2017 19:43:48 +0300
|
||||
Subject: [PATCH] qt: Allow enabling of QtWebKit with GCC 6+
|
||||
|
||||
Building Qt with QtWebKit on configuration step there is
|
||||
a check which disables QtWebKit build with GCC 6+.
|
||||
Back in the day nobody thought about building Qt with GCC
|
||||
version greater than 5.x. And now with modern GCCs like
|
||||
6.x and 7.x this assumption gets in the way.
|
||||
|
||||
Given in Buildroot today we don't have GCC older than 4.9
|
||||
it should be safe to remove now meaningless check completely.
|
||||
|
||||
Signed-off-by: Evgeniy Didin <didin@synopsys.com>
|
||||
Cc: Alexey Brodkin <abrodkin@synopsys.com>
|
||||
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
---
|
||||
configure | 14 --------------
|
||||
1 file changed, 14 deletions(-)
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index 10ad7ca0b0..8771144a65 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -7731,20 +7731,6 @@ case "$XPLATFORM" in
|
||||
canBuildWebKit="no"
|
||||
canBuildQtXmlPatterns="no"
|
||||
;;
|
||||
- *-g++*)
|
||||
- # Check gcc's version
|
||||
- case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
|
||||
- 5*|4*|3.4*)
|
||||
- ;;
|
||||
- 3.3*)
|
||||
- canBuildWebKit="no"
|
||||
- ;;
|
||||
- *)
|
||||
- canBuildWebKit="no"
|
||||
- canBuildQtXmlPatterns="no"
|
||||
- ;;
|
||||
- esac
|
||||
- ;;
|
||||
solaris-cc*)
|
||||
# Check the compiler version
|
||||
case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ QT5_SITE = http://download.qt.io/official_releases/qt/$(QT5_VERSION_MAJOR)/$(QT5
|
||||
QT5_SNAPSHOTS_SITE = http://download.qt.io/snapshots/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/latest_src/submodules
|
||||
else
|
||||
QT5_VERSION_MAJOR = 5.6
|
||||
QT5_VERSION = $(QT5_VERSION_MAJOR).2
|
||||
QT5_VERSION = $(QT5_VERSION_MAJOR).3
|
||||
QT5_SITE = http://download.qt.io/official_releases/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/submodules
|
||||
QT5_SNAPSHOTS_SITE = http://download.qt.io/snapshots/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/latest_src/submodules
|
||||
endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qt3d-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 a21786db6e0f5c6c70213fe1a3530ed3d7f28f28401a0f793970e9bc860ce941 qt3d-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qt3d-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 10d05a30e925fcad971126c7f47a5e32c39f007dab96b298b2094501f9607ffe qt3d-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qt3d-opensource-src-5.8.0.tar.xz
|
||||
sha256 3a224576fc922195ac0063b5b351cd6b9d13afcde9cec14317be0347d10c8ae5 qt3d-opensource-src-5.8.0.tar.xz
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
From b6c602e4264021f98ec2c72316e2a2000bf35e82 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Seiderer <ps.report@gmx.net>
|
||||
Date: Mon, 14 Nov 2016 23:42:25 +0100
|
||||
Subject: [PATCH] eglfs: fix eglfs_mali compile for odroid-mali
|
||||
|
||||
Avoid duplicated struct fbdev_window definition (introduced by [1]) by
|
||||
renaming struct fbdev_window to shadow_fbdev_window.
|
||||
|
||||
Fixes the following buildroot compile failure ([2]):
|
||||
|
||||
qeglfsmaliintegration.cpp:45:8: error: redefinition of 'struct fbdev_window'
|
||||
struct fbdev_window {
|
||||
^
|
||||
In file included from /accts/mlweber1/rc-buildroot-test/scripts/instance-0/output/host/usr/aarch64-buildroot-linux-gnu/sysroot/usr/include/EGL/eglplatform.h:28:0,
|
||||
from /accts/mlweber1/rc-buildroot-test/scripts/instance-0/output/host/usr/aarch64-buildroot-linux-gnu/sysroot/usr/include/EGL/egl.h:36,
|
||||
from ../../../eglfs/qeglfsglobal.h:45,
|
||||
from ../../../eglfs/qeglfsdeviceintegration.h:48,
|
||||
from qeglfsmaliintegration.h:37,
|
||||
from qeglfsmaliintegration.cpp:34:
|
||||
|
||||
[1] https://code.qt.io/cgit/qt/qtbase.git/commit/?h=dev&id=58bed4cda98e8e25db8adc61c7db73b6853077dc
|
||||
[2] http://autobuild.buildroot.net/results/48c/48c458c035162169e8ca7c34ae65e9064822f25a
|
||||
|
||||
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
|
||||
---
|
||||
.../eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp
|
||||
index 43decdf..aeba83f 100644
|
||||
--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp
|
||||
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_mali/qeglfsmaliintegration.cpp
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
-struct fbdev_window {
|
||||
+struct shadow_fbdev_window {
|
||||
unsigned short width;
|
||||
unsigned short height;
|
||||
};
|
||||
@@ -85,7 +85,7 @@ EGLNativeWindowType QEglFSMaliIntegration::createNativeWindow(QPlatformWindow *w
|
||||
Q_UNUSED(window);
|
||||
Q_UNUSED(format);
|
||||
|
||||
- fbdev_window *fbwin = reinterpret_cast<fbdev_window *>(malloc(sizeof(fbdev_window)));
|
||||
+ shadow_fbdev_window *fbwin = reinterpret_cast<shadow_fbdev_window *>(malloc(sizeof(shadow_fbdev_window)));
|
||||
if (NULL == fbwin)
|
||||
return 0;
|
||||
|
||||
--
|
||||
2.8.1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtbase-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 2f6eae93c5d982fe0a387a01aeb3435571433e23e9d9d9246741faf51f1ee787 qtbase-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtbase-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 fef48529a6fc2617a30d75d952cb327c6be341fd104154993922184b3b3b4da1 qtbase-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qtbase-opensource-src-5.8.0.tar.xz
|
||||
sha256 c17111ae02a44dc7be1ec2cf979a47ee9e58edf4904041a525c21f4fa53fc005 qtbase-opensource-src-5.8.0.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtcanvas3d-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 d7584d006b03f99692ccabce922e755a6f12bb1ed1fbc99c2b84842b9e0aa0ad qtcanvas3d-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtcanvas3d-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 e99e0e159f2fba539b7947a1921072f6807f20958d32809edbf12aac571f56ff qtcanvas3d-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qtcanvas3d-opensource-src-5.8.0.tar.xz
|
||||
sha256 5446f790f526f582df7790e1e1442357f61aac9c23ea9b00d4a791c9d78ccaa3 qtcanvas3d-opensource-src-5.8.0.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtconnectivity-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 1b672923e0703d62f605ccec97b454b1a04c1f0db47f54b687d009e84eabedf9 qtconnectivity-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtconnectivity-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 fa406e3d63fa4a2acc8ecae6d110f20c766f19a21c7061a12f3c167deb07ccde qtconnectivity-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qtconnectivity-opensource-src-5.8.0.tar.xz
|
||||
sha256 7b2d01e9d67f6390a9e64bdae62e81a965b0f0b21137cf1a021e08a28bb227f1 qtconnectivity-opensource-src-5.8.0.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtdeclarative-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 0086a986bc36b398ba518c404d08cdff0a0d7978c30aa3fa2ab73d71654209da qtdeclarative-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtdeclarative-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 f63fc053d0d16b8a9ca9308f8ead77874b470ae31b66057e2bd336bf648191fc qtdeclarative-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qtdeclarative-opensource-src-5.8.0.tar.xz
|
||||
sha256 32941eb9ad12d8735dfc64de8b50b5ab830a6d8705a421c57369de7cb5708a46 qtdeclarative-opensource-src-5.8.0.tar.xz
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user