mirror of
https://github.com/godotengine/buildroot.git
synced 2026-01-08 02:09:48 +03:00
Compare commits
81 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1d02d0be58 | ||
|
|
98ffc851e2 | ||
|
|
d7c7c1a2c7 | ||
|
|
57b3dc4375 | ||
|
|
bce795fbdc | ||
|
|
f97e36db91 | ||
|
|
49d0775fd3 | ||
|
|
8bb4b9c8df | ||
|
|
3f8e8050d6 | ||
|
|
98566da566 | ||
|
|
47ff6f7d22 | ||
|
|
beb6eab502 | ||
|
|
773ba3870f | ||
|
|
b7a9f3301e | ||
|
|
1d05a6dcac | ||
|
|
47764b0be4 | ||
|
|
b622ceef86 | ||
|
|
e8f6ccced4 | ||
|
|
dec223b017 | ||
|
|
a77ec2da59 | ||
|
|
cd4890d821 | ||
|
|
b907edec11 | ||
|
|
44441c766f | ||
|
|
ec78314415 | ||
|
|
e3e99fb1d3 | ||
|
|
2877808ddc | ||
|
|
2c640f48df | ||
|
|
362b716f8f | ||
|
|
01aef13b4b | ||
|
|
cf6abc6dcf | ||
|
|
922497b4b9 | ||
|
|
a8eb60648a | ||
|
|
aa66d51954 | ||
|
|
8aadf3fdab | ||
|
|
1413c5ac27 | ||
|
|
b7c16e3e11 | ||
|
|
56ca7ab660 | ||
|
|
560bb7b409 | ||
|
|
df449e6c3b | ||
|
|
f8cb606e0c | ||
|
|
6436feaabe | ||
|
|
bb0c2b5e20 | ||
|
|
4db7d0af29 | ||
|
|
a226597189 | ||
|
|
32ea3609e4 | ||
|
|
5a7ffef239 | ||
|
|
dd2c5e9150 | ||
|
|
c467f422b7 | ||
|
|
16a8fa922f | ||
|
|
36ff040f8a | ||
|
|
df0447944c | ||
|
|
e533807bab | ||
|
|
fb2f02ebaf | ||
|
|
1ecf38cb2f | ||
|
|
30dcd11d52 | ||
|
|
cdad5c529e | ||
|
|
fe37e7bb1d | ||
|
|
fee92f4f9e | ||
|
|
e1e24385cf | ||
|
|
3e4634157f | ||
|
|
76625912e0 | ||
|
|
3218c1bca2 | ||
|
|
51936fb291 | ||
|
|
d030e29fb2 | ||
|
|
080fb1e2e7 | ||
|
|
122f854074 | ||
|
|
b05215d9d8 | ||
|
|
f9d8efd7d1 | ||
|
|
a0b501bb65 | ||
|
|
6671231fb7 | ||
|
|
b3f1c844a6 | ||
|
|
d35d6ff502 | ||
|
|
afe60d8349 | ||
|
|
d9dd0cb06a | ||
|
|
633c49b3a3 | ||
|
|
34aba0a9e7 | ||
|
|
a532c29d7f | ||
|
|
09c8d7e575 | ||
|
|
1b865bc112 | ||
|
|
16796fadf7 | ||
|
|
5b5d3581f8 |
35
CHANGES
35
CHANGES
@@ -1,3 +1,38 @@
|
||||
2017.08.2, Released November 28th, 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.
|
||||
|
||||
Makefiles: Workaround include order issues for certain make
|
||||
versions by explicitly sorting the result of wildcard where it
|
||||
matters.
|
||||
|
||||
Updated/fixed packages: apr, apr-util, arqp-standalone,
|
||||
azure-iot-sdk-c, collectd, dvb-apps, ffmpeg, go-bootstrap,
|
||||
google-breakpad, gstreamer, imagemagick, irssi, jimtcl,
|
||||
kvm-unit-test, libcurl, libfastjson, libglib2, libidn,
|
||||
libpjsip, libplist, localedef, lttng-tools, luajit, mesa3d,
|
||||
moarvm, mp4v2, openssh, openssl, oracle-mysql, postgresql,
|
||||
python3, python-pyqt5, qt, qt5base, qt5canvas3d,
|
||||
qt5connectivity, qt5declarative, qt5engineio,
|
||||
qt5graphicaleffects, qt5imageformats, qt5location,
|
||||
qt5multimedia, qt5quickcontrols, qt5quickcontrols2, qt5script,
|
||||
qt5sensors, qt5serialbus, qt5serialport, qt5svg, qt5tools,
|
||||
qt5webchannel, qt5webkit, qt5websockets, qt5x11extras,
|
||||
qt5xmlpatterns, quagga, redis, ruby, samba4, sdl2, snmppp,
|
||||
swupdate, ti-gfx, uboot-tools, usb_modeswitch, vboot-utils,
|
||||
webkitgtk, wget, 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.08.1, Released October 23rd, 2017
|
||||
|
||||
Important / security related fixes.
|
||||
|
||||
@@ -539,6 +539,7 @@ config BR2_GOOGLE_BREAKPAD_ENABLE
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC)
|
||||
depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
|
||||
depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
|
||||
help
|
||||
This option will enable the use of google breakpad, a library
|
||||
and tool suite that allows you to distribute an application to
|
||||
|
||||
14
Makefile
14
Makefile
@@ -87,9 +87,9 @@ all:
|
||||
.PHONY: all
|
||||
|
||||
# Set and export the version string
|
||||
export BR2_VERSION := 2017.08.1
|
||||
export BR2_VERSION := 2017.08.2
|
||||
# Actual time the release is cut (for reproducible builds)
|
||||
BR2_VERSION_EPOCH = 1508790000
|
||||
BR2_VERSION_EPOCH = 1511938000
|
||||
|
||||
# Save running make version since it's clobbered by the make package
|
||||
RUNNING_MAKE_VERSION := $(MAKE_VERSION)
|
||||
@@ -254,7 +254,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
|
||||
|
||||
@@ -483,13 +483,13 @@ include system/system.mk
|
||||
include package/Makefile.in
|
||||
# arch/arch.mk.* must be after package/Makefile.in because it may need to
|
||||
# complement variables defined therein, like BR_NO_CHECK_HASH_FOR.
|
||||
-include $(wildcard arch/arch.mk.*)
|
||||
-include $(sort $(wildcard arch/arch.mk.*))
|
||||
include support/dependencies/dependencies.mk
|
||||
|
||||
PACKAGES += $(DEPENDENCIES_HOST_PREREQ)
|
||||
|
||||
include toolchain/*.mk
|
||||
include toolchain/*/*.mk
|
||||
include $(sort $(wildcard toolchain/*.mk))
|
||||
include $(sort $(wildcard toolchain/*/*.mk))
|
||||
|
||||
# Include the package override file if one has been provided in the
|
||||
# configuration.
|
||||
@@ -1109,7 +1109,7 @@ print-version:
|
||||
./support/testing/run-tests -l 2>&1 | sed -r -e '/^test_run \((.*)\).*/!d; s//\1: *runtime_test/' | LC_ALL=C sort >> $@
|
||||
|
||||
include docs/manual/manual.mk
|
||||
-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(dir)/docs/*/*.mk)
|
||||
-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(sort $(wildcard $(dir)/docs/*/*.mk)))
|
||||
|
||||
.PHONY: $(noconfig_targets)
|
||||
|
||||
|
||||
@@ -96,13 +96,13 @@ endif
|
||||
echo "echo '$$(TERM_BOLD)>>> Executing fakeroot script $$(s)$$(TERM_RESET)'" >> $$(FAKEROOT_SCRIPT); \
|
||||
echo $$(s) $$(TARGET_DIR) $$(BR2_ROOTFS_POST_SCRIPT_ARGS) >> $$(FAKEROOT_SCRIPT)$$(sep))
|
||||
$$(foreach hook,$$(ROOTFS_PRE_CMD_HOOKS),\
|
||||
$$(call PRINTF,$$($$(hook))) >> $$(FAKEROOT_SCRIPT))
|
||||
$$(call PRINTF,$$($$(hook))) >> $$(FAKEROOT_SCRIPT)$$(sep))
|
||||
ifeq ($$(BR2_REPRODUCIBLE),y)
|
||||
echo "find $$(TARGET_DIR) -print0 | xargs -0 -r touch -hd @$$(SOURCE_DATE_EPOCH)" >> $$(FAKEROOT_SCRIPT)
|
||||
endif
|
||||
$$(call PRINTF,$$(ROOTFS_$(2)_CMD)) >> $$(FAKEROOT_SCRIPT)
|
||||
$$(foreach hook,$$(ROOTFS_POST_CMD_HOOKS),\
|
||||
$$(call PRINTF,$$($$(hook))) >> $$(FAKEROOT_SCRIPT))
|
||||
$$(call PRINTF,$$($$(hook))) >> $$(FAKEROOT_SCRIPT)$$(sep))
|
||||
chmod a+x $$(FAKEROOT_SCRIPT)
|
||||
PATH=$$(BR_PATH) $$(HOST_DIR)/bin/fakeroot -- $$(FAKEROOT_SCRIPT)
|
||||
$$(INSTALL) -m 0644 support/misc/target-dir-warning.txt $$(TARGET_DIR_WARNING_FILE)
|
||||
|
||||
@@ -17,6 +17,8 @@ menu "Host utilities"
|
||||
source "package/genimage/Config.in.host"
|
||||
source "package/genpart/Config.in.host"
|
||||
source "package/go/Config.in.host"
|
||||
source "package/go-bootstrap/Config.in.host"
|
||||
source "package/google-breakpad/Config.in.host"
|
||||
source "package/gptfdisk/Config.in.host"
|
||||
source "package/imx-usb-loader/Config.in.host"
|
||||
source "package/jq/Config.in.host"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
# From http://archive.apache.org/dist/apr/apr-1.6.2.tar.bz2.sha1
|
||||
sha1 01b0d4faa0194825e8e525b9ac7ccfb832471d50 apr-1.6.2.tar.bz2
|
||||
# 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
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
APR_VERSION = 1.6.2
|
||||
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
|
||||
|
||||
@@ -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 = LGPL-2.0+
|
||||
|
||||
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
|
||||
|
||||
@@ -11,7 +11,7 @@ config BR2_PACKAGE_AZURE_IOT_SDK_C
|
||||
Microsoft Azure IoT Hub device SDK for C is used
|
||||
to connect devices running C code to Azure IoT Hub.
|
||||
|
||||
https://docs.microsoft.com/nl-nl/azure/iot-hub/iot-hub-device-sdk-c-intro
|
||||
https://github.com/Azure/azure-iot-sdk-c
|
||||
|
||||
comment "azure-iot-sdk-c needs a toolchain w/ C++ and NPTL"
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
|
||||
@@ -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) \
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
7
package/go-bootstrap/Config.in.host
Normal file
7
package/go-bootstrap/Config.in.host
Normal file
@@ -0,0 +1,7 @@
|
||||
config BR2_PACKAGE_HOST_GO_BOOTSTRAP_ARCH_SUPPORTS
|
||||
bool
|
||||
# See src/cmd/dist/unix.c for the list of support
|
||||
# architectures
|
||||
default y if BR2_HOSTARCH = "x86"
|
||||
default y if BR2_HOSTARCH = "x86_64"
|
||||
default y if BR2_HOSTARCH = "arm"
|
||||
@@ -1,6 +1,7 @@
|
||||
config BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
|
||||
bool
|
||||
default y
|
||||
depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_ARCH_SUPPORTS
|
||||
depends on (BR2_arm && BR2_TOOLCHAIN_SUPPORTS_PIE) || BR2_aarch64 \
|
||||
|| BR2_i386 || BR2_x86_64 || BR2_powerpc64le \
|
||||
|| BR2_mips64 || BR2_mips64el
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -12,6 +12,7 @@ config BR2_PACKAGE_GOOGLE_BREAKPAD
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on (BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC)
|
||||
depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
|
||||
depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
|
||||
select BR2_PACKAGE_LINUX_SYSCALL_SUPPORT
|
||||
help
|
||||
Google-Breakpad is a library and tool suite that allows you
|
||||
@@ -36,6 +37,7 @@ config BR2_PACKAGE_GOOGLE_BREAKPAD
|
||||
|
||||
comment "google-breakpad requires a glibc or uClibc toolchain w/ wchar, thread, C++, gcc >= 4.8"
|
||||
depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
|
||||
depends on BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
|
||||
!BR2_TOOLCHAIN_HAS_THREADS || \
|
||||
!(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_UCLIBC) || \
|
||||
|
||||
8
package/google-breakpad/Config.in.host
Normal file
8
package/google-breakpad/Config.in.host
Normal file
@@ -0,0 +1,8 @@
|
||||
config BR2_PACKAGE_HOST_GOOGLE_BREAKPAD_ARCH_SUPPORTS
|
||||
bool
|
||||
default y if BR2_HOSTARCH = "x86_64"
|
||||
default y if BR2_HOSTARCH = "x86"
|
||||
default y if BR2_HOSTARCH = "arm"
|
||||
default y if BR2_HOSTARCH = "aarch64"
|
||||
default y if BR2_HOSTARCH = "mips"
|
||||
default y if BR2_HOSTARCH = "mipsel"
|
||||
@@ -1 +1 @@
|
||||
include package/gstreamer/*/*.mk
|
||||
include $(sort $(wildcard package/gstreamer/*/*.mk))
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -1 +1 @@
|
||||
include package/gstreamer1/*/*.mk
|
||||
include $(sort $(wildcard package/gstreamer1/*/*.mk))
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -38,10 +38,18 @@ define JIMTCL_INSTALL_LIB
|
||||
endef
|
||||
endif
|
||||
|
||||
# build system doesn't use autotools, but does use an old version of
|
||||
# gnuconfig which doesn't know all the architectures supported by
|
||||
# Buildroot, so update config.guess / config.sub like we do in
|
||||
# pkg-autotools.mk
|
||||
JIMTCL_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK
|
||||
|
||||
define JIMTCL_CONFIGURE_CMDS
|
||||
(cd $(@D); \
|
||||
$(TARGET_CONFIGURE_OPTS) CCACHE=none \
|
||||
./configure --prefix=/usr \
|
||||
--host=$(GNU_TARGET_NAME) \
|
||||
--build=$(GNU_HOST_NAME) \
|
||||
$(JIMTCL_SHARED) \
|
||||
)
|
||||
endef
|
||||
|
||||
@@ -15,6 +15,7 @@ config BR2_PACKAGE_KVM_UNIT_TESTS
|
||||
# x86-64 we use the host gcc (see .mk file for details)
|
||||
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || !BR2_i386
|
||||
depends on BR2_HOST_GCC_AT_LEAST_4_5 || !BR2_x86_64
|
||||
depends on BR2_HOSTARCH = "x86_64" || !BR2_x86_64
|
||||
select BR2_HOSTARCH_NEEDS_IA32_COMPILER if BR2_x86_64=y
|
||||
help
|
||||
kvm-unit-tests is a project as old as KVM. As its name
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Locally calculated after checking pgp signature
|
||||
# https://curl.haxx.se/download/curl-7.56.0.tar.xz.asc
|
||||
sha256 32437bcca0e9434384329fdc733547879d25ba70335b3cf9e3d9cbc3e71fd172 curl-7.56.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.56.0
|
||||
LIBCURL_VERSION = 7.56.1
|
||||
LIBCURL_SOURCE = curl-$(LIBCURL_VERSION).tar.xz
|
||||
LIBCURL_SITE = https://curl.haxx.se/download
|
||||
LIBCURL_DEPENDENCIES = host-pkgconf \
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = LGPL-2.0+
|
||||
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
|
||||
|
||||
@@ -0,0 +1,333 @@
|
||||
From bd705da12e244dda18474a54a2942591e5ef5148 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
|
||||
Date: Wed, 1 Feb 2017 10:44:36 +0100
|
||||
Subject: [PATCH] Update intprops.h for gcc-7 compatibility
|
||||
|
||||
[Backport from upstream commit 230930b3bc3e431b819eb45420cb42475d83ca93.]
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
gl/intprops.h | 65 ++++++++++++++++++++++++++++++--------------------
|
||||
lib/gltests/intprops.h | 65 ++++++++++++++++++++++++++++++--------------------
|
||||
2 files changed, 78 insertions(+), 52 deletions(-)
|
||||
|
||||
diff --git a/gl/intprops.h b/gl/intprops.h
|
||||
index e1fce5c9..eb06b691 100644
|
||||
--- a/gl/intprops.h
|
||||
+++ b/gl/intprops.h
|
||||
@@ -1,18 +1,18 @@
|
||||
/* intprops.h -- properties of integer types
|
||||
|
||||
- Copyright (C) 2001-2016 Free Software Foundation, Inc.
|
||||
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify it
|
||||
- under the terms of the GNU General Public License as published
|
||||
- by the Free Software Foundation; either version 3 of the License, or
|
||||
+ under the terms of the GNU Lesser General Public License as published
|
||||
+ by the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- GNU General Public License for more details.
|
||||
+ GNU Lesser General Public License for more details.
|
||||
|
||||
- You should have received a copy of the GNU General Public License
|
||||
+ You should have received a copy of the GNU Lesser General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Written by Paul Eggert. */
|
||||
@@ -47,12 +47,16 @@
|
||||
|
||||
/* Minimum and maximum values for integer types and expressions. */
|
||||
|
||||
+/* The width in bits of the integer type or expression T.
|
||||
+ Padding bits are not supported; this is checked at compile-time below. */
|
||||
+#define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT)
|
||||
+
|
||||
/* The maximum and minimum values for the integer type T. */
|
||||
#define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t))
|
||||
#define TYPE_MAXIMUM(t) \
|
||||
((t) (! TYPE_SIGNED (t) \
|
||||
? (t) -1 \
|
||||
- : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
|
||||
+ : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1)))
|
||||
|
||||
/* The maximum and minimum values for the type of the expression E,
|
||||
after integer promotion. E should not have side effects. */
|
||||
@@ -65,7 +69,13 @@
|
||||
? _GL_SIGNED_INT_MAXIMUM (e) \
|
||||
: _GL_INT_NEGATE_CONVERT (e, 1))
|
||||
#define _GL_SIGNED_INT_MAXIMUM(e) \
|
||||
- (((_GL_INT_CONVERT (e, 1) << (sizeof ((e) + 0) * CHAR_BIT - 2)) - 1) * 2 + 1)
|
||||
+ (((_GL_INT_CONVERT (e, 1) << (TYPE_WIDTH ((e) + 0) - 2)) - 1) * 2 + 1)
|
||||
+
|
||||
+/* Work around OpenVMS incompatibility with C99. */
|
||||
+#if !defined LLONG_MAX && defined __INT64_MAX
|
||||
+# define LLONG_MAX __INT64_MAX
|
||||
+# define LLONG_MIN __INT64_MIN
|
||||
+#endif
|
||||
|
||||
/* This include file assumes that signed types are two's complement without
|
||||
padding bits; the above macros have undefined behavior otherwise.
|
||||
@@ -84,10 +94,15 @@ verify (TYPE_MAXIMUM (long int) == LONG_MAX);
|
||||
verify (TYPE_MINIMUM (long long int) == LLONG_MIN);
|
||||
verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
#endif
|
||||
+/* Similarly, sanity-check one ISO/IEC TS 18661-1:2014 macro if defined. */
|
||||
+#ifdef UINT_WIDTH
|
||||
+verify (TYPE_WIDTH (unsigned int) == UINT_WIDTH);
|
||||
+#endif
|
||||
|
||||
/* Does the __typeof__ keyword work? This could be done by
|
||||
'configure', but for now it's easier to do it by hand. */
|
||||
-#if (2 <= __GNUC__ || defined __IBM__TYPEOF__ \
|
||||
+#if (2 <= __GNUC__ \
|
||||
+ || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \
|
||||
|| (0x5110 <= __SUNPRO_C && !__STDC__))
|
||||
# define _GL_HAVE___TYPEOF__ 1
|
||||
#else
|
||||
@@ -116,8 +131,7 @@ verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
signed, this macro may overestimate the true bound by one byte when
|
||||
applied to unsigned types of size 2, 4, 16, ... bytes. */
|
||||
#define INT_STRLEN_BOUND(t) \
|
||||
- (INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT \
|
||||
- - _GL_SIGNED_TYPE_OR_EXPR (t)) \
|
||||
+ (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \
|
||||
+ _GL_SIGNED_TYPE_OR_EXPR (t))
|
||||
|
||||
/* Bound on buffer size needed to represent an integer type or expression T,
|
||||
@@ -222,20 +236,23 @@ verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
? (a) < (min) >> (b) \
|
||||
: (max) >> (b) < (a))
|
||||
|
||||
-/* True if __builtin_add_overflow (A, B, P) works when P is null. */
|
||||
-#define _GL_HAS_BUILTIN_OVERFLOW_WITH_NULL (7 <= __GNUC__)
|
||||
+/* True if __builtin_add_overflow (A, B, P) works when P is non-null. */
|
||||
+#define _GL_HAS_BUILTIN_OVERFLOW (5 <= __GNUC__)
|
||||
+
|
||||
+/* True if __builtin_add_overflow_p (A, B, C) works. */
|
||||
+#define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__)
|
||||
|
||||
/* The _GL*_OVERFLOW macros have the same restrictions as the
|
||||
*_RANGE_OVERFLOW macros, except that they do not assume that operands
|
||||
(e.g., A and B) have the same type as MIN and MAX. Instead, they assume
|
||||
that the result (e.g., A + B) has that type. */
|
||||
-#if _GL_HAS_BUILTIN_OVERFLOW_WITH_NULL
|
||||
-# define _GL_ADD_OVERFLOW(a, b, min, max)
|
||||
- __builtin_add_overflow (a, b, (__typeof__ ((a) + (b)) *) 0)
|
||||
-# define _GL_SUBTRACT_OVERFLOW(a, b, min, max)
|
||||
- __builtin_sub_overflow (a, b, (__typeof__ ((a) - (b)) *) 0)
|
||||
-# define _GL_MULTIPLY_OVERFLOW(a, b, min, max)
|
||||
- __builtin_mul_overflow (a, b, (__typeof__ ((a) * (b)) *) 0)
|
||||
+#if _GL_HAS_BUILTIN_OVERFLOW_P
|
||||
+# define _GL_ADD_OVERFLOW(a, b, min, max) \
|
||||
+ __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0)
|
||||
+# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \
|
||||
+ __builtin_sub_overflow_p (a, b, (__typeof__ ((a) - (b))) 0)
|
||||
+# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \
|
||||
+ __builtin_mul_overflow_p (a, b, (__typeof__ ((a) * (b))) 0)
|
||||
#else
|
||||
# define _GL_ADD_OVERFLOW(a, b, min, max) \
|
||||
((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \
|
||||
@@ -315,7 +332,7 @@ verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
_GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW)
|
||||
#define INT_SUBTRACT_OVERFLOW(a, b) \
|
||||
_GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW)
|
||||
-#if _GL_HAS_BUILTIN_OVERFLOW_WITH_NULL
|
||||
+#if _GL_HAS_BUILTIN_OVERFLOW_P
|
||||
# define INT_NEGATE_OVERFLOW(a) INT_SUBTRACT_OVERFLOW (0, a)
|
||||
#else
|
||||
# define INT_NEGATE_OVERFLOW(a) \
|
||||
@@ -349,10 +366,6 @@ verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
#define INT_MULTIPLY_WRAPV(a, b, r) \
|
||||
_GL_INT_OP_WRAPV (a, b, r, *, __builtin_mul_overflow, INT_MULTIPLY_OVERFLOW)
|
||||
|
||||
-#ifndef __has_builtin
|
||||
-# define __has_builtin(x) 0
|
||||
-#endif
|
||||
-
|
||||
/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See:
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193
|
||||
https://llvm.org/bugs/show_bug.cgi?id=25390
|
||||
@@ -369,7 +382,7 @@ verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
the operation. BUILTIN is the builtin operation, and OVERFLOW the
|
||||
overflow predicate. Return 1 if the result overflows. See above
|
||||
for restrictions. */
|
||||
-#if 5 <= __GNUC__ || __has_builtin (__builtin_add_overflow)
|
||||
+#if _GL_HAS_BUILTIN_OVERFLOW
|
||||
# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) builtin (a, b, r)
|
||||
#elif 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS
|
||||
# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \
|
||||
@@ -412,7 +425,7 @@ verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
# else
|
||||
# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
|
||||
_GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
|
||||
- long int, LONG_MIN, LONG_MAX))
|
||||
+ long int, LONG_MIN, LONG_MAX)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
diff --git a/lib/gltests/intprops.h b/lib/gltests/intprops.h
|
||||
index e1fce5c9..eb06b691 100644
|
||||
--- a/lib/gltests/intprops.h
|
||||
+++ b/lib/gltests/intprops.h
|
||||
@@ -1,18 +1,18 @@
|
||||
/* intprops.h -- properties of integer types
|
||||
|
||||
- Copyright (C) 2001-2016 Free Software Foundation, Inc.
|
||||
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify it
|
||||
- under the terms of the GNU General Public License as published
|
||||
- by the Free Software Foundation; either version 3 of the License, or
|
||||
+ under the terms of the GNU Lesser General Public License as published
|
||||
+ by the Free Software Foundation; either version 2.1 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- GNU General Public License for more details.
|
||||
+ GNU Lesser General Public License for more details.
|
||||
|
||||
- You should have received a copy of the GNU General Public License
|
||||
+ You should have received a copy of the GNU Lesser General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Written by Paul Eggert. */
|
||||
@@ -47,12 +47,16 @@
|
||||
|
||||
/* Minimum and maximum values for integer types and expressions. */
|
||||
|
||||
+/* The width in bits of the integer type or expression T.
|
||||
+ Padding bits are not supported; this is checked at compile-time below. */
|
||||
+#define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT)
|
||||
+
|
||||
/* The maximum and minimum values for the integer type T. */
|
||||
#define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t))
|
||||
#define TYPE_MAXIMUM(t) \
|
||||
((t) (! TYPE_SIGNED (t) \
|
||||
? (t) -1 \
|
||||
- : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
|
||||
+ : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1)))
|
||||
|
||||
/* The maximum and minimum values for the type of the expression E,
|
||||
after integer promotion. E should not have side effects. */
|
||||
@@ -65,7 +69,13 @@
|
||||
? _GL_SIGNED_INT_MAXIMUM (e) \
|
||||
: _GL_INT_NEGATE_CONVERT (e, 1))
|
||||
#define _GL_SIGNED_INT_MAXIMUM(e) \
|
||||
- (((_GL_INT_CONVERT (e, 1) << (sizeof ((e) + 0) * CHAR_BIT - 2)) - 1) * 2 + 1)
|
||||
+ (((_GL_INT_CONVERT (e, 1) << (TYPE_WIDTH ((e) + 0) - 2)) - 1) * 2 + 1)
|
||||
+
|
||||
+/* Work around OpenVMS incompatibility with C99. */
|
||||
+#if !defined LLONG_MAX && defined __INT64_MAX
|
||||
+# define LLONG_MAX __INT64_MAX
|
||||
+# define LLONG_MIN __INT64_MIN
|
||||
+#endif
|
||||
|
||||
/* This include file assumes that signed types are two's complement without
|
||||
padding bits; the above macros have undefined behavior otherwise.
|
||||
@@ -84,10 +94,15 @@ verify (TYPE_MAXIMUM (long int) == LONG_MAX);
|
||||
verify (TYPE_MINIMUM (long long int) == LLONG_MIN);
|
||||
verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
#endif
|
||||
+/* Similarly, sanity-check one ISO/IEC TS 18661-1:2014 macro if defined. */
|
||||
+#ifdef UINT_WIDTH
|
||||
+verify (TYPE_WIDTH (unsigned int) == UINT_WIDTH);
|
||||
+#endif
|
||||
|
||||
/* Does the __typeof__ keyword work? This could be done by
|
||||
'configure', but for now it's easier to do it by hand. */
|
||||
-#if (2 <= __GNUC__ || defined __IBM__TYPEOF__ \
|
||||
+#if (2 <= __GNUC__ \
|
||||
+ || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \
|
||||
|| (0x5110 <= __SUNPRO_C && !__STDC__))
|
||||
# define _GL_HAVE___TYPEOF__ 1
|
||||
#else
|
||||
@@ -116,8 +131,7 @@ verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
signed, this macro may overestimate the true bound by one byte when
|
||||
applied to unsigned types of size 2, 4, 16, ... bytes. */
|
||||
#define INT_STRLEN_BOUND(t) \
|
||||
- (INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT \
|
||||
- - _GL_SIGNED_TYPE_OR_EXPR (t)) \
|
||||
+ (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \
|
||||
+ _GL_SIGNED_TYPE_OR_EXPR (t))
|
||||
|
||||
/* Bound on buffer size needed to represent an integer type or expression T,
|
||||
@@ -222,20 +236,23 @@ verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
? (a) < (min) >> (b) \
|
||||
: (max) >> (b) < (a))
|
||||
|
||||
-/* True if __builtin_add_overflow (A, B, P) works when P is null. */
|
||||
-#define _GL_HAS_BUILTIN_OVERFLOW_WITH_NULL (7 <= __GNUC__)
|
||||
+/* True if __builtin_add_overflow (A, B, P) works when P is non-null. */
|
||||
+#define _GL_HAS_BUILTIN_OVERFLOW (5 <= __GNUC__)
|
||||
+
|
||||
+/* True if __builtin_add_overflow_p (A, B, C) works. */
|
||||
+#define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__)
|
||||
|
||||
/* The _GL*_OVERFLOW macros have the same restrictions as the
|
||||
*_RANGE_OVERFLOW macros, except that they do not assume that operands
|
||||
(e.g., A and B) have the same type as MIN and MAX. Instead, they assume
|
||||
that the result (e.g., A + B) has that type. */
|
||||
-#if _GL_HAS_BUILTIN_OVERFLOW_WITH_NULL
|
||||
-# define _GL_ADD_OVERFLOW(a, b, min, max)
|
||||
- __builtin_add_overflow (a, b, (__typeof__ ((a) + (b)) *) 0)
|
||||
-# define _GL_SUBTRACT_OVERFLOW(a, b, min, max)
|
||||
- __builtin_sub_overflow (a, b, (__typeof__ ((a) - (b)) *) 0)
|
||||
-# define _GL_MULTIPLY_OVERFLOW(a, b, min, max)
|
||||
- __builtin_mul_overflow (a, b, (__typeof__ ((a) * (b)) *) 0)
|
||||
+#if _GL_HAS_BUILTIN_OVERFLOW_P
|
||||
+# define _GL_ADD_OVERFLOW(a, b, min, max) \
|
||||
+ __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0)
|
||||
+# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \
|
||||
+ __builtin_sub_overflow_p (a, b, (__typeof__ ((a) - (b))) 0)
|
||||
+# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \
|
||||
+ __builtin_mul_overflow_p (a, b, (__typeof__ ((a) * (b))) 0)
|
||||
#else
|
||||
# define _GL_ADD_OVERFLOW(a, b, min, max) \
|
||||
((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \
|
||||
@@ -315,7 +332,7 @@ verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
_GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW)
|
||||
#define INT_SUBTRACT_OVERFLOW(a, b) \
|
||||
_GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW)
|
||||
-#if _GL_HAS_BUILTIN_OVERFLOW_WITH_NULL
|
||||
+#if _GL_HAS_BUILTIN_OVERFLOW_P
|
||||
# define INT_NEGATE_OVERFLOW(a) INT_SUBTRACT_OVERFLOW (0, a)
|
||||
#else
|
||||
# define INT_NEGATE_OVERFLOW(a) \
|
||||
@@ -349,10 +366,6 @@ verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
#define INT_MULTIPLY_WRAPV(a, b, r) \
|
||||
_GL_INT_OP_WRAPV (a, b, r, *, __builtin_mul_overflow, INT_MULTIPLY_OVERFLOW)
|
||||
|
||||
-#ifndef __has_builtin
|
||||
-# define __has_builtin(x) 0
|
||||
-#endif
|
||||
-
|
||||
/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See:
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193
|
||||
https://llvm.org/bugs/show_bug.cgi?id=25390
|
||||
@@ -369,7 +382,7 @@ verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
the operation. BUILTIN is the builtin operation, and OVERFLOW the
|
||||
overflow predicate. Return 1 if the result overflows. See above
|
||||
for restrictions. */
|
||||
-#if 5 <= __GNUC__ || __has_builtin (__builtin_add_overflow)
|
||||
+#if _GL_HAS_BUILTIN_OVERFLOW
|
||||
# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) builtin (a, b, r)
|
||||
#elif 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS
|
||||
# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \
|
||||
@@ -412,7 +425,7 @@ verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
|
||||
# else
|
||||
# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
|
||||
_GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
|
||||
- long int, LONG_MIN, LONG_MAX))
|
||||
+ long int, LONG_MIN, LONG_MAX)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
--
|
||||
2.13.6
|
||||
|
||||
@@ -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
|
||||
endif
|
||||
|
||||
comment "libplayer needs a toolchain w/ threads"
|
||||
|
||||
@@ -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 = LGPL-2.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
|
||||
|
||||
@@ -231,13 +231,13 @@ endchoice
|
||||
|
||||
config BR2_DEFAULT_KERNEL_HEADERS
|
||||
string
|
||||
default "3.2.94" 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 "4.1.45" if BR2_KERNEL_HEADERS_4_1
|
||||
default "4.4.94" if BR2_KERNEL_HEADERS_4_4
|
||||
default "4.9.58" if BR2_KERNEL_HEADERS_4_9
|
||||
default "4.1.46" if BR2_KERNEL_HEADERS_4_1
|
||||
default "4.4.102" if BR2_KERNEL_HEADERS_4_4
|
||||
default "4.9.65" if BR2_KERNEL_HEADERS_4_9
|
||||
default "4.10.17" if BR2_KERNEL_HEADERS_4_10
|
||||
default "4.11.12" if BR2_KERNEL_HEADERS_4_11
|
||||
default "4.12.14" if BR2_KERNEL_HEADERS_4_12
|
||||
|
||||
50
package/localedef/0001-Don-t-include-xlocale.h.patch
Normal file
50
package/localedef/0001-Don-t-include-xlocale.h.patch
Normal file
@@ -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
|
||||
@@ -0,0 +1,249 @@
|
||||
From bc1d8ca01415710d40224de312c7ecf6f4223301 Mon Sep 17 00:00:00 2001
|
||||
From: Philippe Proulx <eeppeliteloop@gmail.com>
|
||||
Date: Mon, 6 Nov 2017 18:46:41 -0500
|
||||
Subject: [PATCH] Fix: detect dlmopen() and disable corresponding tests if not
|
||||
available
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
musl and uClibc-ng are known not to support dlmopen(). LTTng-UST has
|
||||
this dlmopen() detection.
|
||||
|
||||
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
|
||||
[Philippe: backport from upstream commit bc1d8ca0
|
||||
edited to remove .gitignore part]
|
||||
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
|
||||
---
|
||||
.gitignore | 1 +
|
||||
configure.ac | 25 ++++++++++++++++++++++
|
||||
tests/regression/ust/ust-dl/prog.c | 17 +++++++++++++--
|
||||
tests/regression/ust/ust-dl/test_ust-dl | 32 ----------------------------
|
||||
tests/regression/ust/ust-dl/test_ust-dl.in | 34 ++++++++++++++++++++++++++++++
|
||||
tests/regression/ust/ust-dl/test_ust-dl.py | 9 +++++++-
|
||||
tests/utils/test_utils.py | 3 +++
|
||||
7 files changed, 86 insertions(+), 35 deletions(-)
|
||||
delete mode 100755 tests/regression/ust/ust-dl/test_ust-dl
|
||||
create mode 100644 tests/regression/ust/ust-dl/test_ust-dl.in
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 016c56ec..b6ea39c5 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -196,6 +196,30 @@ AC_CHECK_FUNCS([ \
|
||||
# add -lrt to LIBS
|
||||
AC_CHECK_LIB([rt], [clock_gettime, timer_create, timer_settime, timer_delete])
|
||||
|
||||
+# Checks for dl.
|
||||
+AC_CHECK_LIB([dl], [dlopen], [
|
||||
+ have_libdl=yes
|
||||
+ libdl_name=dl
|
||||
+], [
|
||||
+ # libdl not found, check for dlopen in libc.
|
||||
+ AC_CHECK_LIB([c], [dlopen], [
|
||||
+ have_libc_dl=yes
|
||||
+ libdl_name=c
|
||||
+ ], [
|
||||
+ AC_MSG_ERROR([Cannot find dlopen in libdl nor libc. Use [LDFLAGS]=-Ldir to specify their location.])
|
||||
+ ])
|
||||
+])
|
||||
+
|
||||
+# Check if libdl has dlmopen support.
|
||||
+AH_TEMPLATE([HAVE_DLMOPEN], ["Define to 1 if dlmopen is available."])
|
||||
+AC_CHECK_LIB([$libdl_name], [dlmopen], [
|
||||
+ AC_DEFINE([HAVE_DLMOPEN], [1])
|
||||
+ HAVE_DLMOPEN=1
|
||||
+], [
|
||||
+ HAVE_DLMOPEN=0
|
||||
+])
|
||||
+AC_SUBST(HAVE_DLMOPEN)
|
||||
+
|
||||
# Babeltrace viewer check
|
||||
AC_ARG_WITH([babeltrace-bin],
|
||||
AS_HELP_STRING([--with-babeltrace-bin],
|
||||
@@ -1100,6 +1124,7 @@ AC_CONFIG_FILES([
|
||||
AC_CONFIG_FILES([tests/regression/ust/python-logging/test_python_logging],[chmod +x tests/regression/ust/python-logging/test_python_logging])
|
||||
# Inject LTTNG_TOOLS_BUILD_WITH_LIBPFM variable in test script.
|
||||
AC_CONFIG_FILES([tests/perf/test_perf_raw],[chmod +x tests/perf/test_perf_raw])
|
||||
+AC_CONFIG_FILES([tests/regression/ust/ust-dl/test_ust-dl],[chmod +x tests/regression/ust/ust-dl/test_ust-dl])
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
diff --git a/tests/regression/ust/ust-dl/prog.c b/tests/regression/ust/ust-dl/prog.c
|
||||
index e8e4b264..669792d9 100644
|
||||
--- a/tests/regression/ust/ust-dl/prog.c
|
||||
+++ b/tests/regression/ust/ust-dl/prog.c
|
||||
@@ -13,7 +13,12 @@
|
||||
*/
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
- void *h0, *h1, *h2, *h3, *h4;
|
||||
+ void *h0, *h2, *h3, *h4;
|
||||
+
|
||||
+#ifdef HAVE_DLMOPEN
|
||||
+ void *h1;
|
||||
+#endif
|
||||
+
|
||||
char *error;
|
||||
int (*foo)(void);
|
||||
|
||||
@@ -21,10 +26,14 @@ int main(int argc, char **argv)
|
||||
if (!h0) {
|
||||
goto get_error;
|
||||
}
|
||||
+
|
||||
+#ifdef HAVE_DLMOPEN
|
||||
h1 = dlmopen(LM_ID_BASE, "libfoo.so", RTLD_LAZY);
|
||||
if (!h1) {
|
||||
goto get_error;
|
||||
}
|
||||
+#endif
|
||||
+
|
||||
h2 = dlopen("libzzz.so", RTLD_LAZY);
|
||||
if (!h2) {
|
||||
goto get_error;
|
||||
@@ -38,7 +47,7 @@ int main(int argc, char **argv)
|
||||
goto get_error;
|
||||
}
|
||||
|
||||
- foo = dlsym(h1, "foo");
|
||||
+ foo = dlsym(h3, "foo");
|
||||
error = dlerror();
|
||||
if (error != NULL) {
|
||||
goto error;
|
||||
@@ -49,9 +58,13 @@ int main(int argc, char **argv)
|
||||
if (dlclose(h0)) {
|
||||
goto get_error;
|
||||
}
|
||||
+
|
||||
+#ifdef HAVE_DLMOPEN
|
||||
if (dlclose(h1)) {
|
||||
goto get_error;
|
||||
}
|
||||
+#endif
|
||||
+
|
||||
if (dlclose(h2)) {
|
||||
goto get_error;
|
||||
}
|
||||
diff --git a/tests/regression/ust/ust-dl/test_ust-dl b/tests/regression/ust/ust-dl/test_ust-dl
|
||||
deleted file mode 100755
|
||||
index 1f2934db..00000000
|
||||
--- a/tests/regression/ust/ust-dl/test_ust-dl
|
||||
+++ /dev/null
|
||||
@@ -1,32 +0,0 @@
|
||||
-#!/bin/bash
|
||||
-#
|
||||
-# Copyright (C) - 2013 Jérémie Galarneau <jeremie.galarneau@efficios.com>
|
||||
-#
|
||||
-# This program is free software; you can redistribute it and/or modify it
|
||||
-# under the terms of the GNU General Public License, version 2 only, as
|
||||
-# published by the Free Software Foundation.
|
||||
-#
|
||||
-# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
-# more details.
|
||||
-#
|
||||
-# You should have received a copy of the GNU General Public License along with
|
||||
-# this program; if not, write to the Free Software Foundation, Inc., 51
|
||||
-# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
-
|
||||
-CURDIR=$(dirname $0)
|
||||
-TESTDIR=${CURDIR}/../../..
|
||||
-
|
||||
-source $TESTDIR/utils/utils.sh
|
||||
-
|
||||
-if [ ! -x "$CURDIR/.libs/libfoo.so" ]; then
|
||||
- diag "No shared object generated. Skipping all tests."
|
||||
- exit 0
|
||||
-fi
|
||||
-
|
||||
-start_lttng_sessiond_notap
|
||||
-
|
||||
-python3 ${CURDIR}/test_ust-dl.py
|
||||
-
|
||||
-stop_lttng_sessiond_notap
|
||||
diff --git a/tests/regression/ust/ust-dl/test_ust-dl.in b/tests/regression/ust/ust-dl/test_ust-dl.in
|
||||
new file mode 100644
|
||||
index 00000000..61d00d21
|
||||
--- /dev/null
|
||||
+++ b/tests/regression/ust/ust-dl/test_ust-dl.in
|
||||
@@ -0,0 +1,34 @@
|
||||
+#!/bin/bash
|
||||
+#
|
||||
+# Copyright (C) - 2013 Jérémie Galarneau <jeremie.galarneau@efficios.com>
|
||||
+#
|
||||
+# This program is free software; you can redistribute it and/or modify it
|
||||
+# under the terms of the GNU General Public License, version 2 only, as
|
||||
+# published by the Free Software Foundation.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
+# more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License along with
|
||||
+# this program; if not, write to the Free Software Foundation, Inc., 51
|
||||
+# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
+
|
||||
+CURDIR=$(dirname $0)
|
||||
+TESTDIR=${CURDIR}/../../..
|
||||
+
|
||||
+source $TESTDIR/utils/utils.sh
|
||||
+
|
||||
+if [ ! -x "$CURDIR/.libs/libfoo.so" ]; then
|
||||
+ diag "No shared object generated. Skipping all tests."
|
||||
+ exit 0
|
||||
+fi
|
||||
+
|
||||
+export LTTNG_TOOLS_HAVE_DLMOPEN=@HAVE_DLMOPEN@
|
||||
+
|
||||
+start_lttng_sessiond_notap
|
||||
+
|
||||
+python3 ${CURDIR}/test_ust-dl.py
|
||||
+
|
||||
+stop_lttng_sessiond_notap
|
||||
diff --git a/tests/regression/ust/ust-dl/test_ust-dl.py b/tests/regression/ust/ust-dl/test_ust-dl.py
|
||||
index 81972a7d..72459840 100644
|
||||
--- a/tests/regression/ust/ust-dl/test_ust-dl.py
|
||||
+++ b/tests/regression/ust/ust-dl/test_ust-dl.py
|
||||
@@ -31,6 +31,9 @@ sys.path.append(test_utils_path)
|
||||
from test_utils import *
|
||||
|
||||
|
||||
+have_dlmopen = (os.environ.get('LTTNG_TOOLS_HAVE_DLMOPEN') == '1')
|
||||
+
|
||||
+
|
||||
NR_TESTS = 14
|
||||
current_test = 1
|
||||
print("1..{0}".format(NR_TESTS))
|
||||
@@ -113,7 +116,11 @@ current_test += 1
|
||||
print_test_result(dlopen_event_found > 0, current_test, "lttng_ust_dl:dlopen event found in resulting trace")
|
||||
current_test += 1
|
||||
|
||||
-print_test_result(dlmopen_event_found > 0, current_test, "lttng_ust_dl:dlmopen event found in resulting trace")
|
||||
+if have_dlmopen:
|
||||
+ print_test_result(dlmopen_event_found > 0, current_test, "lttng_ust_dl:dlmopen event found in resulting trace")
|
||||
+else:
|
||||
+ skip_test(current_test, 'dlmopen() is not available')
|
||||
+
|
||||
current_test += 1
|
||||
|
||||
print_test_result(build_id_event_found > 0, current_test, "lttng_ust_dl:build_id event found in resulting trace")
|
||||
diff --git a/tests/utils/test_utils.py b/tests/utils/test_utils.py
|
||||
index 4b38630c..02e632a2 100644
|
||||
--- a/tests/utils/test_utils.py
|
||||
+++ b/tests/utils/test_utils.py
|
||||
@@ -62,6 +62,9 @@ def print_test_result(result, number, description):
|
||||
result_string += " {0} - {1}".format(number, description)
|
||||
print(result_string)
|
||||
|
||||
+def skip_test(number, description):
|
||||
+ print('ok {} # skip {}'.format(number, description))
|
||||
+
|
||||
def enable_ust_tracepoint_event(session_info, event_name):
|
||||
event = Event()
|
||||
event.name = event_name
|
||||
--
|
||||
2.15.0
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
From 40dde31f7eeb71af169b97b82d8fd1739895dfc3 Mon Sep 17 00:00:00 2001
|
||||
From: Philippe Proulx <eeppeliteloop@gmail.com>
|
||||
Date: Wed, 8 Nov 2017 15:19:24 -0500
|
||||
Subject: [PATCH] Fix: src/common/pipe.h: include <sys/types.h> for ssize_t and
|
||||
mode_t
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
|
||||
[Philippe: backport from upstream commit 40dde31f]
|
||||
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
|
||||
---
|
||||
src/common/pipe.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/common/pipe.h b/src/common/pipe.h
|
||||
index 2d4fc967..30f7c3f3 100644
|
||||
--- a/src/common/pipe.h
|
||||
+++ b/src/common/pipe.h
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include <pthread.h>
|
||||
#include <common/macros.h>
|
||||
+#include <sys/types.h>
|
||||
|
||||
enum lttng_pipe_state {
|
||||
LTTNG_PIPE_STATE_OPENED = 1,
|
||||
--
|
||||
2.15.0
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
From 56efeab366da412ee4196107c08174f32ed83c9a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Galarneau?=
|
||||
<jeremie.galarneau@efficios.com>
|
||||
Date: Mon, 13 Nov 2017 10:31:29 -0500
|
||||
Subject: [PATCH] Fix warning: src/bin/lttng/utils.c: cast incompatible pointer
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Reported-by: Philippe Proulx <eeppeliteloop@gmail.com>
|
||||
[Philippe: backport from upstream commit 56efeab3]
|
||||
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
|
||||
---
|
||||
src/bin/lttng/utils.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/bin/lttng/utils.c b/src/bin/lttng/utils.c
|
||||
index 885f498b..52a2440e 100644
|
||||
--- a/src/bin/lttng/utils.c
|
||||
+++ b/src/bin/lttng/utils.c
|
||||
@@ -387,7 +387,7 @@ int check_relayd(void)
|
||||
* A successful connect means the relayd exists thus returning 0 else a
|
||||
* negative value means it does NOT exists.
|
||||
*/
|
||||
- ret = connect(fd, &sin, sizeof(sin));
|
||||
+ ret = connect(fd, (struct sockaddr *) &sin, sizeof(sin));
|
||||
if (ret < 0) {
|
||||
/* Not found. */
|
||||
ret = 0;
|
||||
--
|
||||
2.15.0
|
||||
|
||||
@@ -10,7 +10,8 @@ LTTNG_TOOLS_SOURCE = lttng-tools-$(LTTNG_TOOLS_VERSION).tar.bz2
|
||||
LTTNG_TOOLS_LICENSE = GPL-2.0+, LGPL-2.1+ (include/lttng/*, src/lib/lttng-ctl/*)
|
||||
LTTNG_TOOLS_LICENSE_FILES = gpl-2.0.txt lgpl-2.1.txt LICENSE
|
||||
LTTNG_TOOLS_CONF_OPTS += --disable-man-pages
|
||||
|
||||
# 0001-Fix-detect-dlmopen-and-disable-corresponding-tests-i.patch
|
||||
LTTNG_LIBUST_AUTORECONF = YES
|
||||
LTTNG_TOOLS_DEPENDENCIES = liburcu libxml2 popt util-linux
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LTTNG_LIBUST),y)
|
||||
|
||||
@@ -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 || \
|
||||
|
||||
@@ -26,6 +26,12 @@ MESA3D_DEPENDENCIES = \
|
||||
# Disable assembly usage.
|
||||
MESA3D_CONF_OPTS = --disable-asm
|
||||
|
||||
# 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.
|
||||
|
||||
@@ -10,7 +10,7 @@ MOARVM_SOURCE = MoarVM-$(MOARVM_VERSION).tar.gz
|
||||
MOARVM_LICENSE = Artistic-2.0
|
||||
MOARVM_LICENSE_FILES = Artistic2.txt
|
||||
MOARVM_INSTALL_STAGING = YES
|
||||
MOARVM_DEPENDENCIES = host-luajit host-pkgconf libuv libtommath libatomic_ops
|
||||
MOARVM_DEPENDENCIES = host-lua host-pkgconf libuv libtommath libatomic_ops
|
||||
|
||||
MOARVM_CONF_OPTS = \
|
||||
--build=$(GNU_HOST_NAME) \
|
||||
@@ -20,7 +20,7 @@ MOARVM_CONF_OPTS = \
|
||||
--ld="$(TARGET_CC)" \
|
||||
--prefix="/usr" \
|
||||
--pkgconfig=$(PKG_CONFIG_HOST_BINARY) \
|
||||
--lua=$(HOST_DIR)/bin/luajit \
|
||||
--lua=$(HOST_DIR)/bin/lua \
|
||||
--has-libuv \
|
||||
--has-libtommath \
|
||||
--has-libatomic
|
||||
|
||||
32
package/mp4v2/0001-Fix-GCC7-build.patch
Normal file
32
package/mp4v2/0001-Fix-GCC7-build.patch
Normal file
@@ -0,0 +1,32 @@
|
||||
From 855e9674232808ff3be7191b697dfb56917db21f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= <sergio@serjux.com>
|
||||
Date: Wed, 8 Feb 2017 00:56:32 +0000
|
||||
Subject: [PATCH] Fix GCC7 build
|
||||
|
||||
if (*pSlash != '\0') {
|
||||
|
||||
As it stands the body of that if will always execute and when there are
|
||||
no encoding parameters ppEncodingParams will be returned as a pointer to
|
||||
an empty string rather than as a null pointer
|
||||
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
src/rtphint.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/rtphint.cpp b/src/rtphint.cpp
|
||||
index e07309d..1eb01f5 100644
|
||||
--- a/src/rtphint.cpp
|
||||
+++ b/src/rtphint.cpp
|
||||
@@ -339,7 +339,7 @@ void MP4RtpHintTrack::GetPayload(
|
||||
pSlash = strchr(pSlash, '/');
|
||||
if (pSlash != NULL) {
|
||||
pSlash++;
|
||||
- if (pSlash != '\0') {
|
||||
+ if (*pSlash != '\0') {
|
||||
length = (uint32_t)strlen(pRtpMap) - (pSlash - pRtpMap);
|
||||
*ppEncodingParams = (char *)MP4Calloc(length + 1);
|
||||
strncpy(*ppEncodingParams, pSlash, length);
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -208,13 +208,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,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,2 +1,4 @@
|
||||
# From http://www.openssh.com/txt/release-7.5 (base64 encoded)
|
||||
sha256 9846e3c5fab9f0547400b4d2c017992f914222b3fd1f8eee6c7dc6bc5e59f9f0 openssh-7.5p1.tar.gz
|
||||
# From http://www.openssh.com/txt/release-7.6 (base64 encoded)
|
||||
sha256 a323caeeddfe145baaa0db16e98d784b1fbc7dd436a6bf1f479dfd5cd1d21723 openssh-7.6p1.tar.gz
|
||||
# Locally calculated
|
||||
sha256 05a4c25ef464e19656c5259bd4f4da8428efab01044f3541b79fbb3ff209350f LICENCE
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
OPENSSH_VERSION = 7.5p1
|
||||
OPENSSH_VERSION = 7.6p1
|
||||
OPENSSH_SITE = http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable
|
||||
OPENSSH_LICENSE = BSD-3-Clause, BSD-2-Clause, Public Domain
|
||||
OPENSSH_LICENSE_FILES = LICENCE
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# From https://www.openssl.org/source/openssl-1.0.2l.tar.gz.sha256
|
||||
sha256 ce07195b659e75f4e1db43552860070061f156a98bb37b672b101ba6e3ddf30c openssl-1.0.2l.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.2l
|
||||
OPENSSL_VERSION = 1.0.2m
|
||||
OPENSSL_SITE = http://www.openssl.org/source
|
||||
OPENSSL_LICENSE = OpenSSL or SSLeay
|
||||
OPENSSL_LICENSE_FILES = LICENSE
|
||||
|
||||
@@ -4,15 +4,17 @@ mysql.cc: In function 'void build_completion_hash(bool, bool)':
|
||||
mysql.cc:2687:37: error: invalid conversion from 'char' to 'char*' [-fpermissive]
|
||||
field_names[i][num_fields*2]= '\0';
|
||||
^~~~
|
||||
|
||||
Patch was partly backported from upstream commit:
|
||||
https://github.com/mysql/mysql-server/commit/ae21683d980d5fe9e39bd0193827ea3604256eb9
|
||||
|
||||
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
||||
[Thomas: add more gcc 7.x fixes in instance_map.cc.]
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
diff -uNr mysql-5.1.73.org/client/mysql.cc mysql-5.1.73/client/mysql.cc
|
||||
--- mysql-5.1.73.org/client/mysql.cc 2013-11-04 19:52:27.000000000 +0100
|
||||
+++ mysql-5.1.73/client/mysql.cc 2017-05-13 19:52:10.125101101 +0200
|
||||
Index: b/client/mysql.cc
|
||||
===================================================================
|
||||
--- a/client/mysql.cc
|
||||
+++ b/client/mysql.cc
|
||||
@@ -2684,7 +2684,7 @@
|
||||
mysql_free_result(fields);
|
||||
break;
|
||||
@@ -22,3 +24,22 @@ diff -uNr mysql-5.1.73.org/client/mysql.cc mysql-5.1.73/client/mysql.cc
|
||||
j=0;
|
||||
while ((sql_field=mysql_fetch_field(fields)))
|
||||
{
|
||||
Index: b/server-tools/instance-manager/instance_map.cc
|
||||
===================================================================
|
||||
--- a/server-tools/instance-manager/instance_map.cc
|
||||
+++ b/server-tools/instance-manager/instance_map.cc
|
||||
@@ -526,12 +526,12 @@
|
||||
Options::Main::config_file);
|
||||
|
||||
argv_options[1]= defaults_file_arg;
|
||||
- argv_options[2]= '\0';
|
||||
+ argv_options[2]= NULL;
|
||||
|
||||
argc= 2;
|
||||
}
|
||||
else
|
||||
- argv_options[1]= '\0';
|
||||
+ argv_options[1]= NULL;
|
||||
|
||||
/*
|
||||
If the routine failed, we'll simply fallback to defaults in
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
# From https://ftp.postgresql.org/pub/source/v9.6.3/postgresql-9.6.3.tar.bz2.sha256
|
||||
sha256 1645b3736901f6d854e695a937389e68ff2066ce0cde9d73919d6ab7c995b9c6 postgresql-9.6.3.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.3
|
||||
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
|
||||
|
||||
146
package/qt/0015-configure-fix-build-on-non-x86-platforms.patch
Normal file
146
package/qt/0015-configure-fix-build-on-non-x86-platforms.patch
Normal file
@@ -0,0 +1,146 @@
|
||||
From 02e9698c96ca78342b82fa7239e93bab4aa45db2 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Fri, 17 Nov 2017 22:20:06 +0100
|
||||
Subject: [PATCH] configure: fix build on non-x86 platforms
|
||||
|
||||
When building for an uncommon platform on a ppc64le machine, Qt build
|
||||
fails because it builds qmake with the target compiler instead of
|
||||
using the host compiler. This is due to the fact that Qt configure
|
||||
script believes that both the host and target platforms are "powerpc",
|
||||
even though the target really is Xtensa or ARC for example.
|
||||
|
||||
Qt's configure script defines a variable called PLATFORM that points to
|
||||
the mkspecs describing the host machine. For x86, its value is
|
||||
qws/linux-x86-g++ and for x86-64, its value is
|
||||
qws/linux-x86_64-g++. For any other host architecture, its value is
|
||||
qws/linux-generic-g++.
|
||||
|
||||
In parallel to this, Qt's configure script defines a variable called
|
||||
XPLATFORM that points to the mkspecs describing the target machine. It
|
||||
points to qws/linux-${CFG_EMBEDDED}-g++, where CFG_EMBEDDED is
|
||||
simply "generic" for most uncommon architectures.
|
||||
|
||||
Therefore, when we're building for an uncommon architecture, on a
|
||||
ppc64le machine, we have:
|
||||
|
||||
PLATFORM = qws/linux-generic-g++
|
||||
XPLATFORM = qws/linux-generic-g++
|
||||
|
||||
i.e, both values are equal. Due to this, the following condition is
|
||||
false:
|
||||
|
||||
if [ "$PLATFORM" != "$XPLATFORM" -a "$CFG_EMBEDDED" != "no" ]; then
|
||||
|
||||
which causes Qt's configure script to fallback to:
|
||||
|
||||
elif [ "$PLATFORM_MAC" = "yes" ] || [ -z "$CFG_ARCH" ]; then
|
||||
CFG_ARCH=$CFG_HOST_ARCH
|
||||
fi
|
||||
|
||||
because CFG_ARCH is not defined, and therefore gets defined to
|
||||
CFG_HOST_ARCH. So we have CFG_ARCH == CFG_HOST_ARCH, and Qt believes
|
||||
we're doing a native build.
|
||||
|
||||
Therefore, we need to ensure that PLATFORM and XPLATFORM always have a
|
||||
different value. To achieve this, we create a
|
||||
qws/linux-host-generic-g++ mkspecs, which is always used as
|
||||
PLATFORM. It is identical to qws/linux-x86-g++. Compared to
|
||||
qws/linux-x86_64-g++, the only difference is that we're not passing
|
||||
the -m64 flag, but that isn't needed when building host tools.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
configure | 8 +----
|
||||
mkspecs/qws/linux-host-generic-g++/qmake.conf | 10 ++++++
|
||||
mkspecs/qws/linux-host-generic-g++/qplatformdefs.h | 42 ++++++++++++++++++++++
|
||||
3 files changed, 53 insertions(+), 7 deletions(-)
|
||||
create mode 100644 mkspecs/qws/linux-host-generic-g++/qmake.conf
|
||||
create mode 100644 mkspecs/qws/linux-host-generic-g++/qplatformdefs.h
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index 10ad7ca0b0..d25f90be1e 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -2806,14 +2806,8 @@ if [ "$CFG_EMBEDDED" != "no" ]; then
|
||||
Linux:*)
|
||||
if [ -z "$PLATFORM" ]; then
|
||||
case "$UNAME_MACHINE" in
|
||||
- *86)
|
||||
- PLATFORM=qws/linux-x86-g++
|
||||
- ;;
|
||||
- *86_64)
|
||||
- PLATFORM=qws/linux-x86_64-g++
|
||||
- ;;
|
||||
*)
|
||||
- PLATFORM=qws/linux-generic-g++
|
||||
+ PLATFORM=qws/linux-host-generic-g++
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
diff --git a/mkspecs/qws/linux-host-generic-g++/qmake.conf b/mkspecs/qws/linux-host-generic-g++/qmake.conf
|
||||
new file mode 100644
|
||||
index 0000000000..55011ec52b
|
||||
--- /dev/null
|
||||
+++ b/mkspecs/qws/linux-host-generic-g++/qmake.conf
|
||||
@@ -0,0 +1,10 @@
|
||||
+#
|
||||
+# qmake configuration for building with linux-g++
|
||||
+#
|
||||
+
|
||||
+include(../../common/linux.conf)
|
||||
+include(../../common/gcc-base-unix.conf)
|
||||
+include(../../common/g++-unix.conf)
|
||||
+include(../../common/qws.conf)
|
||||
+
|
||||
+load(qt_config)
|
||||
diff --git a/mkspecs/qws/linux-host-generic-g++/qplatformdefs.h b/mkspecs/qws/linux-host-generic-g++/qplatformdefs.h
|
||||
new file mode 100644
|
||||
index 0000000000..a654aa78a2
|
||||
--- /dev/null
|
||||
+++ b/mkspecs/qws/linux-host-generic-g++/qplatformdefs.h
|
||||
@@ -0,0 +1,42 @@
|
||||
+/****************************************************************************
|
||||
+**
|
||||
+** Copyright (C) 2015 The Qt Company Ltd.
|
||||
+** Contact: http://www.qt.io/licensing/
|
||||
+**
|
||||
+** This file is part of the qmake spec of the Qt Toolkit.
|
||||
+**
|
||||
+** $QT_BEGIN_LICENSE:LGPL$
|
||||
+** Commercial License Usage
|
||||
+** Licensees holding valid commercial Qt licenses may use this file in
|
||||
+** accordance with the commercial license agreement provided with the
|
||||
+** Software or, alternatively, in accordance with the terms contained in
|
||||
+** a written agreement between you and The Qt Company. For licensing terms
|
||||
+** and conditions see http://www.qt.io/terms-conditions. For further
|
||||
+** information use the contact form at http://www.qt.io/contact-us.
|
||||
+**
|
||||
+** GNU Lesser General Public License Usage
|
||||
+** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
+** General Public License version 2.1 or version 3 as published by the Free
|
||||
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
|
||||
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
|
||||
+** following information to ensure the GNU Lesser General Public License
|
||||
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
|
||||
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
+**
|
||||
+** As a special exception, The Qt Company gives you certain additional
|
||||
+** rights. These rights are described in The Qt Company LGPL Exception
|
||||
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
+**
|
||||
+** GNU General Public License Usage
|
||||
+** Alternatively, this file may be used under the terms of the GNU
|
||||
+** General Public License version 3.0 as published by the Free Software
|
||||
+** Foundation and appearing in the file LICENSE.GPL included in the
|
||||
+** packaging of this file. Please review the following information to
|
||||
+** ensure the GNU General Public License version 3.0 requirements will be
|
||||
+** met: http://www.gnu.org/copyleft/gpl.html.
|
||||
+**
|
||||
+** $QT_END_LICENSE$
|
||||
+**
|
||||
+****************************************************************************/
|
||||
+
|
||||
+#include "../../linux-g++/qplatformdefs.h"
|
||||
--
|
||||
2.13.6
|
||||
|
||||
@@ -10,7 +10,7 @@ QT5_VERSION = $(QT5_VERSION_MAJOR).1
|
||||
QT5_SITE = http://download.qt.io/official_releases/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/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.9/5.9.1/submodules/qt3d-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 4f1fe5b812d78987341b854e7f2907f0375dc188cfa6cf9db101b26e9dfd4996 qt3d-opensource-src-5.9.1.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.9/5.9.1/submodules/qtbase-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 bc9a21e9f6fff9629019fdf9f989f064751d5073c3a28dc596def92f4d4275c6 qtbase-opensource-src-5.9.1.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.9/5.9.1/submodules/qtcanvas3d-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 4b8bf09330f03d2b3998f5447991546704715478c54f4f8d82d00bee3047de81 qtcanvas3d-opensource-src-5.9.1.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.9/5.9.1/submodules/qtconnectivity-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 40638b715517bff8509fe9fe1e6a4e45e0f66e68920605048e080dd023ae7fd5 qtconnectivity-opensource-src-5.9.1.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.9/5.9.1/submodules/qtdeclarative-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 d2fe6c9c1a9f19af6e96553c6d75366ab8f397bc232acd67d31476955fee94ff qtdeclarative-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtenginio-opensource-src-1.6.2.tar.xz.mirrorlist
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtenginio-opensource-src-1.6.2.tar.xz.mirrorlist
|
||||
sha256 90ffc38d214a75ab0ef90a4760843f12bc073ae49c17de24c677d1d403bddcc3 qtenginio-opensource-src-1.6.2.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtgraphicaleffects-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 1e9f0fac2c72a812d396db74b2d9d12f513d2ec9135d5982ca85aee7f00be75e qtgraphicaleffects-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtgraphicaleffects-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 c742592d5e45b122b29df60b69be23ba7c817f2dc471db86e054f6ea24a999ed qtgraphicaleffects-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtgraphicaleffects-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 5f86c38e36d9553049cfbe56d4869e73cf8ab920905402cbcafb56dd8a1a59ff qtgraphicaleffects-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtimageformats-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 4fb153be62dac393cbcebab65040b3b9d6edecd1ebbe5e543401b0e45bd147e4 qtimageformats-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtimageformats-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 efe4da3c90c976c9b9a2eb6b081d2b8e1435935695104456276ce98e8a5848c3 qtimageformats-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtimageformats-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 79fee307310a66100bd3d907ea69bd039dcd727c15f27e990167e7a27d1b8a47 qtimageformats-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtlocation-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 7a8995206ed0220f943a33c037527a1a8243d5386f5ca77bf88152675c28d23a qtlocation-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtlocation-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 b7a81c58cc331fb15bea8fba21d3c9a59f6dc6ad2e4855e30a14ce59a2af1466 qtlocation-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtlocation-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 4bc43c1df69c5322f982588711d4a65f8408b71a36e43ba19b39d1aae87e1515 qtlocation-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtmultimedia-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 cb9a70a7c6c0eb5be4a3fcaf9590863479e95a255308bbf07d5b7aa303bb8caf qtmultimedia-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtmultimedia-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 ae36039ea8037742342f1615687e0ca2188f3ed0d700627a5e5be546c15e1b46 qtmultimedia-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtmultimedia-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 e48fbe71b4418eb7caba5ef5aa422483fb28d0e894cbc41f3d8b73b3d7fee6e4 qtmultimedia-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtquickcontrols-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 5ed0f2292be10222dfb1b57a05472798fd759279f65455d91c02ef4fb746102c qtquickcontrols-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtquickcontrols-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 31bb0fc8f21b855af6ff02c415be3246128b523d0ef7c05e248e92281ab0db8e qtquickcontrols-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtquickcontrols-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 520ed0e110f9d0977eb873ea0e05a3d205c9c1b1ad2dd606875708848b21ec2e qtquickcontrols-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtquickcontrols2-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 09dc1710aa4701aebe145829eb99bab94d0870cf578f7dddcec0af92286dfec1 qtquickcontrols2-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtquickcontrols2-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 ec5078470abe2da888c2be5d1749b5961ef5132487c180ce4d4aa19ea7ff81cb qtquickcontrols2-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtquickcontrols2-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 203be0321112d1513b722fce463f9e30d7d00befb33349901d9517f4f13408ff qtquickcontrols2-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtscript-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 e06ef6b271cae2187b57cd4ffdd6759428fd47f94a060e2ed2af024a8c14110e qtscript-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtscript-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 f08720dd0e3a70377c1cb7fa3b129e24f4cdedade279e51b67c9271ab470b389 qtscript-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtscript-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 176a08865d5f66437b0f279fc5d7f381f359f20bafbffcebdcac61e86415188f qtscript-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtsensors-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 a7809081aab4f2f0d7a4f40c3abb02e1690bb390d1dd410d7c6c5019a5053427 qtsensors-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtsensors-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 7502d4dc5571865a7eea2a4180c3be396dfb8ce22df4c4f3d7e9ff32ab334973 qtsensors-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtsensors-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 5af19397aa8ccd88c1fbb7cda4ee2a583f05bdf8ae090eb616bb276ff2e9e29c qtsensors-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtserialbus-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 b39260091691532382935ed51de9ead8e66cfb5f7a6e5410c17cd0695ccaf826 qtserialbus-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtserialbus-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 71c89be3879414e2a11cad93a4882758f9259b1c0aec980560309192c99f9a9e qtserialbus-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtserialbus-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 caa9feefbf1d51b38d6bc923428009d524c0c5eb77f30e4b6d84fec1ce19f3c3 qtserialbus-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtserialport-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 af76281bad2c2bd283189635316b46091f6712134b845ae1b9e3016eec94f376 qtserialport-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtserialport-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 082d1fee2703aed19f840c4e4031e37c9b929e5bd8ebef2ebac4b28c509bae1a qtserialport-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtserialport-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 e1fe85bf292929c3a62cb4d21efaaa4e89f70f48ea10914da07d0670ec617a69 qtserialport-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtsvg-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 f7a361bf661b31ae7779513559dd0b774171911bc57f5cfb6bed6878ddc8bc4e qtsvg-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtsvg-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 100f183517b46554079beabd8d2cabe3070a74dd0a2e64b6a304eac71cfadcec qtsvg-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtsvg-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 99f294f874b13553e4ed49cd9465580ad0c9b92e29cdfa47b2e4096835c1e2e5 qtsvg-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qttools-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 db2bb4318786257a47172c377d9c456d5d5ec760d5d69240a4693dc87989e1b7 qttools-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qttools-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 1a63ba838058d73cb540040589b235ded77f76402693decfd6d4d3c75ea67926 qttools-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qttools-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 c4eb56cf24a75661b8317b566be37396c90357b4f6730ef12b8c97a7079ca0e8 qttools-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtwebchannel-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 700efdef5f51bdb77093f4db212afe275ad35a710ea08ba0e9e9cbc8f09f1a52 qtwebchannel-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtwebchannel-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 8eb1b0ac2286653c7932758c21e7760788a5d7cfd6162da09afa926d5be50713 qtwebchannel-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtwebchannel-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 80425f5a6df8784f5221809ffd664486ed38427f514ab4ec174e20456b027000 qtwebchannel-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
From bf172ae289a1348842005a9421797970f9b72060 Mon Sep 17 00:00:00 2001
|
||||
From: Konstantin Tokarev <annulen@yandex.ru>
|
||||
Date: Thu, 4 May 2017 15:12:37 +0300
|
||||
Subject: [PATCH] Fix compilation with ICU 59
|
||||
|
||||
Upstream fix: https://bugs.webkit.org/show_bug.cgi?id=171612
|
||||
|
||||
Task-number: QTBUG-60532
|
||||
Change-Id: I6014feea213aa70ebe40b09d9d1a03fd1ed3c843
|
||||
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
Source/JavaScriptCore/API/JSStringRef.cpp | 6 +++---
|
||||
Source/JavaScriptCore/runtime/DateConversion.cpp | 3 ++-
|
||||
Source/WTF/wtf/TypeTraits.h | 3 +++
|
||||
Source/WebKit2/Shared/API/c/WKString.cpp | 2 +-
|
||||
4 files changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/Source/JavaScriptCore/API/JSStringRef.cpp b/Source/JavaScriptCore/API/JSStringRef.cpp
|
||||
index 812f3d413..77a3fd0f4 100644
|
||||
--- a/Source/JavaScriptCore/API/JSStringRef.cpp
|
||||
+++ b/Source/JavaScriptCore/API/JSStringRef.cpp
|
||||
@@ -37,7 +37,7 @@ using namespace WTF::Unicode;
|
||||
JSStringRef JSStringCreateWithCharacters(const JSChar* chars, size_t numChars)
|
||||
{
|
||||
initializeThreading();
|
||||
- return OpaqueJSString::create(chars, numChars).leakRef();
|
||||
+ return OpaqueJSString::create(reinterpret_cast<const UChar*>(chars), numChars).leakRef();
|
||||
}
|
||||
|
||||
JSStringRef JSStringCreateWithUTF8CString(const char* string)
|
||||
@@ -62,7 +62,7 @@ JSStringRef JSStringCreateWithUTF8CString(const char* string)
|
||||
JSStringRef JSStringCreateWithCharactersNoCopy(const JSChar* chars, size_t numChars)
|
||||
{
|
||||
initializeThreading();
|
||||
- return OpaqueJSString::create(StringImpl::createWithoutCopying(chars, numChars, WTF::DoesNotHaveTerminatingNullCharacter)).leakRef();
|
||||
+ return OpaqueJSString::create(StringImpl::createWithoutCopying(reinterpret_cast<const UChar*>(chars), numChars, WTF::DoesNotHaveTerminatingNullCharacter)).leakRef();
|
||||
}
|
||||
|
||||
JSStringRef JSStringRetain(JSStringRef string)
|
||||
@@ -83,7 +83,7 @@ size_t JSStringGetLength(JSStringRef string)
|
||||
|
||||
const JSChar* JSStringGetCharactersPtr(JSStringRef string)
|
||||
{
|
||||
- return string->characters();
|
||||
+ return reinterpret_cast<const JSChar*>(string->characters());
|
||||
}
|
||||
|
||||
size_t JSStringGetMaximumUTF8CStringSize(JSStringRef string)
|
||||
diff --git a/Source/JavaScriptCore/runtime/DateConversion.cpp b/Source/JavaScriptCore/runtime/DateConversion.cpp
|
||||
index 0b57f012d..05e27338b 100644
|
||||
--- a/Source/JavaScriptCore/runtime/DateConversion.cpp
|
||||
+++ b/Source/JavaScriptCore/runtime/DateConversion.cpp
|
||||
@@ -107,7 +107,8 @@ String formatDateTime(const GregorianDateTime& t, DateTimeFormat format, bool as
|
||||
#if OS(WINDOWS)
|
||||
TIME_ZONE_INFORMATION timeZoneInformation;
|
||||
GetTimeZoneInformation(&timeZoneInformation);
|
||||
- const WCHAR* timeZoneName = t.isDST() ? timeZoneInformation.DaylightName : timeZoneInformation.StandardName;
|
||||
+ const WCHAR* winTimeZoneName = t.isDST() ? timeZoneInformation.DaylightName : timeZoneInformation.StandardName;
|
||||
+ String timeZoneName(reinterpret_cast<const UChar*>(winTimeZoneName));
|
||||
#else
|
||||
struct tm gtm = t;
|
||||
char timeZoneName[70];
|
||||
diff --git a/Source/WTF/wtf/TypeTraits.h b/Source/WTF/wtf/TypeTraits.h
|
||||
index 9df2c95cf..f5d6121fd 100644
|
||||
--- a/Source/WTF/wtf/TypeTraits.h
|
||||
+++ b/Source/WTF/wtf/TypeTraits.h
|
||||
@@ -72,6 +72,9 @@ namespace WTF {
|
||||
template<> struct IsInteger<unsigned long> { static const bool value = true; };
|
||||
template<> struct IsInteger<long long> { static const bool value = true; };
|
||||
template<> struct IsInteger<unsigned long long> { static const bool value = true; };
|
||||
+#if __cplusplus >= 201103L || defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined(_HAS_CHAR16_T_LANGUAGE_SUPPORT) && _HAS_CHAR16_T_LANGUAGE_SUPPORT)
|
||||
+ template<> struct IsInteger<char16_t> { static const bool value = true; };
|
||||
+#endif
|
||||
#if !COMPILER(MSVC) || defined(_NATIVE_WCHAR_T_DEFINED)
|
||||
template<> struct IsInteger<wchar_t> { static const bool value = true; };
|
||||
#endif
|
||||
diff --git a/Source/WebKit2/Shared/API/c/WKString.cpp b/Source/WebKit2/Shared/API/c/WKString.cpp
|
||||
index cbac67dd8..23400a64e 100644
|
||||
--- a/Source/WebKit2/Shared/API/c/WKString.cpp
|
||||
+++ b/Source/WebKit2/Shared/API/c/WKString.cpp
|
||||
@@ -55,7 +55,7 @@ size_t WKStringGetLength(WKStringRef stringRef)
|
||||
size_t WKStringGetCharacters(WKStringRef stringRef, WKChar* buffer, size_t bufferLength)
|
||||
{
|
||||
COMPILE_ASSERT(sizeof(WKChar) == sizeof(UChar), WKStringGetCharacters_sizeof_WKChar_matches_UChar);
|
||||
- return (toImpl(stringRef)->getCharacters(static_cast<UChar*>(buffer), bufferLength));
|
||||
+ return (toImpl(stringRef)->getCharacters(reinterpret_cast<UChar*>(buffer), bufferLength));
|
||||
}
|
||||
|
||||
size_t WKStringGetMaximumUTF8CStringSize(WKStringRef stringRef)
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/snapshots/qt/5.6/5.6.2/latest_src/submodules/qtwebkit-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 528a6b8b1c5095367b26e8ce4f3a46bb739e2e9913ff4dfc6ef58a04fcd73966 qtwebkit-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: http://download.qt.io/community_releases/5.6/5.6.3/qtwebkit-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 098c6bb25798fbf1b619b540621287787064efc9b586d76ac0ce7e39b87a3896 qtwebkit-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtwebkit-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 28a560becd800a4229bfac317c2e5407cd3cc95308bc4c3ca90dba2577b052cf qtwebkit-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -5,7 +5,12 @@
|
||||
################################################################################
|
||||
|
||||
QT5WEBKIT_VERSION = $(QT5_VERSION)
|
||||
ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
|
||||
QT5WEBKIT_SITE = $(QT5_SITE)
|
||||
else
|
||||
QT5WEBKIT_SITE = http://download.qt.io/community_releases/5.6/$(QT5_VERSION)
|
||||
endif
|
||||
|
||||
QT5WEBKIT_SOURCE = qtwebkit-opensource-src-$(QT5WEBKIT_VERSION).tar.xz
|
||||
QT5WEBKIT_DEPENDENCIES = \
|
||||
host-bison host-flex host-gperf host-python host-ruby \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtwebsockets-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 3cd9d4bbff8e6be5e252f00fc9ecb9ac2d8a193020288c7d1e82583daeb5ba35 qtwebsockets-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtwebsockets-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 a2439045616c89dfe06333734ff4726075c92e01db6e6b6863bc138e39c028eb qtwebsockets-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtwebsockets-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 01277362430b5a75c19a16ded8cf4c53a3bccddcc0ba2f50648e0f2985f23464 qtwebsockets-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtx11extras-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 71ffde1cfaeec310677b69ecd16cb5992e8885cf3e73b4cec7d6e7a115b40ced qtx11extras-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtx11extras-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 1e7a8e96e0629f2b2b78de684b156b357210cf5df6b42f30789423f2cb07677f qtx11extras-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtx11extras-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 a63d0e28958331d672dbd0f8c554bdaddbc974a27be37601f7f221a2ef1ad601 qtx11extras-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.6/5.6.2/submodules/qtxmlpatterns-opensource-src-5.6.2.tar.xz.mirrorlist
|
||||
sha256 7c6df3eebf188d8ce6822a22cebbc63da5ac27047cf1bd7236d5b988244782cc qtxmlpatterns-opensource-src-5.6.2.tar.xz
|
||||
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtxmlpatterns-opensource-src-5.6.3.tar.xz.mirrorlist
|
||||
sha256 a461ff9f0d7310de9b9904ff9cd34919e958bf4071a6fc7096450b8990ab51f6 qtxmlpatterns-opensource-src-5.6.3.tar.xz
|
||||
|
||||
# Hash from: http://download.qt.io/official_releases/qt/5.9/5.9.1/submodules/qtxmlpatterns-opensource-src-5.9.1.tar.xz.mirrorlist
|
||||
sha256 b584686496ad1b1b3426d642bd705cab3fc02313b067a33d1b826a27aee29c24 qtxmlpatterns-opensource-src-5.9.1.tar.xz
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From 7a42b78be9a4108d98833069a88e6fddb9285008 Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Jaggi <aj@open.ch>
|
||||
Date: Mon, 2 Oct 2017 19:38:43 +0530
|
||||
Subject: [PATCH] bgpd: Fix AS_PATH size calculation for long paths
|
||||
|
||||
If you have an AS_PATH with more entries than
|
||||
what can be written into a single AS_SEGMENT_MAX
|
||||
it needs to be broken up. The code that noticed
|
||||
that the AS_PATH needs to be broken up was not
|
||||
correctly calculating the size of the resulting
|
||||
message. This patch addresses this issue.
|
||||
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
bgpd/bgp_aspath.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c
|
||||
index b7af5e88..d813bfba 100644
|
||||
--- a/bgpd/bgp_aspath.c
|
||||
+++ b/bgpd/bgp_aspath.c
|
||||
@@ -903,7 +903,7 @@ aspath_put (struct stream *s, struct aspath *as, int use32bit )
|
||||
assegment_header_put (s, seg->type, AS_SEGMENT_MAX);
|
||||
assegment_data_put (s, seg->as, AS_SEGMENT_MAX, use32bit);
|
||||
written += AS_SEGMENT_MAX;
|
||||
- bytes += ASSEGMENT_SIZE (written, use32bit);
|
||||
+ bytes += ASSEGMENT_SIZE (AS_SEGMENT_MAX, use32bit);
|
||||
}
|
||||
|
||||
/* write the final segment, probably is also the first */
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
# From https://github.com/antirez/redis-hashes/blob/master/README
|
||||
sha256 6eaacfa983b287e440d0839ead20c2231749d5d6b78bbe0e0ffa3a890c59ff26 redis-3.2.9.tar.gz
|
||||
sha256 31ae927cab09f90c9ca5954aab7aeecc3bb4da6087d3d12ba0a929ceb54081b5 redis-3.2.11.tar.gz
|
||||
# Locally calculated
|
||||
sha256 cbf420a3672475a6e2765e3c0984c1f81efe0212afb94a3c998ee63bfd661063 COPYING
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
REDIS_VERSION = 3.2.9
|
||||
REDIS_VERSION = 3.2.11
|
||||
REDIS_SITE = http://download.redis.io/releases
|
||||
REDIS_LICENSE = BSD-3-Clause (core); MIT and BSD family licenses (Bundled components)
|
||||
REDIS_LICENSE_FILES = COPYING
|
||||
|
||||
@@ -1,445 +0,0 @@
|
||||
[PATCH] bump rubygems to 2.6.12
|
||||
|
||||
Downloaded from upstream:
|
||||
https://bugs.ruby-lang.org/attachments/download/6692/rubygems-2612-ruby24.patch
|
||||
|
||||
And converted to patch-p1.
|
||||
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
diff --git a/lib/rubygems.rb b/lib/rubygems.rb
|
||||
index 5cd1a4c47a..bc5bf9b4c2 100644
|
||||
--- a/lib/rubygems.rb
|
||||
+++ b/lib/rubygems.rb
|
||||
@@ -10,7 +10,7 @@
|
||||
require 'thread'
|
||||
|
||||
module Gem
|
||||
- VERSION = "2.6.11"
|
||||
+ VERSION = "2.6.12"
|
||||
end
|
||||
|
||||
# Must be first since it unloads the prelude from 1.9.2
|
||||
@@ -234,6 +234,7 @@ def self.needs
|
||||
|
||||
def self.finish_resolve(request_set=Gem::RequestSet.new)
|
||||
request_set.import Gem::Specification.unresolved_deps.values
|
||||
+ request_set.import Gem.loaded_specs.values.map {|s| Gem::Dependency.new(s.name, s.version) }
|
||||
|
||||
request_set.resolve_current.each do |s|
|
||||
s.full_spec.activate
|
||||
diff --git a/lib/rubygems/commands/open_command.rb b/lib/rubygems/commands/open_command.rb
|
||||
index a89b7421e3..059635e835 100644
|
||||
--- a/lib/rubygems/commands/open_command.rb
|
||||
+++ b/lib/rubygems/commands/open_command.rb
|
||||
@@ -72,7 +72,7 @@ def open_editor path
|
||||
end
|
||||
|
||||
def spec_for name
|
||||
- spec = Gem::Specification.find_all_by_name(name, @version).last
|
||||
+ spec = Gem::Specification.find_all_by_name(name, @version).first
|
||||
|
||||
return spec if spec
|
||||
|
||||
diff --git a/lib/rubygems/commands/query_command.rb b/lib/rubygems/commands/query_command.rb
|
||||
index f25d120b88..70f8127292 100644
|
||||
--- a/lib/rubygems/commands/query_command.rb
|
||||
+++ b/lib/rubygems/commands/query_command.rb
|
||||
@@ -86,7 +86,7 @@ def execute
|
||||
name = Array(options[:name])
|
||||
else
|
||||
args = options[:args].to_a
|
||||
- name = options[:exact] ? args : args.map{|arg| /#{arg}/i }
|
||||
+ name = options[:exact] ? args.map{|arg| /\A#{Regexp.escape(arg)}\Z/ } : args.map{|arg| /#{arg}/i }
|
||||
end
|
||||
|
||||
prerelease = options[:prerelease]
|
||||
diff --git a/lib/rubygems/commands/sources_command.rb b/lib/rubygems/commands/sources_command.rb
|
||||
index 9832afd214..7e46963a4c 100644
|
||||
--- a/lib/rubygems/commands/sources_command.rb
|
||||
+++ b/lib/rubygems/commands/sources_command.rb
|
||||
@@ -44,7 +44,7 @@ def add_source source_uri # :nodoc:
|
||||
source = Gem::Source.new source_uri
|
||||
|
||||
begin
|
||||
- if Gem.sources.include? source_uri then
|
||||
+ if Gem.sources.include? source then
|
||||
say "source #{source_uri} already present in the cache"
|
||||
else
|
||||
source.load_specs :released
|
||||
diff --git a/lib/rubygems/dependency_list.rb b/lib/rubygems/dependency_list.rb
|
||||
index 35fe7c4c1a..d8314eaf60 100644
|
||||
--- a/lib/rubygems/dependency_list.rb
|
||||
+++ b/lib/rubygems/dependency_list.rb
|
||||
@@ -104,7 +104,7 @@ def find_name(full_name)
|
||||
end
|
||||
|
||||
def inspect # :nodoc:
|
||||
- "#<%s:0x%x %p>" % [self.class, object_id, map { |s| s.full_name }]
|
||||
+ "%s %p>" % [super[0..-2], map { |s| s.full_name }]
|
||||
end
|
||||
|
||||
##
|
||||
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
|
||||
index f4d3e728de..967543c2d1 100644
|
||||
--- a/lib/rubygems/installer.rb
|
||||
+++ b/lib/rubygems/installer.rb
|
||||
@@ -214,7 +214,7 @@ def check_executable_overwrite filename # :nodoc:
|
||||
|
||||
ruby_executable = true
|
||||
existing = io.read.slice(%r{
|
||||
- ^(
|
||||
+ ^\s*(
|
||||
gem \s |
|
||||
load \s Gem\.bin_path\( |
|
||||
load \s Gem\.activate_bin_path\(
|
||||
@@ -701,6 +701,8 @@ def verify_gem_home(unpack = false) # :nodoc:
|
||||
# Return the text for an application file.
|
||||
|
||||
def app_script_text(bin_file_name)
|
||||
+ # note that the `load` lines cannot be indented, as old RG versions match
|
||||
+ # against the beginning of the line
|
||||
return <<-TEXT
|
||||
#{shebang bin_file_name}
|
||||
#
|
||||
@@ -723,7 +725,12 @@ def app_script_text(bin_file_name)
|
||||
end
|
||||
end
|
||||
|
||||
+if Gem.respond_to?(:activate_bin_path)
|
||||
load Gem.activate_bin_path('#{spec.name}', '#{bin_file_name}', version)
|
||||
+else
|
||||
+gem #{spec.name.dump}, version
|
||||
+load Gem.bin_path(#{spec.name.dump}, #{bin_file_name.dump}, version)
|
||||
+end
|
||||
TEXT
|
||||
end
|
||||
|
||||
diff --git a/lib/rubygems/platform.rb b/lib/rubygems/platform.rb
|
||||
index d22d91ae54..2dd9ed5782 100644
|
||||
--- a/lib/rubygems/platform.rb
|
||||
+++ b/lib/rubygems/platform.rb
|
||||
@@ -112,7 +112,7 @@ def initialize(arch)
|
||||
end
|
||||
|
||||
def inspect
|
||||
- "#<%s:0x%x @cpu=%p, @os=%p, @version=%p>" % [self.class, object_id, *to_a]
|
||||
+ "%s @cpu=%p, @os=%p, @version=%p>" % [super[0..-2], *to_a]
|
||||
end
|
||||
|
||||
def to_a
|
||||
diff --git a/lib/rubygems/security.rb b/lib/rubygems/security.rb
|
||||
index 119d6d56f7..6963ca156f 100644
|
||||
--- a/lib/rubygems/security.rb
|
||||
+++ b/lib/rubygems/security.rb
|
||||
@@ -455,7 +455,7 @@ def self.create_cert_self_signed subject, key, age = ONE_YEAR,
|
||||
|
||||
##
|
||||
# Creates a new key pair of the specified +length+ and +algorithm+. The
|
||||
- # default is a 2048 bit RSA key.
|
||||
+ # default is a 3072 bit RSA key.
|
||||
|
||||
def self.create_key length = KEY_LENGTH, algorithm = KEY_ALGORITHM
|
||||
algorithm.new length
|
||||
diff --git a/lib/rubygems/server.rb b/lib/rubygems/server.rb
|
||||
index 81df0e608e..df4eb566d3 100644
|
||||
--- a/lib/rubygems/server.rb
|
||||
+++ b/lib/rubygems/server.rb
|
||||
@@ -657,7 +657,7 @@ def root(req, res)
|
||||
"only_one_executable" => true,
|
||||
"full_name" => "rubygems-#{Gem::VERSION}",
|
||||
"has_deps" => false,
|
||||
- "homepage" => "http://docs.rubygems.org/",
|
||||
+ "homepage" => "http://guides.rubygems.org/",
|
||||
"name" => 'rubygems',
|
||||
"ri_installed" => true,
|
||||
"summary" => "RubyGems itself",
|
||||
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
|
||||
index a2f289d162..500f0af768 100644
|
||||
--- a/lib/rubygems/specification.rb
|
||||
+++ b/lib/rubygems/specification.rb
|
||||
@@ -2105,7 +2105,7 @@ def inspect # :nodoc:
|
||||
if $DEBUG
|
||||
super
|
||||
else
|
||||
- "#<#{self.class}:0x#{__id__.to_s(16)} #{full_name}>"
|
||||
+ "#{super[0..-2]} #{full_name}>"
|
||||
end
|
||||
end
|
||||
|
||||
diff --git a/lib/rubygems/test_case.rb b/lib/rubygems/test_case.rb
|
||||
index 86b68e1efb..4e48f1eb4c 100644
|
||||
--- a/lib/rubygems/test_case.rb
|
||||
+++ b/lib/rubygems/test_case.rb
|
||||
@@ -484,7 +484,7 @@ def git_gem name = 'a', version = 1
|
||||
|
||||
system @git, 'add', gemspec
|
||||
system @git, 'commit', '-a', '-m', 'a non-empty commit message', '--quiet'
|
||||
- head = Gem::Util.popen('git', 'rev-parse', 'master').strip
|
||||
+ head = Gem::Util.popen(@git, 'rev-parse', 'master').strip
|
||||
end
|
||||
|
||||
return name, git_spec.version, directory, head
|
||||
@@ -1498,6 +1498,8 @@ def self.key_path key_name
|
||||
begin
|
||||
gem 'rdoc'
|
||||
require 'rdoc'
|
||||
+
|
||||
+ require 'rubygems/rdoc'
|
||||
rescue LoadError, Gem::LoadError
|
||||
end
|
||||
|
||||
@@ -1514,3 +1516,4 @@ def self.key_path key_name
|
||||
pid = $$
|
||||
END {tmpdirs.each {|dir| Dir.rmdir(dir)} if $$ == pid}
|
||||
Gem.clear_paths
|
||||
+Gem.loaded_specs.clear
|
||||
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
|
||||
index a605f9cdfe..62b36dfd41 100644
|
||||
--- a/test/rubygems/test_gem.rb
|
||||
+++ b/test/rubygems/test_gem.rb
|
||||
@@ -75,6 +75,29 @@ def test_self_finish_resolve_wtf
|
||||
end
|
||||
end
|
||||
|
||||
+ def test_self_finish_resolve_respects_loaded_specs
|
||||
+ save_loaded_features do
|
||||
+ a1 = new_spec "a", "1", "b" => "> 0"
|
||||
+ b1 = new_spec "b", "1", "c" => ">= 1"
|
||||
+ b2 = new_spec "b", "2", "c" => ">= 2"
|
||||
+ c1 = new_spec "c", "1"
|
||||
+ c2 = new_spec "c", "2"
|
||||
+
|
||||
+ install_specs c1, c2, b1, b2, a1
|
||||
+
|
||||
+ a1.activate
|
||||
+ c1.activate
|
||||
+
|
||||
+ assert_equal %w(a-1 c-1), loaded_spec_names
|
||||
+ assert_equal ["b (> 0)"], unresolved_names
|
||||
+
|
||||
+ Gem.finish_resolve
|
||||
+
|
||||
+ assert_equal %w(a-1 b-1 c-1), loaded_spec_names
|
||||
+ assert_equal [], unresolved_names
|
||||
+ end
|
||||
+ end
|
||||
+
|
||||
def test_self_install
|
||||
spec_fetcher do |f|
|
||||
f.gem 'a', 1
|
||||
@@ -492,7 +515,7 @@ def test_self_find_files_with_gemfile
|
||||
skip if RUBY_VERSION <= "1.8.7"
|
||||
|
||||
cwd = File.expand_path("test/rubygems", @@project_dir)
|
||||
- $LOAD_PATH.unshift cwd
|
||||
+ actual_load_path = $LOAD_PATH.unshift(cwd).dup
|
||||
|
||||
discover_path = File.join 'lib', 'sff', 'discover.rb'
|
||||
|
||||
@@ -518,12 +541,12 @@ def test_self_find_files_with_gemfile
|
||||
expected = [
|
||||
File.expand_path('test/rubygems/sff/discover.rb', @@project_dir),
|
||||
File.join(foo1.full_gem_path, discover_path)
|
||||
- ]
|
||||
+ ].sort
|
||||
|
||||
- assert_equal expected, Gem.find_files('sff/discover')
|
||||
- assert_equal expected, Gem.find_files('sff/**.rb'), '[ruby-core:31730]'
|
||||
+ assert_equal expected, Gem.find_files('sff/discover').sort
|
||||
+ assert_equal expected, Gem.find_files('sff/**.rb').sort, '[ruby-core:31730]'
|
||||
ensure
|
||||
- assert_equal cwd, $LOAD_PATH.shift unless RUBY_VERSION <= "1.8.7"
|
||||
+ assert_equal cwd, actual_load_path.shift unless RUBY_VERSION <= "1.8.7"
|
||||
end
|
||||
|
||||
def test_self_find_latest_files
|
||||
diff --git a/test/rubygems/test_gem_commands_open_command.rb b/test/rubygems/test_gem_commands_open_command.rb
|
||||
index 3ec38972e6..a96fa6ea23 100644
|
||||
--- a/test/rubygems/test_gem_commands_open_command.rb
|
||||
+++ b/test/rubygems/test_gem_commands_open_command.rb
|
||||
@@ -24,7 +24,8 @@ def test_execute
|
||||
@cmd.options[:args] = %w[foo]
|
||||
@cmd.options[:editor] = "#{Gem.ruby} -e0 --"
|
||||
|
||||
- spec = gem 'foo'
|
||||
+ gem 'foo', '1.0.0'
|
||||
+ spec = gem 'foo', '1.0.1'
|
||||
mock = MiniTest::Mock.new
|
||||
mock.expect(:call, true, [spec.full_gem_path])
|
||||
|
||||
diff --git a/test/rubygems/test_gem_commands_query_command.rb b/test/rubygems/test_gem_commands_query_command.rb
|
||||
index 223f205b2d..d8d682b136 100644
|
||||
--- a/test/rubygems/test_gem_commands_query_command.rb
|
||||
+++ b/test/rubygems/test_gem_commands_query_command.rb
|
||||
@@ -642,7 +642,7 @@ def test_execute_local_details
|
||||
assert_equal expected, @ui.output
|
||||
end
|
||||
|
||||
- def test_execute_exact
|
||||
+ def test_execute_exact_remote
|
||||
spec_fetcher do |fetcher|
|
||||
fetcher.spec 'coolgem-omg', 3
|
||||
fetcher.spec 'coolgem', '4.2.1'
|
||||
@@ -665,6 +665,60 @@ def test_execute_exact
|
||||
assert_equal expected, @ui.output
|
||||
end
|
||||
|
||||
+ def test_execute_exact_local
|
||||
+ spec_fetcher do |fetcher|
|
||||
+ fetcher.spec 'coolgem-omg', 3
|
||||
+ fetcher.spec 'coolgem', '4.2.1'
|
||||
+ fetcher.spec 'wow_coolgem', 1
|
||||
+ end
|
||||
+
|
||||
+ @cmd.handle_options %w[--exact coolgem]
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+
|
||||
+*** LOCAL GEMS ***
|
||||
+
|
||||
+coolgem (4.2.1)
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ end
|
||||
+
|
||||
+ def test_execute_exact_multiple
|
||||
+ spec_fetcher do |fetcher|
|
||||
+ fetcher.spec 'coolgem-omg', 3
|
||||
+ fetcher.spec 'coolgem', '4.2.1'
|
||||
+ fetcher.spec 'wow_coolgem', 1
|
||||
+
|
||||
+ fetcher.spec 'othergem-omg', 3
|
||||
+ fetcher.spec 'othergem', '1.2.3'
|
||||
+ fetcher.spec 'wow_othergem', 1
|
||||
+ end
|
||||
+
|
||||
+ @cmd.handle_options %w[--exact coolgem othergem]
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+
|
||||
+*** LOCAL GEMS ***
|
||||
+
|
||||
+coolgem (4.2.1)
|
||||
+
|
||||
+*** LOCAL GEMS ***
|
||||
+
|
||||
+othergem (1.2.3)
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ end
|
||||
+
|
||||
private
|
||||
|
||||
def add_gems_to_fetcher
|
||||
diff --git a/test/rubygems/test_gem_commands_sources_command.rb b/test/rubygems/test_gem_commands_sources_command.rb
|
||||
index 014b4b4c12..d5b6d99419 100644
|
||||
--- a/test/rubygems/test_gem_commands_sources_command.rb
|
||||
+++ b/test/rubygems/test_gem_commands_sources_command.rb
|
||||
@@ -108,6 +108,58 @@ def test_execute_add_redundant_source
|
||||
assert_equal '', @ui.error
|
||||
end
|
||||
|
||||
+ def test_execute_add_redundant_source_trailing_slash
|
||||
+ # Remove pre-existing gem source (w/ slash)
|
||||
+ repo_with_slash = "http://gems.example.com/"
|
||||
+ @cmd.handle_options %W[--remove #{repo_with_slash}]
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+ source = Gem::Source.new repo_with_slash
|
||||
+ assert_equal false, Gem.sources.include?(source)
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+#{repo_with_slash} removed from sources
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+
|
||||
+ # Re-add pre-existing gem source (w/o slash)
|
||||
+ repo_without_slash = "http://gems.example.com"
|
||||
+ @cmd.handle_options %W[--add #{repo_without_slash}]
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+ source = Gem::Source.new repo_without_slash
|
||||
+ assert_equal true, Gem.sources.include?(source)
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+http://gems.example.com/ removed from sources
|
||||
+http://gems.example.com added to sources
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+
|
||||
+ # Re-add original gem source (w/ slash)
|
||||
+ @cmd.handle_options %W[--add #{repo_with_slash}]
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+ source = Gem::Source.new repo_with_slash
|
||||
+ assert_equal true, Gem.sources.include?(source)
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+http://gems.example.com/ removed from sources
|
||||
+http://gems.example.com added to sources
|
||||
+source http://gems.example.com/ already present in the cache
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+ end
|
||||
+
|
||||
def test_execute_add_http_rubygems_org
|
||||
http_rubygems_org = 'http://rubygems.org'
|
||||
|
||||
diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb
|
||||
index 6ceb2c6dfc..882981d344 100644
|
||||
--- a/test/rubygems/test_gem_installer.rb
|
||||
+++ b/test/rubygems/test_gem_installer.rb
|
||||
@@ -62,7 +62,12 @@ def test_app_script_text
|
||||
end
|
||||
end
|
||||
|
||||
+if Gem.respond_to?(:activate_bin_path)
|
||||
load Gem.activate_bin_path('a', 'executable', version)
|
||||
+else
|
||||
+gem "a", version
|
||||
+load Gem.bin_path("a", "executable", version)
|
||||
+end
|
||||
EOF
|
||||
|
||||
wrapper = @installer.app_script_text 'executable'
|
||||
diff --git a/test/rubygems/test_require.rb b/test/rubygems/test_require.rb
|
||||
index dd606e44d4..936f78fb2a 100644
|
||||
--- a/test/rubygems/test_require.rb
|
||||
+++ b/test/rubygems/test_require.rb
|
||||
@@ -301,6 +301,17 @@ def test_default_gem_only
|
||||
assert_equal %w(default-2.0.0.0), loaded_spec_names
|
||||
end
|
||||
|
||||
+ def test_realworld_default_gem
|
||||
+ skip "no default gems on ruby < 2.0" unless RUBY_VERSION >= "2"
|
||||
+ cmd = <<-RUBY
|
||||
+ $stderr = $stdout
|
||||
+ require "json"
|
||||
+ puts Gem.loaded_specs["json"].default_gem?
|
||||
+ RUBY
|
||||
+ output = Gem::Util.popen(Gem.ruby, "-e", cmd).strip
|
||||
+ assert_equal "true", output
|
||||
+ end
|
||||
+
|
||||
def test_default_gem_and_normal_gem
|
||||
default_gem_spec = new_default_spec("default", "2.0.0.0",
|
||||
nil, "default/gem.rb")
|
||||
@@ -1,364 +0,0 @@
|
||||
[PATCH] bump rubygems to 2.6.12
|
||||
|
||||
Downloaded from upstream:
|
||||
https://bugs.ruby-lang.org/attachments/download/6693/rubygems-2613-ruby24.patch
|
||||
|
||||
And converted to patch-p1.
|
||||
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
|
||||
diff --git a/lib/rubygems.rb b/lib/rubygems.rb
|
||||
index bc5bf9b4c2..55aa85b8b2 100644
|
||||
--- a/lib/rubygems.rb
|
||||
+++ b/lib/rubygems.rb
|
||||
@@ -10,7 +10,7 @@
|
||||
require 'thread'
|
||||
|
||||
module Gem
|
||||
- VERSION = "2.6.12"
|
||||
+ VERSION = "2.6.13"
|
||||
end
|
||||
|
||||
# Must be first since it unloads the prelude from 1.9.2
|
||||
diff --git a/lib/rubygems/commands/query_command.rb b/lib/rubygems/commands/query_command.rb
|
||||
index 70f8127292..44144203e0 100644
|
||||
--- a/lib/rubygems/commands/query_command.rb
|
||||
+++ b/lib/rubygems/commands/query_command.rb
|
||||
@@ -226,7 +226,7 @@ def output_versions output, versions
|
||||
end
|
||||
end
|
||||
|
||||
- output << make_entry(matching_tuples, platforms)
|
||||
+ output << clean_text(make_entry(matching_tuples, platforms))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -353,7 +353,8 @@ def spec_platforms entry, platforms
|
||||
end
|
||||
|
||||
def spec_summary entry, spec
|
||||
- entry << "\n\n" << format_text(spec.summary, 68, 4)
|
||||
+ summary = truncate_text(spec.summary, "the summary for #{spec.full_name}")
|
||||
+ entry << "\n\n" << format_text(summary, 68, 4)
|
||||
end
|
||||
|
||||
end
|
||||
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb
|
||||
index 967543c2d1..6fd3399dd4 100644
|
||||
--- a/lib/rubygems/installer.rb
|
||||
+++ b/lib/rubygems/installer.rb
|
||||
@@ -697,6 +697,11 @@ def verify_gem_home(unpack = false) # :nodoc:
|
||||
unpack or File.writable?(gem_home)
|
||||
end
|
||||
|
||||
+ def verify_spec_name
|
||||
+ return if spec.name =~ Gem::Specification::VALID_NAME_PATTERN
|
||||
+ raise Gem::InstallError, "#{spec} has an invalid name"
|
||||
+ end
|
||||
+
|
||||
##
|
||||
# Return the text for an application file.
|
||||
|
||||
@@ -823,6 +828,8 @@ def pre_install_checks
|
||||
|
||||
ensure_loadable_spec
|
||||
|
||||
+ verify_spec_name
|
||||
+
|
||||
if options[:install_as_default]
|
||||
Gem.ensure_default_gem_subdirectories gem_home
|
||||
else
|
||||
diff --git a/lib/rubygems/remote_fetcher.rb b/lib/rubygems/remote_fetcher.rb
|
||||
index e6a13d4b8c..8f0cf0b402 100644
|
||||
--- a/lib/rubygems/remote_fetcher.rb
|
||||
+++ b/lib/rubygems/remote_fetcher.rb
|
||||
@@ -110,7 +110,7 @@ def api_endpoint(uri)
|
||||
else
|
||||
target = res.target.to_s.strip
|
||||
|
||||
- if /\.#{Regexp.quote(host)}\z/ =~ target
|
||||
+ if URI("http://" + target).host.end_with?(".#{host}")
|
||||
return URI.parse "#{uri.scheme}://#{target}#{uri.path}"
|
||||
end
|
||||
|
||||
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
|
||||
index 500f0af768..88e320c05a 100644
|
||||
--- a/lib/rubygems/specification.rb
|
||||
+++ b/lib/rubygems/specification.rb
|
||||
@@ -108,6 +108,8 @@ class Gem::Specification < Gem::BasicSpecification
|
||||
|
||||
private_constant :LOAD_CACHE if defined? private_constant
|
||||
|
||||
+ VALID_NAME_PATTERN = /\A[a-zA-Z0-9\.\-\_]+\z/ # :nodoc:
|
||||
+
|
||||
# :startdoc:
|
||||
|
||||
##
|
||||
@@ -2671,9 +2673,15 @@ def validate packaging = true
|
||||
end
|
||||
end
|
||||
|
||||
- unless String === name then
|
||||
+ if !name.is_a?(String) then
|
||||
raise Gem::InvalidSpecificationException,
|
||||
- "invalid value for attribute name: \"#{name.inspect}\""
|
||||
+ "invalid value for attribute name: \"#{name.inspect}\" must be a string"
|
||||
+ elsif name !~ /[a-zA-Z]/ then
|
||||
+ raise Gem::InvalidSpecificationException,
|
||||
+ "invalid value for attribute name: #{name.dump} must include at least one letter"
|
||||
+ elsif name !~ VALID_NAME_PATTERN then
|
||||
+ raise Gem::InvalidSpecificationException,
|
||||
+ "invalid value for attribute name: #{name.dump} can only include letters, numbers, dashes, and underscores"
|
||||
end
|
||||
|
||||
if raw_require_paths.empty? then
|
||||
diff --git a/lib/rubygems/text.rb b/lib/rubygems/text.rb
|
||||
index 732f1b99f2..b944b62c27 100644
|
||||
--- a/lib/rubygems/text.rb
|
||||
+++ b/lib/rubygems/text.rb
|
||||
@@ -6,13 +6,26 @@
|
||||
|
||||
module Gem::Text
|
||||
|
||||
+ ##
|
||||
+ # Remove any non-printable characters and make the text suitable for
|
||||
+ # printing.
|
||||
+ def clean_text(text)
|
||||
+ text.gsub(/[\000-\b\v-\f\016-\037\177]/, ".".freeze)
|
||||
+ end
|
||||
+
|
||||
+ def truncate_text(text, description, max_length = 100_000)
|
||||
+ raise ArgumentError, "max_length must be positive" unless max_length > 0
|
||||
+ return text if text.size <= max_length
|
||||
+ "Truncating #{description} to #{max_length.to_s.reverse.gsub(/...(?=.)/,'\&,').reverse} characters:\n" + text[0, max_length]
|
||||
+ end
|
||||
+
|
||||
##
|
||||
# Wraps +text+ to +wrap+ characters and optionally indents by +indent+
|
||||
# characters
|
||||
|
||||
def format_text(text, wrap, indent=0)
|
||||
result = []
|
||||
- work = text.dup
|
||||
+ work = clean_text(text)
|
||||
|
||||
while work.length > wrap do
|
||||
if work =~ /^(.{0,#{wrap}})[ \n]/ then
|
||||
diff --git a/test/rubygems/test_gem_commands_query_command.rb b/test/rubygems/test_gem_commands_query_command.rb
|
||||
index d8d682b136..469223c6c0 100644
|
||||
--- a/test/rubygems/test_gem_commands_query_command.rb
|
||||
+++ b/test/rubygems/test_gem_commands_query_command.rb
|
||||
@@ -116,6 +116,86 @@ def test_execute_details
|
||||
This is a lot of text. This is a lot of text. This is a lot of text.
|
||||
This is a lot of text.
|
||||
|
||||
+pl (1)
|
||||
+ Platform: i386-linux
|
||||
+ Author: A User
|
||||
+ Homepage: http://example.com
|
||||
+
|
||||
+ this is a summary
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+ end
|
||||
+
|
||||
+ def test_execute_details_cleans_text
|
||||
+ spec_fetcher do |fetcher|
|
||||
+ fetcher.spec 'a', 2 do |s|
|
||||
+ s.summary = 'This is a lot of text. ' * 4
|
||||
+ s.authors = ["Abraham Lincoln \x01", "\x02 Hirohito"]
|
||||
+ s.homepage = "http://a.example.com/\x03"
|
||||
+ end
|
||||
+
|
||||
+ fetcher.legacy_platform
|
||||
+ end
|
||||
+
|
||||
+ @cmd.handle_options %w[-r -d]
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+
|
||||
+*** REMOTE GEMS ***
|
||||
+
|
||||
+a (2)
|
||||
+ Authors: Abraham Lincoln ., . Hirohito
|
||||
+ Homepage: http://a.example.com/.
|
||||
+
|
||||
+ This is a lot of text. This is a lot of text. This is a lot of text.
|
||||
+ This is a lot of text.
|
||||
+
|
||||
+pl (1)
|
||||
+ Platform: i386-linux
|
||||
+ Author: A User
|
||||
+ Homepage: http://example.com
|
||||
+
|
||||
+ this is a summary
|
||||
+ EOF
|
||||
+
|
||||
+ assert_equal expected, @ui.output
|
||||
+ assert_equal '', @ui.error
|
||||
+ end
|
||||
+
|
||||
+ def test_execute_details_truncates_summary
|
||||
+ spec_fetcher do |fetcher|
|
||||
+ fetcher.spec 'a', 2 do |s|
|
||||
+ s.summary = 'This is a lot of text. ' * 10_000
|
||||
+ s.authors = ["Abraham Lincoln \x01", "\x02 Hirohito"]
|
||||
+ s.homepage = "http://a.example.com/\x03"
|
||||
+ end
|
||||
+
|
||||
+ fetcher.legacy_platform
|
||||
+ end
|
||||
+
|
||||
+ @cmd.handle_options %w[-r -d]
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @cmd.execute
|
||||
+ end
|
||||
+
|
||||
+ expected = <<-EOF
|
||||
+
|
||||
+*** REMOTE GEMS ***
|
||||
+
|
||||
+a (2)
|
||||
+ Authors: Abraham Lincoln ., . Hirohito
|
||||
+ Homepage: http://a.example.com/.
|
||||
+
|
||||
+ Truncating the summary for a-2 to 100,000 characters:
|
||||
+#{" This is a lot of text. This is a lot of text. This is a lot of text.\n" * 1449} This is a lot of te
|
||||
+
|
||||
pl (1)
|
||||
Platform: i386-linux
|
||||
Author: A User
|
||||
diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb
|
||||
index 882981d344..dd049214fb 100644
|
||||
--- a/test/rubygems/test_gem_installer.rb
|
||||
+++ b/test/rubygems/test_gem_installer.rb
|
||||
@@ -1448,6 +1448,26 @@ def test_pre_install_checks_wrong_rubygems_version
|
||||
end
|
||||
end
|
||||
|
||||
+ def test_pre_install_checks_malicious_name
|
||||
+ spec = util_spec '../malicious', '1'
|
||||
+ def spec.full_name # so the spec is buildable
|
||||
+ "malicious-1"
|
||||
+ end
|
||||
+ def spec.validate; end
|
||||
+
|
||||
+ util_build_gem spec
|
||||
+
|
||||
+ gem = File.join(@gemhome, 'cache', spec.file_name)
|
||||
+
|
||||
+ use_ui @ui do
|
||||
+ @installer = Gem::Installer.at gem
|
||||
+ e = assert_raises Gem::InstallError do
|
||||
+ @installer.pre_install_checks
|
||||
+ end
|
||||
+ assert_equal '#<Gem::Specification name=../malicious version=1> has an invalid name', e.message
|
||||
+ end
|
||||
+ end
|
||||
+
|
||||
def test_shebang
|
||||
util_make_exec @spec, "#!/usr/bin/ruby"
|
||||
|
||||
diff --git a/test/rubygems/test_gem_remote_fetcher.rb b/test/rubygems/test_gem_remote_fetcher.rb
|
||||
index cb994462cd..fbb7d89019 100644
|
||||
--- a/test/rubygems/test_gem_remote_fetcher.rb
|
||||
+++ b/test/rubygems/test_gem_remote_fetcher.rb
|
||||
@@ -241,6 +241,21 @@ def test_api_endpoint_ignores_trans_domain_values_that_end_with_original
|
||||
dns.verify
|
||||
end
|
||||
|
||||
+ def test_api_endpoint_ignores_trans_domain_values_that_end_with_original_in_path
|
||||
+ uri = URI.parse "http://example.com/foo"
|
||||
+ target = MiniTest::Mock.new
|
||||
+ target.expect :target, "evil.com/a.example.com"
|
||||
+
|
||||
+ dns = MiniTest::Mock.new
|
||||
+ dns.expect :getresource, target, [String, Object]
|
||||
+
|
||||
+ fetch = Gem::RemoteFetcher.new nil, dns
|
||||
+ assert_equal URI.parse("http://example.com/foo"), fetch.api_endpoint(uri)
|
||||
+
|
||||
+ target.verify
|
||||
+ dns.verify
|
||||
+ end
|
||||
+
|
||||
def test_api_endpoint_timeout_warning
|
||||
uri = URI.parse "http://gems.example.com/foo"
|
||||
|
||||
diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb
|
||||
index d43289d745..0fcc11e78f 100644
|
||||
--- a/test/rubygems/test_gem_specification.rb
|
||||
+++ b/test/rubygems/test_gem_specification.rb
|
||||
@@ -2985,7 +2985,37 @@ def test_validate_name
|
||||
@a1.validate
|
||||
end
|
||||
|
||||
- assert_equal 'invalid value for attribute name: ":json"', e.message
|
||||
+ assert_equal 'invalid value for attribute name: ":json" must be a string', e.message
|
||||
+
|
||||
+ @a1.name = []
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"[]\" must be a string", e.message
|
||||
+
|
||||
+ @a1.name = ""
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"\" must include at least one letter", e.message
|
||||
+
|
||||
+ @a1.name = "12345"
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"12345\" must include at least one letter", e.message
|
||||
+
|
||||
+ @a1.name = "../malicious"
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"../malicious\" can only include letters, numbers, dashes, and underscores", e.message
|
||||
+
|
||||
+ @a1.name = "\ba\t"
|
||||
+ e = assert_raises Gem::InvalidSpecificationException do
|
||||
+ @a1.validate
|
||||
+ end
|
||||
+ assert_equal "invalid value for attribute name: \"\\ba\\t\" can only include letters, numbers, dashes, and underscores", e.message
|
||||
end
|
||||
|
||||
def test_validate_non_nil
|
||||
diff --git a/test/rubygems/test_gem_text.rb b/test/rubygems/test_gem_text.rb
|
||||
index a6e22e04da..04f3f605e8 100644
|
||||
--- a/test/rubygems/test_gem_text.rb
|
||||
+++ b/test/rubygems/test_gem_text.rb
|
||||
@@ -36,6 +36,10 @@ def test_format_text_trailing # for two spaces after .
|
||||
assert_equal expected, format_text(text, 78)
|
||||
end
|
||||
|
||||
+ def test_format_removes_nonprintable_characters
|
||||
+ assert_equal "text with weird .. stuff .", format_text("text with weird \x1b\x02 stuff \x7f", 40)
|
||||
+ end
|
||||
+
|
||||
def test_min3
|
||||
assert_equal 1, min3(1, 1, 1)
|
||||
assert_equal 1, min3(1, 1, 2)
|
||||
@@ -74,4 +78,11 @@ def test_levenshtein_distance_replace
|
||||
assert_equal 7, levenshtein_distance("xxxxxxx", "ZenTest")
|
||||
assert_equal 7, levenshtein_distance("zentest", "xxxxxxx")
|
||||
end
|
||||
+
|
||||
+ def test_truncate_text
|
||||
+ assert_equal "abc", truncate_text("abc", "desc")
|
||||
+ assert_equal "Truncating desc to 2 characters:\nab", truncate_text("abc", "desc", 2)
|
||||
+ s = "ab" * 500_001
|
||||
+ assert_equal "Truncating desc to 1,000,000 characters:\n#{s[0, 1_000_000]}", truncate_text(s, "desc", 1_000_000)
|
||||
+ end
|
||||
end
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user