Compare commits
126 Commits
2014.11-rc
...
2014.11-rc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f30e54eb92 | ||
|
|
1cd15cb15a | ||
|
|
489848b1fa | ||
|
|
6045904752 | ||
|
|
43f8623696 | ||
|
|
ba3821bcf7 | ||
|
|
f3f96b1791 | ||
|
|
89207cc06d | ||
|
|
ab949f9130 | ||
|
|
387bdde5df | ||
|
|
211a321934 | ||
|
|
85802bb980 | ||
|
|
5acbbad05c | ||
|
|
bbd3d847a3 | ||
|
|
f824d3e2be | ||
|
|
3e0440407a | ||
|
|
30362526a0 | ||
|
|
05aa5b4973 | ||
|
|
94319c61d8 | ||
|
|
b20bb0c7b7 | ||
|
|
6455547a43 | ||
|
|
42d40e2ea0 | ||
|
|
87fd1bd5ce | ||
|
|
a3926f3a64 | ||
|
|
b89ce67523 | ||
|
|
e4a1a4f4ea | ||
|
|
ccec35e342 | ||
|
|
46c644310c | ||
|
|
74b399e7cd | ||
|
|
71d3b5c108 | ||
|
|
73d7bc535e | ||
|
|
ec3730cbf8 | ||
|
|
7c00cd1c31 | ||
|
|
e9201d558f | ||
|
|
3112f4bb18 | ||
|
|
5f423a8ad9 | ||
|
|
cb54da1b03 | ||
|
|
870b94c944 | ||
|
|
fce6527af3 | ||
|
|
4f7249b281 | ||
|
|
8f538ec07c | ||
|
|
0f1d4189b5 | ||
|
|
a79bcdba81 | ||
|
|
c3c6fa297a | ||
|
|
9d918e11dc | ||
|
|
0514265b73 | ||
|
|
7ffa8e4c60 | ||
|
|
58cb491875 | ||
|
|
b4c7db619e | ||
|
|
1fee946037 | ||
|
|
e6dcfa5693 | ||
|
|
96056dfb1a | ||
|
|
d52118ddd6 | ||
|
|
74b87a81fd | ||
|
|
cce0add500 | ||
|
|
bd0ffe2206 | ||
|
|
1b49c92c33 | ||
|
|
404f4933c9 | ||
|
|
76d7b05b5b | ||
|
|
4c15d617b5 | ||
|
|
337d40e7ad | ||
|
|
641e00ef23 | ||
|
|
7dfba6f545 | ||
|
|
919e0d69f7 | ||
|
|
2b88b05443 | ||
|
|
956823ded7 | ||
|
|
f785130d68 | ||
|
|
7e1728bb05 | ||
|
|
1dbb7e8a82 | ||
|
|
59119da778 | ||
|
|
6480559a50 | ||
|
|
7b58f417c8 | ||
|
|
20fbed2f71 | ||
|
|
7450386ae9 | ||
|
|
d81d202e97 | ||
|
|
32c2385f26 | ||
|
|
6ea07d5286 | ||
|
|
530f12d29d | ||
|
|
92aa6f0cc4 | ||
|
|
3bc199871e | ||
|
|
645b5763fa | ||
|
|
e08ea03eb8 | ||
|
|
20271a0011 | ||
|
|
2c71517920 | ||
|
|
3b45139297 | ||
|
|
fde7a1900d | ||
|
|
fa5f22b1f1 | ||
|
|
f9187fe901 | ||
|
|
ed21bb9734 | ||
|
|
e0ecfd6eb7 | ||
|
|
2b0c806d09 | ||
|
|
272b5ecd18 | ||
|
|
255193251f | ||
|
|
7b1393a04a | ||
|
|
8cc0bf0df0 | ||
|
|
5a99682127 | ||
|
|
261d8bfcd7 | ||
|
|
576873b8e9 | ||
|
|
e7930b65c0 | ||
|
|
9ae6c0a7b6 | ||
|
|
2f731e402f | ||
|
|
85101d3741 | ||
|
|
081e9a9dc3 | ||
|
|
08c6909b71 | ||
|
|
aad7a8fa7f | ||
|
|
d26d6e63e0 | ||
|
|
f0bd293ffd | ||
|
|
89f3ed6c3a | ||
|
|
8d4942cc41 | ||
|
|
84047394ed | ||
|
|
11ed528660 | ||
|
|
7178c9b764 | ||
|
|
21713340ba | ||
|
|
eda2792204 | ||
|
|
9a5261544f | ||
|
|
4900b2c63b | ||
|
|
34cfa3fc36 | ||
|
|
5ad4ac0832 | ||
|
|
ffeaa18bdf | ||
|
|
5f8cab6325 | ||
|
|
98c1930e74 | ||
|
|
2689ffbd3d | ||
|
|
b79587b825 | ||
|
|
91f9a3ac1f | ||
|
|
e07c705e69 | ||
|
|
54f3f58b2b |
42
CHANGES
42
CHANGES
@@ -1,3 +1,45 @@
|
||||
2014.11-rc3, Released November 28th, 2014
|
||||
|
||||
Fixes all over the tree.
|
||||
|
||||
System: File permissions of /etc/random-seed made more
|
||||
restrictive.
|
||||
|
||||
Toolchain: Various fixes related to locale handling, a fix for
|
||||
building the toolchain wrapper on MIPS.
|
||||
|
||||
Updated/fixed packages: bind, binutils. botan, btrfsprogs,
|
||||
clamav, czmq, dhcp, dillo, dovecot, erlang, flac, gd, glibc,
|
||||
gptfdisk, gst1-validate, heirloom-mailx, lame, libksba,
|
||||
libllcp, libnspr, libpng, libshairplay, libtirpc, linux,
|
||||
linux-headers, mpdecimal, mpg123, network-manager, nfstables,
|
||||
nfs-utils, openssl, pcituils, qt, radvd, rtai, sqlcipher,
|
||||
sstrip, tcpdump, uclibc, uemacs, ushare, wayland, weston,
|
||||
xl2tp, xserver_xorg-server
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#7670: Fails to build mpc-1.0.2 on latest Cygwin
|
||||
|
||||
2014.11-rc2, Released November 21st, 2014
|
||||
|
||||
Fixes all over the tree.
|
||||
|
||||
Inittab tweaks for shutdown handling (busybox and sysvinit).
|
||||
|
||||
Updated/fixed packages: aircrack-ng, botan, canfestival,
|
||||
clamav, coreutils, czmq, dbus, dovecot, duma, e2fsprogs,
|
||||
erlang, gcc, iputils, libcap, libgcrypt, libmemcached,
|
||||
libssh2, libunwind, libv4l, linux-headers, mesa3d-demos, mutt,
|
||||
mysql, ndisc6, nodejs, omniorb, perl-cross, php,
|
||||
python-tornado, python3, qemu, qt5base, qt5webkit, rpm,
|
||||
rt-tests, ruby, schifra, sdl_sound, shairport-sync, sysvinit,
|
||||
tstools, tzdata, wireshark, x264
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#7646: strftime on datetime not works on python3
|
||||
|
||||
2014.11-rc1, Released November 12th, 2014
|
||||
|
||||
Fixes all over the tree and new features.
|
||||
|
||||
12
Makefile
12
Makefile
@@ -28,7 +28,7 @@
|
||||
all:
|
||||
|
||||
# Set and export the version string
|
||||
export BR2_VERSION := 2014.11-rc1
|
||||
export BR2_VERSION := 2014.11-rc3
|
||||
|
||||
# Check for minimal make version (note: this check will break at make 10.x)
|
||||
MIN_MAKE_VERSION = 3.81
|
||||
@@ -514,13 +514,13 @@ endif
|
||||
# not have them (Linaro toolchains), we use the ones available on the
|
||||
# host machine.
|
||||
ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),y)
|
||||
GENERATE_LOCALE = $(call qstrip,$(BR2_GENERATE_LOCALE))
|
||||
ifneq ($(GENERATE_LOCALE),)
|
||||
GLIBC_GENERATE_LOCALES = $(call qstrip,$(BR2_GENERATE_LOCALE))
|
||||
ifneq ($(GLIBC_GENERATE_LOCALES),)
|
||||
TARGETS += host-localedef
|
||||
|
||||
define GENERATE_LOCALES
|
||||
define GENERATE_GLIBC_LOCALES
|
||||
$(Q)mkdir -p $(TARGET_DIR)/usr/lib/locale/
|
||||
$(Q)for locale in $(GENERATE_LOCALE) ; do \
|
||||
$(Q)for locale in $(GLIBC_GENERATE_LOCALES) ; do \
|
||||
inputfile=`echo $${locale} | cut -f1 -d'.'` ; \
|
||||
charmap=`echo $${locale} | cut -f2 -d'.' -s` ; \
|
||||
if test -z "$${charmap}" ; then \
|
||||
@@ -535,7 +535,7 @@ define GENERATE_LOCALES
|
||||
$${locale} ; \
|
||||
done
|
||||
endef
|
||||
TARGET_FINALIZE_HOOKS += GENERATE_LOCALES
|
||||
TARGET_FINALIZE_HOOKS += GENERATE_GLIBC_LOCALES
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -18,14 +18,14 @@ or
|
||||
|
||||
<p>
|
||||
|
||||
The latest release candidate is <b>2014.11-rc1</b>, which can be
|
||||
The latest release candidate is <b>2014.11-rc3</b>, which can be
|
||||
downloaded here:<p>
|
||||
|
||||
<a href="/downloads/buildroot-2014.11-rc1.tar.gz">buildroot-2014.11-rc1.tar.gz</a>
|
||||
(<a href="/downloads/buildroot-2014.11-rc1.tar.gz.sign">PGP signature</a>)
|
||||
<a href="/downloads/buildroot-2014.11-rc3.tar.gz">buildroot-2014.11-rc3.tar.gz</a>
|
||||
(<a href="/downloads/buildroot-2014.11-rc3.tar.gz.sign">PGP signature</a>)
|
||||
or
|
||||
<a href="/downloads/buildroot-2014.11-rc1.tar.bz2">buildroot-2014.11-rc1.tar.bz2</a>
|
||||
(<a href="/downloads/buildroot-2014.11-rc1.tar.bz2.sign">PGP signature</a>).
|
||||
<a href="/downloads/buildroot-2014.11-rc3.tar.bz2">buildroot-2014.11-rc3.tar.bz2</a>
|
||||
(<a href="/downloads/buildroot-2014.11-rc3.tar.bz2.sign">PGP signature</a>).
|
||||
<p>
|
||||
|
||||
This and earlier releases (and their PGP signatures) can always be downloaded from
|
||||
|
||||
@@ -125,7 +125,7 @@ cases, typical packages will therefore only use a few of them.
|
||||
variables to pass to the 'autoreconf' program if
|
||||
+LIBFOO_AUTORECONF=YES+. These are passed in the environment of
|
||||
the 'autoreconf' command. By default, empty.
|
||||
|
||||
|
||||
* +LIBFOO_AUTORECONF_OPTS+ to specify additional options
|
||||
passed to the 'autoreconf' program if
|
||||
+LIBFOO_AUTORECONF=YES+. By default, empty.
|
||||
|
||||
@@ -191,15 +191,19 @@ construct rather than repeating the +depends on+ statement on the
|
||||
comment and other config options.
|
||||
|
||||
The general format of a dependency +comment+ for package foo is:
|
||||
|
||||
--------------------------
|
||||
foo needs a toolchain w/ featA, featB, featC
|
||||
--------------------------
|
||||
|
||||
for example:
|
||||
|
||||
--------------------------
|
||||
aircrack-ng needs a toolchain w/ largefile, threads
|
||||
--------------------------
|
||||
|
||||
or
|
||||
|
||||
--------------------------
|
||||
crda needs a toolchain w/ threads
|
||||
--------------------------
|
||||
@@ -283,6 +287,7 @@ foo needs a Linux kernel to be built
|
||||
|
||||
If there is a dependency on both toolchain options and the Linux
|
||||
kernel, use this format:
|
||||
|
||||
--------------------------
|
||||
foo needs a toolchain w/ featA, featB, featC and a Linux kernel to be built
|
||||
--------------------------
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// -*- mode:doc -*- ;
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[outside-br-custom]]
|
||||
=== Keeping customizations outside of Buildroot
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// -*- mode:doc -*- ;
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[customize-patches]]
|
||||
=== Adding project-specific patches
|
||||
|
||||
@@ -19,10 +19,10 @@ Starting dropbear sshd: generating rsa key... generating dsa key... OK
|
||||
|
||||
then it means that your system is running, but didn't start a shell on
|
||||
the serial console. In order to have the system start a shell on your
|
||||
serial console, you have to go into the Buildroot configuration, in
|
||||
+System configuration+, modify +Run a getty (login prompt) after boot+
|
||||
and set the appropriate port and baud rate in the +getty options+
|
||||
submenu. This will automatically tune the +/etc/inittab+ file of the
|
||||
serial console, you have to go into the Buildroot configuration, in
|
||||
+System configuration+, modify +Run a getty (login prompt) after boot+
|
||||
and set the appropriate port and baud rate in the +getty options+
|
||||
submenu. This will automatically tune the +/etc/inittab+ file of the
|
||||
generated system so that a shell starts on the correct serial port.
|
||||
|
||||
[[faq-no-compiler-on-target]]
|
||||
|
||||
@@ -11,13 +11,14 @@ create and how to create them, in order to avoid calls to mknod.
|
||||
This syntax is derived from the makedev utility, and more complete
|
||||
documentation can be found in the +package/makedevs/README+ file.
|
||||
|
||||
It takes the form of a line for each file, with the following layout:
|
||||
It takes the form of a space separated list of fields, one file per
|
||||
line; the fields are:
|
||||
|
||||
|===========================================================
|
||||
|name |type |mode |uid |gid |major |minor |start |inc |count
|
||||
|===========================================================
|
||||
|
||||
There are a few non-trivial blocks here:
|
||||
There are a few non-trivial blocks:
|
||||
|
||||
- +name+ is the path to the file you want to create/modify
|
||||
- +type+ is the type of the file, being one of:
|
||||
@@ -35,22 +36,23 @@ There are a few non-trivial blocks here:
|
||||
|
||||
Let's say you want to change the permissions of a given file; using
|
||||
this syntax, you will need to put:
|
||||
-------------------------------------------------------------------
|
||||
/usr/bin/foobar f 644 0 0 - - - - -
|
||||
-------------------------------------------------------------------
|
||||
|
||||
----
|
||||
/usr/bin/foobar f 644 0 0 - - - - -
|
||||
----
|
||||
|
||||
On the other hand, if you want to create the device file +/dev/hda+
|
||||
and the corresponding 15 files for the partitions, you will need for
|
||||
+/dev/hda+:
|
||||
|
||||
-------------------------------------------------------------------
|
||||
/dev/hda b 640 0 0 3 0 0 0 -
|
||||
-------------------------------------------------------------------
|
||||
----
|
||||
/dev/hda b 640 0 0 3 0 0 0 -
|
||||
----
|
||||
|
||||
and then for device files corresponding to the partitions of
|
||||
+/dev/hda+, +/dev/hdaX+, +X+ ranging from 1 to 15:
|
||||
|
||||
-------------------------------------------------------------------
|
||||
/dev/hda b 640 0 0 3 1 1 1 15
|
||||
-------------------------------------------------------------------
|
||||
----
|
||||
/dev/hda b 640 0 0 3 1 1 1 15
|
||||
----
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// -*- mode:doc -*- ;
|
||||
// vim: set syntax=asciidoc:
|
||||
|
||||
[[makeuser-syntax]]
|
||||
== Makeusers syntax documentation
|
||||
|
||||
@@ -60,7 +60,7 @@ project. Patches that have been sent to a mailing list are \'caught' by
|
||||
the system, and appear on a web page. Any comments posted that
|
||||
reference the patch are appended to the patch page too. For more
|
||||
information on Patchwork see
|
||||
http://jk.ozlabs.org/projects/patchwork[].
|
||||
http://jk.ozlabs.org/projects/patchwork/[].
|
||||
+
|
||||
Buildroot's Patchwork website is mainly for use by Buildroot's
|
||||
maintainer to ensure patches aren't missed. It is also used by Buildroot
|
||||
|
||||
@@ -9,12 +9,54 @@
|
||||
|
||||
<ul>
|
||||
|
||||
<li><b>28 November 2014 -- 2014.11-rc3 released</b>
|
||||
|
||||
<p>Release candidate 3 is out with more cleanups and build fixes. See the <a
|
||||
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.11-rc3">CHANGES</a>
|
||||
file for details.</p>
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2014.11-rc3.tar.bz2">2014.11-rc3
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="lists.html">mailing list</a> or <a
|
||||
href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
|
||||
<li><b>21 November 2014 -- 2014.11-rc2 released</b>
|
||||
|
||||
<p>Another week, another release candidate with more cleanups and
|
||||
build fixes. See the <a
|
||||
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.11-rc2">CHANGES</a>
|
||||
file for details.</p>
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2014.11-rc2.tar.bz2">2014.11-rc2
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="support.html">mailing list</a> or <a
|
||||
href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
|
||||
<li><b>13 November 2014 -- Report from Buildroot Developers Meeting</b>
|
||||
|
||||
<p>A report from the recent
|
||||
<a href="http://elinux.org/Buildroot:DeveloperDaysELCE2014">
|
||||
Buildroot Developers Meeting</a> is now
|
||||
<a href="http://lists.busybox.net/pipermail/buildroot/2014-October/109966.html">available</a>.</p>
|
||||
|
||||
<p>Once again, thanks to all the participants and to
|
||||
<a href="http://www.mind.be">Mind</a> for sponsoring the event.</p>
|
||||
|
||||
<p>The next Developer Days will take place on February 2nd and 3rd
|
||||
in Brussels, Belgium, right after <a
|
||||
href="http://fosdem.org">FOSDEM</a>. See the <a
|
||||
href="http://elinux.org/Buildroot:DeveloperDaysFOSDEM2015">wiki</a>
|
||||
for more details.</p>
|
||||
|
||||
<li><b>12 November 2014 -- 2014.11-rc1 released</b>
|
||||
|
||||
<p>We have a new release candidate! Lots of changes all over the
|
||||
tree, see the <a
|
||||
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2014.11-rc1">CHANGES</a>
|
||||
file for details.</p>
|
||||
file for details, and read the
|
||||
<a href="http://lists.busybox.net/pipermail/buildroot/2014-November/111946.html">announcement</a>.</p>
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2014.11-rc1.tar.bz2">2014.11-rc1
|
||||
|
||||
@@ -21,7 +21,7 @@ choice
|
||||
prompt "Kernel version"
|
||||
|
||||
config BR2_LINUX_KERNEL_LATEST_VERSION
|
||||
bool "3.17.2"
|
||||
bool "3.17.4"
|
||||
|
||||
config BR2_LINUX_KERNEL_SAME_AS_HEADERS
|
||||
bool "Same as toolchain kernel headers"
|
||||
@@ -104,7 +104,7 @@ config BR2_LINUX_KERNEL_CUSTOM_LOCAL_PATH
|
||||
|
||||
config BR2_LINUX_KERNEL_VERSION
|
||||
string
|
||||
default "3.17.2" if BR2_LINUX_KERNEL_LATEST_VERSION
|
||||
default "3.17.4" if BR2_LINUX_KERNEL_LATEST_VERSION
|
||||
default BR2_DEFAULT_KERNEL_HEADERS if BR2_LINUX_KERNEL_SAME_AS_HEADERS
|
||||
default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
|
||||
if BR2_LINUX_KERNEL_CUSTOM_VERSION
|
||||
|
||||
@@ -14,7 +14,7 @@ AIRCRACK_NG_MAKE_OPTS = unstable=true
|
||||
|
||||
# Account for libpthread in static
|
||||
AIRCRACK_NG_LDFLAGS = $(TARGET_LDFLAGS) \
|
||||
$(if $(BR2_PREFER_STATIC_LIB),-lpthread)
|
||||
$(if $(BR2_PREFER_STATIC_LIB),-lpthread -lz)
|
||||
|
||||
# libnl support has issues when building static
|
||||
ifeq ($(BR2_PREFER_STATIC_LIB),y)
|
||||
@@ -39,9 +39,10 @@ else
|
||||
AIRCRACK_NG_MAKE_OPTS += pcre=false
|
||||
endif
|
||||
|
||||
# Duplicate -lpthread, because it is also needed by sqlite
|
||||
ifeq ($(BR2_PACKAGE_SQLITE),y)
|
||||
AIRCRACK_NG_DEPENDENCIES += sqlite
|
||||
AIRCRACK_NG_MAKE_OPTS += sqlite=true LIBSQL="-lsqlite3"
|
||||
AIRCRACK_NG_MAKE_OPTS += sqlite=true LIBSQL="-lsqlite3 $(if $(BR2_PREFER_STATIC_LIB),-lpthread)"
|
||||
else
|
||||
AIRCRACK_NG_MAKE_OPTS += sqlite=false
|
||||
endif
|
||||
|
||||
@@ -3,6 +3,7 @@ config BR2_PACKAGE_BIND
|
||||
depends on BR2_INET_IPV6
|
||||
depends on BR2_LARGEFILE
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on !BR2_PREFER_STATIC_LIB
|
||||
help
|
||||
BIND (Berkeley Internet Name Domain) is an implementation of
|
||||
the Domain Name System (DNS) protocols and provides an openly
|
||||
@@ -38,6 +39,6 @@ config BR2_PACKAGE_BIND_TOOLS
|
||||
|
||||
endif
|
||||
|
||||
comment "bind needs a toolchain w/ largefile, IPv6"
|
||||
comment "bind needs a toolchain w/ largefile, IPv6, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !(BR2_LARGEFILE || BR2_INET_IPV6)
|
||||
depends on !BR2_LARGEFILE || !BR2_INET_IPV6 || BR2_PREFER_STATIC_LIB
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
From 415480d6471e67aef97c0241d451ef2423a1da9d Mon Sep 17 00:00:00 2001
|
||||
From: Max Filippov <jcmvbkbc@gmail.com>
|
||||
Date: Tue, 25 Nov 2014 21:33:21 +0300
|
||||
Subject: [PATCH] Fix trampolines search code for conditional branches
|
||||
|
||||
For conditional branches that need more than one trampoline to reach its
|
||||
target assembler couldn't always find suitable trampoline because
|
||||
post-loop condition check was placed inside the loop, resulting in
|
||||
premature loop termination. Move check outside the loop.
|
||||
|
||||
This fixes the following build errors seen when assembling huge files
|
||||
produced by gcc:
|
||||
Error: jump target out of range; no usable trampoline found
|
||||
Error: operand 1 of 'j' has out of range value '307307'
|
||||
|
||||
2014-11-25 Max Filippov <jcmvbkbc@gmail.com>
|
||||
|
||||
gas/
|
||||
* config/tc-xtensa.c (search_trampolines): Move post-loop
|
||||
condition check outside the search loop.
|
||||
|
||||
gas/testsuite/
|
||||
* gas/xtensa/trampoline.d: Add expected output for branches.
|
||||
* gas/xtensa/trampoline.s: Add test case for branches.
|
||||
|
||||
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
||||
---
|
||||
Backported from: d92b6eece424f0ad35d96fdd85bf207295e8c4c3
|
||||
Changes to ChangeLogs are dropped.
|
||||
|
||||
gas/config/tc-xtensa.c | 8 ++++----
|
||||
gas/testsuite/gas/xtensa/trampoline.d | 9 +++++++++
|
||||
gas/testsuite/gas/xtensa/trampoline.s | 7 +++++++
|
||||
3 files changed, 20 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
|
||||
index d11b0c7..f23ccf8 100644
|
||||
--- a/gas/config/tc-xtensa.c
|
||||
+++ b/gas/config/tc-xtensa.c
|
||||
@@ -9514,11 +9514,11 @@ search_trampolines (TInsn *tinsn, fragS *fragP, bfd_boolean unreachable_only)
|
||||
if (next_addr == 0 || addr - next_addr > J_RANGE)
|
||||
break;
|
||||
}
|
||||
- if (abs (addr - this_addr) < J_RANGE)
|
||||
- return tf;
|
||||
-
|
||||
- return NULL;
|
||||
}
|
||||
+ if (abs (addr - this_addr) < J_RANGE)
|
||||
+ return tf;
|
||||
+
|
||||
+ return NULL;
|
||||
}
|
||||
for ( ; tf; tf = tf->next)
|
||||
{
|
||||
diff --git a/gas/testsuite/gas/xtensa/trampoline.d b/gas/testsuite/gas/xtensa/trampoline.d
|
||||
index b4f65dc..5ae32a6 100644
|
||||
--- a/gas/testsuite/gas/xtensa/trampoline.d
|
||||
+++ b/gas/testsuite/gas/xtensa/trampoline.d
|
||||
@@ -24,3 +24,12 @@
|
||||
.*33462:.*j.0x49407
|
||||
#...
|
||||
.*49407:.*j.0x49407
|
||||
+.*4940a:.*beqz.n.a2,.0x4940f
|
||||
+.*4940c:.*j.0x693d1
|
||||
+#...
|
||||
+.*693d1:.*j.0x7ddd4
|
||||
+#...
|
||||
+.*7ddd4:.*j.0x927f5
|
||||
+#...
|
||||
+.*927f5:.*j.0x927f5
|
||||
+#...
|
||||
diff --git a/gas/testsuite/gas/xtensa/trampoline.s b/gas/testsuite/gas/xtensa/trampoline.s
|
||||
index 259a3bb..4465786 100644
|
||||
--- a/gas/testsuite/gas/xtensa/trampoline.s
|
||||
+++ b/gas/testsuite/gas/xtensa/trampoline.s
|
||||
@@ -19,3 +19,10 @@
|
||||
.endr
|
||||
3:
|
||||
j 3b
|
||||
+ bnez a2, 4f
|
||||
+ .rep 50000
|
||||
+ and a2, a2, a3
|
||||
+ _ret
|
||||
+ .endr
|
||||
+4:
|
||||
+ j 4b
|
||||
--
|
||||
1.8.1.4
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
From 415480d6471e67aef97c0241d451ef2423a1da9d Mon Sep 17 00:00:00 2001
|
||||
From: Max Filippov <jcmvbkbc@gmail.com>
|
||||
Date: Tue, 25 Nov 2014 21:33:21 +0300
|
||||
Subject: [PATCH] Fix trampolines search code for conditional branches
|
||||
|
||||
For conditional branches that need more than one trampoline to reach its
|
||||
target assembler couldn't always find suitable trampoline because
|
||||
post-loop condition check was placed inside the loop, resulting in
|
||||
premature loop termination. Move check outside the loop.
|
||||
|
||||
This fixes the following build errors seen when assembling huge files
|
||||
produced by gcc:
|
||||
Error: jump target out of range; no usable trampoline found
|
||||
Error: operand 1 of 'j' has out of range value '307307'
|
||||
|
||||
2014-11-25 Max Filippov <jcmvbkbc@gmail.com>
|
||||
|
||||
gas/
|
||||
* config/tc-xtensa.c (search_trampolines): Move post-loop
|
||||
condition check outside the search loop.
|
||||
|
||||
gas/testsuite/
|
||||
* gas/xtensa/trampoline.d: Add expected output for branches.
|
||||
* gas/xtensa/trampoline.s: Add test case for branches.
|
||||
|
||||
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
||||
---
|
||||
Backported from: d92b6eece424f0ad35d96fdd85bf207295e8c4c3
|
||||
Changes to ChangeLogs are dropped.
|
||||
|
||||
gas/config/tc-xtensa.c | 8 ++++----
|
||||
gas/testsuite/gas/xtensa/trampoline.d | 9 +++++++++
|
||||
gas/testsuite/gas/xtensa/trampoline.s | 7 +++++++
|
||||
3 files changed, 20 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
|
||||
index d11b0c7..f23ccf8 100644
|
||||
--- a/gas/config/tc-xtensa.c
|
||||
+++ b/gas/config/tc-xtensa.c
|
||||
@@ -9514,11 +9514,11 @@ search_trampolines (TInsn *tinsn, fragS *fragP, bfd_boolean unreachable_only)
|
||||
if (next_addr == 0 || addr - next_addr > J_RANGE)
|
||||
break;
|
||||
}
|
||||
- if (abs (addr - this_addr) < J_RANGE)
|
||||
- return tf;
|
||||
-
|
||||
- return NULL;
|
||||
}
|
||||
+ if (abs (addr - this_addr) < J_RANGE)
|
||||
+ return tf;
|
||||
+
|
||||
+ return NULL;
|
||||
}
|
||||
for ( ; tf; tf = tf->next)
|
||||
{
|
||||
diff --git a/gas/testsuite/gas/xtensa/trampoline.d b/gas/testsuite/gas/xtensa/trampoline.d
|
||||
index b4f65dc..5ae32a6 100644
|
||||
--- a/gas/testsuite/gas/xtensa/trampoline.d
|
||||
+++ b/gas/testsuite/gas/xtensa/trampoline.d
|
||||
@@ -24,3 +24,12 @@
|
||||
.*33462:.*j.0x49407
|
||||
#...
|
||||
.*49407:.*j.0x49407
|
||||
+.*4940a:.*beqz.n.a2,.0x4940f
|
||||
+.*4940c:.*j.0x693d1
|
||||
+#...
|
||||
+.*693d1:.*j.0x7ddd4
|
||||
+#...
|
||||
+.*7ddd4:.*j.0x927f5
|
||||
+#...
|
||||
+.*927f5:.*j.0x927f5
|
||||
+#...
|
||||
diff --git a/gas/testsuite/gas/xtensa/trampoline.s b/gas/testsuite/gas/xtensa/trampoline.s
|
||||
index 259a3bb..4465786 100644
|
||||
--- a/gas/testsuite/gas/xtensa/trampoline.s
|
||||
+++ b/gas/testsuite/gas/xtensa/trampoline.s
|
||||
@@ -19,3 +19,10 @@
|
||||
.endr
|
||||
3:
|
||||
j 3b
|
||||
+ bnez a2, 4f
|
||||
+ .rep 50000
|
||||
+ and a2, a2, a3
|
||||
+ _ret
|
||||
+ .endr
|
||||
+4:
|
||||
+ j 4b
|
||||
--
|
||||
1.8.1.4
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
From 415480d6471e67aef97c0241d451ef2423a1da9d Mon Sep 17 00:00:00 2001
|
||||
From: Max Filippov <jcmvbkbc@gmail.com>
|
||||
Date: Tue, 25 Nov 2014 21:33:21 +0300
|
||||
Subject: [PATCH] Fix trampolines search code for conditional branches
|
||||
|
||||
For conditional branches that need more than one trampoline to reach its
|
||||
target assembler couldn't always find suitable trampoline because
|
||||
post-loop condition check was placed inside the loop, resulting in
|
||||
premature loop termination. Move check outside the loop.
|
||||
|
||||
This fixes the following build errors seen when assembling huge files
|
||||
produced by gcc:
|
||||
Error: jump target out of range; no usable trampoline found
|
||||
Error: operand 1 of 'j' has out of range value '307307'
|
||||
|
||||
2014-11-25 Max Filippov <jcmvbkbc@gmail.com>
|
||||
|
||||
gas/
|
||||
* config/tc-xtensa.c (search_trampolines): Move post-loop
|
||||
condition check outside the search loop.
|
||||
|
||||
gas/testsuite/
|
||||
* gas/xtensa/trampoline.d: Add expected output for branches.
|
||||
* gas/xtensa/trampoline.s: Add test case for branches.
|
||||
|
||||
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
||||
---
|
||||
Backported from: d92b6eece424f0ad35d96fdd85bf207295e8c4c3
|
||||
Changes to ChangeLogs are dropped.
|
||||
|
||||
gas/config/tc-xtensa.c | 8 ++++----
|
||||
gas/testsuite/gas/xtensa/trampoline.d | 9 +++++++++
|
||||
gas/testsuite/gas/xtensa/trampoline.s | 7 +++++++
|
||||
3 files changed, 20 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
|
||||
index d11b0c7..f23ccf8 100644
|
||||
--- a/gas/config/tc-xtensa.c
|
||||
+++ b/gas/config/tc-xtensa.c
|
||||
@@ -9514,11 +9514,11 @@ search_trampolines (TInsn *tinsn, fragS *fragP, bfd_boolean unreachable_only)
|
||||
if (next_addr == 0 || addr - next_addr > J_RANGE)
|
||||
break;
|
||||
}
|
||||
- if (abs (addr - this_addr) < J_RANGE)
|
||||
- return tf;
|
||||
-
|
||||
- return NULL;
|
||||
}
|
||||
+ if (abs (addr - this_addr) < J_RANGE)
|
||||
+ return tf;
|
||||
+
|
||||
+ return NULL;
|
||||
}
|
||||
for ( ; tf; tf = tf->next)
|
||||
{
|
||||
diff --git a/gas/testsuite/gas/xtensa/trampoline.d b/gas/testsuite/gas/xtensa/trampoline.d
|
||||
index b4f65dc..5ae32a6 100644
|
||||
--- a/gas/testsuite/gas/xtensa/trampoline.d
|
||||
+++ b/gas/testsuite/gas/xtensa/trampoline.d
|
||||
@@ -24,3 +24,12 @@
|
||||
.*33462:.*j.0x49407
|
||||
#...
|
||||
.*49407:.*j.0x49407
|
||||
+.*4940a:.*beqz.n.a2,.0x4940f
|
||||
+.*4940c:.*j.0x693d1
|
||||
+#...
|
||||
+.*693d1:.*j.0x7ddd4
|
||||
+#...
|
||||
+.*7ddd4:.*j.0x927f5
|
||||
+#...
|
||||
+.*927f5:.*j.0x927f5
|
||||
+#...
|
||||
diff --git a/gas/testsuite/gas/xtensa/trampoline.s b/gas/testsuite/gas/xtensa/trampoline.s
|
||||
index 259a3bb..4465786 100644
|
||||
--- a/gas/testsuite/gas/xtensa/trampoline.s
|
||||
+++ b/gas/testsuite/gas/xtensa/trampoline.s
|
||||
@@ -19,3 +19,10 @@
|
||||
.endr
|
||||
3:
|
||||
j 3b
|
||||
+ bnez a2, 4f
|
||||
+ .rep 50000
|
||||
+ and a2, a2, a3
|
||||
+ _ret
|
||||
+ .endr
|
||||
+4:
|
||||
+ j 4b
|
||||
--
|
||||
1.8.1.4
|
||||
|
||||
@@ -20,7 +20,7 @@ BOTAN_CONF_OPTS = \
|
||||
--cc-bin="$(TARGET_CXX)"
|
||||
|
||||
ifeq ($(BR2_PREFER_STATIC_LIB),y)
|
||||
BOTAN_CONF_OPTS += --disable-shared
|
||||
BOTAN_CONF_OPTS += --disable-shared --no-autoload
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_BZIP2),y)
|
||||
|
||||
@@ -17,6 +17,10 @@ BTRFS_PROGS_LICENSE_FILES = COPYING
|
||||
ifeq ($(BR2_PREFER_STATIC_LIB),y)
|
||||
BTRFS_PROGS_MAKE_TARGET = static
|
||||
BTRFS_PROGS_MAKE_INSTALL_TARGET = install-static
|
||||
ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
|
||||
# Add -lintl for libuuid
|
||||
BTRFS_PROGS_MAKE_FLAGS += lib_LIBS="-luuid -lblkid -lm -lz -llzo2 -L. -lintl"
|
||||
endif
|
||||
else
|
||||
BTRFS_PROGS_MAKE_TARGET = all
|
||||
BTRFS_PROGS_MAKE_INSTALL_TARGET = install
|
||||
|
||||
@@ -2,14 +2,15 @@ config BR2_PACKAGE_CANFESTIVAL_ARCH_SUPPORTS
|
||||
bool
|
||||
default y if BR2_i386 || BR2_x86_64 || BR2_powerpc || BR2_arm
|
||||
|
||||
comment "canfestival needs a toolchain w/ threads"
|
||||
comment "canfestival needs a toolchain w/ threads and dynamic library"
|
||||
depends on BR2_PACKAGE_CANFESTIVAL_ARCH_SUPPORTS
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_PREFER_STATIC_LIB
|
||||
|
||||
config BR2_PACKAGE_CANFESTIVAL
|
||||
bool "canfestival"
|
||||
depends on BR2_PACKAGE_CANFESTIVAL_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on !BR2_PREFER_STATIC_LIB
|
||||
help
|
||||
CanFestival is an OpenSource CANOpen framework, licensed under
|
||||
LGPLv2.1 and GPLv2 for some drivers (virtual_kernel, lincan and
|
||||
|
||||
@@ -4,6 +4,7 @@ config BR2_PACKAGE_CDRKIT
|
||||
select BR2_PACKAGE_LIBCAP
|
||||
depends on BR2_LARGEFILE
|
||||
depends on BR2_USE_MMU # fork
|
||||
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # libcap
|
||||
bool "cdrkit"
|
||||
help
|
||||
cdrkit is a suite of programs for recording CDs and DVDs,
|
||||
@@ -12,6 +13,6 @@ config BR2_PACKAGE_CDRKIT
|
||||
|
||||
http://www.cdrkit.org/
|
||||
|
||||
comment "cdrkit needs a toolchain w/ largefile"
|
||||
comment "cdrkit needs a toolchain w/ largefile, headers >= 3.0"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_LARGEFILE
|
||||
depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
|
||||
|
||||
22
package/clamav/clamav-0003-backtrace-uClibc.patch
Normal file
22
package/clamav/clamav-0003-backtrace-uClibc.patch
Normal file
@@ -0,0 +1,22 @@
|
||||
mbox: do not use backtrace if using uClibc without backtrace support
|
||||
|
||||
Since uClibc can be configured without support for backtrace, disable
|
||||
the backtrace if we are building with a uClibc that was built without
|
||||
backtrace.
|
||||
|
||||
This is a bit hacky, and would greatly benefit from a test in ./configure
|
||||
instead, but does nicely as a quick fix for now.
|
||||
|
||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
diff -durN clamav-0.98.4.orig/libclamav/mbox.c clamav-0.98.4/libclamav/mbox.c
|
||||
--- clamav-0.98.4.orig/libclamav/mbox.c 2014-05-21 17:25:05.000000000 +0200
|
||||
+++ clamav-0.98.4/libclamav/mbox.c 2014-11-16 17:21:04.885383286 +0100
|
||||
@@ -83,7 +83,7 @@
|
||||
#include <features.h>
|
||||
#endif
|
||||
|
||||
-#if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1
|
||||
+#if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 && !defined(__UCLIBC__) || defined(__UCLIBC_HAS_BACKTRACE__)
|
||||
#define HAVE_BACKTRACE
|
||||
#endif
|
||||
#endif
|
||||
21
package/clamav/clamav-0004-fix-static-build.patch
Normal file
21
package/clamav/clamav-0004-fix-static-build.patch
Normal file
@@ -0,0 +1,21 @@
|
||||
stats: fix static link
|
||||
|
||||
The stats.c file does not use the dlopen() familly of functions, but
|
||||
includes dlfcn.h, which is missing on uClibc when it is configured as
|
||||
a static-only C library.
|
||||
|
||||
so, simply do not include dlfcn.h.
|
||||
|
||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
|
||||
diff -durN clamav-0.98.5.orig/libclamav/stats.c clamav-0.98.5/libclamav/stats.c
|
||||
--- clamav-0.98.5.orig/libclamav/stats.c 2014-11-13 23:30:43.000000000 +0100
|
||||
+++ clamav-0.98.5/libclamav/stats.c 2014-11-25 19:57:14.344291266 +0100
|
||||
@@ -41,7 +41,6 @@
|
||||
#include <sys/sysctl.h>
|
||||
#endif
|
||||
#endif
|
||||
-#include <dlfcn.h>
|
||||
#else
|
||||
#include <Windows.h>
|
||||
#include <tchar.h>
|
||||
@@ -1,2 +1,2 @@
|
||||
# From http://sourceforge.net/projects/clamav/files/clamav/0.98.4/
|
||||
sha1 f1003d04f34efb0aede05395d3c7cc22c944e4ef clamav-0.98.4.tar.gz
|
||||
# From http://sourceforge.net/projects/clamav/files/clamav/0.98.5/
|
||||
sha1 5f5e45735819e3ca61610899b779172a5639f70f clamav-0.98.5.tar.gz
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
CLAMAV_VERSION = 0.98.4
|
||||
CLAMAV_VERSION = 0.98.5
|
||||
CLAMAV_SITE = http://sourceforge.net/projects/clamav/files/clamav/$(CLAMAV_VERSION)
|
||||
CLAMAV_LICENSE = GPLv2
|
||||
CLAMAV_LICENSE_FILES = COPYING COPYING.bzip2 COPYING.file COPYING.getopt \
|
||||
@@ -32,6 +32,10 @@ CLAMAV_CONF_OPTS = \
|
||||
|
||||
ifeq ($(BR2_PACKAGE_BZIP2),y)
|
||||
CLAMAV_DEPENDENCIES += bzip2
|
||||
# autodetection gets confused if host has bzip2, so force it
|
||||
CLAMAV_CONF_ENV += \
|
||||
ac_cv_libbz2_libs=-lbz2 \
|
||||
ac_cv_libbz2_ltlibs=-lbz2
|
||||
else
|
||||
CLAMAV_CONF_OPTS += --disable-bzip2
|
||||
endif
|
||||
|
||||
@@ -51,7 +51,8 @@ COREUTILS_CONF_ENV = ac_cv_c_restrict=no \
|
||||
gl_getline_needs_run_time_check=no \
|
||||
gl_cv_have_proc_uptime=yes \
|
||||
utils_cv_localtime_cache=no \
|
||||
PERL=missing
|
||||
PERL=missing \
|
||||
MAKEINFO=true
|
||||
|
||||
COREUTILS_BIN_PROGS = cat chgrp chmod chown cp date dd df dir echo false \
|
||||
ln ls mkdir mknod mv pwd rm rmdir vdir sleep stty sync touch true \
|
||||
@@ -101,12 +102,12 @@ endif
|
||||
define COREUTILS_POST_INSTALL
|
||||
# some things go in root rather than usr
|
||||
for f in $(COREUTILS_BIN_PROGS); do \
|
||||
mv $(TARGET_DIR)/usr/bin/$$f $(TARGET_DIR)/bin/$$f; \
|
||||
mv -f $(TARGET_DIR)/usr/bin/$$f $(TARGET_DIR)/bin/$$f; \
|
||||
done
|
||||
# link for archaic shells
|
||||
ln -fs test $(TARGET_DIR)/usr/bin/[
|
||||
# gnu thinks chroot is in bin, debian thinks it's in sbin
|
||||
mv $(TARGET_DIR)/usr/bin/chroot $(TARGET_DIR)/usr/sbin/chroot
|
||||
mv -f $(TARGET_DIR)/usr/bin/chroot $(TARGET_DIR)/usr/sbin/chroot
|
||||
endef
|
||||
|
||||
COREUTILS_POST_INSTALL_TARGET_HOOKS += COREUTILS_POST_INSTALL
|
||||
|
||||
@@ -18,6 +18,10 @@ CZMQ_LICENSE_FILES = LICENSE
|
||||
# host-python, so disable asciidoc entirely.
|
||||
CZMQ_CONF_ENV = ac_cv_prog_czmq_have_asciidoc=no
|
||||
|
||||
ifeq ($(BR2_PREFER_STATIC_LIB),y)
|
||||
CZMQ_CONF_OPTS += LIBS="-lstdc++ -lm"
|
||||
endif
|
||||
|
||||
define CZMQ_CREATE_CONFIG_DIR
|
||||
mkdir -p $(@D)/config
|
||||
endef
|
||||
|
||||
2
package/dbus/dbus.hash
Normal file
2
package/dbus/dbus.hash
Normal file
@@ -0,0 +1,2 @@
|
||||
# Locally calculated after checking pgp signature
|
||||
sha256 10bf87fdb68815edd01d53885101dbcdd80dacad7198912cca61a4fa22dfaf8e dbus-1.8.10.tar.gz
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
DBUS_VERSION = 1.8.8
|
||||
DBUS_VERSION = 1.8.10
|
||||
DBUS_SITE = http://dbus.freedesktop.org/releases/dbus
|
||||
DBUS_LICENSE = AFLv2.1 GPLv2+
|
||||
DBUS_LICENSE_FILES = COPYING
|
||||
|
||||
@@ -1,2 +1,284 @@
|
||||
#!/bin/sh
|
||||
# empty dhclient-script to keep dhclient from complaining
|
||||
|
||||
# dhclient-script from OpenWRT project
|
||||
# http://git.openwrt.org/?p=packages.git;a=blob;f=net/isc-dhcp/files/dhclient-script;h=4afebc0ad20ebac51c5baae5ed01c6713e3a0fd0;hb=HEAD
|
||||
|
||||
make_resolv_conf() {
|
||||
if [ x"$new_domain_name_servers" != x ]; then
|
||||
cat /dev/null > /etc/resolv.conf.dhclient
|
||||
chmod 644 /etc/resolv.conf.dhclient
|
||||
if [ x"$new_domain_search" != x ]; then
|
||||
echo search $new_domain_search >> /etc/resolv.conf.dhclient
|
||||
elif [ x"$new_domain_name" != x ]; then
|
||||
# Note that the DHCP 'Domain Name Option' is really just a domain
|
||||
# name, and that this practice of using the domain name option as
|
||||
# a search path is both nonstandard and deprecated.
|
||||
echo search $new_domain_name >> /etc/resolv.conf.dhclient
|
||||
fi
|
||||
for nameserver in $new_domain_name_servers; do
|
||||
echo nameserver $nameserver >>/etc/resolv.conf.dhclient
|
||||
done
|
||||
|
||||
elif [ "x${new_dhcp6_name_servers}" != x ] ; then
|
||||
cat /dev/null > /etc/resolv.conf.dhclient6
|
||||
chmod 644 /etc/resolv.conf.dhclient6
|
||||
|
||||
if [ "x${new_dhcp6_domain_search}" != x ] ; then
|
||||
echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
||||
fi
|
||||
for nameserver in ${new_dhcp6_name_servers} ; do
|
||||
echo nameserver ${nameserver} >> /etc/resolv.conf.dhclient6
|
||||
done
|
||||
fi
|
||||
|
||||
# if both v4 and v6 clients are running, concatenate results
|
||||
cat /etc/resolv.conf.* > /etc/resolv.conf
|
||||
}
|
||||
|
||||
# Must be used on exit. Invokes the local dhcp client exit hooks, if any.
|
||||
exit_with_hooks() {
|
||||
exit_status=$1
|
||||
if [ -f /etc/dhclient-exit-hooks ]; then
|
||||
. /etc/dhclient-exit-hooks
|
||||
fi
|
||||
# probably should do something with exit status of the local script
|
||||
exit $exit_status
|
||||
}
|
||||
|
||||
# Invoke the local dhcp client enter hooks, if they exist.
|
||||
if [ -f /etc/dhclient-enter-hooks ]; then
|
||||
exit_status=0
|
||||
. /etc/dhclient-enter-hooks
|
||||
# allow the local script to abort processing of this state
|
||||
# local script must set exit_status variable to nonzero.
|
||||
if [ $exit_status -ne 0 ]; then
|
||||
exit $exit_status
|
||||
fi
|
||||
fi
|
||||
|
||||
###
|
||||
### DHCPv4 Handlers
|
||||
###
|
||||
|
||||
if [ x$new_broadcast_address != x ]; then
|
||||
new_broadcast_arg="broadcast $new_broadcast_address"
|
||||
fi
|
||||
if [ x$new_subnet_mask != x ]; then
|
||||
new_subnet_arg="netmask $new_subnet_mask"
|
||||
fi
|
||||
if [ x$alias_subnet_mask != x ]; then
|
||||
alias_subnet_arg="netmask $alias_subnet_mask"
|
||||
fi
|
||||
|
||||
if [ x$reason = xMEDIUM ]; then
|
||||
# Linux doesn't do mediums (ok, ok, media).
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
|
||||
if [ x$reason = xPREINIT ]; then
|
||||
if [ x$alias_ip_address != x ]; then
|
||||
# Bring down alias interface. Its routes will disappear too.
|
||||
ifconfig $interface:0- 0.0.0.0
|
||||
fi
|
||||
ifconfig $interface 0.0.0.0 up
|
||||
|
||||
# We need to give the kernel some time to get the interface up.
|
||||
sleep 1
|
||||
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
|
||||
if [ x$reason = xARPCHECK ] || [ x$reason = xARPSEND ]; then
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
|
||||
if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
|
||||
[ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then
|
||||
current_hostname=`hostname`
|
||||
if [ x$current_hostname = x ] || \
|
||||
[ x$current_hostname = x$old_host_name ]; then
|
||||
if [ x$current_hostname = x ] || \
|
||||
[ x$new_host_name != x$old_host_name ]; then
|
||||
hostname $new_host_name
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \
|
||||
[ x$alias_ip_address != x$old_ip_address ]; then
|
||||
# Possible new alias. Remove old alias.
|
||||
ifconfig $interface:0- 0.0.0.0
|
||||
fi
|
||||
if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then
|
||||
# IP address changed. Bringing down the interface will delete all routes,
|
||||
# and clear the ARP cache.
|
||||
ifconfig $interface 0.0.0.0 down
|
||||
|
||||
fi
|
||||
if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \
|
||||
[ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then
|
||||
|
||||
ifconfig $interface $new_ip_address $new_subnet_arg \
|
||||
$new_broadcast_arg
|
||||
for router in $new_routers; do
|
||||
if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
|
||||
route add -host $router dev $interface
|
||||
fi
|
||||
route add default gw $router
|
||||
done
|
||||
fi
|
||||
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
||||
then
|
||||
ifconfig $interface:0- 0.0.0.0
|
||||
ifconfig $interface:0 $alias_ip_address $alias_subnet_arg
|
||||
route add -host $alias_ip_address $interface:0
|
||||
fi
|
||||
make_resolv_conf
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
|
||||
if [ x$reason = xEXPIRE ] || [ x$reason = xFAIL ] || [ x$reason = xRELEASE ] \
|
||||
|| [ x$reason = xSTOP ]; then
|
||||
if [ x$alias_ip_address != x ]; then
|
||||
# Turn off alias interface.
|
||||
ifconfig $interface:0- 0.0.0.0
|
||||
fi
|
||||
if [ x$old_ip_address != x ]; then
|
||||
# Shut down interface, which will delete routes and clear arp cache.
|
||||
ifconfig $interface 0.0.0.0 down
|
||||
fi
|
||||
if [ x$alias_ip_address != x ]; then
|
||||
ifconfig $interface:0 $alias_ip_address $alias_subnet_arg
|
||||
route add -host $alias_ip_address $interface:0
|
||||
fi
|
||||
|
||||
# remove v4 dns configuration for this interface
|
||||
rm /etc/resolv.conf.dhclient
|
||||
cat /etc/resolv.conf.* > /etc/resolv.conf
|
||||
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
|
||||
if [ x$reason = xTIMEOUT ]; then
|
||||
if [ x$alias_ip_address != x ]; then
|
||||
ifconfig $interface:0- 0.0.0.0
|
||||
fi
|
||||
ifconfig $interface $new_ip_address $new_subnet_arg \
|
||||
$new_broadcast_arg
|
||||
set $new_routers
|
||||
if ping -q -c 1 $1; then
|
||||
if [ x$new_ip_address != x$alias_ip_address ] && \
|
||||
[ x$alias_ip_address != x ]; then
|
||||
ifconfig $interface:0 $alias_ip_address $alias_subnet_arg
|
||||
route add -host $alias_ip_address dev $interface:0
|
||||
fi
|
||||
for router in $new_routers; do
|
||||
if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
|
||||
route add -host $router dev $interface
|
||||
fi
|
||||
route add default gw $router
|
||||
done
|
||||
make_resolv_conf
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
ifconfig $interface 0.0.0.0 down
|
||||
exit_with_hooks 1
|
||||
fi
|
||||
|
||||
###
|
||||
### DHCPv6 Handlers
|
||||
###
|
||||
|
||||
if [ x$reason = xPREINIT6 ]; then
|
||||
# Ensure interface is up.
|
||||
ifconfig ${interface} up
|
||||
|
||||
# Remove any stale addresses from aborted clients.
|
||||
ip -f inet6 addr flush dev ${interface} scope global
|
||||
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
|
||||
if [ x${old_ip6_prefix} != x ] || [ x${new_ip6_prefix} != x ] ; then
|
||||
echo Prefix ${reason} old=${old_ip6_prefix} new=${new_ip6_prefix}
|
||||
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
|
||||
if [ x$reason = xBOUND6 ]; then
|
||||
if [ x${new_ip6_address} = x ] || [ x${new_ip6_prefixlen} = x ] ; then
|
||||
exit_with_hooks 2;
|
||||
fi
|
||||
|
||||
ifconfig ${interface} add ${new_ip6_address}/${new_ip6_prefixlen}
|
||||
|
||||
# Check for nameserver options.
|
||||
make_resolv_conf
|
||||
|
||||
### <<
|
||||
# Set up softwire tunnel
|
||||
if [ x${new_dhcp6_softwire} != x ] ; then
|
||||
/etc/init.d/dhclient stop
|
||||
ifconfig ${interface} 0.0.0.0
|
||||
ip -6 tunnel add tun0 mode ipip6 \
|
||||
remote ${new_dhcp6_softwire} \
|
||||
local ${new_ip6_address} \
|
||||
dev ${interface} encaplimit none
|
||||
ip link set tun0 up
|
||||
ip route add default dev tun0
|
||||
fi
|
||||
### >>
|
||||
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
|
||||
if [ x$reason = xRENEW6 ] || [ x$reason = xREBIND6 ]; then
|
||||
if [ x${new_ip6_address} = x ] || [ x${new_ip6_prefixlen} = x ] ; then
|
||||
exit_with_hooks 2;
|
||||
fi
|
||||
|
||||
ifconfig ${interface} add ${new_ip6_address}/${new_ip6_prefixlen}
|
||||
|
||||
# Make sure nothing has moved around on us.
|
||||
|
||||
# Nameservers/domains/etc.
|
||||
if [ "x${new_dhcp6_name_servers}" != "x${old_dhcp6_name_servers}" ] ||
|
||||
[ "x${new_dhcp6_domain_search}" != "x${old_dhcp6_domain_search}" ] ; then
|
||||
make_resolv_conf
|
||||
fi
|
||||
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
|
||||
if [ x$reason = xDEPREF6 ]; then
|
||||
if [ x${new_ip6_address} = x ] ; then
|
||||
exit_with_hooks 2;
|
||||
fi
|
||||
|
||||
# Busybox ifconfig has no way to communicate this to the kernel, so ignore it
|
||||
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
|
||||
if [ x$reason = xEXPIRE6 -o x$reason = xRELEASE6 -o x$reason = xSTOP6 ]; then
|
||||
if [ x${old_ip6_address} = x ] || [ x${old_ip6_prefixlen} = x ] ; then
|
||||
exit_with_hooks 2;
|
||||
fi
|
||||
|
||||
ifconfig ${interface} del ${old_ip6_address}/${old_ip6_prefixlen}
|
||||
|
||||
# remove v6 dns configuration for this interface
|
||||
rm /etc/resolv.conf.dhclient6
|
||||
cat /etc/resolv.conf.* > /etc/resolv.conf
|
||||
|
||||
### <<
|
||||
# Tear down softwire tunnel
|
||||
if [ x${old_dhcp6_softwire} != x ] ; then
|
||||
ip link set tun0 down
|
||||
ip tunnel del tun0
|
||||
fi
|
||||
### >>
|
||||
|
||||
exit_with_hooks 0
|
||||
fi
|
||||
|
||||
exit_with_hooks 0
|
||||
|
||||
@@ -4,6 +4,7 @@ config BR2_PACKAGE_DILLO
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
depends on BR2_USE_MMU # fltk fork()
|
||||
select BR2_PACKAGE_FLTK
|
||||
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
|
||||
help
|
||||
Dillo is a multi-platform graphical web browser known
|
||||
for its speed and small footprint.
|
||||
|
||||
@@ -17,6 +17,8 @@ DILLO_DEPENDENCIES = fltk
|
||||
|
||||
DILLO_CONF_ENV = ac_cv_path_FLTK_CONFIG=$(STAGING_DIR)/usr/bin/fltk-config
|
||||
|
||||
DILLO_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv)
|
||||
|
||||
ifeq ($(BR2_PACKAGE_OPENSSL),y)
|
||||
DILLO_CONF_OPTS += --enable-ssl
|
||||
DILLO_DEPENDENCIES += openssl
|
||||
|
||||
24
package/dovecot/0002-fix-static-build.patch
Normal file
24
package/dovecot/0002-fix-static-build.patch
Normal file
@@ -0,0 +1,24 @@
|
||||
Fix static build
|
||||
|
||||
MODULE_SUFFIX is undefined when building statically; don't used it.
|
||||
|
||||
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
|
||||
---
|
||||
Patch status: sent upstream
|
||||
(http://dovecot.org/pipermail/dovecot/2014-November/098694.html)
|
||||
|
||||
diff -Nuar dovecot-2.2.15-orig/src/lib/module-dir.c dovecot-2.2.15/src/lib/module-dir.c
|
||||
--- dovecot-2.2.15-orig/src/lib/module-dir.c 2014-10-18 00:10:15.000000000 +0300
|
||||
+++ dovecot-2.2.15/src/lib/module-dir.c 2014-11-13 19:27:29.417786313 +0200
|
||||
@@ -621,7 +621,11 @@
|
||||
if (*p == '_')
|
||||
fname = p + 1;
|
||||
|
||||
+#ifdef MODULE_SUFFIX
|
||||
p = strstr(fname, MODULE_SUFFIX);
|
||||
+#else
|
||||
+ p = NULL;
|
||||
+#endif
|
||||
if (p == NULL)
|
||||
return fname;
|
||||
|
||||
24
package/dovecot/0003-fix-static-build.patch
Normal file
24
package/dovecot/0003-fix-static-build.patch
Normal file
@@ -0,0 +1,24 @@
|
||||
Fix symbol conflict in static build with MySQL enabled
|
||||
|
||||
Compile error log:
|
||||
http://autobuild.buildroot.net/results/9b5/9b536926b3b2bf82c683b48e9697a220f1b4bf33/build-end.log
|
||||
|
||||
Patch suggested by Timo Sirainen:
|
||||
http://www.dovecot.org/list/dovecot/2014-November/098787.html
|
||||
|
||||
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
||||
|
||||
diff -uNr dovecot-2.2.15.org/src/lib/strnum.h dovecot-2.2.15/src/lib/strnum.h
|
||||
--- dovecot-2.2.15.org/src/lib/strnum.h 2014-07-02 17:21:24.000000000 +0200
|
||||
+++ dovecot-2.2.15/src/lib/strnum.h 2014-11-21 19:26:42.316225982 +0100
|
||||
@@ -1,6 +1,10 @@
|
||||
#ifndef STRNUM_H
|
||||
#define STRNUM_H
|
||||
|
||||
+/* libmysqlclient really should try to keep its internal stuff internal so
|
||||
+ they won't conflict with the actual programs that are trying to use it. */
|
||||
+#define str_to_time str_to_time_libmysqlclient_craps_all_over
|
||||
+
|
||||
/* Return TRUE if all characters in string are numbers.
|
||||
Stop when `end_char' is found from string. */
|
||||
bool str_is_numeric(const char *str, char end_char) ATTR_PURE;
|
||||
19
package/duma/0002-no-tests.patch
Normal file
19
package/duma/0002-no-tests.patch
Normal file
@@ -0,0 +1,19 @@
|
||||
Do not build test programs
|
||||
|
||||
Biulding test programs does not work when we want to do a static link,
|
||||
because duma.a redefines memcpy and strcpy, so the link fails.
|
||||
|
||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
|
||||
diff -durN duma-2.5.15.orig/GNUmakefile duma-2.5.15/GNUmakefile
|
||||
--- duma-2.5.15.orig/GNUmakefile 2014-11-16 14:47:05.874448560 +0100
|
||||
+++ duma-2.5.15/GNUmakefile 2014-11-16 14:54:50.792048921 +0100
|
||||
@@ -294,7 +294,7 @@
|
||||
SO_OBJECTS=dumapp_so.o duma_so.o sem_inc_so.o print_so.o
|
||||
|
||||
# Make all the top-level targets the makefile knows about.
|
||||
-all: libduma.a tstheap$(EXEPOSTFIX) dumatest$(EXEPOSTFIX) thread-test$(EXEPOSTFIX) testmt$(EXEPOSTFIX) dumatestpp$(EXEPOSTFIX) testoperators$(EXEPOSTFIX) $(DUMA_DYN_DEPS)
|
||||
+all: libduma.a $(DUMA_DYN_DEPS)
|
||||
|
||||
# Perform self tests on the program this makefile builds.
|
||||
check test:
|
||||
@@ -25,11 +25,11 @@ define DUMA_BUILD_CMDS
|
||||
endef
|
||||
|
||||
define DUMA_INSTALL_STAGING_CMDS
|
||||
$(MAKE) prefix=$(STAGING_DIR)/usr install -C $(@D)
|
||||
$(MAKE) OS=linux prefix=$(STAGING_DIR)/usr install -C $(@D)
|
||||
endef
|
||||
|
||||
define DUMA_INSTALL_TARGET_CMDS
|
||||
$(MAKE) prefix=$(TARGET_DIR)/usr install -C $(@D)
|
||||
$(MAKE) OS=linux prefix=$(TARGET_DIR)/usr install -C $(@D)
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
||||
|
||||
@@ -29,6 +29,12 @@ ifeq ($(BR2_nios2),y)
|
||||
E2FSPROGS_CONF_ENV += ac_cv_func_fallocate=no
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
|
||||
# util-linux libuuid pulls in libintl if needed, so ensure we also
|
||||
# link against it, otherwise static linking fails
|
||||
E2FSPROGS_CONF_ENV += LIBS=-lintl
|
||||
endif
|
||||
|
||||
E2FSPROGS_DEPENDENCIES = host-pkgconf util-linux
|
||||
|
||||
E2FSPROGS_MAKE_OPTS = \
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
comment "erlang needs a toolchain w/ threads"
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS
|
||||
comment "erlang needs a toolchain w/ threads, shared library"
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS && BR2_PREFER_STATIC_LIB
|
||||
|
||||
config BR2_PACKAGE_ERLANG
|
||||
bool "erlang"
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on !BR2_PREFER_STATIC_LIB
|
||||
help
|
||||
Erlang is a programming language used to build massively scalable
|
||||
soft real-time systems with requirements on high availability.
|
||||
|
||||
2
package/erlang/erlang.mk
vendored
2
package/erlang/erlang.mk
vendored
@@ -27,6 +27,8 @@ ERLANG_CONF_OPTS = --without-javac
|
||||
HOST_ERLANG_DEPENDENCIES = host-openssl
|
||||
HOST_ERLANG_CONF_OPTS = --without-javac --with-ssl=$(HOST_DIR)/usr
|
||||
|
||||
HOST_ERLANG_CONF_OPTS += --without-termcap
|
||||
|
||||
ifeq ($(BR2_PACKAGE_NCURSES),y)
|
||||
ERLANG_CONF_OPTS += --with-termcap
|
||||
ERLANG_DEPENDENCIES += ncurses
|
||||
|
||||
34
package/flac/0002-fix-CVE-2014-9028.patch
Normal file
34
package/flac/0002-fix-CVE-2014-9028.patch
Normal file
@@ -0,0 +1,34 @@
|
||||
From fcf0ba06ae12ccd7c67cee3c8d948df15f946b85 Mon Sep 17 00:00:00 2001
|
||||
From: Erik de Castro Lopo <erikd@mega-nerd.com>
|
||||
Date: Wed, 19 Nov 2014 19:35:59 -0800
|
||||
Subject: [PATCH] src/libFACL/stream_decoder.c : Fail safely to avoid a heap overflow.
|
||||
|
||||
A file provided by the reporters caused the stream decoder to write to
|
||||
un-allocated heap space resulting in a segfault. The solution is to
|
||||
error out (by returning false from read_residual_partitioned_rice_())
|
||||
instead of trying to continue to decode.
|
||||
|
||||
Fixes: CVE-2014-9028
|
||||
Reported-by: Michele Spagnuolo,
|
||||
Google Security Team <mikispag@google.com>
|
||||
---
|
||||
src/libFLAC/stream_decoder.c | 3 ++-
|
||||
1 files changed, 2 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/src/libFLAC/stream_decoder.c b/src/libFLAC/stream_decoder.c
|
||||
index 88a656d..54e84d4 100644
|
||||
--- a/src/libFLAC/stream_decoder.c
|
||||
+++ b/src/libFLAC/stream_decoder.c
|
||||
@@ -2736,7 +2736,8 @@ FLAC__bool read_residual_partitioned_rice_(FLAC__StreamDecoder *decoder, unsigne
|
||||
if(decoder->private_->frame.header.blocksize < predictor_order) {
|
||||
send_error_to_client_(decoder, FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC);
|
||||
decoder->protected_->state = FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC;
|
||||
- return true;
|
||||
+ /* We have received a potentially malicious bt stream. All we can do is error out to avoid a heap overflow. */
|
||||
+ return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
40
package/flac/0003-fix-CVE-2014-8962.patch
Normal file
40
package/flac/0003-fix-CVE-2014-8962.patch
Normal file
@@ -0,0 +1,40 @@
|
||||
From 5b3033a2b355068c11fe637e14ac742d273f076e Mon Sep 17 00:00:00 2001
|
||||
From: Erik de Castro Lopo <erikd@mega-nerd.com>
|
||||
Date: Tue, 18 Nov 2014 07:20:25 -0800
|
||||
Subject: [PATCH] src/libFLAC/stream_decoder.c : Fix buffer read overflow.
|
||||
|
||||
This is CVE-2014-8962.
|
||||
|
||||
Reported-by: Michele Spagnuolo,
|
||||
Google Security Team <mikispag@google.com>
|
||||
---
|
||||
src/libFLAC/stream_decoder.c | 6 +++++-
|
||||
1 files changed, 5 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/src/libFLAC/stream_decoder.c b/src/libFLAC/stream_decoder.c
|
||||
index cb66fe2..88a656d 100644
|
||||
--- a/src/libFLAC/stream_decoder.c
|
||||
+++ b/src/libFLAC/stream_decoder.c
|
||||
@@ -71,7 +71,7 @@ FLAC_API int FLAC_API_SUPPORTS_OGG_FLAC =
|
||||
*
|
||||
***********************************************************************/
|
||||
|
||||
-static FLAC__byte ID3V2_TAG_[3] = { 'I', 'D', '3' };
|
||||
+static const FLAC__byte ID3V2_TAG_[3] = { 'I', 'D', '3' };
|
||||
|
||||
/***********************************************************************
|
||||
*
|
||||
@@ -1361,6 +1361,10 @@ FLAC__bool find_metadata_(FLAC__StreamDecoder *decoder)
|
||||
id = 0;
|
||||
continue;
|
||||
}
|
||||
+
|
||||
+ if(id >= 3)
|
||||
+ return false;
|
||||
+
|
||||
if(x == ID3V2_TAG_[id]) {
|
||||
id++;
|
||||
i = 0;
|
||||
--
|
||||
1.7.2.5
|
||||
|
||||
@@ -30,7 +30,7 @@ choice
|
||||
depends on !BR2_cortex_a7 && !BR2_cortex_a12 && \
|
||||
!BR2_cortex_a15 && !BR2_fa526 && !BR2_pj4
|
||||
# Broken or unsupported PPC cores
|
||||
depends on !BR2_power8
|
||||
depends on !BR2_powerpc_power8
|
||||
# SPARC -mcpu=leon3 appeared in gcc 4.8.3
|
||||
depends on !BR2_sparc_leon3
|
||||
# Broken or unsupported X86 cores
|
||||
@@ -49,7 +49,7 @@ choice
|
||||
# Broken or unsupported ARM cores
|
||||
depends on !BR2_cortex_a12 && !BR2_pj4
|
||||
# Broken or unsupported PPC cores
|
||||
depends on !BR2_power8
|
||||
depends on !BR2_powerpc_power8
|
||||
# SPARC -mcpu=leon3 appeared in gcc 4.8.3
|
||||
depends on !BR2_sparc_leon3
|
||||
# Broken or unsupported x86 cores
|
||||
@@ -64,7 +64,7 @@ choice
|
||||
# Broken or unsupported ARM cores
|
||||
depends on !BR2_cortex_a12
|
||||
# Broken or unsupported PPC cores
|
||||
depends on !BR2_power8
|
||||
depends on !BR2_powerpc_power8
|
||||
select BR2_GCC_NEEDS_MPC
|
||||
select BR2_GCC_SUPPORTS_GRAPHITE
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ GD_LICENSE_FILES = COPYING
|
||||
|
||||
GD_CONFIG_SCRIPTS = gdlib-config
|
||||
GD_CONF_OPTS = --without-x --disable-rpath
|
||||
GD_DEPENDENCIES = host-pkgconf
|
||||
|
||||
# gd forgets to link utilities with -pthread even though it uses
|
||||
# pthreads, causing linking errors with static linking
|
||||
@@ -39,7 +40,7 @@ endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBPNG),y)
|
||||
GD_DEPENDENCIES += libpng
|
||||
GD_CONF_OPTS += --with-png=$(STAGING_DIR)/usr
|
||||
GD_CONF_OPTS += --with-png
|
||||
else
|
||||
GD_CONF_OPTS += --without-png
|
||||
endif
|
||||
|
||||
174
package/glibc/2.18-svnr23787/0001-CVE-2014-7817-eglibc.patch
Normal file
174
package/glibc/2.18-svnr23787/0001-CVE-2014-7817-eglibc.patch
Normal file
@@ -0,0 +1,174 @@
|
||||
From https://bugzilla.redhat.com/show_bug.cgi?id=1157689
|
||||
Modified for eglibc.
|
||||
|
||||
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||||
|
||||
WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!!
|
||||
EMBARGOED !!! EMBARGOED !!! EMARGOED !!! EMBARGOED !!! EMBARGOED !!!
|
||||
SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!!
|
||||
|
||||
CVE-2014-7817:
|
||||
|
||||
The function wordexp() fails to properly handle the WRDE_NOCMD
|
||||
flag when processing arithmetic inputs in the form of "$((... ``))"
|
||||
where "..." can be anything valid. The backticks in the arithmetic
|
||||
epxression are evaluated by in a shell even if WRDE_NOCMD forbade
|
||||
command substitution. This allows an attacker to attempt to pass
|
||||
dangerous commands via constructs of the above form, and bypass
|
||||
the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD
|
||||
in parse_arith(). The patch also hardens parse_backticks() and
|
||||
parse_comm() to check for WRDE_NOCMD flag and return an error instead
|
||||
of ever running a shell.
|
||||
|
||||
We expand the testsuite and add 3 new regression tests of roughtly
|
||||
the same form but with a couple of nested levels.
|
||||
|
||||
On top of the 3 new tests we add fork validation to the WRDE_NOCMD
|
||||
testing. If any forks are detected during the execution of a wordexp()
|
||||
call with WRDE_NOCMD, the test is marked as failed. This is slightly
|
||||
heuristic since vfork might be used, but it provides a higher level
|
||||
of assurance that no shells were executed as part of command substitution
|
||||
with WRDE_NOCMD in effect. In addition it doesn't require libpthread or
|
||||
libdl, instead we use the public implementation namespace function
|
||||
__register_atfork (already part of the public ABI for libpthread).
|
||||
|
||||
Tested on x86_64 with no regressions.
|
||||
|
||||
2014-10-27 Carlos O'Donell <carlos@redhat.com>
|
||||
|
||||
* wordexp-test.c (__dso_handle): Add prototype.
|
||||
(__register_atfork): Likewise.
|
||||
(__app_register_atfork): New function.
|
||||
(registered_forks): New global.
|
||||
(register_fork): New function.
|
||||
(test_case): Add 3 new tests for WRDE_CMDSUB.
|
||||
(main): Call __app_register_atfork.
|
||||
(testit): If WRDE_NOCMD set registered_forks to zero, run test, and
|
||||
if fork count is non-zero fail the test.
|
||||
* posix/wordexp.c (parse_arith): Return WRDE_NOCMD if WRDE_NOCMD flag
|
||||
is set and parsing '`'.
|
||||
(parse_comm): Return WRDE_NOCMD if WRDE_NOCMD flag is set.
|
||||
(parse_backtick): Return WRDE_NOCMD if WRDE_NOCMD flag is set and
|
||||
parsing '`'.
|
||||
|
||||
diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c
|
||||
index 4957006..5ce2a1b 100644
|
||||
--- a/libc/posix/wordexp-test.c
|
||||
+++ b/libc/posix/wordexp-test.c
|
||||
@@ -27,6 +27,25 @@
|
||||
|
||||
#define IFS " \n\t"
|
||||
|
||||
+extern void *__dso_handle __attribute__ ((__weak__, __visibility__ ("hidden")));
|
||||
+extern int __register_atfork (void (*) (void), void (*) (void), void (*) (void), void *);
|
||||
+
|
||||
+static int __app_register_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void))
|
||||
+{
|
||||
+ return __register_atfork (prepare, parent, child,
|
||||
+ &__dso_handle == NULL ? NULL : __dso_handle);
|
||||
+}
|
||||
+
|
||||
+/* Number of forks seen. */
|
||||
+static int registered_forks;
|
||||
+
|
||||
+/* For each fork increment the fork count. */
|
||||
+static void
|
||||
+register_fork (void)
|
||||
+{
|
||||
+ registered_forks++;
|
||||
+}
|
||||
+
|
||||
struct test_case_struct
|
||||
{
|
||||
int retval;
|
||||
@@ -206,6 +225,12 @@ struct test_case_struct
|
||||
{ WRDE_SYNTAX, NULL, "$((2+))", 0, 0, { NULL, }, IFS },
|
||||
{ WRDE_SYNTAX, NULL, "`", 0, 0, { NULL, }, IFS },
|
||||
{ WRDE_SYNTAX, NULL, "$((010+4+))", 0, 0, { NULL }, IFS },
|
||||
+ /* Test for CVE-2014-7817. We test 3 combinations of command
|
||||
+ substitution inside an arithmetic expression to make sure that
|
||||
+ no commands are executed and error is returned. */
|
||||
+ { WRDE_CMDSUB, NULL, "$((`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
|
||||
+ { WRDE_CMDSUB, NULL, "$((1+`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
|
||||
+ { WRDE_CMDSUB, NULL, "$((1+$((`echo 1`))))", WRDE_NOCMD, 0, { NULL, }, IFS },
|
||||
|
||||
{ -1, NULL, NULL, 0, 0, { NULL, }, IFS },
|
||||
};
|
||||
@@ -258,6 +283,15 @@ main (int argc, char *argv[])
|
||||
return -1;
|
||||
}
|
||||
|
||||
+ /* If we are not allowed to do command substitution, we install
|
||||
+ fork handlers to verify that no forks happened. No forks should
|
||||
+ happen at all if command substitution is disabled. */
|
||||
+ if (__app_register_atfork (register_fork, NULL, NULL) != 0)
|
||||
+ {
|
||||
+ printf ("Failed to register fork handler.\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
for (test = 0; test_case[test].retval != -1; test++)
|
||||
if (testit (&test_case[test]))
|
||||
++fail;
|
||||
@@ -367,6 +401,9 @@ testit (struct test_case_struct *tc)
|
||||
|
||||
printf ("Test %d (%s): ", ++tests, tc->words);
|
||||
|
||||
+ if (tc->flags & WRDE_NOCMD)
|
||||
+ registered_forks = 0;
|
||||
+
|
||||
if (tc->flags & WRDE_APPEND)
|
||||
{
|
||||
/* initial wordexp() call, to be appended to */
|
||||
@@ -378,6 +415,13 @@ testit (struct test_case_struct *tc)
|
||||
}
|
||||
retval = wordexp (tc->words, &we, tc->flags);
|
||||
|
||||
+ if ((tc->flags & WRDE_NOCMD)
|
||||
+ && (registered_forks > 0))
|
||||
+ {
|
||||
+ printf ("FAILED fork called for WRDE_NOCMD\n");
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
if (tc->flags & WRDE_DOOFFS)
|
||||
start_offs = sav_we.we_offs;
|
||||
|
||||
diff --git a/posix/wordexp.c b/posix/wordexp.c
|
||||
index b6b65dd..d6a158f 100644
|
||||
--- a/libc/posix/wordexp.c
|
||||
+++ b/libc/posix/wordexp.c
|
||||
@@ -693,6 +693,12 @@ parse_arith (char **word, size_t *word_length, size_t *max_length,
|
||||
break;
|
||||
|
||||
case '`':
|
||||
+ if (flags & WRDE_NOCMD)
|
||||
+ {
|
||||
+ free (expr);
|
||||
+ return WRDE_NOCMD;
|
||||
+ }
|
||||
+
|
||||
(*offset)++;
|
||||
error = parse_backtick (&expr, &expr_length, &expr_maxlen,
|
||||
words, offset, flags, NULL, NULL, NULL);
|
||||
@@ -1144,6 +1150,10 @@ parse_comm (char **word, size_t *word_length, size_t *max_length,
|
||||
size_t comm_maxlen;
|
||||
char *comm = w_newword (&comm_length, &comm_maxlen);
|
||||
|
||||
+ /* Do nothing if command substitution should not succeed. */
|
||||
+ if (flags & WRDE_NOCMD)
|
||||
+ return WRDE_CMDSUB;
|
||||
+
|
||||
for (; words[*offset]; ++(*offset))
|
||||
{
|
||||
switch (words[*offset])
|
||||
@@ -2121,6 +2131,9 @@ parse_backtick (char **word, size_t *word_length, size_t *max_length,
|
||||
switch (words[*offset])
|
||||
{
|
||||
case '`':
|
||||
+ if (flags & WRDE_NOCMD)
|
||||
+ return WRDE_NOCMD;
|
||||
+
|
||||
/* Go -- give the script to the shell */
|
||||
error = exec_comm (comm, word, word_length, max_length, flags,
|
||||
pwordexp, ifs, ifs_white);
|
||||
174
package/glibc/2.19-svnr25243/0001-CVE-2014-7817-eglibc.patch
Normal file
174
package/glibc/2.19-svnr25243/0001-CVE-2014-7817-eglibc.patch
Normal file
@@ -0,0 +1,174 @@
|
||||
From https://bugzilla.redhat.com/show_bug.cgi?id=1157689
|
||||
Modified for eglibc.
|
||||
|
||||
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||||
|
||||
WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!!
|
||||
EMBARGOED !!! EMBARGOED !!! EMARGOED !!! EMBARGOED !!! EMBARGOED !!!
|
||||
SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!!
|
||||
|
||||
CVE-2014-7817:
|
||||
|
||||
The function wordexp() fails to properly handle the WRDE_NOCMD
|
||||
flag when processing arithmetic inputs in the form of "$((... ``))"
|
||||
where "..." can be anything valid. The backticks in the arithmetic
|
||||
epxression are evaluated by in a shell even if WRDE_NOCMD forbade
|
||||
command substitution. This allows an attacker to attempt to pass
|
||||
dangerous commands via constructs of the above form, and bypass
|
||||
the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD
|
||||
in parse_arith(). The patch also hardens parse_backticks() and
|
||||
parse_comm() to check for WRDE_NOCMD flag and return an error instead
|
||||
of ever running a shell.
|
||||
|
||||
We expand the testsuite and add 3 new regression tests of roughtly
|
||||
the same form but with a couple of nested levels.
|
||||
|
||||
On top of the 3 new tests we add fork validation to the WRDE_NOCMD
|
||||
testing. If any forks are detected during the execution of a wordexp()
|
||||
call with WRDE_NOCMD, the test is marked as failed. This is slightly
|
||||
heuristic since vfork might be used, but it provides a higher level
|
||||
of assurance that no shells were executed as part of command substitution
|
||||
with WRDE_NOCMD in effect. In addition it doesn't require libpthread or
|
||||
libdl, instead we use the public implementation namespace function
|
||||
__register_atfork (already part of the public ABI for libpthread).
|
||||
|
||||
Tested on x86_64 with no regressions.
|
||||
|
||||
2014-10-27 Carlos O'Donell <carlos@redhat.com>
|
||||
|
||||
* wordexp-test.c (__dso_handle): Add prototype.
|
||||
(__register_atfork): Likewise.
|
||||
(__app_register_atfork): New function.
|
||||
(registered_forks): New global.
|
||||
(register_fork): New function.
|
||||
(test_case): Add 3 new tests for WRDE_CMDSUB.
|
||||
(main): Call __app_register_atfork.
|
||||
(testit): If WRDE_NOCMD set registered_forks to zero, run test, and
|
||||
if fork count is non-zero fail the test.
|
||||
* posix/wordexp.c (parse_arith): Return WRDE_NOCMD if WRDE_NOCMD flag
|
||||
is set and parsing '`'.
|
||||
(parse_comm): Return WRDE_NOCMD if WRDE_NOCMD flag is set.
|
||||
(parse_backtick): Return WRDE_NOCMD if WRDE_NOCMD flag is set and
|
||||
parsing '`'.
|
||||
|
||||
diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c
|
||||
index 4957006..5ce2a1b 100644
|
||||
--- a/libc/posix/wordexp-test.c
|
||||
+++ b/libc/posix/wordexp-test.c
|
||||
@@ -27,6 +27,25 @@
|
||||
|
||||
#define IFS " \n\t"
|
||||
|
||||
+extern void *__dso_handle __attribute__ ((__weak__, __visibility__ ("hidden")));
|
||||
+extern int __register_atfork (void (*) (void), void (*) (void), void (*) (void), void *);
|
||||
+
|
||||
+static int __app_register_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void))
|
||||
+{
|
||||
+ return __register_atfork (prepare, parent, child,
|
||||
+ &__dso_handle == NULL ? NULL : __dso_handle);
|
||||
+}
|
||||
+
|
||||
+/* Number of forks seen. */
|
||||
+static int registered_forks;
|
||||
+
|
||||
+/* For each fork increment the fork count. */
|
||||
+static void
|
||||
+register_fork (void)
|
||||
+{
|
||||
+ registered_forks++;
|
||||
+}
|
||||
+
|
||||
struct test_case_struct
|
||||
{
|
||||
int retval;
|
||||
@@ -206,6 +225,12 @@ struct test_case_struct
|
||||
{ WRDE_SYNTAX, NULL, "$((2+))", 0, 0, { NULL, }, IFS },
|
||||
{ WRDE_SYNTAX, NULL, "`", 0, 0, { NULL, }, IFS },
|
||||
{ WRDE_SYNTAX, NULL, "$((010+4+))", 0, 0, { NULL }, IFS },
|
||||
+ /* Test for CVE-2014-7817. We test 3 combinations of command
|
||||
+ substitution inside an arithmetic expression to make sure that
|
||||
+ no commands are executed and error is returned. */
|
||||
+ { WRDE_CMDSUB, NULL, "$((`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
|
||||
+ { WRDE_CMDSUB, NULL, "$((1+`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
|
||||
+ { WRDE_CMDSUB, NULL, "$((1+$((`echo 1`))))", WRDE_NOCMD, 0, { NULL, }, IFS },
|
||||
|
||||
{ -1, NULL, NULL, 0, 0, { NULL, }, IFS },
|
||||
};
|
||||
@@ -258,6 +283,15 @@ main (int argc, char *argv[])
|
||||
return -1;
|
||||
}
|
||||
|
||||
+ /* If we are not allowed to do command substitution, we install
|
||||
+ fork handlers to verify that no forks happened. No forks should
|
||||
+ happen at all if command substitution is disabled. */
|
||||
+ if (__app_register_atfork (register_fork, NULL, NULL) != 0)
|
||||
+ {
|
||||
+ printf ("Failed to register fork handler.\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
for (test = 0; test_case[test].retval != -1; test++)
|
||||
if (testit (&test_case[test]))
|
||||
++fail;
|
||||
@@ -367,6 +401,9 @@ testit (struct test_case_struct *tc)
|
||||
|
||||
printf ("Test %d (%s): ", ++tests, tc->words);
|
||||
|
||||
+ if (tc->flags & WRDE_NOCMD)
|
||||
+ registered_forks = 0;
|
||||
+
|
||||
if (tc->flags & WRDE_APPEND)
|
||||
{
|
||||
/* initial wordexp() call, to be appended to */
|
||||
@@ -378,6 +415,13 @@ testit (struct test_case_struct *tc)
|
||||
}
|
||||
retval = wordexp (tc->words, &we, tc->flags);
|
||||
|
||||
+ if ((tc->flags & WRDE_NOCMD)
|
||||
+ && (registered_forks > 0))
|
||||
+ {
|
||||
+ printf ("FAILED fork called for WRDE_NOCMD\n");
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
if (tc->flags & WRDE_DOOFFS)
|
||||
start_offs = sav_we.we_offs;
|
||||
|
||||
diff --git a/posix/wordexp.c b/posix/wordexp.c
|
||||
index b6b65dd..d6a158f 100644
|
||||
--- a/libc/posix/wordexp.c
|
||||
+++ b/libc/posix/wordexp.c
|
||||
@@ -693,6 +693,12 @@ parse_arith (char **word, size_t *word_length, size_t *max_length,
|
||||
break;
|
||||
|
||||
case '`':
|
||||
+ if (flags & WRDE_NOCMD)
|
||||
+ {
|
||||
+ free (expr);
|
||||
+ return WRDE_NOCMD;
|
||||
+ }
|
||||
+
|
||||
(*offset)++;
|
||||
error = parse_backtick (&expr, &expr_length, &expr_maxlen,
|
||||
words, offset, flags, NULL, NULL, NULL);
|
||||
@@ -1144,6 +1150,10 @@ parse_comm (char **word, size_t *word_length, size_t *max_length,
|
||||
size_t comm_maxlen;
|
||||
char *comm = w_newword (&comm_length, &comm_maxlen);
|
||||
|
||||
+ /* Do nothing if command substitution should not succeed. */
|
||||
+ if (flags & WRDE_NOCMD)
|
||||
+ return WRDE_CMDSUB;
|
||||
+
|
||||
for (; words[*offset]; ++(*offset))
|
||||
{
|
||||
switch (words[*offset])
|
||||
@@ -2121,6 +2131,9 @@ parse_backtick (char **word, size_t *word_length, size_t *max_length,
|
||||
switch (words[*offset])
|
||||
{
|
||||
case '`':
|
||||
+ if (flags & WRDE_NOCMD)
|
||||
+ return WRDE_NOCMD;
|
||||
+
|
||||
/* Go -- give the script to the shell */
|
||||
error = exec_comm (comm, word, word_length, max_length, flags,
|
||||
pwordexp, ifs, ifs_white);
|
||||
173
package/glibc/2.19/0001-CVE-2014-7817.patch
Normal file
173
package/glibc/2.19/0001-CVE-2014-7817.patch
Normal file
@@ -0,0 +1,173 @@
|
||||
Patch from https://bugzilla.redhat.com/show_bug.cgi?id=1157689
|
||||
|
||||
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||||
|
||||
WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!!
|
||||
EMBARGOED !!! EMBARGOED !!! EMARGOED !!! EMBARGOED !!! EMBARGOED !!!
|
||||
SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!!
|
||||
|
||||
CVE-2014-7817:
|
||||
|
||||
The function wordexp() fails to properly handle the WRDE_NOCMD
|
||||
flag when processing arithmetic inputs in the form of "$((... ``))"
|
||||
where "..." can be anything valid. The backticks in the arithmetic
|
||||
epxression are evaluated by in a shell even if WRDE_NOCMD forbade
|
||||
command substitution. This allows an attacker to attempt to pass
|
||||
dangerous commands via constructs of the above form, and bypass
|
||||
the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD
|
||||
in parse_arith(). The patch also hardens parse_backticks() and
|
||||
parse_comm() to check for WRDE_NOCMD flag and return an error instead
|
||||
of ever running a shell.
|
||||
|
||||
We expand the testsuite and add 3 new regression tests of roughtly
|
||||
the same form but with a couple of nested levels.
|
||||
|
||||
On top of the 3 new tests we add fork validation to the WRDE_NOCMD
|
||||
testing. If any forks are detected during the execution of a wordexp()
|
||||
call with WRDE_NOCMD, the test is marked as failed. This is slightly
|
||||
heuristic since vfork might be used, but it provides a higher level
|
||||
of assurance that no shells were executed as part of command substitution
|
||||
with WRDE_NOCMD in effect. In addition it doesn't require libpthread or
|
||||
libdl, instead we use the public implementation namespace function
|
||||
__register_atfork (already part of the public ABI for libpthread).
|
||||
|
||||
Tested on x86_64 with no regressions.
|
||||
|
||||
2014-10-27 Carlos O'Donell <carlos@redhat.com>
|
||||
|
||||
* wordexp-test.c (__dso_handle): Add prototype.
|
||||
(__register_atfork): Likewise.
|
||||
(__app_register_atfork): New function.
|
||||
(registered_forks): New global.
|
||||
(register_fork): New function.
|
||||
(test_case): Add 3 new tests for WRDE_CMDSUB.
|
||||
(main): Call __app_register_atfork.
|
||||
(testit): If WRDE_NOCMD set registered_forks to zero, run test, and
|
||||
if fork count is non-zero fail the test.
|
||||
* posix/wordexp.c (parse_arith): Return WRDE_NOCMD if WRDE_NOCMD flag
|
||||
is set and parsing '`'.
|
||||
(parse_comm): Return WRDE_NOCMD if WRDE_NOCMD flag is set.
|
||||
(parse_backtick): Return WRDE_NOCMD if WRDE_NOCMD flag is set and
|
||||
parsing '`'.
|
||||
|
||||
diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c
|
||||
index 4957006..5ce2a1b 100644
|
||||
--- a/posix/wordexp-test.c
|
||||
+++ b/posix/wordexp-test.c
|
||||
@@ -27,6 +27,25 @@
|
||||
|
||||
#define IFS " \n\t"
|
||||
|
||||
+extern void *__dso_handle __attribute__ ((__weak__, __visibility__ ("hidden")));
|
||||
+extern int __register_atfork (void (*) (void), void (*) (void), void (*) (void), void *);
|
||||
+
|
||||
+static int __app_register_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void))
|
||||
+{
|
||||
+ return __register_atfork (prepare, parent, child,
|
||||
+ &__dso_handle == NULL ? NULL : __dso_handle);
|
||||
+}
|
||||
+
|
||||
+/* Number of forks seen. */
|
||||
+static int registered_forks;
|
||||
+
|
||||
+/* For each fork increment the fork count. */
|
||||
+static void
|
||||
+register_fork (void)
|
||||
+{
|
||||
+ registered_forks++;
|
||||
+}
|
||||
+
|
||||
struct test_case_struct
|
||||
{
|
||||
int retval;
|
||||
@@ -206,6 +225,12 @@ struct test_case_struct
|
||||
{ WRDE_SYNTAX, NULL, "$((2+))", 0, 0, { NULL, }, IFS },
|
||||
{ WRDE_SYNTAX, NULL, "`", 0, 0, { NULL, }, IFS },
|
||||
{ WRDE_SYNTAX, NULL, "$((010+4+))", 0, 0, { NULL }, IFS },
|
||||
+ /* Test for CVE-2014-7817. We test 3 combinations of command
|
||||
+ substitution inside an arithmetic expression to make sure that
|
||||
+ no commands are executed and error is returned. */
|
||||
+ { WRDE_CMDSUB, NULL, "$((`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
|
||||
+ { WRDE_CMDSUB, NULL, "$((1+`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
|
||||
+ { WRDE_CMDSUB, NULL, "$((1+$((`echo 1`))))", WRDE_NOCMD, 0, { NULL, }, IFS },
|
||||
|
||||
{ -1, NULL, NULL, 0, 0, { NULL, }, IFS },
|
||||
};
|
||||
@@ -258,6 +283,15 @@ main (int argc, char *argv[])
|
||||
return -1;
|
||||
}
|
||||
|
||||
+ /* If we are not allowed to do command substitution, we install
|
||||
+ fork handlers to verify that no forks happened. No forks should
|
||||
+ happen at all if command substitution is disabled. */
|
||||
+ if (__app_register_atfork (register_fork, NULL, NULL) != 0)
|
||||
+ {
|
||||
+ printf ("Failed to register fork handler.\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
for (test = 0; test_case[test].retval != -1; test++)
|
||||
if (testit (&test_case[test]))
|
||||
++fail;
|
||||
@@ -367,6 +401,9 @@ testit (struct test_case_struct *tc)
|
||||
|
||||
printf ("Test %d (%s): ", ++tests, tc->words);
|
||||
|
||||
+ if (tc->flags & WRDE_NOCMD)
|
||||
+ registered_forks = 0;
|
||||
+
|
||||
if (tc->flags & WRDE_APPEND)
|
||||
{
|
||||
/* initial wordexp() call, to be appended to */
|
||||
@@ -378,6 +415,13 @@ testit (struct test_case_struct *tc)
|
||||
}
|
||||
retval = wordexp (tc->words, &we, tc->flags);
|
||||
|
||||
+ if ((tc->flags & WRDE_NOCMD)
|
||||
+ && (registered_forks > 0))
|
||||
+ {
|
||||
+ printf ("FAILED fork called for WRDE_NOCMD\n");
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
if (tc->flags & WRDE_DOOFFS)
|
||||
start_offs = sav_we.we_offs;
|
||||
|
||||
diff --git a/posix/wordexp.c b/posix/wordexp.c
|
||||
index b6b65dd..d6a158f 100644
|
||||
--- a/posix/wordexp.c
|
||||
+++ b/posix/wordexp.c
|
||||
@@ -693,6 +693,12 @@ parse_arith (char **word, size_t *word_length, size_t *max_length,
|
||||
break;
|
||||
|
||||
case '`':
|
||||
+ if (flags & WRDE_NOCMD)
|
||||
+ {
|
||||
+ free (expr);
|
||||
+ return WRDE_NOCMD;
|
||||
+ }
|
||||
+
|
||||
(*offset)++;
|
||||
error = parse_backtick (&expr, &expr_length, &expr_maxlen,
|
||||
words, offset, flags, NULL, NULL, NULL);
|
||||
@@ -1144,6 +1150,10 @@ parse_comm (char **word, size_t *word_length, size_t *max_length,
|
||||
size_t comm_maxlen;
|
||||
char *comm = w_newword (&comm_length, &comm_maxlen);
|
||||
|
||||
+ /* Do nothing if command substitution should not succeed. */
|
||||
+ if (flags & WRDE_NOCMD)
|
||||
+ return WRDE_CMDSUB;
|
||||
+
|
||||
for (; words[*offset]; ++(*offset))
|
||||
{
|
||||
switch (words[*offset])
|
||||
@@ -2121,6 +2131,9 @@ parse_backtick (char **word, size_t *word_length, size_t *max_length,
|
||||
switch (words[*offset])
|
||||
{
|
||||
case '`':
|
||||
+ if (flags & WRDE_NOCMD)
|
||||
+ return WRDE_NOCMD;
|
||||
+
|
||||
/* Go -- give the script to the shell */
|
||||
error = exec_comm (comm, word, word_length, max_length, flags,
|
||||
pwordexp, ifs, ifs_white);
|
||||
173
package/glibc/2.20/0001-CVE-2014-7817.patch
Normal file
173
package/glibc/2.20/0001-CVE-2014-7817.patch
Normal file
@@ -0,0 +1,173 @@
|
||||
Patch from https://bugzilla.redhat.com/show_bug.cgi?id=1157689
|
||||
|
||||
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||||
|
||||
WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!!
|
||||
EMBARGOED !!! EMBARGOED !!! EMARGOED !!! EMBARGOED !!! EMBARGOED !!!
|
||||
SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!! SECURITY !!!
|
||||
|
||||
CVE-2014-7817:
|
||||
|
||||
The function wordexp() fails to properly handle the WRDE_NOCMD
|
||||
flag when processing arithmetic inputs in the form of "$((... ``))"
|
||||
where "..." can be anything valid. The backticks in the arithmetic
|
||||
epxression are evaluated by in a shell even if WRDE_NOCMD forbade
|
||||
command substitution. This allows an attacker to attempt to pass
|
||||
dangerous commands via constructs of the above form, and bypass
|
||||
the WRDE_NOCMD flag. This patch fixes this by checking for WRDE_NOCMD
|
||||
in parse_arith(). The patch also hardens parse_backticks() and
|
||||
parse_comm() to check for WRDE_NOCMD flag and return an error instead
|
||||
of ever running a shell.
|
||||
|
||||
We expand the testsuite and add 3 new regression tests of roughtly
|
||||
the same form but with a couple of nested levels.
|
||||
|
||||
On top of the 3 new tests we add fork validation to the WRDE_NOCMD
|
||||
testing. If any forks are detected during the execution of a wordexp()
|
||||
call with WRDE_NOCMD, the test is marked as failed. This is slightly
|
||||
heuristic since vfork might be used, but it provides a higher level
|
||||
of assurance that no shells were executed as part of command substitution
|
||||
with WRDE_NOCMD in effect. In addition it doesn't require libpthread or
|
||||
libdl, instead we use the public implementation namespace function
|
||||
__register_atfork (already part of the public ABI for libpthread).
|
||||
|
||||
Tested on x86_64 with no regressions.
|
||||
|
||||
2014-10-27 Carlos O'Donell <carlos@redhat.com>
|
||||
|
||||
* wordexp-test.c (__dso_handle): Add prototype.
|
||||
(__register_atfork): Likewise.
|
||||
(__app_register_atfork): New function.
|
||||
(registered_forks): New global.
|
||||
(register_fork): New function.
|
||||
(test_case): Add 3 new tests for WRDE_CMDSUB.
|
||||
(main): Call __app_register_atfork.
|
||||
(testit): If WRDE_NOCMD set registered_forks to zero, run test, and
|
||||
if fork count is non-zero fail the test.
|
||||
* posix/wordexp.c (parse_arith): Return WRDE_NOCMD if WRDE_NOCMD flag
|
||||
is set and parsing '`'.
|
||||
(parse_comm): Return WRDE_NOCMD if WRDE_NOCMD flag is set.
|
||||
(parse_backtick): Return WRDE_NOCMD if WRDE_NOCMD flag is set and
|
||||
parsing '`'.
|
||||
|
||||
diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c
|
||||
index 4957006..5ce2a1b 100644
|
||||
--- a/posix/wordexp-test.c
|
||||
+++ b/posix/wordexp-test.c
|
||||
@@ -27,6 +27,25 @@
|
||||
|
||||
#define IFS " \n\t"
|
||||
|
||||
+extern void *__dso_handle __attribute__ ((__weak__, __visibility__ ("hidden")));
|
||||
+extern int __register_atfork (void (*) (void), void (*) (void), void (*) (void), void *);
|
||||
+
|
||||
+static int __app_register_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void))
|
||||
+{
|
||||
+ return __register_atfork (prepare, parent, child,
|
||||
+ &__dso_handle == NULL ? NULL : __dso_handle);
|
||||
+}
|
||||
+
|
||||
+/* Number of forks seen. */
|
||||
+static int registered_forks;
|
||||
+
|
||||
+/* For each fork increment the fork count. */
|
||||
+static void
|
||||
+register_fork (void)
|
||||
+{
|
||||
+ registered_forks++;
|
||||
+}
|
||||
+
|
||||
struct test_case_struct
|
||||
{
|
||||
int retval;
|
||||
@@ -206,6 +225,12 @@ struct test_case_struct
|
||||
{ WRDE_SYNTAX, NULL, "$((2+))", 0, 0, { NULL, }, IFS },
|
||||
{ WRDE_SYNTAX, NULL, "`", 0, 0, { NULL, }, IFS },
|
||||
{ WRDE_SYNTAX, NULL, "$((010+4+))", 0, 0, { NULL }, IFS },
|
||||
+ /* Test for CVE-2014-7817. We test 3 combinations of command
|
||||
+ substitution inside an arithmetic expression to make sure that
|
||||
+ no commands are executed and error is returned. */
|
||||
+ { WRDE_CMDSUB, NULL, "$((`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
|
||||
+ { WRDE_CMDSUB, NULL, "$((1+`echo 1`))", WRDE_NOCMD, 0, { NULL, }, IFS },
|
||||
+ { WRDE_CMDSUB, NULL, "$((1+$((`echo 1`))))", WRDE_NOCMD, 0, { NULL, }, IFS },
|
||||
|
||||
{ -1, NULL, NULL, 0, 0, { NULL, }, IFS },
|
||||
};
|
||||
@@ -258,6 +283,15 @@ main (int argc, char *argv[])
|
||||
return -1;
|
||||
}
|
||||
|
||||
+ /* If we are not allowed to do command substitution, we install
|
||||
+ fork handlers to verify that no forks happened. No forks should
|
||||
+ happen at all if command substitution is disabled. */
|
||||
+ if (__app_register_atfork (register_fork, NULL, NULL) != 0)
|
||||
+ {
|
||||
+ printf ("Failed to register fork handler.\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
for (test = 0; test_case[test].retval != -1; test++)
|
||||
if (testit (&test_case[test]))
|
||||
++fail;
|
||||
@@ -367,6 +401,9 @@ testit (struct test_case_struct *tc)
|
||||
|
||||
printf ("Test %d (%s): ", ++tests, tc->words);
|
||||
|
||||
+ if (tc->flags & WRDE_NOCMD)
|
||||
+ registered_forks = 0;
|
||||
+
|
||||
if (tc->flags & WRDE_APPEND)
|
||||
{
|
||||
/* initial wordexp() call, to be appended to */
|
||||
@@ -378,6 +415,13 @@ testit (struct test_case_struct *tc)
|
||||
}
|
||||
retval = wordexp (tc->words, &we, tc->flags);
|
||||
|
||||
+ if ((tc->flags & WRDE_NOCMD)
|
||||
+ && (registered_forks > 0))
|
||||
+ {
|
||||
+ printf ("FAILED fork called for WRDE_NOCMD\n");
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
if (tc->flags & WRDE_DOOFFS)
|
||||
start_offs = sav_we.we_offs;
|
||||
|
||||
diff --git a/posix/wordexp.c b/posix/wordexp.c
|
||||
index b6b65dd..d6a158f 100644
|
||||
--- a/posix/wordexp.c
|
||||
+++ b/posix/wordexp.c
|
||||
@@ -693,6 +693,12 @@ parse_arith (char **word, size_t *word_length, size_t *max_length,
|
||||
break;
|
||||
|
||||
case '`':
|
||||
+ if (flags & WRDE_NOCMD)
|
||||
+ {
|
||||
+ free (expr);
|
||||
+ return WRDE_NOCMD;
|
||||
+ }
|
||||
+
|
||||
(*offset)++;
|
||||
error = parse_backtick (&expr, &expr_length, &expr_maxlen,
|
||||
words, offset, flags, NULL, NULL, NULL);
|
||||
@@ -1144,6 +1150,10 @@ parse_comm (char **word, size_t *word_length, size_t *max_length,
|
||||
size_t comm_maxlen;
|
||||
char *comm = w_newword (&comm_length, &comm_maxlen);
|
||||
|
||||
+ /* Do nothing if command substitution should not succeed. */
|
||||
+ if (flags & WRDE_NOCMD)
|
||||
+ return WRDE_CMDSUB;
|
||||
+
|
||||
for (; words[*offset]; ++(*offset))
|
||||
{
|
||||
switch (words[*offset])
|
||||
@@ -2121,6 +2131,9 @@ parse_backtick (char **word, size_t *word_length, size_t *max_length,
|
||||
switch (words[*offset])
|
||||
{
|
||||
case '`':
|
||||
+ if (flags & WRDE_NOCMD)
|
||||
+ return WRDE_NOCMD;
|
||||
+
|
||||
/* Go -- give the script to the shell */
|
||||
error = exec_comm (comm, word, word_length, max_length, flags,
|
||||
pwordexp, ifs, ifs_white);
|
||||
@@ -7,6 +7,8 @@ the UTF16 support or not.
|
||||
|
||||
Signed-off-by: Justin Maggard <jmaggard10@gmail.com>
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
[baruch: add $(LDLIBS)]
|
||||
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
|
||||
---
|
||||
Index: b/Makefile
|
||||
===================================================================
|
||||
@@ -32,17 +34,17 @@ Index: b/Makefile
|
||||
gdisk: $(LIB_OBJS) gdisk.o gpttext.o
|
||||
-# $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk
|
||||
- $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -licuio -licuuc -luuid -o gdisk
|
||||
+ $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) $(UTF16_LIBS) -luuid -o gdisk
|
||||
+ $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) $(UTF16_LIBS) -luuid $(LDLIBS) -o gdisk
|
||||
|
||||
cgdisk: $(LIB_OBJS) cgdisk.o gptcurses.o
|
||||
-# $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -luuid -lncurses -o cgdisk
|
||||
- $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -licuio -licuuc -luuid -lncurses -o cgdisk
|
||||
+ $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) $(UTF16_LIBS) -luuid -lncurses -o cgdisk
|
||||
+ $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) $(UTF16_LIBS) -luuid -lncurses $(LDLIBS) -o cgdisk
|
||||
|
||||
sgdisk: $(LIB_OBJS) sgdisk.o gptcl.o
|
||||
-# $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -luuid -lpopt -o sgdisk
|
||||
- $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -licuio -licuuc -luuid -lpopt -o sgdisk
|
||||
+ $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) $(UTF16_LIBS) -luuid -lpopt -o sgdisk
|
||||
+ $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) $(UTF16_LIBS) -luuid -lpopt $(LDLIBS) -o sgdisk
|
||||
|
||||
fixparts: $(MBR_LIB_OBJS) fixparts.o
|
||||
$(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts
|
||||
|
||||
@@ -26,6 +26,10 @@ GPTFDISK_DEPENDENCIES += icu
|
||||
GPTFDISK_MAKE_OPTS += USE_UTF16=y
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE)$(BR2_PREFER_STATIC_LIB),yy)
|
||||
GPTFDISK_MAKE_OPTS += LDLIBS=-lintl
|
||||
endif
|
||||
|
||||
define GPTFDISK_BUILD_CMDS
|
||||
$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \
|
||||
$(GPTFDISK_MAKE_OPTS) $(GPTFDISK_TARGETS_y)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
config BR2_PACKAGE_GRANTLEE
|
||||
bool "grantlee"
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # Qt Script
|
||||
depends on BR2_PACKAGE_QT_ARCH_SUPPORTS_WEBKIT
|
||||
depends on BR2_PACKAGE_QT
|
||||
select BR2_PACKAGE_QT_STL
|
||||
@@ -9,3 +10,7 @@ config BR2_PACKAGE_GRANTLEE
|
||||
Qt implemantation of the Django template framework
|
||||
|
||||
http://www.grantlee.org
|
||||
|
||||
comment "grantlee needs a toolchain with NPTL"
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
|
||||
depends on BR2_PACKAGE_QT_ARCH_SUPPORTS_WEBKIT
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
menuconfig BR2_PACKAGE_GST1_VALIDATE
|
||||
config BR2_PACKAGE_GST1_VALIDATE
|
||||
bool "gst1-validate"
|
||||
depends on BR2_PACKAGE_PYTHON
|
||||
select BR2_PACKAGE_GST1_PLUGINS_BASE
|
||||
select BR2_PACKAGE_PYTHON_PYEXPAT
|
||||
help
|
||||
GstValidate is a tool that allows GStreamer developers to
|
||||
check that the GstElements they write behave the way they
|
||||
are supposed to.
|
||||
|
||||
http://gstreamer.freedesktop.org/
|
||||
|
||||
comment "gst1-validate depends on python"
|
||||
depends on !BR2_PACKAGE_PYTHON
|
||||
|
||||
@@ -12,6 +12,6 @@ GST1_VALIDATE_LICENSE_FILES = COPYING
|
||||
|
||||
GST1_VALIDATE_CONF_OPTS = --disable-sphinx-doc
|
||||
|
||||
GST1_VALIDATE_DEPENDENCIES = gstreamer1 gst1-plugins-base
|
||||
GST1_VALIDATE_DEPENDENCIES = gstreamer1 gst1-plugins-base host-python python
|
||||
|
||||
$(eval $(autotools-package))
|
||||
|
||||
@@ -2,6 +2,7 @@ config BR2_PACKAGE_HEIRLOOM_MAILX
|
||||
bool "heirloom-mailx"
|
||||
# uses fork()
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_PREFER_STATIC_LIB
|
||||
help
|
||||
Heirloom mailx (previously known as nail) is a mail user
|
||||
agent for Unix systems.
|
||||
@@ -13,3 +14,7 @@ config BR2_PACKAGE_HEIRLOOM_MAILX
|
||||
cram-md5), SMTPS, MIME encoding of attachements, and more.
|
||||
|
||||
http://heirloom.sourceforge.net/mailx.html
|
||||
|
||||
comment "heirloom-mailx needs a toolchain w/ dynamic library"
|
||||
depends on BR2_PREFER_STATIC_LIB
|
||||
depends on BR2_USE_MMU
|
||||
|
||||
34
package/iputils/0001-ping-ping6-Fix-hang-with-f-option.patch
Normal file
34
package/iputils/0001-ping-ping6-Fix-hang-with-f-option.patch
Normal file
@@ -0,0 +1,34 @@
|
||||
From 712fddacfb5c4a8a48d9c5debe1870bc051d836c Mon Sep 17 00:00:00 2001
|
||||
From: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
|
||||
Date: Tue, 6 Nov 2012 02:44:12 +0900
|
||||
Subject: [PATCH] ping,ping6: Fix hang with -f option.
|
||||
|
||||
Bug was introduced by commit 8feb586c4... (ping,ping6: Check return
|
||||
value of write(2) for stdout.).
|
||||
|
||||
https://bugs.archlinux.org/task/32306
|
||||
|
||||
Patch-by: Jan Synacek <jsynacek@redhat.com>
|
||||
Reported-by: Mohammad Alsaleh <msal@tormail.org>
|
||||
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
---
|
||||
ping_common.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/ping_common.h b/ping_common.h
|
||||
index d2a2b5c..6726e1b 100644
|
||||
--- a/ping_common.h
|
||||
+++ b/ping_common.h
|
||||
@@ -140,7 +140,7 @@ static inline void write_stdout(const char *str, size_t len)
|
||||
do {
|
||||
cc = write(STDOUT_FILENO, str + o, len - o);
|
||||
o += cc;
|
||||
- } while (len >= o || cc < 0);
|
||||
+ } while (len > o || cc < 0);
|
||||
}
|
||||
|
||||
/*
|
||||
--
|
||||
2.1.3
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
config BR2_PACKAGE_IPUTILS
|
||||
bool "iputils"
|
||||
select BR2_OPENSSL if BR2_INET_IPV6
|
||||
select BR2_PACKAGE_OPENSSL if BR2_INET_IPV6
|
||||
depends on BR2_USE_MMU # fork()
|
||||
# requires dn_comp (only available in since uclibc 0.9.33)
|
||||
depends on !BR2_avr32
|
||||
|
||||
@@ -19,7 +19,7 @@ LAME_LICENSE_FILES = COPYING
|
||||
# So, if BR2_ENABLE_DEBUG is selected, then we have force lame to be
|
||||
# built without debug symbols for Aarch64 and MIPS because these
|
||||
# architectures don't have those macros defined.
|
||||
ifeq ($(BR2_ENABLE_DEBUG)$(BR2_aarch64)$(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),yy)
|
||||
ifeq ($(BR2_ENABLE_DEBUG)$(BR2_aarch64)$(BR2_arm)$(BR2_armeb)$(BR2_mips)$(BR2_mipsel)$(BR2_mips64)$(BR2_mips64el),yy)
|
||||
LAME_CONF_OPTS += --disable-debug
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
config BR2_PACKAGE_LIBCAP
|
||||
bool "libcap"
|
||||
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # XATTR_NAME_CAPS
|
||||
help
|
||||
This library implements the user-space interfaces to the
|
||||
POSIX 1003.1e capabilities available in Linux kernels. These
|
||||
@@ -22,3 +23,6 @@ config BR2_PACKAGE_LIBCAP_TOOLS
|
||||
CONFIG_EXT2_FS_XATTR and CONFIG_EXT2_FS_SECURITY for ext2).
|
||||
|
||||
endif
|
||||
|
||||
comment "libcap needs a toolchain w/ headers >= 3.0"
|
||||
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
|
||||
|
||||
@@ -4,4 +4,4 @@ config BR2_PACKAGE_LIBGCRYPT
|
||||
help
|
||||
LibGCrypt is GNU's basic cryptographic library.
|
||||
|
||||
ftp://gd.tuwien.ac.at/privacy/gnupg/libgcrypt/
|
||||
http://www.gnu.org/software/libgcrypt/
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# Locally calculated after checking pgp signature
|
||||
sha256 bc96b95516bd2b67f413bc8b5cc5a75a2583c6e666d24dfd0d5bcc6b1aab46f9 libksba-1.3.1.tar.bz2
|
||||
# From http://lists.gnupg.org/pipermail/gnupg-announce/2014q4/000359.html
|
||||
sha1 37d0893a587354af2b6e49f6ae701ca84f52da67 libksba-1.3.2.tar.bz2
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBKSBA_VERSION = 1.3.1
|
||||
LIBKSBA_VERSION = 1.3.2
|
||||
LIBKSBA_SOURCE = libksba-$(LIBKSBA_VERSION).tar.bz2
|
||||
LIBKSBA_SITE = ftp://ftp.gnupg.org/gcrypt/libksba
|
||||
LIBKSBA_LICENSE = LGPLv3+ or GPLv2+ (library, headers), GPLv3+ (manual, tests, build system)
|
||||
|
||||
@@ -7,11 +7,13 @@
|
||||
LIBLLCP_VERSION = cf0c4b3c9df98851c6092c130192130c3f5a46bd
|
||||
LIBLLCP_SITE = https://libllcp.googlecode.com/git
|
||||
LIBLLCP_SITE_METHOD = git
|
||||
LIBLLCP_DEPENDENCIES = libnfc
|
||||
LIBLLCP_DEPENDENCIES = host-pkgconf libnfc
|
||||
# There's no ./configure in the repository, so we need to autoreconf
|
||||
LIBLLCP_AUTORECONF = YES
|
||||
LIBLLCP_INSTALL_STAGING = YES
|
||||
LIBLLCP_LICENSE = GPLv3+
|
||||
LIBLLCP_LICENSE_FILES = COPYING
|
||||
# ensure graphviz isn't used
|
||||
LIBLLCP_CONF_ENV = ac_cv_path_DOT=
|
||||
|
||||
$(eval $(autotools-package))
|
||||
|
||||
25
package/libmemcached/0002-disable-sanitizer.patch
Normal file
25
package/libmemcached/0002-disable-sanitizer.patch
Normal file
@@ -0,0 +1,25 @@
|
||||
Disable sanitizer checks, they're busted.
|
||||
|
||||
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||||
|
||||
diff -Nura libmemcached-1.0.18.orig/m4/ax_harden_compiler_flags.m4 libmemcached-1.0.18/m4/ax_harden_compiler_flags.m4
|
||||
--- libmemcached-1.0.18.orig/m4/ax_harden_compiler_flags.m4 2014-11-13 08:07:09.011614311 -0300
|
||||
+++ libmemcached-1.0.18/m4/ax_harden_compiler_flags.m4 2014-11-13 08:07:52.406092440 -0300
|
||||
@@ -222,8 +222,6 @@
|
||||
# GCC 4.5 removed this.
|
||||
# _APPEND_COMPILE_FLAGS_ERROR([-Wunreachable-code])
|
||||
|
||||
- _SET_SANITIZE_FLAGS
|
||||
-
|
||||
AS_IF([test "x$ax_enable_debug" = xno],
|
||||
[AS_IF([test "x$ac_cv_vcs_checkout" = xyes],
|
||||
[AS_IF([test "x${host_os}" != "xmingw"],
|
||||
@@ -337,8 +335,6 @@
|
||||
_APPEND_COMPILE_FLAGS_ERROR([-fstack-protector-all])
|
||||
])])])])
|
||||
|
||||
- _SET_SANITIZE_FLAGS
|
||||
-
|
||||
AS_IF([test "x$ac_cv_warnings_as_errors" = xyes],
|
||||
[AX_APPEND_FLAG([-Werror])])
|
||||
AC_LANG_POP([C++])
|
||||
@@ -13,7 +13,7 @@ LIBMEMCACHED_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99' \
|
||||
LIBMEMCACHED_CONF_OPTS = --disable-dtrace
|
||||
LIBMEMCACHED_INSTALL_STAGING = YES
|
||||
LIBMEMCACHED_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBEVENT),libevent)
|
||||
# For libmemcached-01-disable-tests.patch
|
||||
# For 0001-disable-tests.patch and 0002-disable-sanitizer.patch
|
||||
LIBMEMCACHED_AUTORECONF = YES
|
||||
LIBMEMCACHED_LICENSE = BSD-3c
|
||||
LIBMEMCACHED_LICENSE_FILES = COPYING
|
||||
|
||||
@@ -21,6 +21,12 @@ LIBNSPR_CONF_OPTS = --host=$(GNU_HOST_NAME)
|
||||
LIBNSPR_CONF_OPTS += --$(if $(BR2_ARCH_IS_64),en,dis)able-64bit
|
||||
LIBNSPR_CONF_OPTS += --$(if $(BR2_INET_IPV6),en,dis)able-ipv6
|
||||
|
||||
ifeq ($(BR2_PREFER_STATIC_LIB),y)
|
||||
LIBNSPR_MAKE_OPTS = SHARED_LIBRARY=
|
||||
LIBNSPR_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) SHARED_LIBRARY= install
|
||||
LIBNSPR_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) SHARED_LIBRARY= install
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_arm),y)
|
||||
ifeq ($(BR2_ARM_CPU_HAS_THUMB2),y)
|
||||
LIBNSPR_CONF_OPTS += --enable-thumb2
|
||||
|
||||
3
package/libpng/libpng.hash
Normal file
3
package/libpng/libpng.hash
Normal file
@@ -0,0 +1,3 @@
|
||||
# From http://sourceforge.net/projects/libpng/files/libpng16/1.6.15/
|
||||
md5 a95cb387c53215b034203b41ec57c7e5 libpng-1.6.15.tar.xz
|
||||
sha1 bddeac8ca97fbcf54d6d32c6eefed5d94b49df88 libpng-1.6.15.tar.xz
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LIBPNG_VERSION = 1.6.12
|
||||
LIBPNG_VERSION = 1.6.15
|
||||
LIBPNG_SERIES = 16
|
||||
LIBPNG_SOURCE = libpng-$(LIBPNG_VERSION).tar.xz
|
||||
LIBPNG_SITE = http://downloads.sourceforge.net/project/libpng/libpng${LIBPNG_SERIES}/$(LIBPNG_VERSION)
|
||||
|
||||
@@ -2,11 +2,17 @@ config BR2_PACKAGE_LIBSHAIRPLAY
|
||||
bool "libshairplay"
|
||||
depends on BR2_INET_IPV6
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on BR2_USE_MMU # avahi
|
||||
depends on !BR2_PREFER_STATIC_LIB # avahi
|
||||
select BR2_PACKAGE_AVAHI
|
||||
select BR2_PACKAGE_AVAHI_DAEMON
|
||||
select BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY # runtime
|
||||
help
|
||||
libshairplay is a client library that emulates an airplay
|
||||
server.
|
||||
|
||||
https://github.com/juhovh/shairplay
|
||||
|
||||
comment "libshairplay needs a toolchain w/ IPv6, threads"
|
||||
depends on !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS
|
||||
comment "libshairplay needs a toolchain w/ IPv6, threads, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS || BR2_PREFER_STATIC_LIB
|
||||
|
||||
@@ -18,6 +18,9 @@ LIBSSH2_DEPENDENCIES += libgcrypt
|
||||
LIBSSH2_CONF_OPTS += --with-libgcrypt \
|
||||
--with-libgcrypt-prefix=$(STAGING_DIR)/usr \
|
||||
--without-openssl
|
||||
# configure.ac forgets to link to dependent libraries of gcrypt breaking static
|
||||
# linking
|
||||
LIBSSH2_CONF_ENV += LIBS="$(shell $(STAGING_DIR)/usr/bin/libgcrypt-config --libs)"
|
||||
else
|
||||
LIBSSH2_DEPENDENCIES += openssl
|
||||
LIBSSH2_CONF_OPTS += --with-openssl \
|
||||
|
||||
25
package/libtirpc/0007-needs-pthread.patch
Normal file
25
package/libtirpc/0007-needs-pthread.patch
Normal file
@@ -0,0 +1,25 @@
|
||||
pkg-config: needs pthread as private library
|
||||
|
||||
libtirpc needs pthreads. This is automatically pulled in when linking
|
||||
with the shared library, thanks to the DT_NEEDED ELF tags.
|
||||
|
||||
But for a static library, there is no such mechanism to identify
|
||||
required libraries.
|
||||
|
||||
Thus, add -pthread to the private libraries in the pkg-config file.
|
||||
|
||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
|
||||
---
|
||||
Patch sent upstream:
|
||||
http://sourceforge.net/p/libtirpc/mailman/message/33072076/
|
||||
|
||||
diff -durN libtirpc-0.2.4.orig/libtirpc.pc.in libtirpc-0.2.4/libtirpc.pc.in
|
||||
--- libtirpc-0.2.4.orig/libtirpc.pc.in 2013-12-09 21:59:51.000000000 +0100
|
||||
+++ libtirpc-0.2.4/libtirpc.pc.in 2014-11-23 14:02:58.677760108 +0100
|
||||
@@ -8,4 +8,5 @@
|
||||
Requires:
|
||||
Version: @PACKAGE_VERSION@
|
||||
Libs: -L@libdir@ -ltirpc
|
||||
+Libs.private: -pthread
|
||||
Cflags: -I@includedir@/tirpc
|
||||
@@ -0,0 +1,41 @@
|
||||
From f1684379dfaf8018d5d4c1945e292a56d0fab245 Mon Sep 17 00:00:00 2001
|
||||
From: Thierry Reding <treding@nvidia.com>
|
||||
Date: Fri, 27 Jun 2014 08:40:33 +0200
|
||||
Subject: [PATCH] Link libunwind to libgcc_s rather than libgcc
|
||||
|
||||
For some architectures, -lgcc and -lgcc_s are not equivalent. On ARM for
|
||||
example, libgcc_s.so.1 contains some symbols needed by libunwind which
|
||||
are not present in libgcc.
|
||||
|
||||
This causes the following link error when building the X.Org X server
|
||||
with libunwind support:
|
||||
|
||||
CCLD Xorg
|
||||
/usr/lib/libunwind.so: undefined reference to `__aeabi_unwind_cpp_pr0'
|
||||
/usr/lib/libunwind.so: undefined reference to `__aeabi_unwind_cpp_pr1'
|
||||
|
||||
Linking against libgcc_s explicitly solves this problem.
|
||||
|
||||
Signed-off-by: Thierry Reding <treding@nvidia.com>
|
||||
[yann.morin.1998@free.fr: backport to libunwind 1.1]
|
||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 4e2fd23..a77cf01 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -258,7 +258,7 @@ else
|
||||
|
||||
if test x$GCC = xyes -a x$intel_compiler != xyes; then
|
||||
CFLAGS="${CFLAGS} -fexceptions -Wall -Wsign-compare"
|
||||
- LIBCRTS="-lgcc"
|
||||
+ LIBCRTS="-lgcc_s"
|
||||
fi
|
||||
AC_MSG_RESULT([$intel_compiler])
|
||||
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -12,5 +12,4 @@ config BR2_PACKAGE_LIBUNWIND
|
||||
comment "libunwind needs a uclibc snapshot or (e)glibc toolchain w/ threads"
|
||||
depends on BR2_arm || BR2_armeb || BR2_mips || BR2_mipsel || BR2_mips64 || \
|
||||
BR2_mips64el || BR2_powerpc || BR2_sh || BR2_sh64 || BR2_i386 || BR2_x86_64
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on !(BR2_UCLIBC_VERSION_SNAPSHOT || BR2_TOOLCHAIN_USES_GLIBC)
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS || !(BR2_UCLIBC_VERSION_SNAPSHOT || BR2_TOOLCHAIN_USES_GLIBC)
|
||||
|
||||
@@ -4,6 +4,7 @@ config BR2_PACKAGE_LIBV4L
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # media headers
|
||||
select BR2_PACKAGE_ARGP_STANDALONE if BR2_TOOLCHAIN_USES_UCLIBC
|
||||
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
|
||||
help
|
||||
@@ -28,6 +29,7 @@ config BR2_PACKAGE_LIBV4L_UTILS
|
||||
|
||||
endif
|
||||
|
||||
comment "libv4l needs a toolchain w/ largefile, threads and C++"
|
||||
depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
|
||||
comment "libv4l needs a toolchain w/ largefile, threads and C++, headers >= 3.0"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS \
|
||||
|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
|
||||
|
||||
@@ -165,12 +165,12 @@ config BR2_DEFAULT_KERNEL_HEADERS
|
||||
default "3.0.101" if BR2_KERNEL_HEADERS_3_0
|
||||
default "3.2.64" if BR2_KERNEL_HEADERS_3_2
|
||||
default "3.4.104" if BR2_KERNEL_HEADERS_3_4
|
||||
default "3.10.59" if BR2_KERNEL_HEADERS_3_10
|
||||
default "3.10.61" if BR2_KERNEL_HEADERS_3_10
|
||||
default "3.11.10" if BR2_KERNEL_HEADERS_3_11
|
||||
default "3.12.32" if BR2_KERNEL_HEADERS_3_12
|
||||
default "3.12.33" if BR2_KERNEL_HEADERS_3_12
|
||||
default "3.13.11" if BR2_KERNEL_HEADERS_3_13
|
||||
default "3.14.23" if BR2_KERNEL_HEADERS_3_14
|
||||
default "3.14.25" if BR2_KERNEL_HEADERS_3_14
|
||||
default "3.15.10" if BR2_KERNEL_HEADERS_3_15
|
||||
default "3.16.7" if BR2_KERNEL_HEADERS_3_16
|
||||
default "3.17.2" if BR2_KERNEL_HEADERS_3_17
|
||||
default "3.17.4" if BR2_KERNEL_HEADERS_3_17
|
||||
default BR2_DEFAULT_KERNEL_VERSION if BR2_KERNEL_HEADERS_VERSION
|
||||
|
||||
@@ -7,6 +7,7 @@ config BR2_PACKAGE_LXC
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on !BR2_avr32 # no timerfd
|
||||
depends on !BR2_nios2 # the toolchain doesn't support setns syscall
|
||||
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # libcap
|
||||
help
|
||||
Linux Containers (LXC), provides the ability to group and isolate
|
||||
of a set of processes in a jail by virtualizing and accounting the
|
||||
@@ -14,8 +15,9 @@ config BR2_PACKAGE_LXC
|
||||
|
||||
https://linuxcontainers.org/
|
||||
|
||||
comment "lxc needs a toolchain w/ IPv6, threads, largefile"
|
||||
comment "lxc needs a toolchain w/ IPv6, threads, largefile, headers >= 3.0"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_avr32 # no timerfd
|
||||
depends on !BR2_nios2 # the toolchain doesn't support setns syscall
|
||||
depends on !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_LARGEFILE
|
||||
depends on !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS \
|
||||
|| !BR2_LARGEFILE || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
config BR2_PACKAGE_MESA3D_DEMOS
|
||||
bool "mesa3d-demos"
|
||||
select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
|
||||
select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
|
||||
depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBGLES \
|
||||
|| BR2_PACKAGE_HAS_LIBEGL || BR2_PACKAGE_HAS_LIBOPENVG
|
||||
help
|
||||
|
||||
@@ -11,11 +11,11 @@ MESA3D_DEMOS_AUTORECONF = YES
|
||||
MESA3D_DEMOS_DEPENDENCIES = host-pkgconf
|
||||
MESA3D_DEMOS_LICENSE = MIT
|
||||
|
||||
ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
|
||||
MESA3D_DEMOS_DEPENDENCIES += libgl libglew libglu
|
||||
MESA3D_DEMOS_CONF_OPTS += --enable-gl
|
||||
ifeq ($(BR2_PACKAGE_XORG7)$(BR2_PACKAGE_HAS_LIBGL),yy)
|
||||
MESA3D_DEMOS_DEPENDENCIES += libgl libglew libglu xlib_libX11 xlib_libXext
|
||||
MESA3D_DEMOS_CONF_OPTS += --enable-gl --enable-x11
|
||||
else
|
||||
MESA3D_DEMOS_CONF_OPTS += --disable-gl
|
||||
MESA3D_DEMOS_CONF_OPTS += --disable-gl --disable-x11
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_HAS_LIBEGL),y)
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
From c349964887901848fb4cd5db53a5bcb6dae27aaa Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Sun, 23 Nov 2014 10:16:33 +0100
|
||||
Subject: [PATCH] Add minimal support for --{enable,disable}-{shared,static}
|
||||
|
||||
mpdecimal uses autoconf, but not automake or libtool, so this commit
|
||||
adds some basic handling of --{enable,disable}-{shared,static}, so
|
||||
that building the shared library can be disabled in pure static
|
||||
library contexts.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
---
|
||||
Makefile.in | 6 ++++++
|
||||
configure.ac | 13 +++++++++++++
|
||||
libmpdec/Makefile.in | 11 ++++++++++-
|
||||
3 files changed, 29 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index 2c91891..0c44f36 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -9,6 +9,8 @@ LIBSTATIC = @LIBSTATIC@
|
||||
LIBSONAME = @LIBSONAME@
|
||||
LIBSHARED = @LIBSHARED@
|
||||
INSTALL = @INSTALL@
|
||||
+BUILD_SHARED = @BUILD_SHARED@
|
||||
+BUILD_STATIC = @BUILD_STATIC@
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
@@ -32,9 +34,13 @@ install: FORCE
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)$(includedir)
|
||||
$(INSTALL) -m 644 libmpdec/mpdecimal.h $(DESTDIR)$(includedir)
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)$(libdir)
|
||||
+ifeq ($(BUILD_STATIC),yes)
|
||||
$(INSTALL) -m 644 libmpdec/$(LIBSTATIC) $(DESTDIR)$(libdir)
|
||||
+endif
|
||||
+ifeq ($(BUILD_SHARED),yes)
|
||||
$(INSTALL) -m 755 libmpdec/$(LIBSHARED) $(DESTDIR)$(libdir)
|
||||
cd $(DESTDIR)$(libdir) && ln -sf $(LIBSHARED) $(LIBSONAME) && ln -sf $(LIBSHARED) libmpdec.so
|
||||
+endif
|
||||
$(INSTALL) -d -m 755 $(DESTDIR)$(docdir)
|
||||
cp -R doc/* $(DESTDIR)$(docdir)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 7ee8f86..2b3e505 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -88,6 +88,19 @@ CFLAGS="$saved_cflags"
|
||||
AC_PROG_INSTALL
|
||||
AC_SUBST(INSTALL)
|
||||
|
||||
+AC_ARG_ENABLE([shared],
|
||||
+ [AS_HELP_STRING([--enable-shared], [build shared library])],
|
||||
+ [BUILD_SHARED=$enableval],
|
||||
+ [BUILD_SHARED=yes])
|
||||
+
|
||||
+AC_ARG_ENABLE([static],
|
||||
+ [AS_HELP_STRING([--enable-static], [build static library])],
|
||||
+ [BUILD_STATIC=$enableval],
|
||||
+ [BUILD_STATIC=yes])
|
||||
+
|
||||
+AC_SUBST(BUILD_SHARED)
|
||||
+AC_SUBST(BUILD_STATIC)
|
||||
+
|
||||
# _FORTIFY_SOURCE wrappers for memmove and bcopy are incorrect:
|
||||
# http://sourceware.org/ml/libc-alpha/2010-12/msg00009.html
|
||||
AC_MSG_CHECKING(for glibc _FORTIFY_SOURCE/memmove bug)
|
||||
diff --git a/libmpdec/Makefile.in b/libmpdec/Makefile.in
|
||||
index d9619a3..985c73c 100644
|
||||
--- a/libmpdec/Makefile.in
|
||||
+++ b/libmpdec/Makefile.in
|
||||
@@ -7,6 +7,8 @@
|
||||
LIBSTATIC = @LIBSTATIC@
|
||||
LIBSONAME = @LIBSONAME@
|
||||
LIBSHARED = @LIBSHARED@
|
||||
+BUILD_SHARED = @BUILD_SHARED@
|
||||
+BUILD_STATIC = @BUILD_STATIC@
|
||||
|
||||
CC = @CC@
|
||||
LD = @LD@
|
||||
@@ -32,8 +34,15 @@ ifeq ($(MAKECMDGOALS), profile_use)
|
||||
MPD_LDFLAGS += $(MPD_PUSE)
|
||||
endif
|
||||
|
||||
+ifeq ($(BUILD_SHARED),yes)
|
||||
+TARGETS += $(LIBSHARED)
|
||||
+endif
|
||||
+
|
||||
+ifeq ($(BUILD_STATIC),yes)
|
||||
+TARGETS += $(LIBSTATIC)
|
||||
+endif
|
||||
|
||||
-default: $(LIBSTATIC) $(LIBSHARED)
|
||||
+default: $(TARGETS)
|
||||
|
||||
|
||||
OBJS := basearith.o context.o constants.o convolute.o crt.o mpdecimal.o \
|
||||
--
|
||||
2.1.0
|
||||
|
||||
@@ -10,6 +10,7 @@ MPDECIMAL_INSTALL_STAGING = YES
|
||||
MPDECIMAL_LICENSE = BSD-2c
|
||||
MPDECIMAL_LICENSE_FILES = LICENSE.txt
|
||||
MPDECIMAL_CONF_OPTS = LD="$(TARGET_CC)"
|
||||
MPDECIMAL_AUTORECONF = YES
|
||||
|
||||
# On i386, by default, mpdecimal tries to uses <fenv.h> which is not
|
||||
# available in musl/glibc. So in this case, we tell mpdecimal to use
|
||||
|
||||
@@ -11,6 +11,7 @@ MPG123_CONF_OPTS = --disable-lfs-alias
|
||||
MPG123_INSTALL_STAGING = YES
|
||||
MPG123_LICENSE = LGPLv2.1
|
||||
MPG123_LICENSE_FILES = COPYING
|
||||
MPG123_DEPENDENCIES = host-pkgconf
|
||||
|
||||
MPG123_CPU = $(if $(BR2_SOFT_FLOAT),generic_nofpu,generic_fpu)
|
||||
|
||||
|
||||
@@ -41,4 +41,20 @@ else
|
||||
MUTT_CONF_OPTS += --without-ssl
|
||||
endif
|
||||
|
||||
# Avoid running tests to check for:
|
||||
# - target system is *BSD
|
||||
# - C99 conformance (snprintf, vsnprintf)
|
||||
# - behaviour of the regex library
|
||||
# - if mail spool directory is world/group writable
|
||||
# - we have a working libiconv
|
||||
MUTT_CONF_ENV += \
|
||||
mutt_cv_bsdish=no \
|
||||
mutt_cv_c99_snprintf=yes \
|
||||
mutt_cv_c99_vsnprintf=yes \
|
||||
mutt_cv_regex_broken=no \
|
||||
mutt_cv_worldwrite=yes \
|
||||
mutt_cv_groupwrite=yes \
|
||||
mutt_cv_iconv_good=yes \
|
||||
mutt_cv_iconv_nontrans=no
|
||||
|
||||
$(eval $(autotools-package))
|
||||
|
||||
@@ -43,7 +43,7 @@ endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_MYSQL_SERVER),y)
|
||||
MYSQL_DEPENDENCIES += host-mysql host-bison
|
||||
HOST_MYSQL_DEPENDENCIES = host-zlib
|
||||
HOST_MYSQL_DEPENDENCIES = host-zlib host-ncurses
|
||||
|
||||
HOST_MYSQL_CONF_OPTS = \
|
||||
--with-embedded-server \
|
||||
|
||||
@@ -14,7 +14,7 @@ NDISC6_LICENSE_FILES = COPYING
|
||||
|
||||
ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
|
||||
NDISC6_DEPENDENCIES += gettext
|
||||
NDISC6_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -lintl"
|
||||
NDISC6_CONF_ENV += LIBS="-lintl"
|
||||
endif
|
||||
|
||||
NDISC6_BIN_ += dnssort # perl script
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user