summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES13
-rw-r--r--package/fbv/fbv-1.0b-fix-bgr555.patch64
-rw-r--r--package/matchbox/matchbox-desktop/matchbox-desktop.mk7
-rw-r--r--package/matchbox/matchbox-desktop/mbdesktop_modules9
-rw-r--r--package/radvd/Config.in1
-rw-r--r--package/radvd/radvd.mk6
-rwxr-xr-xtoolchain/dependencies/dependencies.sh2
-rw-r--r--toolchain/external-toolchain/ext-tool.mk9
-rw-r--r--toolchain/kernel-headers/linux-2.6.31.13-scsi-use-__uX-types-for-headers-exported-to-user-space.patch29
-rw-r--r--toolchain/kernel-headers/linux-2.6.32.11-scsi-use-__uX-types-for-headers-exported-to-user-space.patch29
-rw-r--r--toolchain/kernel-headers/linux-2.6.33.2-scsi-use-__uX-types-for-headers-exported-to-user-space.patch59
-rw-r--r--toolchain/uClibc/uClibc-0.9.31-dnslookup-use-after-free.patch36
12 files changed, 170 insertions, 94 deletions
diff --git a/CHANGES b/CHANGES
index eb5271de4..2d8d2e8c1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,18 +4,17 @@
Toolchain: uClibc 0.9.30.3 / 0.9.31, older 0.9.30.x removed.
2.6.33 kernel headers, binutils 2.20.1, removed broken nios2
- support.
+ support, improved external toolchain support.
X.org updated to 7.5.
New packages: librsync, libusb-compat, lmbench, netperf, squid
Updated/fixed packages: busybox, dnsmasq, dosfstools,
- e2fsprogs, freetype, iperf, iptables, iw, less, libdrm,
- libgcrypt, libglib2, libpng, libusb, libxml2, matchbox, mdadm,
- memstat, mtd-utils, nano, openssl, php, pppd, qt, radvd,
- setserial, squashfs, usb_modeswitch, wget, xlib_libX11,
- xlib_libXfont
+ e2fsprogs, fbv, freetype, iperf, iptables, iw, less, libdrm,
+ libgcrypt, libglib2, libpng, libxml2, matchbox, mdadm, memstat,
+ mtd-utils, nano, openssl, php, pppd, qt, radvd, setserial,
+ squashfs, usb_modeswith, wget, xlib_libX11, xlib_libXfont
Issues resolved (http://bugs.uclibc.org):
@@ -24,6 +23,7 @@
#800: [PATCH] iperf update to 2.0.4
#805: [PATCH] mdadm - version update
#817: integrator926_defconfig uses unsupported uboot board name
+ #851: Add option to specify --sysroot value for external toolchain
#1093: Upgrade libusb to v1.0.3 and add new libusb-compat
package for compatibility with old packages that expect
the pre-1.0 API.
@@ -47,6 +47,7 @@
#1441: Add binutils 2.20.1
#1447: Package installation on target with debug symbols is broken
#1459: Misc QA fixes
+ #1489: radvd update to 1.6
2010.02, Release February 26th, 2010:
diff --git a/package/fbv/fbv-1.0b-fix-bgr555.patch b/package/fbv/fbv-1.0b-fix-bgr555.patch
new file mode 100644
index 000000000..8f185f0a3
--- /dev/null
+++ b/package/fbv/fbv-1.0b-fix-bgr555.patch
@@ -0,0 +1,64 @@
+[PATCH] fbv: support bgr555 format
+
+Signed-off-by: Josh.Wu <josh.wu@atmel.com>
+diff -Naur fbv-1.0b-ori/fb_display.c fbv-1.0b/fb_display.c
+--- fbv-1.0b-ori/fb_display.c 2010-04-02 09:38:15.000000000 +0800
++++ fbv-1.0b/fb_display.c 2010-04-01 18:54:15.000000000 +0800
+@@ -297,6 +297,14 @@
+ ((b >> 3) & 31) );
+ }
+
++inline static unsigned short make15color_bgr(unsigned char r, unsigned char g, unsigned char b)
++{
++ return (
++ (((b >> 3) & 31) << 10) |
++ (((g >> 3) & 31) << 5) |
++ ((r >> 3) & 31) );
++}
++
+ inline static unsigned short make16color(unsigned char r, unsigned char g, unsigned char b)
+ {
+ return (
+@@ -313,6 +321,14 @@
+ u_int16_t *s_fbbuff;
+ u_int32_t *i_fbbuff;
+
++ int is_bgr555 = 0;
++ struct fb_var_screeninfo var;
++ getVarScreenInfo(fh, &var);
++ if(var.red.offset == 0 &&
++ var.green.offset == 5 &&
++ var.blue.offset == 10)
++ is_bgr555 = 1;
++
+ switch(bpp)
+ {
+ case 8:
+@@ -325,15 +341,23 @@
+ case 15:
+ *cpp = 2;
+ s_fbbuff = (unsigned short *) malloc(count * sizeof(unsigned short));
+- for(i = 0; i < count ; i++)
+- s_fbbuff[i] = make15color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
++ if(is_bgr555)
++ for(i = 0; i < count ; i++)
++ s_fbbuff[i] = make15color_bgr(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
++ else
++ for(i = 0; i < count ; i++)
++ s_fbbuff[i] = make15color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
+ fbbuff = (void *) s_fbbuff;
+ break;
+ case 16:
+ *cpp = 2;
+ s_fbbuff = (unsigned short *) malloc(count * sizeof(unsigned short));
+- for(i = 0; i < count ; i++)
+- s_fbbuff[i] = make16color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
++ if(is_bgr555)
++ for(i = 0; i < count ; i++)
++ s_fbbuff[i] = make15color_bgr(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
++ else
++ for(i = 0; i < count ; i++)
++ s_fbbuff[i] = make16color(rgbbuff[i*3], rgbbuff[i*3+1], rgbbuff[i*3+2]);
+ fbbuff = (void *) s_fbbuff;
+ break;
+ case 24:
diff --git a/package/matchbox/matchbox-desktop/matchbox-desktop.mk b/package/matchbox/matchbox-desktop/matchbox-desktop.mk
index a3312af82..d5f61c1f1 100644
--- a/package/matchbox/matchbox-desktop/matchbox-desktop.mk
+++ b/package/matchbox/matchbox-desktop/matchbox-desktop.mk
@@ -7,16 +7,9 @@
MATCHBOX_DESKTOP_VERSION = 0.9.1
MATCHBOX_DESKTOP_SOURCE = matchbox-desktop-$(MATCHBOX_DESKTOP_VERSION).tar.bz2
MATCHBOX_DESKTOP_SITE = http://matchbox-project.org/sources/matchbox-desktop/$(MATCHBOX_DESKTOP_VERSION)
-MATCHBOX_DESKTOP_LIBTOOL_PATCH = NO
MATCHBOX_DESKTOP_DEPENDENCIES = matchbox-lib
MATCHBOX_DESKTOP_CONF_OPT = --enable-expat
-define MATCHBOX_DESKTOP_POST_INSTALL_FIXES
- cp -f ./package/matchbox/matchbox-desktop/mbdesktop_modules $(TARGET_DIR)/etc/matchbox/
-endef
-
-MATCHBOX_DESKTOP_POST_INSTALL_TARGET_HOOKS += MATCHBOX_DESKTOP_POST_INSTALL_FIXES
-
#############################################################
ifeq ($(BR2_PACKAGE_STARTUP_NOTIFICATION),y)
diff --git a/package/matchbox/matchbox-desktop/mbdesktop_modules b/package/matchbox/matchbox-desktop/mbdesktop_modules
deleted file mode 100644
index 8206dad1f..000000000
--- a/package/matchbox/matchbox-desktop/mbdesktop_modules
+++ /dev/null
@@ -1,9 +0,0 @@
-# This file lists the 'plug-ins' with any arguments to be loaded by
-# matchbox-desktop.
-#
-# It can be overridden on a per-user basis by copying this file to ~/.matchbox/
-# and editing.
-
-/usr/lib/tasks.so
-/usr/lib/dotdesktop.so
-# /usr/lib/simplefilebrowser.so /
diff --git a/package/radvd/Config.in b/package/radvd/Config.in
index 072aed4fa..c7753f038 100644
--- a/package/radvd/Config.in
+++ b/package/radvd/Config.in
@@ -1,6 +1,7 @@
config BR2_PACKAGE_RADVD
bool "radvd"
select BR2_PACKAGE_FLEX
+ select BR2_PACKAGE_FLEX_LIBFL
depends on BR2_INET_IPV6
help
IPv6 Router Advertisement Daemon.
diff --git a/package/radvd/radvd.mk b/package/radvd/radvd.mk
index defcf4b7c..fdc52acfa 100644
--- a/package/radvd/radvd.mk
+++ b/package/radvd/radvd.mk
@@ -3,14 +3,10 @@
# radvd
#
#############################################################
-RADVD_VERSION:=1.5
+RADVD_VERSION:=1.6
RADVD_SOURCE:=radvd-$(RADVD_VERSION).tar.gz
RADVD_SITE:=http://www.litech.org/radvd/dist/
-RADVD_AUTORECONF:=no
-RADVD_INSTALL_STAGING:=no
-RADVD_INSTALL_TARGET:=YES
RADVD_DEPENDENCIES:=flex host-flex
-RADVD_MAKE:=$(MAKE1)
RADVD_CONF_OPT:= --program-prefix=''
$(eval $(call AUTOTARGETS,package,radvd))
diff --git a/toolchain/dependencies/dependencies.sh b/toolchain/dependencies/dependencies.sh
index 146e08023..68b275176 100755
--- a/toolchain/dependencies/dependencies.sh
+++ b/toolchain/dependencies/dependencies.sh
@@ -122,7 +122,7 @@ if ! $SHELL --version 2>&1 | grep -q '^GNU bash'; then
fi;
# Check that a few mandatory programs are installed
-for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl ; do
+for prog in awk bison flex msgfmt makeinfo patch gzip bzip2 perl tar wget ; do
if ! which $prog > /dev/null ; then
/bin/echo -e "\nYou must install '$prog' on your build machine";
if test $prog = "makeinfo" ; then
diff --git a/toolchain/external-toolchain/ext-tool.mk b/toolchain/external-toolchain/ext-tool.mk
index 80bdae63b..449328131 100644
--- a/toolchain/external-toolchain/ext-tool.mk
+++ b/toolchain/external-toolchain/ext-tool.mk
@@ -205,14 +205,7 @@ ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
EXTERNAL_LIBS+=libstdc++.so
endif
-# This dance is needed because the toolchain may have been relocated, so the
-# configured paths may no longer match; fortunately, the sysroot moves along
-# the toolchain, so is always at the same place relative to the toolchain's
-# current location.
-CFG_PREFIX_DIR=$(shell LANG=C $(TARGET_CC) -v 2>&1 | grep ^Configured | tr " " "\n" | grep -- "--prefix=" | cut -f2 -d=)
-CFG_SYSROOT_DIR=$(shell LANG=C $(TARGET_CC) -v 2>&1 | grep ^Configured | tr " " "\n" | grep -- "--with-sysroot=" | cut -f2 -d=)
-REL_SYSROOT_DIR=$(shell echo "$(CFG_SYSROOT_DIR)" |sed -r -e 's:^$(CFG_PREFIX_DIR)::;')
-SYSROOT_DIR=$(TOOLCHAIN_EXTERNAL_PATH)/$(REL_SYSROOT_DIR)
+SYSROOT_DIR=$(shell readlink -f $$(LANG=C $(TARGET_CC) -print-file-name=libc.a |sed -r -e 's:usr/lib/libc\.a::;'))
$(STAMP_DIR)/ext-toolchain-installed:
@echo "Checking external toolchain settings"
diff --git a/toolchain/kernel-headers/linux-2.6.31.13-scsi-use-__uX-types-for-headers-exported-to-user-space.patch b/toolchain/kernel-headers/linux-2.6.31.13-scsi-use-__uX-types-for-headers-exported-to-user-space.patch
index ac9875dd7..2fc6176e8 100644
--- a/toolchain/kernel-headers/linux-2.6.31.13-scsi-use-__uX-types-for-headers-exported-to-user-space.patch
+++ b/toolchain/kernel-headers/linux-2.6.31.13-scsi-use-__uX-types-for-headers-exported-to-user-space.patch
@@ -54,35 +54,6 @@ index 536752c..7445c46 100644
#define SCSI_NL_VID_ID_MASK (~ SCSI_NL_VID_TYPE_MASK)
-@@ -125,21 +125,21 @@ struct scsi_nl_host_vendor_msg {
- #include <scsi/scsi_host.h>
-
- /* Exported Kernel Interfaces */
--int scsi_nl_add_transport(u8 tport,
-+int scsi_nl_add_transport(__u8 tport,
- int (*msg_handler)(struct sk_buff *),
- void (*event_handler)(struct notifier_block *, unsigned long, void *));
--void scsi_nl_remove_transport(u8 tport);
-+void scsi_nl_remove_transport(__u8 tport);
-
--int scsi_nl_add_driver(u64 vendor_id, struct scsi_host_template *hostt,
-+int scsi_nl_add_driver(__u64 vendor_id, struct scsi_host_template *hostt,
- int (*nlmsg_handler)(struct Scsi_Host *shost, void *payload,
-- u32 len, u32 pid),
-+ __u32 len, __u32 pid),
- void (*nlevt_handler)(struct notifier_block *nb,
- unsigned long event, void *notify_ptr));
--void scsi_nl_remove_driver(u64 vendor_id);
-+void scsi_nl_remove_driver(__u64 vendor_id);
-
--void scsi_nl_send_transport_msg(u32 pid, struct scsi_nl_hdr *hdr);
--int scsi_nl_send_vendor_msg(u32 pid, unsigned short host_no, u64 vendor_id,
-- char *data_buf, u32 data_len);
-+void scsi_nl_send_transport_msg(__u32 pid, struct scsi_nl_hdr *hdr);
-+int scsi_nl_send_vendor_msg(__u32 pid, unsigned short host_no, __u64 vendor_id,
-+ char *data_buf, __u32 data_len);
-
- #endif /* __KERNEL__ */
--
1.6.5
diff --git a/toolchain/kernel-headers/linux-2.6.32.11-scsi-use-__uX-types-for-headers-exported-to-user-space.patch b/toolchain/kernel-headers/linux-2.6.32.11-scsi-use-__uX-types-for-headers-exported-to-user-space.patch
index ac9875dd7..2fc6176e8 100644
--- a/toolchain/kernel-headers/linux-2.6.32.11-scsi-use-__uX-types-for-headers-exported-to-user-space.patch
+++ b/toolchain/kernel-headers/linux-2.6.32.11-scsi-use-__uX-types-for-headers-exported-to-user-space.patch
@@ -54,35 +54,6 @@ index 536752c..7445c46 100644
#define SCSI_NL_VID_ID_MASK (~ SCSI_NL_VID_TYPE_MASK)
-@@ -125,21 +125,21 @@ struct scsi_nl_host_vendor_msg {
- #include <scsi/scsi_host.h>
-
- /* Exported Kernel Interfaces */
--int scsi_nl_add_transport(u8 tport,
-+int scsi_nl_add_transport(__u8 tport,
- int (*msg_handler)(struct sk_buff *),
- void (*event_handler)(struct notifier_block *, unsigned long, void *));
--void scsi_nl_remove_transport(u8 tport);
-+void scsi_nl_remove_transport(__u8 tport);
-
--int scsi_nl_add_driver(u64 vendor_id, struct scsi_host_template *hostt,
-+int scsi_nl_add_driver(__u64 vendor_id, struct scsi_host_template *hostt,
- int (*nlmsg_handler)(struct Scsi_Host *shost, void *payload,
-- u32 len, u32 pid),
-+ __u32 len, __u32 pid),
- void (*nlevt_handler)(struct notifier_block *nb,
- unsigned long event, void *notify_ptr));
--void scsi_nl_remove_driver(u64 vendor_id);
-+void scsi_nl_remove_driver(__u64 vendor_id);
-
--void scsi_nl_send_transport_msg(u32 pid, struct scsi_nl_hdr *hdr);
--int scsi_nl_send_vendor_msg(u32 pid, unsigned short host_no, u64 vendor_id,
-- char *data_buf, u32 data_len);
-+void scsi_nl_send_transport_msg(__u32 pid, struct scsi_nl_hdr *hdr);
-+int scsi_nl_send_vendor_msg(__u32 pid, unsigned short host_no, __u64 vendor_id,
-+ char *data_buf, __u32 data_len);
-
- #endif /* __KERNEL__ */
--
1.6.5
diff --git a/toolchain/kernel-headers/linux-2.6.33.2-scsi-use-__uX-types-for-headers-exported-to-user-space.patch b/toolchain/kernel-headers/linux-2.6.33.2-scsi-use-__uX-types-for-headers-exported-to-user-space.patch
new file mode 100644
index 000000000..1089c7106
--- /dev/null
+++ b/toolchain/kernel-headers/linux-2.6.33.2-scsi-use-__uX-types-for-headers-exported-to-user-space.patch
@@ -0,0 +1,59 @@
+From 877aa0313e7d22b88d04ebef76392e1688fffff9 Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <jacmet@sunsite.dk>
+Date: Fri, 27 Nov 2009 11:20:54 +0100
+Subject: [PATCH] scsi: use __uX types for headers exported to user space
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Commit 9e4f5e29 (FC Pass Thru support) exported a number of header files
+in include/scsi to user space, but didn't change the uX types to the
+userspace-compatible __uX types. Without that you'll get compile errors
+when including them - E.G.:
+
+/tmp/include/scsi/scsi.h:145: error: expected specifier-qualifier-list
+before ‘u8’
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ include/scsi/scsi.h | 8 ++++----
+ include/scsi/scsi_netlink.h | 4 ++--
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h
+index 8b4deca..ec3053e 100644
+--- a/include/scsi/scsi.h
++++ b/include/scsi/scsi.h
+@@ -149,10 +149,10 @@ struct scsi_cmnd;
+
+ /* defined in T10 SCSI Primary Commands-2 (SPC2) */
+ struct scsi_varlen_cdb_hdr {
+- u8 opcode; /* opcode always == VARIABLE_LENGTH_CMD */
+- u8 control;
+- u8 misc[5];
+- u8 additional_cdb_length; /* total cdb length - 8 */
++ __u8 opcode; /* opcode always == VARIABLE_LENGTH_CMD */
++ __u8 control;
++ __u8 misc[5];
++ __u8 additional_cdb_length; /* total cdb length - 8 */
+ __be16 service_action;
+ /* service specific data follows */
+ };
+diff --git a/include/scsi/scsi_netlink.h b/include/scsi/scsi_netlink.h
+index 536752c..58ce8fe 100644
+--- a/include/scsi/scsi_netlink.h
++++ b/include/scsi/scsi_netlink.h
+@@ -105,8 +105,8 @@ struct scsi_nl_host_vendor_msg {
+ * PCI : ID data is the 16 bit PCI Registered Vendor ID
+ */
+ #define SCSI_NL_VID_TYPE_SHIFT 56
+-#define SCSI_NL_VID_TYPE_MASK ((u64)0xFF << SCSI_NL_VID_TYPE_SHIFT)
+-#define SCSI_NL_VID_TYPE_PCI ((u64)0x01 << SCSI_NL_VID_TYPE_SHIFT)
++#define SCSI_NL_VID_TYPE_MASK ((__u64)0xFF << SCSI_NL_VID_TYPE_SHIFT)
++#define SCSI_NL_VID_TYPE_PCI ((__u64)0x01 << SCSI_NL_VID_TYPE_SHIFT)
+ #define SCSI_NL_VID_ID_MASK (~ SCSI_NL_VID_TYPE_MASK)
+
+
+--
+1.7.0
+
diff --git a/toolchain/uClibc/uClibc-0.9.31-dnslookup-use-after-free.patch b/toolchain/uClibc/uClibc-0.9.31-dnslookup-use-after-free.patch
new file mode 100644
index 000000000..9956d591a
--- /dev/null
+++ b/toolchain/uClibc/uClibc-0.9.31-dnslookup-use-after-free.patch
@@ -0,0 +1,36 @@
+From eb1d8c8289f466ba3ad10b9a88ab2e426b8a9dc7 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Tue, 6 Apr 2010 09:55:19 +0200
+Subject: [PATCH] Fix use-after-free bug in __dns_lookup
+
+If the type of the first answer does not match with the requested type,
+then the dotted name was freed. If there are no further answers in
+the DNS reply, this pointer was used later on in the same function.
+Additionally it is passed to the caller, and caused strange
+behaviour.
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
+---
+ libc/inet/resolv.c | 4 +---
+ 1 files changed, 1 insertions(+), 3 deletions(-)
+
+diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c
+index 056539f..9459199 100644
+--- a/libc/inet/resolv.c
++++ b/libc/inet/resolv.c
+@@ -1517,10 +1517,8 @@ int attribute_hidden __dns_lookup(const char *name,
+ memcpy(a, &ma, sizeof(ma));
+ if (a->atype != T_SIG && (NULL == a->buf || (type != T_A && type != T_AAAA)))
+ break;
+- if (a->atype != type) {
+- free(a->dotted);
++ if (a->atype != type)
+ continue;
+- }
+ a->add_count = h.ancount - j - 1;
+ if ((a->rdlength + sizeof(struct in_addr*)) * a->add_count > a->buflen)
+ break;
+--
+1.7.0
+