summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Korsgaard <jacmet@sunsite.dk>2013-08-31 21:32:29 (GMT)
committer Peter Korsgaard <jacmet@sunsite.dk>2013-08-31 21:32:29 (GMT)
commit91141b141190b481422b7aea56e8f4d265c44e88 (patch)
tree9348d1efe1cd68f40e350b3b0b26d2ae102272dc
parent7b48cee91f9acdf46a27440ee2a44acf8fa63040 (diff)
parent90fb70b4c37ad3a3178b51c7941881aa8dfd8fa6 (diff)
downloadbuildroot-91141b141190b481422b7aea56e8f4d265c44e88.tar.gz
buildroot-91141b141190b481422b7aea56e8f4d265c44e88.tar.bz2
Merge branch 'next'
-rw-r--r--Makefile4
-rw-r--r--board/wandboard/readme.txt37
-rw-r--r--board/wandboard/uboot-env.txt20
-rw-r--r--boot/barebox/Config.in4
-rw-r--r--configs/wandboard_defconfig22
-rw-r--r--package/Config.in10
-rw-r--r--package/atk/atk-glib-fix.patch681
-rw-r--r--package/atk/atk.mk6
-rw-r--r--package/busybox/busybox.mk23
-rw-r--r--package/ccache/ccache.mk6
-rw-r--r--package/cgilua/Config.in1
-rw-r--r--package/cgilua/cgilua.mk1
-rw-r--r--package/cjson/cjson.mk5
-rw-r--r--package/copas/Config.in1
-rw-r--r--package/copas/copas.mk1
-rw-r--r--package/coxpcall/coxpcall.mk1
-rw-r--r--package/cpanminus/cpanminus.mk12
-rw-r--r--package/crosstool-ng/crosstool-ng.mk2
-rw-r--r--package/cryptsetup/Config.in17
-rw-r--r--package/cryptsetup/cryptsetup.mk15
-rw-r--r--package/duma/Config.in20
-rw-r--r--package/duma/duma-01-fix-cross-compilation.patch37
-rw-r--r--package/duma/duma.mk34
-rw-r--r--package/harfbuzz/Config.in13
-rw-r--r--package/harfbuzz/harfbuzz.mk44
-rw-r--r--package/kobs-ng/Config.in9
-rw-r--r--package/kobs-ng/kobs-ng-fix-mtd-defines.patch73
-rw-r--r--package/kobs-ng/kobs-ng.mk13
-rw-r--r--package/luasec/Config.in9
-rw-r--r--package/luasec/luasec.mk33
-rw-r--r--package/luasql/Config.in21
-rw-r--r--package/luasql/luasql.mk39
-rw-r--r--package/lxc/Config.in14
-rw-r--r--package/lxc/lxc.mk14
-rw-r--r--package/mkpasswd/config.h95
-rw-r--r--package/mkpasswd/mkpasswd.c456
-rw-r--r--package/mkpasswd/mkpasswd.mk25
-rw-r--r--package/mkpasswd/utils.c96
-rw-r--r--package/mkpasswd/utils.h56
-rw-r--r--package/multimedia/gst1-plugins-bad/gst1-plugins-bad.mk2
-rw-r--r--package/multimedia/gst1-plugins-base/gst1-plugins-base.mk2
-rw-r--r--package/multimedia/gst1-plugins-good/gst1-plugins-good-dyn-multi-udpsink-unbreak-on-IPv6-systems-after-1302.patch44
-rw-r--r--package/multimedia/gst1-plugins-good/gst1-plugins-good.mk2
-rw-r--r--package/multimedia/gst1-plugins-ugly/gst1-plugins-ugly.mk2
-rw-r--r--package/multimedia/gstreamer1/gstreamer1.mk2
-rw-r--r--package/neon/Config.in35
-rw-r--r--package/orbit/Config.in10
-rw-r--r--package/orbit/orbit-01-fix-installation.patch26
-rw-r--r--package/orbit/orbit.mk19
-rw-r--r--package/orc/orc.mk2
-rw-r--r--package/perl/perl.mk2
-rw-r--r--package/pkg-generic.mk4
-rw-r--r--package/rpm/Config.in7
-rw-r--r--package/sstrip/sstrip.mk5
-rw-r--r--package/subversion/Config.in11
-rw-r--r--package/subversion/subversion.mk28
-rw-r--r--package/trace-cmd/Config.in16
-rw-r--r--package/trace-cmd/trace-cmd.mk26
-rw-r--r--package/uclibc/uclibc.mk14
-rw-r--r--package/wsapi/Config.in1
-rw-r--r--package/wsapi/wsapi.mk1
-rw-r--r--package/xavante/Config.in1
-rw-r--r--package/xavante/xavante.mk1
-rw-r--r--support/dependencies/dependencies.mk6
-rwxr-xr-xsupport/dependencies/dependencies.sh8
-rw-r--r--system/system.mk10
-rw-r--r--toolchain/toolchain-buildroot/Config.in1
67 files changed, 1443 insertions, 815 deletions
diff --git a/Makefile b/Makefile
index 4aebfa2..3b5d921 100644
--- a/Makefile
+++ b/Makefile
@@ -222,10 +222,6 @@ GNU_HOST_NAME:=$(shell support/gnuconfig/config.guess)
#
################################################################################
-ifeq ($(BR2_CCACHE),y)
-BASE_TARGETS += host-ccache
-endif
-
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
BASE_TARGETS += toolchain-buildroot
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
diff --git a/board/wandboard/readme.txt b/board/wandboard/readme.txt
new file mode 100644
index 0000000..4dd9c2c
--- /dev/null
+++ b/board/wandboard/readme.txt
@@ -0,0 +1,37 @@
+Minimal board support for the Wandboard
+
+Wandboard's homepage is here: http://www.wandboard.org/
+
+This config is only tested with the dual core wandboard.
+
+Installing:
+
+You need a micro SD card and a slot/adapter for your development machine.
+
+Partition the SD card leaving at least 1 MB in front of the first partition.
+
+Partition layout (example):
+
+Disk /dev/sdi: 3965 MB, 3965190144 bytes
+255 heads, 63 sectors/track, 482 cylinders
+Units = cylinders of 16065 * 512 = 8225280 bytes
+Sector size (logical/physical): 512 bytes / 512 bytes
+I/O size (minimum/optimal): 512 bytes / 512 bytes
+Disk identifier: 0x77b47445
+
+ Device Boot Start End Blocks Id System
+/dev/sdi1 2 482 3863632+ 83 Linux
+
+Copy u-boot and its environment to the SD card:
+sudo dd if=output/images/u-boot.imx bs=512 seek=2 of=/dev/sd<x>
+sudo dd if=output/images/uboot-env.bin bs=512 seek=768 of=/dev/sd<x>
+
+Copy the root filesystem:
+sudo dd if=output/images/rootfs.ext2 of=/dev/sd<x>1
+
+Alternative commands to copy root filesystem:
+sudo mkfs.ext4 /dev/sd<x>1
+sudo mount /dev/sd<x>1 /mnt
+sudo tar xf output/images/rootfs.tar -C /mnt
+sudo umount /mnt
+
diff --git a/board/wandboard/uboot-env.txt b/board/wandboard/uboot-env.txt
new file mode 100644
index 0000000..7ca2b1a
--- /dev/null
+++ b/board/wandboard/uboot-env.txt
@@ -0,0 +1,20 @@
+baudrate=115200
+bootcmd=mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loaduimage; then run mmcboot; else run netboot; fi; fi; else run netboot; fi
+bootdelay=3
+bootscript=echo Running bootscript from mmc ...; source
+console=ttymxc0
+ethact=FEC
+ethaddr=00:1f:7b:b2:05:ee
+ethprime=FEC
+loadaddr=0x12000000
+loadbootscript=ext2load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
+loaduimage=ext2load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}
+mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot}
+mmcboot=echo Booting from mmc ...; run mmcargs; bootm;
+mmcdev=0
+mmcpart=1
+mmcroot=/dev/mmcblk0p1 rootwait rw
+netargs=setenv bootargs console=${console},${baudrate} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
+netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${get_cmd} ${uimage}; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if ${get_cmd} ${fdt_addr} ${fdt_file}; then bootm ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootm; else echo WARN: Cannot load the DT; fi; fi; else bootm; fi;
+script=boot/boot.scr
+uimage=boot/uImage
diff --git a/boot/barebox/Config.in b/boot/barebox/Config.in
index 156cd73..04929ea 100644
--- a/boot/barebox/Config.in
+++ b/boot/barebox/Config.in
@@ -12,7 +12,7 @@ choice
Select the specific Barebox version you want to use
config BR2_TARGET_BAREBOX_LATEST_VERSION
- bool "2013.07.0"
+ bool "2013.08.0"
config BR2_TARGET_BAREBOX_CUSTOM_VERSION
bool "Custom version"
@@ -40,7 +40,7 @@ endif
config BR2_TARGET_BAREBOX_VERSION
string
- default "2013.07.0" if BR2_TARGET_BAREBOX_LATEST_VERSION
+ default "2013.08.0" if BR2_TARGET_BAREBOX_LATEST_VERSION
default $BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE if BR2_TARGET_BAREBOX_CUSTOM_VERSION
default "custom" if BR2_TARGET_BAREBOX_CUSTOM_TARBALL
default $BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION if BR2_TARGET_BAREBOX_CUSTOM_GIT
diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
new file mode 100644
index 0000000..ca4ce87
--- /dev/null
+++ b/configs/wandboard_defconfig
@@ -0,0 +1,22 @@
+BR2_arm=y
+BR2_cortex_a9=y
+BR2_KERNEL_HEADERS_3_0=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="wandboard_dl"
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_GIT_REPO_URL="git://git.denx.de/u-boot-imx.git"
+BR2_TARGET_UBOOT_CUSTOM_GIT_VERSION="326ea986ac150acdc7656d57fca647db80b50158"
+BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
+BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.imx"
+BR2_TARGET_UBOOT_ENVIMAGE=y
+BR2_TARGET_UBOOT_ENVIMAGE_SOURCE="board/wandboard/uboot-env.txt"
+BR2_TARGET_UBOOT_ENVIMAGE_SIZE="0x2000"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL="git://repo.or.cz/wandboard.git"
+BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION="86429847b5152f040f190015faedcac49b243328"
+BR2_LINUX_KERNEL_DEFCONFIG="wandboard"
+BR2_LINUX_KERNEL_INSTALL_TARGET=y
diff --git a/package/Config.in b/package/Config.in
index 97cd7da..6306947 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -23,6 +23,7 @@ source "package/dhrystone/Config.in"
source "package/dstat/Config.in"
source "package/dmalloc/Config.in"
source "package/dropwatch/Config.in"
+source "package/duma/Config.in"
source "package/gdb/Config.in"
source "package/iozone/Config.in"
source "package/kexec/Config.in"
@@ -48,6 +49,7 @@ source "package/strace/Config.in"
source "package/stress/Config.in"
source "package/sysprof/Config.in"
source "package/tinymembench/Config.in"
+source "package/trace-cmd/Config.in"
source "package/whetstone/Config.in"
source "package/valgrind/Config.in"
source "package/pv/Config.in"
@@ -95,6 +97,7 @@ if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
source "package/sed/Config.in"
endif
source "package/sstrip/Config.in"
+source "package/subversion/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
source "package/tar/Config.in"
endif
@@ -207,6 +210,7 @@ source "package/f2fs-tools/Config.in"
source "package/flashbench/Config.in"
source "package/genext2fs/Config.in"
source "package/genromfs/Config.in"
+source "package/kobs-ng/Config.in"
source "package/makedevs/Config.in"
source "package/mtd/Config.in"
source "package/nfs-utils/Config.in"
@@ -233,6 +237,7 @@ source "package/freescale-imx/Config.in"
source "package/a10disp/Config.in"
source "package/acpid/Config.in"
source "package/cdrkit/Config.in"
+source "package/cryptsetup/Config.in"
source "package/dbus/Config.in"
source "package/dbus-glib/Config.in"
source "package/dbus-python/Config.in"
@@ -333,9 +338,12 @@ source "package/luaexpat/Config.in"
source "package/luaexpatutils/Config.in"
source "package/luafilesystem/Config.in"
source "package/luaposix/Config.in"
+source "package/luasec/Config.in"
source "package/luasocket/Config.in"
+source "package/luasql/Config.in"
source "package/lua-ev/Config.in"
source "package/lua-msgpack-native/Config.in"
+source "package/orbit/Config.in"
source "package/rings/Config.in"
source "package/wsapi/Config.in"
source "package/xavante/Config.in"
@@ -458,6 +466,7 @@ source "package/gd/Config.in"
source "package/giblib/Config.in"
source "package/gtk2-engines/Config.in"
source "package/gtk2-themes/Config.in"
+source "package/harfbuzz/Config.in"
source "package/imlib2/Config.in"
source "package/jpeg/Config.in"
source "package/lcms2/Config.in"
@@ -896,6 +905,7 @@ source "package/cpuload/Config.in"
source "package/htop/Config.in"
source "package/keyutils/Config.in"
source "package/kmod/Config.in"
+source "package/lxc/Config.in"
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
source "package/module-init-tools/Config.in"
endif
diff --git a/package/atk/atk-glib-fix.patch b/package/atk/atk-glib-fix.patch
deleted file mode 100644
index 3cbb47b..0000000
--- a/package/atk/atk-glib-fix.patch
+++ /dev/null
@@ -1,681 +0,0 @@
-[PATCH] Fix build with modern glib versions
-
-G_CONST_RETURN is deprecated, so replace with 'const' instead.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- atk/atkaction.c | 8 ++++----
- atk/atkaction.h | 16 ++++++++--------
- atk/atkdocument.c | 6 +++---
- atk/atkdocument.h | 12 ++++++------
- atk/atkimage.c | 4 ++--
- atk/atkimage.h | 8 ++++----
- atk/atkobject.c | 18 +++++++++---------
- atk/atkobject.h | 12 ++++++------
- atk/atkrelation.c | 2 +-
- atk/atkrelation.h | 2 +-
- atk/atkstate.c | 2 +-
- atk/atkstate.h | 2 +-
- atk/atkstreamablecontent.c | 2 +-
- atk/atkstreamablecontent.h | 10 +++++-----
- atk/atktable.c | 4 ++--
- atk/atktable.h | 8 ++++----
- atk/atktext.c | 4 ++--
- atk/atktext.h | 4 ++--
- atk/atkutil.c | 6 +++---
- atk/atkutil.h | 10 +++++-----
- tests/testrelation.c | 6 +++---
- tests/teststateset.c | 2 +-
- 22 files changed, 74 insertions(+), 74 deletions(-)
-
-Index: atk-1.33.6/atk/atkaction.c
-===================================================================
---- atk-1.33.6.orig/atk/atkaction.c
-+++ atk-1.33.6/atk/atkaction.c
-@@ -101,7 +101,7 @@
- * Returns a description string, or %NULL
- * if @action does not implement this interface.
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_action_get_description (AtkAction *obj,
- gint i)
- {
-@@ -140,7 +140,7 @@
- * Returns a name string, or %NULL
- * if @action does not implement this interface.
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_action_get_name (AtkAction *obj,
- gint i)
- {
-@@ -166,7 +166,7 @@
- * Returns a name string, or %NULL
- * if @action does not implement this interface.
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_action_get_localized_name (AtkAction *obj,
- gint i)
- {
-@@ -203,7 +203,7 @@
- * if there is no keybinding for this action.
- *
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_action_get_keybinding (AtkAction *obj,
- gint i)
- {
-Index: atk-1.33.6/atk/atkaction.h
-===================================================================
---- atk-1.33.6.orig/atk/atkaction.h
-+++ atk-1.33.6/atk/atkaction.h
-@@ -55,16 +55,16 @@
- gboolean (*do_action) (AtkAction *action,
- gint i);
- gint (*get_n_actions) (AtkAction *action);
-- G_CONST_RETURN gchar* (*get_description) (AtkAction *action,
-+ const gchar* (*get_description) (AtkAction *action,
- gint i);
-- G_CONST_RETURN gchar* (*get_name) (AtkAction *action,
-+ const gchar* (*get_name) (AtkAction *action,
- gint i);
-- G_CONST_RETURN gchar* (*get_keybinding) (AtkAction *action,
-+ const gchar* (*get_keybinding) (AtkAction *action,
- gint i);
- gboolean (*set_description) (AtkAction *action,
- gint i,
- const gchar *desc);
-- G_CONST_RETURN gchar* (*get_localized_name)(AtkAction *action,
-+ const gchar* (*get_localized_name)(AtkAction *action,
- gint i);
- AtkFunction pad2;
- };
-@@ -85,11 +85,11 @@
- gboolean atk_action_do_action (AtkAction *action,
- gint i);
- gint atk_action_get_n_actions (AtkAction *action);
--G_CONST_RETURN gchar* atk_action_get_description (AtkAction *action,
-+const gchar* atk_action_get_description (AtkAction *action,
- gint i);
--G_CONST_RETURN gchar* atk_action_get_name (AtkAction *action,
-+const gchar* atk_action_get_name (AtkAction *action,
- gint i);
--G_CONST_RETURN gchar* atk_action_get_keybinding (AtkAction *action,
-+const gchar* atk_action_get_keybinding (AtkAction *action,
- gint i);
- gboolean atk_action_set_description (AtkAction *action,
- gint i,
-@@ -97,7 +97,7 @@
-
- /* NEW in ATK 1.1: */
-
--G_CONST_RETURN gchar* atk_action_get_localized_name (AtkAction *action,
-+const gchar* atk_action_get_localized_name (AtkAction *action,
- gint i);
-
- /*
-Index: atk-1.33.6/atk/atkdocument.c
-===================================================================
---- atk-1.33.6.orig/atk/atkdocument.c
-+++ atk-1.33.6/atk/atkdocument.c
-@@ -93,7 +93,7 @@
- *
- * Returns: a string indicating the document type
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_document_get_document_type (AtkDocument *document)
- {
- AtkDocumentIface *iface;
-@@ -155,7 +155,7 @@
- * locale of the document content as a whole, or NULL if
- * the document content does not specify a locale.
- **/
--G_CONST_RETURN gchar *
-+const gchar *
- atk_document_get_locale (AtkDocument *document)
- {
- AtkDocumentIface *iface;
-@@ -219,7 +219,7 @@
- * document, or NULL if a value for #attribute_name has not been specified
- * for this document.
- */
--G_CONST_RETURN gchar *
-+const gchar *
- atk_document_get_attribute_value (AtkDocument *document,
- const gchar *attribute_name)
- {
-Index: atk-1.33.6/atk/atkdocument.h
-===================================================================
---- atk-1.33.6.orig/atk/atkdocument.h
-+++ atk-1.33.6/atk/atkdocument.h
-@@ -49,12 +49,12 @@
- struct _AtkDocumentIface
- {
- GTypeInterface parent;
-- G_CONST_RETURN gchar* ( *get_document_type) (AtkDocument *document);
-+ const gchar* ( *get_document_type) (AtkDocument *document);
- gpointer ( *get_document) (AtkDocument *document);
-
-- G_CONST_RETURN gchar* ( *get_document_locale) (AtkDocument *document);
-+ const gchar* ( *get_document_locale) (AtkDocument *document);
- AtkAttributeSet * ( *get_document_attributes) (AtkDocument *document);
-- G_CONST_RETURN gchar* ( *get_document_attribute_value) (AtkDocument *document,
-+ const gchar* ( *get_document_attribute_value) (AtkDocument *document,
- const gchar *attribute_name);
- gboolean ( *set_document_attribute) (AtkDocument *document,
- const gchar *attribute_name,
-@@ -68,11 +68,11 @@
-
- GType atk_document_get_type (void);
-
--G_CONST_RETURN gchar* atk_document_get_document_type (AtkDocument *document);
-+const gchar* atk_document_get_document_type (AtkDocument *document);
- gpointer atk_document_get_document (AtkDocument *document);
--G_CONST_RETURN gchar* atk_document_get_locale (AtkDocument *document);
-+const gchar* atk_document_get_locale (AtkDocument *document);
- AtkAttributeSet* atk_document_get_attributes (AtkDocument *document);
--G_CONST_RETURN gchar* atk_document_get_attribute_value (AtkDocument *document,
-+const gchar* atk_document_get_attribute_value (AtkDocument *document,
- const gchar *attribute_name);
- gboolean atk_document_set_attribute_value (AtkDocument *document,
- const gchar *attribute_name,
-Index: atk-1.33.6/atk/atkimage.c
-===================================================================
---- atk-1.33.6.orig/atk/atkimage.c
-+++ atk-1.33.6/atk/atkimage.c
-@@ -46,7 +46,7 @@
- *
- * Returns: a string representing the image description
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_image_get_image_description (AtkImage *image)
- {
- AtkImageIface *iface;
-@@ -192,7 +192,7 @@
- * Returns a string corresponding to the POSIX LC_MESSAGES locale used by the image description, or NULL if the image does not specify a locale.
- *
- */
--G_CONST_RETURN gchar*
-+const gchar*
- atk_image_get_image_locale (AtkImage *image)
- {
-
-Index: atk-1.33.6/atk/atkimage.h
-===================================================================
---- atk-1.33.6.orig/atk/atkimage.h
-+++ atk-1.33.6/atk/atkimage.h
-@@ -53,13 +53,13 @@
- gint *x,
- gint *y,
- AtkCoordType coord_type);
-- G_CONST_RETURN gchar* ( *get_image_description) (AtkImage *image);
-+ const gchar* ( *get_image_description) (AtkImage *image);
- void ( *get_image_size) (AtkImage *image,
- gint *width,
- gint *height);
- gboolean ( *set_image_description) (AtkImage *image,
- const gchar *description);
-- G_CONST_RETURN gchar* ( *get_image_locale) (AtkImage *image);
-+ const gchar* ( *get_image_locale) (AtkImage *image);
-
- AtkFunction pad1;
-
-@@ -67,7 +67,7 @@
-
- GType atk_image_get_type (void);
-
--G_CONST_RETURN gchar* atk_image_get_image_description (AtkImage *image);
-+const gchar* atk_image_get_image_description (AtkImage *image);
-
- void atk_image_get_image_size (AtkImage *image,
- gint *width,
-@@ -80,7 +80,7 @@
- gint *y,
- AtkCoordType coord_type);
-
--G_CONST_RETURN gchar* atk_image_get_image_locale (AtkImage *image);
-+const gchar* atk_image_get_image_locale (AtkImage *image);
-
- G_END_DECLS
-
-Index: atk-1.33.6/atk/atkobject.c
-===================================================================
---- atk-1.33.6.orig/atk/atkobject.c
-+++ atk-1.33.6/atk/atkobject.c
-@@ -285,9 +285,9 @@
- GValue *value,
- GParamSpec *pspec);
- static void atk_object_finalize (GObject *object);
--static G_CONST_RETURN gchar*
-+static const gchar*
- atk_object_real_get_name (AtkObject *object);
--static G_CONST_RETURN gchar*
-+static const gchar*
- atk_object_real_get_description
- (AtkObject *object);
- static AtkObject* atk_object_real_get_parent (AtkObject *object);
-@@ -692,7 +692,7 @@
- *
- * Returns: a character string representing the accessible name of the object.
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_object_get_name (AtkObject *accessible)
- {
- AtkObjectClass *klass;
-@@ -716,7 +716,7 @@
- * of the accessible.
- *
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_object_get_description (AtkObject *accessible)
- {
- AtkObjectClass *klass;
-@@ -1125,7 +1125,7 @@
- AtkState state,
- gboolean value)
- {
-- G_CONST_RETURN gchar* name;
-+ const gchar* name;
-
- g_return_if_fail (ATK_IS_OBJECT (accessible));
-
-@@ -1323,13 +1323,13 @@
- G_OBJECT_CLASS (parent_class)->finalize (object);
- }
-
--static G_CONST_RETURN gchar*
-+static const gchar*
- atk_object_real_get_name (AtkObject *object)
- {
- return object->name;
- }
-
--static G_CONST_RETURN gchar*
-+static const gchar*
- atk_object_real_get_description (AtkObject *object)
- {
- return object->description;
-@@ -1491,7 +1491,7 @@
- *
- * Returns: the string describing the AtkRole
- */
--G_CONST_RETURN gchar*
-+const gchar*
- atk_role_get_name (AtkRole role)
- {
- if (role >= 0 && role < ATK_ROLE_LAST_DEFINED)
-@@ -1518,7 +1518,7 @@
- *
- * Returns: the localized string describing the AtkRole
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_role_get_localized_name (AtkRole role)
- {
- gettext_initialization ();
-Index: atk-1.33.6/atk/atkobject.h
-===================================================================
---- atk-1.33.6.orig/atk/atkobject.h
-+++ atk-1.33.6/atk/atkobject.h
-@@ -381,11 +381,11 @@
- /*
- * Gets the accessible name of the object
- */
-- G_CONST_RETURN gchar* (* get_name) (AtkObject *accessible);
-+ const gchar* (* get_name) (AtkObject *accessible);
- /*
- * Gets the accessible description of the object
- */
-- G_CONST_RETURN gchar* (* get_description) (AtkObject *accessible);
-+ const gchar* (* get_description) (AtkObject *accessible);
- /*
- * Gets the accessible parent of the object
- */
-@@ -535,8 +535,8 @@
- * Properties directly supported by AtkObject
- */
-
--G_CONST_RETURN gchar* atk_object_get_name (AtkObject *accessible);
--G_CONST_RETURN gchar* atk_object_get_description (AtkObject *accessible);
-+const gchar* atk_object_get_name (AtkObject *accessible);
-+const gchar* atk_object_get_description (AtkObject *accessible);
- AtkObject* atk_object_get_parent (AtkObject *accessible);
- gint atk_object_get_n_accessible_children (AtkObject *accessible);
- AtkObject* atk_object_ref_accessible_child (AtkObject *accessible,
-@@ -571,7 +571,7 @@
- void atk_object_initialize (AtkObject *accessible,
- gpointer data);
-
--G_CONST_RETURN gchar* atk_role_get_name (AtkRole role);
-+const gchar* atk_role_get_name (AtkRole role);
- AtkRole atk_role_for_name (const gchar *name);
-
-
-@@ -582,7 +582,7 @@
- gboolean atk_object_remove_relationship (AtkObject *object,
- AtkRelationType relationship,
- AtkObject *target);
--G_CONST_RETURN gchar* atk_role_get_localized_name (AtkRole role);
-+const gchar* atk_role_get_localized_name (AtkRole role);
-
- /* */
-
-Index: atk-1.33.6/atk/atkrelation.c
-===================================================================
---- atk-1.33.6.orig/atk/atkrelation.c
-+++ atk-1.33.6/atk/atkrelation.c
-@@ -130,7 +130,7 @@
- *
- * Returns: the string describing the AtkRelationType
- */
--G_CONST_RETURN gchar*
-+const gchar*
- atk_relation_type_get_name (AtkRelationType type)
- {
- GTypeClass *type_class;
-Index: atk-1.33.6/atk/atkrelation.h
-===================================================================
---- atk-1.33.6.orig/atk/atkrelation.h
-+++ atk-1.33.6/atk/atkrelation.h
-@@ -61,7 +61,7 @@
- GType atk_relation_get_type (void);
-
- AtkRelationType atk_relation_type_register (const gchar *name);
--G_CONST_RETURN gchar* atk_relation_type_get_name (AtkRelationType type);
-+const gchar* atk_relation_type_get_name (AtkRelationType type);
- AtkRelationType atk_relation_type_for_name (const gchar *name);
-
- /*
-Index: atk-1.33.6/atk/atkstate.c
-===================================================================
---- atk-1.33.6.orig/atk/atkstate.c
-+++ atk-1.33.6/atk/atkstate.c
-@@ -57,7 +57,7 @@
- *
- * Returns: the string describing the AtkStateType
- */
--G_CONST_RETURN gchar*
-+const gchar*
- atk_state_type_get_name (AtkStateType type)
- {
- GTypeClass *type_class;
-Index: atk-1.33.6/atk/atkstate.h
-===================================================================
---- atk-1.33.6.orig/atk/atkstate.h
-+++ atk-1.33.6/atk/atkstate.h
-@@ -170,7 +170,7 @@
-
- AtkStateType atk_state_type_register (const gchar *name);
-
--G_CONST_RETURN gchar* atk_state_type_get_name (AtkStateType type);
-+const gchar* atk_state_type_get_name (AtkStateType type);
- AtkStateType atk_state_type_for_name (const gchar *name);
-
- G_END_DECLS
-Index: atk-1.33.6/atk/atkstreamablecontent.c
-===================================================================
---- atk-1.33.6.orig/atk/atkstreamablecontent.c
-+++ atk-1.33.6/atk/atkstreamablecontent.c
-@@ -73,7 +73,7 @@
- * Returns : a gchar* representing the specified mime type; the caller
- * should not free the character string.
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_streamable_content_get_mime_type (AtkStreamableContent *streamable,
- gint i)
- {
-Index: atk-1.33.6/atk/atkstreamablecontent.h
-===================================================================
---- atk-1.33.6.orig/atk/atkstreamablecontent.h
-+++ atk-1.33.6/atk/atkstreamablecontent.h
-@@ -54,11 +54,11 @@
- * at index 0 should be considered the "default" data type for the stream.
- *
- * This assumes that the strings for the mime types are stored in the
-- * AtkStreamableContent. Alternatively the G_CONST_RETURN could be removed
-+ * AtkStreamableContent. Alternatively the const could be removed
- * and the caller would be responsible for calling g_free() on the
- * returned value.
- */
-- G_CONST_RETURN gchar* (* get_mime_type) (AtkStreamableContent *streamable,
-+ const gchar* (* get_mime_type) (AtkStreamableContent *streamable,
- gint i);
- /*
- * One possible implementation for this method is that it constructs the
-@@ -80,7 +80,7 @@
- * constructed. Note that it is possible for get_uri to return NULL but for
- * get_stream to work nonetheless, since not all GIOChannels connect to URIs.
- */
-- G_CONST_RETURN gchar* (* get_uri) (AtkStreamableContent *streamable,
-+ const gchar* (* get_uri) (AtkStreamableContent *streamable,
- const gchar *mime_type);
-
-
-@@ -92,12 +92,12 @@
-
- gint atk_streamable_content_get_n_mime_types (AtkStreamableContent *streamable);
-
--G_CONST_RETURN gchar* atk_streamable_content_get_mime_type (AtkStreamableContent *streamable,
-+const gchar* atk_streamable_content_get_mime_type (AtkStreamableContent *streamable,
- gint i);
- GIOChannel* atk_streamable_content_get_stream (AtkStreamableContent *streamable,
- const gchar *mime_type);
-
--G_CONST_RETURN gchar* atk_streamable_content_get_uri (AtkStreamableContent *streamable,
-+const gchar* atk_streamable_content_get_uri (AtkStreamableContent *streamable,
- const gchar *mime_type);
-
- G_END_DECLS
-Index: atk-1.33.6/atk/atktable.c
-===================================================================
---- atk-1.33.6.orig/atk/atktable.c
-+++ atk-1.33.6/atk/atktable.c
-@@ -301,7 +301,7 @@
- * Returns: a gchar* representing the column description, or %NULL
- * if value does not implement this interface.
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_table_get_column_description (AtkTable *table,
- gint column)
- {
-@@ -405,7 +405,7 @@
- * Returns: a gchar* representing the row description, or %NULL
- * if value does not implement this interface.
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_table_get_row_description (AtkTable *table,
- gint row)
- {
-Index: atk-1.33.6/atk/atktable.h
-===================================================================
---- atk-1.33.6.orig/atk/atktable.h
-+++ atk-1.33.6/atk/atktable.h
-@@ -69,12 +69,12 @@
- gint column);
- AtkObject*
- (* get_caption) (AtkTable *table);
-- G_CONST_RETURN gchar*
-+ const gchar*
- (* get_column_description) (AtkTable *table,
- gint column);
- AtkObject* (* get_column_header) (AtkTable *table,
- gint column);
-- G_CONST_RETURN gchar*
-+ const gchar*
- (* get_row_description) (AtkTable *table,
- gint row);
- AtkObject* (* get_row_header) (AtkTable *table,
-@@ -163,12 +163,12 @@
- gint column);
- AtkObject*
- atk_table_get_caption (AtkTable *table);
--G_CONST_RETURN gchar*
-+const gchar*
- atk_table_get_column_description (AtkTable *table,
- gint column);
- AtkObject* atk_table_get_column_header (AtkTable *table,
- gint column);
--G_CONST_RETURN gchar*
-+const gchar*
- atk_table_get_row_description (AtkTable *table,
- gint row);
- AtkObject* atk_table_get_row_header (AtkTable *table,
-Index: atk-1.33.6/atk/atktext.c
-===================================================================
---- atk-1.33.6.orig/atk/atktext.c
-+++ atk-1.33.6/atk/atktext.c
-@@ -1054,7 +1054,7 @@
- *
- * Returns: a string containing the name; this string should not be freed
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_text_attribute_get_name (AtkTextAttribute attr)
- {
- GTypeClass *type_class;
-@@ -1150,7 +1150,7 @@
- * Returns: a string containing the value; this string should not be freed;
- * NULL is returned if there are no values maintained for the attr value.
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_text_attribute_get_value (AtkTextAttribute attr,
- gint index)
- {
-Index: atk-1.33.6/atk/atktext.h
-===================================================================
---- atk-1.33.6.orig/atk/atktext.h
-+++ atk-1.33.6/atk/atktext.h
-@@ -355,9 +355,9 @@
- AtkTextClipType y_clip_type);
- void atk_text_free_ranges (AtkTextRange **ranges);
- void atk_attribute_set_free (AtkAttributeSet *attrib_set);
--G_CONST_RETURN gchar* atk_text_attribute_get_name (AtkTextAttribute attr);
-+const gchar* atk_text_attribute_get_name (AtkTextAttribute attr);
- AtkTextAttribute atk_text_attribute_for_name (const gchar *name);
--G_CONST_RETURN gchar* atk_text_attribute_get_value (AtkTextAttribute attr,
-+const gchar* atk_text_attribute_get_value (AtkTextAttribute attr,
- gint index_);
-
- G_END_DECLS
-Index: atk-1.33.6/atk/atkutil.c
-===================================================================
---- atk-1.33.6.orig/atk/atkutil.c
-+++ atk-1.33.6/atk/atkutil.c
-@@ -342,7 +342,7 @@
- *
- * Returns: name string for the GUI toolkit implementing ATK for this application
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_get_toolkit_name (void)
- {
- const gchar *retval;
-@@ -367,7 +367,7 @@
- *
- * Returns: version string for the GUI toolkit implementing ATK for this application
- **/
--G_CONST_RETURN gchar*
-+const gchar*
- atk_get_toolkit_version (void)
- {
- const gchar *retval;
-@@ -394,7 +394,7 @@
- *
- * Since: 1.20
- */
--G_CONST_RETURN gchar *
-+const gchar *
- atk_get_version (void)
- {
- return VERSION;
-Index: atk-1.33.6/atk/atkutil.h
-===================================================================
---- atk-1.33.6.orig/atk/atkutil.h
-+++ atk-1.33.6/atk/atkutil.h
-@@ -147,8 +147,8 @@
- gpointer data);
- void (* remove_key_event_listener) (guint listener_id);
- AtkObject* (* get_root) (void);
-- G_CONST_RETURN gchar* (* get_toolkit_name) (void);
-- G_CONST_RETURN gchar* (* get_toolkit_version) (void);
-+ const gchar* (* get_toolkit_name) (void);
-+ const gchar* (* get_toolkit_version) (void);
- };
- GType atk_util_get_type (void);
-
-@@ -229,17 +229,17 @@
- /*
- * Returns name string for the GUI toolkit.
- */
--G_CONST_RETURN gchar *atk_get_toolkit_name (void);
-+const gchar *atk_get_toolkit_name (void);
-
- /*
- * Returns version string for the GUI toolkit.
- */
--G_CONST_RETURN gchar *atk_get_toolkit_version (void);
-+const gchar *atk_get_toolkit_version (void);
-
- /*
- * Gets the current version of ATK
- */
--G_CONST_RETURN gchar *atk_get_version (void);
-+const gchar *atk_get_version (void);
-
- /* --- GType boilerplate --- */
- /* convenience macros for atk type implementations, which for a type GtkGadgetAccessible will:
-Index: atk-1.33.6/tests/testrelation.c
-===================================================================
---- atk-1.33.6.orig/tests/testrelation.c
-+++ atk-1.33.6/tests/testrelation.c
-@@ -28,7 +28,7 @@
- test_relation (void)
- {
- AtkRelationType type1, type2;
-- G_CONST_RETURN gchar *name;
-+ const gchar *name;
- AtkObject *obj;
- gboolean ret_value;
- AtkRelationSet *set;
-@@ -169,7 +169,7 @@
- test_role (void)
- {
- AtkRole role1, role2;
-- G_CONST_RETURN gchar *name;
-+ const gchar *name;
-
- name = atk_role_get_name (ATK_ROLE_PAGE_TAB);
- g_return_val_if_fail (name, FALSE);
-@@ -230,7 +230,7 @@
- test_text_attr (void)
- {
- AtkTextAttribute attr1, attr2;
-- G_CONST_RETURN gchar *name;
-+ const gchar *name;
-
- name = atk_text_attribute_get_name (ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP);
- g_return_val_if_fail (name, FALSE);
-Index: atk-1.33.6/tests/teststateset.c
-===================================================================
---- atk-1.33.6.orig/tests/teststateset.c
-+++ atk-1.33.6/tests/teststateset.c
-@@ -208,7 +208,7 @@
- test_state (void)
- {
- AtkStateType type1, type2;
-- G_CONST_RETURN gchar *name;
-+ const gchar *name;
-
- name = atk_state_type_get_name (ATK_STATE_VISIBLE);
- g_return_val_if_fail (name, FALSE);
diff --git a/package/atk/atk.mk b/package/atk/atk.mk
index 91fe6a3..ecfec54 100644
--- a/package/atk/atk.mk
+++ b/package/atk/atk.mk
@@ -4,9 +4,9 @@
#
################################################################################
-ATK_VERSION_MAJOR = 1.33
-ATK_VERSION = $(ATK_VERSION_MAJOR).6
-ATK_SOURCE = atk-$(ATK_VERSION).tar.bz2
+ATK_VERSION_MAJOR = 2.9
+ATK_VERSION = $(ATK_VERSION_MAJOR).3
+ATK_SOURCE = atk-$(ATK_VERSION).tar.xz
ATK_SITE = http://ftp.gnome.org/pub/gnome/sources/atk/$(ATK_VERSION_MAJOR)/
ATK_LICENSE = LGPLv2+
ATK_LICENSE_FILES = COPYING
diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
index acc9008..ad8bdaf 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -75,6 +75,19 @@ define BUSYBOX_SET_MDEV
endef
endif
+ifeq ($(BR2_USE_MMU),y)
+define BUSYBOX_SET_MMU
+ $(call KCONFIG_DISABLE_OPT,CONFIG_NOMMU,$(BUSYBOX_BUILD_CONFIG))
+endef
+else
+define BUSYBOX_SET_MMU
+ $(call KCONFIG_ENABLE_OPT,CONFIG_NOMMU,$(BUSYBOX_BUILD_CONFIG))
+ $(call KCONFIG_DISABLE_OPT,CONFIG_SWAPONOFF,$(BUSYBOX_BUILD_CONFIG))
+ $(call KCONFIG_DISABLE_OPT,CONFIG_ASH,$(BUSYBOX_BUILD_CONFIG))
+ $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH,$(BUSYBOX_BUILD_CONFIG))
+endef
+endif
+
ifeq ($(BR2_LARGEFILE),y)
define BUSYBOX_SET_LARGEFILE
$(call KCONFIG_ENABLE_OPT,CONFIG_LFS,$(BUSYBOX_BUILD_CONFIG))
@@ -133,14 +146,6 @@ define BUSYBOX_INTERNAL_SHADOW_PASSWORDS
endef
endif
-ifeq ($(BR2_USE_MMU),)
-define BUSYBOX_DISABLE_MMU_APPLETS
- $(call KCONFIG_DISABLE_OPT,CONFIG_SWAPONOFF,$(BUSYBOX_BUILD_CONFIG))
- $(call KCONFIG_DISABLE_OPT,CONFIG_ASH,$(BUSYBOX_BUILD_CONFIG))
- $(call KCONFIG_ENABLE_OPT,CONFIG_HUSH,$(BUSYBOX_BUILD_CONFIG))
-endef
-endif
-
ifeq ($(BR2_INIT_BUSYBOX),y)
define BUSYBOX_SET_INIT
$(call KCONFIG_ENABLE_OPT,CONFIG_INIT,$(BUSYBOX_BUILD_CONFIG))
@@ -172,6 +177,7 @@ endif
BUSYBOX_POST_EXTRACT_HOOKS += BUSYBOX_COPY_CONFIG
define BUSYBOX_CONFIGURE_CMDS
+ $(BUSYBOX_SET_MMU)
$(BUSYBOX_SET_LARGEFILE)
$(BUSYBOX_SET_IPV6)
$(BUSYBOX_PREFER_STATIC)
@@ -179,7 +185,6 @@ define BUSYBOX_CONFIGURE_CMDS
$(BUSYBOX_NETKITBASE)
$(BUSYBOX_NETKITTELNET)
$(BUSYBOX_INTERNAL_SHADOW_PASSWORDS)
- $(BUSYBOX_DISABLE_MMU_APPLETS)
$(BUSYBOX_SET_INIT)
$(BUSYBOX_SET_WATCHDOG)
@yes "" | $(MAKE) ARCH=$(KERNEL_ARCH) CROSS_COMPILE="$(TARGET_CROSS)" \
diff --git a/package/ccache/ccache.mk b/package/ccache/ccache.mk
index c5cb966..bead908 100644
--- a/package/ccache/ccache.mk
+++ b/package/ccache/ccache.mk
@@ -10,12 +10,6 @@ CCACHE_SOURCE = ccache-$(CCACHE_VERSION).tar.bz2
CCACHE_LICENSE = GPLv3+, others
CCACHE_LICENSE_FILES = LICENSE.txt GPL-3.0.txt
-# When ccache is being built for the host, ccache is not yet
-# available, so we have to use the special C compiler without the
-# cache.
-HOST_CCACHE_CONF_ENV = \
- CC="$(HOSTCC_NOCCACHE)"
-
# Force ccache to use its internal zlib. The problem is that without
# this, ccache would link against the zlib of the build system, but we
# might build and install a different version of zlib in $(O)/host
diff --git a/package/cgilua/Config.in b/package/cgilua/Config.in
index 01928f0..d1e7fbf 100644
--- a/package/cgilua/Config.in
+++ b/package/cgilua/Config.in
@@ -1,5 +1,6 @@
config BR2_PACKAGE_CGILUA
bool "cgilua"
+ # Runtime dependency only
select BR2_PACKAGE_LUAFILESYSTEM
help
CGILua is a tool for creating dynamic HTML pages
diff --git a/package/cgilua/cgilua.mk b/package/cgilua/cgilua.mk
index a9c8874..e327fed 100644
--- a/package/cgilua/cgilua.mk
+++ b/package/cgilua/cgilua.mk
@@ -6,7 +6,6 @@
CGILUA_VERSION = 5.1.4
CGILUA_SITE = http://github.com/downloads/keplerproject/cgilua
-CGILUA_DEPENDENCIES = luafilesystem
CGILUA_LICENSE = MIT
define CGILUA_INSTALL_TARGET_CMDS
diff --git a/package/cjson/cjson.mk b/package/cjson/cjson.mk
index ec976db..7e1d72d 100644
--- a/package/cjson/cjson.mk
+++ b/package/cjson/cjson.mk
@@ -4,11 +4,12 @@
#
################################################################################
-CJSON_VERSION = 42
+CJSON_VERSION = 58
CJSON_SITE_METHOD = svn
-CJSON_SITE = https://cjson.svn.sourceforge.net/svnroot/cjson
+CJSON_SITE = http://svn.code.sf.net/p/cjson/code
CJSON_INSTALL_STAGING = YES
CJSON_LICENSE = MIT
+CJSON_LICENSE_FILES = LICENSE
define CJSON_BUILD_CMDS
cd $(@D) && $(TARGET_CC) $(TARGET_CFLAGS) -shared -fPIC cJSON.c -o libcJSON.so
diff --git a/package/copas/Config.in b/package/copas/Config.in
index 9969c8f..21dd0eb 100644
--- a/package/copas/Config.in
+++ b/package/copas/Config.in
@@ -1,5 +1,6 @@
config BR2_PACKAGE_COPAS
bool "copas"
+ # Runtime dependency only
select BR2_PACKAGE_COXPCALL
select BR2_PACKAGE_LUASOCKET
help
diff --git a/package/copas/copas.mk b/package/copas/copas.mk
index 347b575..e100f49 100644
--- a/package/copas/copas.mk
+++ b/package/copas/copas.mk
@@ -6,7 +6,6 @@
COPAS_VERSION = 1.1.6
COPAS_SITE = http://github.com/downloads/keplerproject/copas
-COPAS_DEPENDENCIES = lua coxpcall luasocket
COPAS_LICENSE = MIT
define COPAS_INSTALL_TARGET_CMDS
diff --git a/package/coxpcall/coxpcall.mk b/package/coxpcall/coxpcall.mk
index c3e4a7f..275dcde 100644
--- a/package/coxpcall/coxpcall.mk
+++ b/package/coxpcall/coxpcall.mk
@@ -6,7 +6,6 @@
COXPCALL_VERSION = 1.13.0
COXPCALL_SITE = http://luaforge.net/frs/download.php/3406
-COXPCALL_DEPENDENCIES = lua
COXPCALL_LICENSE = MIT
define COXPCALL_INSTALL_TARGET_CMDS
diff --git a/package/cpanminus/cpanminus.mk b/package/cpanminus/cpanminus.mk
index 60a72ee..52921b5 100644
--- a/package/cpanminus/cpanminus.mk
+++ b/package/cpanminus/cpanminus.mk
@@ -11,9 +11,9 @@ CPANMINUS_DEPENDENCIES = host-qemu perl $(call qstrip,$(BR2_PACKAGE_CPANMINUS_NA
CPANMINUS_RUN_PERL = $(QEMU_USER) $(STAGING_DIR)/usr/bin/perl
CPANMINUS_ARCHNAME = $(shell $(CPANMINUS_RUN_PERL) -MConfig -e "print Config->{archname}")
-CPANMINUS_PERL_LIB = $(STAGING_DIR)/usr/lib/perl
-CPANMINUS_PERL_SITELIB = $(TARGET_DIR)/usr/lib/perl
-CPANMINUS_PERL_ARCHLIB = $(CPANMINUS_PERL_LIB)/$(CPANMINUS_ARCHNAME)
+CPANMINUS_PERL_LIB = $(STAGING_DIR)/usr/lib/perl5
+CPANMINUS_PERL_SITELIB = $(TARGET_DIR)/usr/lib/perl5/site_perl/$(PERL_VERSION)
+CPANMINUS_PERL_ARCHLIB = $(CPANMINUS_PERL_LIB)/$(PERL_VERSION)/$(CPANMINUS_ARCHNAME)
CPANMINUS_PERL_SITEARCH = $(CPANMINUS_PERL_SITELIB)/$(CPANMINUS_ARCHNAME)
CPANMINUS_PERL5LIB = $(CPANMINUS_PERL_SITEARCH):$(CPANMINUS_PERL_SITELIB):$(CPANMINUS_PERL_ARCHLIB):$(CPANMINUS_PERL_LIB)
ifneq ($(BR2_PACKAGE_CPANMINUS_MIRROR),"")
@@ -27,8 +27,8 @@ define CPANMINUS_INSTALL_TARGET_CMDS
echo "PERL5LIB=$(CPANMINUS_PERL5LIB) $(CPANMINUS_RUN_PERL) \"\$$@\"" >>$(@D)/run_perl
chmod +x $(@D)/run_perl
PERL5LIB=$(CPANMINUS_PERL5LIB) \
- PERL_MM_OPT="DESTDIR=$(CPANMINUS_PERL_SITELIB) PERL=$(@D)/run_perl PERL_LIB=$(CPANMINUS_PERL_LIB) PERL_ARCHLIB=$(CPANMINUS_PERL_ARCHLIB)" \
- PERL_MB_OPT="--destdir $(CPANMINUS_PERL_SITELIB)" \
+ PERL_MM_OPT="DESTDIR=$(TARGET_DIR) PERL=$(@D)/run_perl PERL_LIB=$(CPANMINUS_PERL_LIB) PERL_ARCHLIB=$(CPANMINUS_PERL_ARCHLIB)" \
+ PERL_MB_OPT="--destdir $(TARGET_DIR)" \
RUN_PERL="$(@D)/run_perl" \
$(CPANMINUS_RUN_PERL) $(@D)/cpanm \
--perl=$(@D)/run_perl \
@@ -36,7 +36,7 @@ define CPANMINUS_INSTALL_TARGET_CMDS
--no-man-pages \
$(CPANMINUS_MIRROR) \
$(call qstrip,$(BR2_PACKAGE_CPANMINUS_MODULES))
- -find $(CPANMINUS_PERL_SITEARCH) -type f -name *.bs -exec rm -f {} \;
+ -find $(CPANMINUS_PERL_SITELIB) -type f -name *.bs -exec rm -f {} \;
endef
else
define CPANMINUS_INSTALL_TARGET_CMDS
diff --git a/package/crosstool-ng/crosstool-ng.mk b/package/crosstool-ng/crosstool-ng.mk
index d3ee5f8..8d98db4 100644
--- a/package/crosstool-ng/crosstool-ng.mk
+++ b/package/crosstool-ng/crosstool-ng.mk
@@ -11,7 +11,7 @@ CROSSTOOL_NG_INSTALL_TARGET = NO
CROSSTOOL_NG_MAKE = $(MAKE1)
HOST_CROSSTOOL_NG_DEPENDENCIES = \
- $(if $(BR2_CCACHE),host-ccache) host-gawk \
+ host-gawk \
host-automake host-gperf host-bison host-flex \
host-texinfo
diff --git a/package/cryptsetup/Config.in b/package/cryptsetup/Config.in
new file mode 100644
index 0000000..a8dffc6
--- /dev/null
+++ b/package/cryptsetup/Config.in
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_CRYPTSETUP
+ bool "cryptsetup"
+ select BR2_PACKAGE_LIBGCRYPT
+ select BR2_PACKAGE_POPT
+ select BR2_PACKAGE_LVM2
+ select BR2_PACKAGE_E2FSPROGS
+ depends on BR2_LARGEFILE # lvm2, util-linux
+ depends on BR2_USE_MMU # lvm2
+ depends on BR2_USE_WCHAR # util-linux
+ help
+ This tool helps manipulate dm-crypt and luks partitions for
+ on-disk encryption.
+
+ https://code.google.com/p/cryptsetup/
+
+comment "cryptsetup needs largefile and wchar support in toolchain"
+ depends on !BR2_LARGEFILE || !BR2_USE_WCHAR
diff --git a/package/cryptsetup/cryptsetup.mk b/package/cryptsetup/cryptsetup.mk
new file mode 100644
index 0000000..48d37f6
--- /dev/null
+++ b/package/cryptsetup/cryptsetup.mk
@@ -0,0 +1,15 @@
+################################################################################
+#
+# cryptsetup
+#
+################################################################################
+
+CRYPTSETUP_VERSION = 1.6.2
+CRYPTSETUP_SOURCE = cryptsetup-$(CRYPTSETUP_VERSION).tar.bz2
+CRYPTSETUP_SITE = http://cryptsetup.googlecode.com/files
+CRYPTSETUP_CONF_ENV += LIBGCRYPT_CONFIG=$(STAGING_DIR)/usr/bin/libgcrypt-config
+CRYPTSETUP_DEPENDENCIES = lvm2 popt e2fsprogs libgcrypt host-pkgconf
+CRYPTSETUP_LICENSE = GPLv2+ (programs), LGPLv2.1+ (library)
+CRYPTSETUP_LICENSE_FILES = COPYING COPYING.LGPL
+
+$(eval $(autotools-package))
diff --git a/package/duma/Config.in b/package/duma/Config.in
new file mode 100644
index 0000000..d233062
--- /dev/null
+++ b/package/duma/Config.in
@@ -0,0 +1,20 @@
+config BR2_PACKAGE_DUMA
+ bool "duma"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ help
+ D.U.M.A. - Detect Unintended Memory Access. A fork of the
+ Electric Fence library. Detects buffer overflow and
+ underflow, and also memory leaks.
+
+ http://duma.sourceforge.net
+
+if BR2_PACKAGE_DUMA
+
+config BR2_PACKAGE_DUMA_NO_LEAKDETECTION
+ bool "disable memory leak detection"
+
+endif # BR2_PACKAGE_DUMA
+
+comment "duma requires C++ and thread support in toolchain"
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/duma/duma-01-fix-cross-compilation.patch b/package/duma/duma-01-fix-cross-compilation.patch
new file mode 100644
index 0000000..eceaf06
--- /dev/null
+++ b/package/duma/duma-01-fix-cross-compilation.patch
@@ -0,0 +1,37 @@
+Allow cross compilation. Adapted from crosstool-ng.
+
+Signed-off-by: Baruch Siach <baruch at tkos.co.il>
+
+Index: b/GNUmakefile
+===================================================================
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -93,10 +93,6 @@
+ # also define 'WIN32'
+
+ # some defaults:
+-CC=gcc
+-CXX=g++
+-AR=ar
+-RANLIB=ranlib
+ INSTALL=install
+ RM=rm
+ RMFORCE=rm -f
+@@ -471,7 +467,7 @@
+
+ createconf$(EXEPOSTFIX): createconf.o
+ - $(RMFORCE) createconf$(EXEPOSTFIX)
+- $(CC) $(CFLAGS) $(DUMA_OPTIONS) createconf.o -o createconf$(EXEPOSTFIX)
++ $(CC_FOR_BUILD) $(HOST_CFLAGS) $(DUMA_OPTIONS) createconf.o -o createconf$(EXEPOSTFIX)
+
+ tstheap$(EXEPOSTFIX): libduma.a tstheap.o
+ - $(RMFORCE) tstheap$(EXEPOSTFIX)
+@@ -532,7 +528,7 @@
+ # define rules how to build objects for createconf
+ #
+ createconf.o:
+- $(CC) $(CFLAGS) $(DUMA_OPTIONS) -c createconf.c -o $@
++ $(CC_FOR_BUILD) $(HOST_CFLAGS) $(DUMA_OPTIONS) -c createconf.c -o $@
+
+
+ #
diff --git a/package/duma/duma.mk b/package/duma/duma.mk
new file mode 100644
index 0000000..93ae16e
--- /dev/null
+++ b/package/duma/duma.mk
@@ -0,0 +1,34 @@
+################################################################################
+#
+# duma
+#
+################################################################################
+
+DUMA_VERSION = 2_5_15
+DUMA_SOURCE = duma_$(DUMA_VERSION).tar.gz
+DUMA_SITE = http://downloads.sourceforge.net/project/duma/duma/2.5.15
+DUMA_LICENSE = GPLv2+ LGPLv2.1+
+DUMA_LICENSE_FILES = COPYING-GPL COPYING-LGPL
+
+DUMA_INSTALL_STAGING = YES
+
+DUMA_OPTIONS = \
+ $(if $(BR2_PACKAGE_DUMA_NO_LEAKDETECTION),-DDUMA_LIB_NO_LEAKDETECTION)
+
+# The dependency of some source files in duma_config.h, which is generated at
+# build time, is not specified in the Makefile. Force non-parallel build.
+define DUMA_BUILD_CMDS
+ $(MAKE1) $(TARGET_CONFIGURE_OPTS) \
+ DUMA_OPTIONS="$(DUMA_OPTIONS)" \
+ $(DUMA_CPP) -C $(@D)
+endef
+
+define DUMA_INSTALL_STAGING_CMDS
+ $(MAKE) prefix=$(STAGING_DIR)/usr install -C $(@D)
+endef
+
+define DUMA_INSTALL_TARGET_CMDS
+ $(MAKE) prefix=$(TARGET_DIR)/usr install -C $(@D)
+endef
+
+$(eval $(generic-package))
diff --git a/package/harfbuzz/Config.in b/package/harfbuzz/Config.in
new file mode 100644
index 0000000..88e4740
--- /dev/null
+++ b/package/harfbuzz/Config.in
@@ -0,0 +1,13 @@
+config BR2_PACKAGE_HARFBUZZ
+ bool "harfbuzz"
+ depends on BR2_INSTALL_LIBSTDCPP
+ help
+ HarfBuzz is an OpenType text shaping engine
+
+ http://www.freedesktop.org/wiki/Software/HarfBuzz/
+
+ Harfbuzz can make optional use of cairo, freetype,
+ glib2 and icu packages if they are selected.
+
+comment "harfbuzz requires a toolchain with C++ support"
+ depends on !BR2_INSTALL_LIBSTDCPP
diff --git a/package/harfbuzz/harfbuzz.mk b/package/harfbuzz/harfbuzz.mk
new file mode 100644
index 0000000..00651fd
--- /dev/null
+++ b/package/harfbuzz/harfbuzz.mk
@@ -0,0 +1,44 @@
+################################################################################
+#
+# harfbuzz
+#
+################################################################################
+
+HARFBUZZ_VERSION = 0.9.19
+HARFBUZZ_SITE = http://www.freedesktop.org/software/harfbuzz/release/
+HARFBUZZ_SOURCE = harfbuzz-$(HARFBUZZ_VERSION).tar.bz2
+HARFBUZZ_LICENSE = MIT, ISC (ucdn library), ICU License (icu support library)
+HARFBUZZ_LICENSE_FILES = COPYING src/hb-ucdn/COPYING src/hb-icu-le/COPYING
+HARFBUZZ_INSTALL_STAGING = YES
+
+HARFBUZZ_CONF_OPT = --without-coretext --without-uniscribe --without-graphite2
+
+ifeq ($(BR2_PACKAGE_CAIRO),y)
+ HARFBUZZ_DEPENDENCIES += cairo
+ HARFBUZZ_CONF_OPT += --with-cairo=yes
+else
+ HARFBUZZ_CONF_OPT += --with-cairo=no
+endif
+
+ifeq ($(BR2_PACKAGE_FREETYPE),y)
+ HARFBUZZ_DEPENDENCIES += freetype
+ HARFBUZZ_CONF_OPT += --with-freetype=yes
+else
+ HARFBUZZ_CONF_OPT += --with-freetype=no
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
+ HARFBUZZ_DEPENDENCIES += libglib2
+ HARFBUZZ_CONF_OPT += --with-glib=yes
+else
+ HARFBUZZ_CONF_OPT += --with-glib=no
+endif
+
+ifeq ($(BR2_PACKAGE_ICU),y)
+ HARFBUZZ_DEPENDENCIES += icu
+ HARFBUZZ_CONF_OPT += --with-icu=yes
+else
+ HARFBUZZ_CONF_OPT += --with-icu=no
+endif
+
+$(eval $(autotools-package))
diff --git a/package/kobs-ng/Config.in b/package/kobs-ng/Config.in
new file mode 100644
index 0000000..1f6b2d1
--- /dev/null
+++ b/package/kobs-ng/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_KOBS_NG
+ bool "kobs-ng"
+ depends on BR2_arm
+ help
+ The kobs-ng tool is used for writing images to NAND on i.MX
+ platforms.
+
+ This utility is provided by Freescale as-is and doesn't have an
+ upstream.
diff --git a/package/kobs-ng/kobs-ng-fix-mtd-defines.patch b/package/kobs-ng/kobs-ng-fix-mtd-defines.patch
new file mode 100644
index 0000000..39d7474
--- /dev/null
+++ b/package/kobs-ng/kobs-ng-fix-mtd-defines.patch
@@ -0,0 +1,73 @@
+Newer kernel headers renamed mtd mode defines and no longer support
+MEMSETOOBSEL. Allow code to work with both older and newer kernel
+versions.
+
+Signed-off-by: Paul B. Henson <henson@acm.org>
+
+diff -u -r kobs-ng-3.0.35-4.0.0-orig/src/mtd.c kobs-ng-3.0.35-4.0.0/src/mtd.c
+--- kobs-ng-3.0.35-4.0.0-orig/src/mtd.c 2012-12-17 22:37:40.000000000 -0800
++++ kobs-ng-3.0.35-4.0.0/src/mtd.c 2013-07-28 19:39:59.000000000 -0700
+@@ -852,8 +852,11 @@
+ mp = &md->part[i];
+
+ if (mp->fd != -1) {
++/* Newer kernels dropped MEMSETOOBSEL */
++#ifdef MEMSETOOBSEL
+ (void)ioctl(mp->fd, MEMSETOOBSEL,
+ &mp->old_oobinfo);
++#endif
+ close(mp->fd);
+ }
+
+@@ -896,6 +899,8 @@
+ continue;
+ }
+
++/* Newer kernels dropped MEMSETOOBSEL */
++#ifdef MEMSETOOBSEL
+ if (r == -ENOTTY) {
+ r = ioctl(mp->fd, MEMSETOOBSEL, &mp->old_oobinfo);
+ if (r != 0) {
+@@ -904,6 +909,7 @@
+ }
+ mp->oobinfochanged = 0;
+ }
++#endif
+ } else {
+ r = ioctl(mp->fd, MTDFILEMODE, (void *)MTD_MODE_RAW);
+ if (r != 0 && r != -ENOTTY) {
+@@ -911,6 +917,8 @@
+ continue;
+ }
+
++/* Newer kernels dropped MEMSETOOBSEL */
++#ifdef MEMSETOOBSEL
+ if (r == -ENOTTY) {
+ r = ioctl(mp->fd, MEMSETOOBSEL, &none_oobinfo);
+ if (r != 0) {
+@@ -920,6 +928,7 @@
+ mp->oobinfochanged = 1;
+ } else
+ mp->oobinfochanged = 2;
++#endif
+ }
+
+ mp->ecc = ecc;
+diff -u -r kobs-ng-3.0.35-4.0.0-orig/src/mtd.h kobs-ng-3.0.35-4.0.0/src/mtd.h
+--- kobs-ng-3.0.35-4.0.0-orig/src/mtd.h 2012-12-17 22:37:40.000000000 -0800
++++ kobs-ng-3.0.35-4.0.0/src/mtd.h 2013-07-28 19:33:57.000000000 -0700
+@@ -31,6 +31,14 @@
+ #include "BootControlBlocks.h"
+ #include "rom_nand_hamming_code_ecc.h"
+
++// Newer kernel headers renamed define
++#ifndef MTD_MODE_NORMAL
++#define MTD_MODE_NORMAL MTD_FILE_MODE_NORMAL
++#endif
++#ifndef MTD_MODE_RAW
++#define MTD_MODE_RAW MTD_FILE_MODE_RAW
++#endif
++
+ //------------------------------------------------------------------------------
+ // Re-definitions of true and false, because the standard ones aren't good
+ // enough?
diff --git a/package/kobs-ng/kobs-ng.mk b/package/kobs-ng/kobs-ng.mk
new file mode 100644
index 0000000..f7e65e7
--- /dev/null
+++ b/package/kobs-ng/kobs-ng.mk
@@ -0,0 +1,13 @@
+################################################################################
+#
+# kobs-ng
+#
+################################################################################
+
+# kobs-ng versions have never made much sense :(
+KOBS_NG_VERSION = 3.0.35-4.0.0
+KOBS_NG_SITE = http://repository.timesys.com/buildsources/k/kobs-ng/kobs-ng-$(KOBS_NG_VERSION)/
+KOBS_NG_LICENSE = GPLv2+
+KOBS_NG_LICENSE_FILES = COPYING
+
+$(eval $(autotools-package))
diff --git a/package/luasec/Config.in b/package/luasec/Config.in
new file mode 100644
index 0000000..2d303c1
--- /dev/null
+++ b/package/luasec/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_LUASEC
+ bool "luasec"
+ select BR2_PACKAGE_OPENSSL
+ select BR2_PACKAGE_LUASOCKET
+ help
+ LuaSec is a binding for OpenSSL library to provide TLS/SSL
+ communication.
+
+ http://www.inf.puc-rio.br/~brunoos/luasec/
diff --git a/package/luasec/luasec.mk b/package/luasec/luasec.mk
new file mode 100644
index 0000000..053309f
--- /dev/null
+++ b/package/luasec/luasec.mk
@@ -0,0 +1,33 @@
+################################################################################
+#
+# luasec
+#
+################################################################################
+
+LUASEC_VERSION = 0.4.1
+LUASEC_SITE = http://www.inf.puc-rio.br/~brunoos/luasec/download/
+LUASEC_LICENSE = MIT
+LUASEC_LICENSE_FILES = LICENSE
+LUASEC_DEPENDENCIES = lua openssl
+
+define LUASEC_BUILD_CMDS
+ $(MAKE) -C $(@D) CC="$(TARGET_CC)" LD="$(TARGET_CC)" \
+ CFLAGS="$(TARGET_CFLAGS) -fPIC" \
+ LDFLAGS="$(TARGET_LDFLAGS) -shared" linux
+endef
+
+define LUASEC_INSTALL_TARGET_CMDS
+ mkdir -p $(TARGET_DIR)/usr/share/lua
+ mkdir -p $(TARGET_DIR)/usr/lib/lua
+ $(MAKE) -C $(@D) \
+ LUAPATH="$(TARGET_DIR)/usr/share/lua" \
+ LUACPATH="$(TARGET_DIR)/usr/lib/lua" install
+endef
+
+define LUASEC_UNINSTALL_TARGET_CMDS
+ rm -f $(TARGET_DIR)/usr/lib/lua/ssl.so
+ rm -rf $(TARGET_DIR)/usr/share/lua/ssl
+ rm -f $(TARGET_DIR)/usr/share/lua/ssl.lua
+endef
+
+$(eval $(generic-package))
diff --git a/package/luasql/Config.in b/package/luasql/Config.in
new file mode 100644
index 0000000..4dd011a
--- /dev/null
+++ b/package/luasql/Config.in
@@ -0,0 +1,21 @@
+config BR2_PACKAGE_LUASQL
+ bool "luasql"
+ help
+ LuaSQL is a simple interface from Lua to a DBMS.
+
+ http://www.keplerproject.org/luasql
+
+if BR2_PACKAGE_LUASQL
+choice
+ prompt "LuaSQL Driver"
+ help
+ Select backend driver for LuaSQL.
+
+config BR2_PACKAGE_LUASQL_DRIVER_SQLITE3
+ bool "SQLite3"
+ select BR2_PACKAGE_SQLITE
+ help
+ Select if you wish to use the SQLite3 LuaSQL driver.
+
+endchoice
+endif
diff --git a/package/luasql/luasql.mk b/package/luasql/luasql.mk
new file mode 100644
index 0000000..6fbdccc
--- /dev/null
+++ b/package/luasql/luasql.mk
@@ -0,0 +1,39 @@
+################################################################################
+#
+# luasql
+#
+################################################################################
+
+LUASQL_VERSION = v2.3.0
+LUASQL_SITE = https://github.com/keplerproject/luasql/tarball/$(LUASQL_VERSION)
+LUASQL_LICENSE = MIT
+LUASQL_LICENSE_FILES = README
+LUASQL_DEPENDENCIES = lua
+
+LUASQL_MAKE_FLAGS = \
+ CC="$(TARGET_CC)" \
+ LD="$(TARGET_CC)" \
+ CFLAGS="$(TARGET_CFLAGS) -fPIC"
+
+ifeq ($(BR2_PACKAGE_LUASQL_DRIVER_SQLITE3),y)
+LUASQL_DEPENDENCIES += sqlite
+LUASQL_MAKE_FLAGS += \
+ T="sqlite3" \
+ DRIVER_LIBS="-L$(STAGING_DIR)/usr/lib -lsqlite3"
+endif
+
+define LUASQL_BUILD_CMDS
+ $(MAKE) -C $(@D) $(LUASQL_MAKE_FLAGS)
+endef
+
+define LUASQL_INSTALL_TARGET_CMDS
+ $(MAKE) -C $(@D) $(LUASQL_MAKE_FLAGS) PREFIX=/usr \
+ LUA_DIR="$(TARGET_DIR)/usr/share/lua" \
+ LUA_LIBDIR="$(TARGET_DIR)/usr/lib/lua" install
+endef
+
+define LUASQL_UNINSTALL_TARGET_CMDS
+ rm -rf $(TARGET_DIR)/usr/lib/lua/luasql
+endef
+
+$(eval $(generic-package))
diff --git a/package/lxc/Config.in b/package/lxc/Config.in
new file mode 100644
index 0000000..5e6e208
--- /dev/null
+++ b/package/lxc/Config.in
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_LXC
+ bool "lxc"
+ select BR2_PACKAGE_LIBCAP
+ depends on BR2_INET_IPV6
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ help
+ Linux Containers (LXC), provides the ability to group and isolate
+ of a set of processes in a jail by virtualizing and accounting the
+ kernel resources. It is similar to Linux-Vserver or Openvz.
+
+ http://lxc.sourceforge.net/
+
+comment "lxc requires a toolchain with IPv6 and thread support"
+ depends on !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/lxc/lxc.mk b/package/lxc/lxc.mk
new file mode 100644
index 0000000..4e06902
--- /dev/null
+++ b/package/lxc/lxc.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# lxc
+#
+################################################################################
+
+LXC_VERSION = 0.9.0
+LXC_SITE = http://downloads.sourceforge.net/project/lxc/lxc/lxc-$(LXC_VERSION)
+LXC_LICENSE = LGPLv2.1+
+LXC_LICENSE_FILES = COPYING
+LXC_DEPENDENCIES = libcap
+LXC_CONF_OPT = --disable-apparmor
+
+$(eval $(autotools-package))
diff --git a/package/mkpasswd/config.h b/package/mkpasswd/config.h
new file mode 100644
index 0000000..f345074
--- /dev/null
+++ b/package/mkpasswd/config.h
@@ -0,0 +1,95 @@
+/* Program version */
+#define VERSION "5.0.26"
+
+/* Configurable features */
+
+/* Always hide legal disclaimers */
+#undef ALWAYS_HIDE_DISCL
+
+/* Default server */
+#define DEFAULTSERVER "whois.arin.net"
+
+/* Configuration file */
+/*
+#define CONFIG_FILE "/etc/whois.conf"
+*/
+
+
+/* autoconf in cpp macros */
+#ifdef linux
+# define ENABLE_NLS
+#endif
+
+#ifdef __FreeBSD__
+/* which versions? */
+# define HAVE_GETOPT_LONG
+# define HAVE_GETADDRINFO
+# define ENABLE_NLS
+# ifndef LOCALEDIR
+# define LOCALEDIR "/usr/local/share/locale"
+# endif
+#endif
+
+/* needs unistd.h */
+#if defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 200112L
+# define HAVE_GETADDRINFO
+# define HAVE_REGEXEC
+#endif
+
+#if defined __APPLE__ && defined __MACH__
+# define HAVE_GETOPT_LONG
+# define HAVE_GETADDRINFO
+#endif
+
+#if defined __GLIBC__
+# define HAVE_GETOPT_LONG
+# if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
+# define HAVE_GETADDRINFO
+# endif
+# if __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 7
+# define HAVE_SHA_CRYPT
+# endif
+#endif
+
+/* Unknown versions of Solaris */
+#if defined __SVR4 && defined __sun
+# define HAVE_SHA_CRYPT
+# define HAVE_SOLARIS_CRYPT_GENSALT
+#endif
+
+/* FIXME: which systems lack this? */
+#define HAVE_GETTIMEOFDAY
+/* FIXME: disabled because it does not parse addresses with a netmask length.
+ * The code using it needs to be either fixed or removed.
+#define HAVE_INET_PTON
+*/
+
+/*
+ * Please send patches to correctly ignore old releases which lack a RNG
+ * and add more systems which have one.
+ */
+#ifdef RANDOM_DEVICE
+#elif defined __GLIBC__ \
+ || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__ \
+ /* AIX >= 5.2? */ \
+ || defined _AIX52 \
+ /* HP-UX >= B.11.11.09? */ \
+ || defined __hpux \
+ /* OS X: */ \
+ || (defined __APPLE__ && defined __MACH__) \
+ /* Solaris >= 9 (this is >= 7): */ \
+ || (defined __SVR4 && defined __sun && defined SUSv2) \
+ /* Tru64 UNIX >= 5.1B? */ \
+ || defined __osf
+# define RANDOM_DEVICE "/dev/urandom"
+#endif
+
+#ifdef ENABLE_NLS
+# ifndef NLS_CAT_NAME
+# define NLS_CAT_NAME "whois"
+# endif
+# ifndef LOCALEDIR
+# define LOCALEDIR "/usr/share/locale"
+# endif
+#endif
+
diff --git a/package/mkpasswd/mkpasswd.c b/package/mkpasswd/mkpasswd.c
new file mode 100644
index 0000000..5820f32
--- /dev/null
+++ b/package/mkpasswd/mkpasswd.c
@@ -0,0 +1,456 @@
+/*
+ * Copyright (C) 2001-2008 Marco d'Itri
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* for crypt, snprintf and strcasecmp */
+#define _XOPEN_SOURCE
+#define _BSD_SOURCE
+
+/* System library */
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include "config.h"
+#ifdef HAVE_GETOPT_LONG
+#include <getopt.h>
+#endif
+#include <fcntl.h>
+#include <string.h>
+#include <time.h>
+#include <sys/types.h>
+#ifdef HAVE_XCRYPT
+#include <xcrypt.h>
+#include <sys/stat.h>
+#endif
+#ifdef HAVE_LINUX_CRYPT_GENSALT
+#define _OW_SOURCE
+#include <crypt.h>
+#endif
+#ifdef HAVE_GETTIMEOFDAY
+#include <sys/time.h>
+#endif
+
+/* Application-specific */
+#include "utils.h"
+
+/* Global variables */
+#ifdef HAVE_GETOPT_LONG
+static const struct option longopts[] = {
+ {"method", optional_argument, NULL, 'm'},
+ /* for backward compatibility with versions < 4.7.25 (< 20080321): */
+ {"hash", optional_argument, NULL, 'H'},
+ {"help", no_argument, NULL, 'h'},
+ {"password-fd", required_argument, NULL, 'P'},
+ {"stdin", no_argument, NULL, 's'},
+ {"salt", required_argument, NULL, 'S'},
+ {"rounds", required_argument, NULL, 'R'},
+ {"version", no_argument, NULL, 'V'},
+ {NULL, 0, NULL, 0 }
+};
+#else
+extern char *optarg;
+extern int optind;
+#endif
+
+static const char valid_salts[] = "abcdefghijklmnopqrstuvwxyz"
+"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./";
+
+struct crypt_method {
+ const char *method; /* short name used by the command line option */
+ const char *prefix; /* salt prefix */
+ const unsigned int minlen; /* minimum salt length */
+ const unsigned int maxlen; /* maximum salt length */
+ const unsigned int rounds; /* supports a variable number of rounds */
+ const char *desc; /* long description for the methods list */
+};
+
+static const struct crypt_method methods[] = {
+ /* method prefix minlen, maxlen rounds description */
+ { "des", "", 2, 2, 0,
+ N_("standard 56 bit DES-based crypt(3)") },
+ { "md5", "$1$", 8, 8, 0, "MD5" },
+#if defined OpenBSD || defined FreeBSD || (defined __SVR4 && defined __sun)
+ { "bf", "$2a$", 22, 22, 1, "Blowfish" },
+#endif
+#if defined HAVE_LINUX_CRYPT_GENSALT
+ { "bf", "$2a$", 22, 22, 1, "Blowfish, system-specific on 8-bit chars" },
+ /* algorithm 2y fixes CVE-2011-2483 */
+ { "bfy", "$2y$", 22, 22, 1, "Blowfish, correct handling of 8-bit chars" },
+#endif
+#if defined FreeBSD
+ { "nt", "$3$", 0, 0, 0, "NT-Hash" },
+#endif
+#if defined HAVE_SHA_CRYPT
+ /* http://people.redhat.com/drepper/SHA-crypt.txt */
+ { "sha-256", "$5$", 8, 16, 1, "SHA-256" },
+ { "sha-512", "$6$", 8, 16, 1, "SHA-512" },
+#endif
+ /* http://www.crypticide.com/dropsafe/article/1389 */
+ /*
+ * Actually the maximum salt length is arbitrary, but Solaris by default
+ * always uses 8 characters:
+ * http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/ \
+ * usr/src/lib/crypt_modules/sunmd5/sunmd5.c#crypt_gensalt_impl
+ */
+#if defined __SVR4 && defined __sun
+ { "sunmd5", "$md5$", 8, 8, 1, "SunMD5" },
+#endif
+ { NULL, NULL, 0, 0, 0, NULL }
+};
+
+void generate_salt(char *const buf, const unsigned int len);
+void *get_random_bytes(const int len);
+void display_help(int error);
+void display_version(void);
+void display_methods(void);
+
+int main(int argc, char *argv[])
+{
+ int ch, i;
+ int password_fd = -1;
+ unsigned int salt_minlen = 0;
+ unsigned int salt_maxlen = 0;
+ unsigned int rounds_support = 0;
+ const char *salt_prefix = NULL;
+ const char *salt_arg = NULL;
+ unsigned int rounds = 0;
+ char *salt = NULL;
+ char rounds_str[30];
+ char *password = NULL;
+
+#ifdef ENABLE_NLS
+ setlocale(LC_ALL, "");
+ bindtextdomain(NLS_CAT_NAME, LOCALEDIR);
+ textdomain(NLS_CAT_NAME);
+#endif
+
+ /* prepend options from environment */
+ argv = merge_args(getenv("MKPASSWD_OPTIONS"), argv, &argc);
+
+ while ((ch = GETOPT_LONGISH(argc, argv, "hH:m:5P:R:sS:V", longopts, 0))
+ > 0) {
+ switch (ch) {
+ case '5':
+ optarg = (char *) "md5";
+ /* fall through */
+ case 'm':
+ case 'H':
+ if (!optarg || strcaseeq("help", optarg)) {
+ display_methods();
+ exit(0);
+ }
+ for (i = 0; methods[i].method != NULL; i++)
+ if (strcaseeq(methods[i].method, optarg)) {
+ salt_prefix = methods[i].prefix;
+ salt_minlen = methods[i].minlen;
+ salt_maxlen = methods[i].maxlen;
+ rounds_support = methods[i].rounds;
+ break;
+ }
+ if (!salt_prefix) {
+ fprintf(stderr, _("Invalid method '%s'.\n"), optarg);
+ exit(1);
+ }
+ break;
+ case 'P':
+ {
+ char *p;
+ password_fd = strtol(optarg, &p, 10);
+ if (p == NULL || *p != '\0' || password_fd < 0) {
+ fprintf(stderr, _("Invalid number '%s'.\n"), optarg);
+ exit(1);
+ }
+ }
+ break;
+ case 'R':
+ {
+ char *p;
+ rounds = strtol(optarg, &p, 10);
+ if (p == NULL || *p != '\0' || rounds < 0) {
+ fprintf(stderr, _("Invalid number '%s'.\n"), optarg);
+ exit(1);
+ }
+ }
+ break;
+ case 's':
+ password_fd = 0;
+ break;
+ case 'S':
+ salt_arg = optarg;
+ break;
+ case 'V':
+ display_version();
+ exit(0);
+ case 'h':
+ display_help(EXIT_SUCCESS);
+ default:
+ fprintf(stderr, _("Try '%s --help' for more information.\n"),
+ argv[0]);
+ exit(1);
+ }
+ }
+ argc -= optind;
+ argv += optind;
+
+ if (argc == 2 && !salt_arg) {
+ password = argv[0];
+ salt_arg = argv[1];
+ } else if (argc == 1) {
+ password = argv[0];
+ } else if (argc == 0) {
+ } else {
+ display_help(EXIT_FAILURE);
+ }
+
+ /* default: DES password */
+ if (!salt_prefix) {
+ salt_minlen = methods[0].minlen;
+ salt_maxlen = methods[0].maxlen;
+ salt_prefix = methods[0].prefix;
+ }
+
+ if (streq(salt_prefix, "$2a$") || streq(salt_prefix, "$2y$")) {
+ /* OpenBSD Blowfish and derivatives */
+ if (rounds <= 5)
+ rounds = 5;
+ /* actually for 2a/2y it is the logarithm of the number of rounds */
+ snprintf(rounds_str, sizeof(rounds_str), "%02u$", rounds);
+ } else if (rounds_support && rounds)
+ snprintf(rounds_str, sizeof(rounds_str), "rounds=%u$", rounds);
+ else
+ rounds_str[0] = '\0';
+
+ if (salt_arg) {
+ unsigned int c = strlen(salt_arg);
+ if (c < salt_minlen || c > salt_maxlen) {
+ if (salt_minlen == salt_maxlen)
+ fprintf(stderr, ngettext(
+ "Wrong salt length: %d byte when %d expected.\n",
+ "Wrong salt length: %d bytes when %d expected.\n", c),
+ c, salt_maxlen);
+ else
+ fprintf(stderr, ngettext(
+ "Wrong salt length: %d byte when %d <= n <= %d"
+ " expected.\n",
+ "Wrong salt length: %d bytes when %d <= n <= %d"
+ " expected.\n", c),
+ c, salt_minlen, salt_maxlen);
+ exit(1);
+ }
+ while (c-- > 0) {
+ if (strchr(valid_salts, salt_arg[c]) == NULL) {
+ fprintf(stderr, _("Illegal salt character '%c'.\n"),
+ salt_arg[c]);
+ exit(1);
+ }
+ }
+
+ salt = NOFAIL(malloc(strlen(salt_prefix) + strlen(rounds_str)
+ + strlen(salt_arg) + 1));
+ *salt = '\0';
+ strcat(salt, salt_prefix);
+ strcat(salt, rounds_str);
+ strcat(salt, salt_arg);
+ } else {
+#ifdef HAVE_SOLARIS_CRYPT_GENSALT
+#error "This code path is untested on Solaris. Please send a patch."
+ salt = crypt_gensalt(salt_prefix, NULL);
+ if (!salt)
+ perror(stderr, "crypt_gensalt");
+#elif defined HAVE_LINUX_CRYPT_GENSALT
+ void *entropy = get_random_bytes(64);
+
+ salt = crypt_gensalt(salt_prefix, rounds, entropy, 64);
+ if (!salt) {
+ fprintf(stderr, "crypt_gensalt failed.\n");
+ exit(2);
+ }
+ free(entropy);
+#else
+ unsigned int salt_len = salt_maxlen;
+
+ if (salt_minlen != salt_maxlen) { /* salt length can vary */
+ srand(time(NULL) + getpid());
+ salt_len = rand() % (salt_maxlen - salt_minlen + 1) + salt_minlen;
+ }
+
+ salt = NOFAIL(malloc(strlen(salt_prefix) + strlen(rounds_str)
+ + salt_len + 1));
+ *salt = '\0';
+ strcat(salt, salt_prefix);
+ strcat(salt, rounds_str);
+ generate_salt(salt + strlen(salt), salt_len);
+#endif
+ }
+
+ if (password) {
+ } else if (password_fd != -1) {
+ FILE *fp;
+ char *p;
+
+ if (isatty(password_fd))
+ fprintf(stderr, _("Password: "));
+ password = NOFAIL(malloc(128));
+ fp = fdopen(password_fd, "r");
+ if (!fp) {
+ perror("fdopen");
+ exit(2);
+ }
+ if (!fgets(password, 128, fp)) {
+ perror("fgets");
+ exit(2);
+ }
+
+ p = strpbrk(password, "\n\r");
+ if (p)
+ *p = '\0';
+ } else {
+ password = getpass(_("Password: "));
+ if (!password) {
+ perror("getpass");
+ exit(2);
+ }
+ }
+
+ {
+ const char *result;
+ result = crypt(password, salt);
+ /* xcrypt returns "*0" on errors */
+ if (!result || result[0] == '*') {
+ fprintf(stderr, "crypt failed.\n");
+ exit(2);
+ }
+ /* yes, using strlen(salt_prefix) on salt. It's not
+ * documented whether crypt_gensalt may change the prefix */
+ if (!strneq(result, salt, strlen(salt_prefix))) {
+ fprintf(stderr, _("Method not supported by crypt(3).\n"));
+ exit(2);
+ }
+ printf("%s\n", result);
+ }
+
+ exit(0);
+}
+
+#ifdef RANDOM_DEVICE
+void* get_random_bytes(const int count)
+{
+ char *buf;
+ int fd;
+
+ buf = NOFAIL(malloc(count));
+ fd = open(RANDOM_DEVICE, O_RDONLY);
+ if (fd < 0) {
+ perror("open(" RANDOM_DEVICE ")");
+ exit(2);
+ }
+ if (read(fd, buf, count) != count) {
+ if (count < 0)
+ perror("read(" RANDOM_DEVICE ")");
+ else
+ fprintf(stderr, "Short read of %s.\n", RANDOM_DEVICE);
+ exit(2);
+ }
+ close(fd);
+
+ return buf;
+}
+#endif
+
+#ifdef RANDOM_DEVICE
+
+void generate_salt(char *const buf, const unsigned int len)
+{
+ unsigned int i;
+
+ unsigned char *entropy = get_random_bytes(len * sizeof(unsigned char));
+ for (i = 0; i < len; i++)
+ buf[i] = valid_salts[entropy[i] % (sizeof valid_salts - 1)];
+ buf[i] = '\0';
+}
+
+#else /* RANDOM_DEVICE */
+
+void generate_salt(char *const buf, const unsigned int len)
+{
+ unsigned int i;
+
+# ifdef HAVE_GETTIMEOFDAY
+ struct timeval tv;
+
+ gettimeofday(&tv, NULL);
+ srand(tv.tv_sec ^ tv.tv_usec);
+
+# else /* HAVE_GETTIMEOFDAY */
+# warning "This system lacks a strong enough random numbers generator!"
+
+ /*
+ * The possible values of time over one year are 31536000, which is
+ * two orders of magnitude less than the allowed entropy range (2^32).
+ */
+ srand(time(NULL) + getpid());
+
+# endif /* HAVE_GETTIMEOFDAY */
+
+ for (i = 0; i < len; i++)
+ buf[i] = valid_salts[rand() % (sizeof valid_salts - 1)];
+ buf[i] = '\0';
+}
+
+#endif /* RANDOM_DEVICE */
+
+void display_help(int error)
+{
+ fprintf((EXIT_SUCCESS == error) ? stdout : stderr,
+ _("Usage: mkpasswd [OPTIONS]... [PASSWORD [SALT]]\n"
+ "Crypts the PASSWORD using crypt(3).\n\n"));
+ fprintf(stderr, _(
+" -m, --method=TYPE select method TYPE\n"
+" -5 like --method=md5\n"
+" -S, --salt=SALT use the specified SALT\n"
+" -R, --rounds=NUMBER use the specified NUMBER of rounds\n"
+" -P, --password-fd=NUM read the password from file descriptor NUM\n"
+" instead of /dev/tty\n"
+" -s, --stdin like --password-fd=0\n"
+" -h, --help display this help and exit\n"
+" -V, --version output version information and exit\n"
+"\n"
+"If PASSWORD is missing then it is asked interactively.\n"
+"If no SALT is specified, a random one is generated.\n"
+"If TYPE is 'help', available methods are printed.\n"
+"\n"
+"Report bugs to %s.\n"), "<md+whois@linux.it>");
+ exit(error);
+}
+
+void display_version(void)
+{
+ printf("mkpasswd %s\n\n", VERSION);
+ puts("Copyright (C) 2001-2008 Marco d'Itri\n"
+"This is free software; see the source for copying conditions. There is NO\n"
+"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.");
+}
+
+void display_methods(void)
+{
+ unsigned int i;
+
+ printf(_("Available methods:\n"));
+ for (i = 0; methods[i].method != NULL; i++)
+ printf("%s\t%s\n", methods[i].method, methods[i].desc);
+}
+
diff --git a/package/mkpasswd/mkpasswd.mk b/package/mkpasswd/mkpasswd.mk
new file mode 100644
index 0000000..dc6de19
--- /dev/null
+++ b/package/mkpasswd/mkpasswd.mk
@@ -0,0 +1,25 @@
+################################################################################
+#
+# mkpasswd
+#
+################################################################################
+
+# source included in buildroot, taken from
+# https://github.com/rfc1036/whois/blob/master/
+# at revision 5a0f08500fa51608b6d3b73ee338be38c692eadb
+HOST_MKPASSWD_SOURCE =
+HOST_MKPASSWD_LICENSE = GPLv2+
+
+define HOST_MKPASSWD_BUILD_CMDS
+ $(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \
+ package/mkpasswd/mkpasswd.c package/mkpasswd/utils.c \
+ -o $(@D)/mkpasswd -lcrypt
+endef
+
+define HOST_MKPASSWD_INSTALL_CMDS
+ $(INSTALL) -D -m 755 $(@D)/mkpasswd $(HOST_DIR)/usr/bin/mkpasswd
+endef
+
+$(eval $(host-generic-package))
+
+MKPASSWD = $(HOST_DIR)/usr/bin/mkpasswd
diff --git a/package/mkpasswd/utils.c b/package/mkpasswd/utils.c
new file mode 100644
index 0000000..254bf2a
--- /dev/null
+++ b/package/mkpasswd/utils.c
@@ -0,0 +1,96 @@
+/*
+ * Copyright 1999-2008 by Marco d'Itri <md@linux.it>.
+ *
+ * do_nofail and merge_args come from the module-init-tools package.
+ * Copyright 2001 by Rusty Russell.
+ * Copyright 2002, 2003 by Rusty Russell, IBM Corporation.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+/* for strdup */
+#define _XOPEN_SOURCE 500
+
+/* System library */
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <errno.h>
+
+/* Application-specific */
+#include "utils.h"
+
+void *do_nofail(void *ptr, const char *file, const int line)
+{
+ if (ptr)
+ return ptr;
+
+ err_quit("Memory allocation failure at %s:%d.", file, line);
+}
+
+/* Prepend options from a string. */
+char **merge_args(char *args, char *argv[], int *argc)
+{
+ char *arg, *argstring;
+ char **newargs = NULL;
+ unsigned int i, num_env = 0;
+
+ if (!args)
+ return argv;
+
+ argstring = NOFAIL(strdup(args));
+ for (arg = strtok(argstring, " "); arg; arg = strtok(NULL, " ")) {
+ num_env++;
+ newargs = NOFAIL(realloc(newargs,
+ sizeof(newargs[0]) * (num_env + *argc + 1)));
+ newargs[num_env] = arg;
+ }
+
+ if (!newargs)
+ return argv;
+
+ /* Append commandline args */
+ newargs[0] = argv[0];
+ for (i = 1; i <= *argc; i++)
+ newargs[num_env + i] = argv[i];
+
+ *argc += num_env;
+ return newargs;
+}
+
+/* Error routines */
+void err_sys(const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ vfprintf(stderr, fmt, ap);
+ fprintf(stderr, ": %s\n", strerror(errno));
+ va_end(ap);
+ exit(2);
+}
+
+void err_quit(const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ vfprintf(stderr, fmt, ap);
+ fputs("\n", stderr);
+ va_end(ap);
+ exit(2);
+}
+
diff --git a/package/mkpasswd/utils.h b/package/mkpasswd/utils.h
new file mode 100644
index 0000000..0f226ae
--- /dev/null
+++ b/package/mkpasswd/utils.h
@@ -0,0 +1,56 @@
+#ifndef WHOIS_UTILS_H
+#define WHOIS_UTILS_H
+
+/* Convenience macros */
+#define streq(a, b) (strcmp(a, b) == 0)
+#define strcaseeq(a, b) (strcasecmp(a, b) == 0)
+#define strneq(a, b, n) (strncmp(a, b, n) == 0)
+#define strncaseeq(a, b, n) (strncasecmp(a, b, n) == 0)
+
+#define NOFAIL(ptr) do_nofail((ptr), __FILE__, __LINE__)
+
+/* Portability macros */
+#ifdef __GNUC__
+# define NORETURN __attribute__((noreturn))
+#else
+# define NORETURN
+#endif
+
+#ifndef AI_IDN
+# define AI_IDN 0
+#endif
+
+#ifndef AI_ADDRCONFIG
+# define AI_ADDRCONFIG 0
+#endif
+
+#ifdef HAVE_GETOPT_LONG
+# define GETOPT_LONGISH(c, v, o, l, i) getopt_long(c, v, o, l, i)
+#else
+# define GETOPT_LONGISH(c, v, o, l, i) getopt(c, v, o)
+#endif
+
+#ifdef ENABLE_NLS
+# include <libintl.h>
+# include <locale.h>
+# define _(a) (gettext(a))
+# ifdef gettext_noop
+# define N_(a) gettext_noop(a)
+# else
+# define N_(a) (a)
+# endif
+#else
+# define _(a) (a)
+# define N_(a) (a)
+# define ngettext(a, b, c) ((c==1) ? (a) : (b))
+#endif
+
+
+/* Prototypes */
+void *do_nofail(void *ptr, const char *file, const int line);
+char **merge_args(char *args, char *argv[], int *argc);
+
+void err_quit(const char *fmt, ...) NORETURN;
+void err_sys(const char *fmt, ...) NORETURN;
+
+#endif
diff --git a/package/multimedia/gst1-plugins-bad/gst1-plugins-bad.mk b/package/multimedia/gst1-plugins-bad/gst1-plugins-bad.mk
index 732cddf..385522e 100644
--- a/package/multimedia/gst1-plugins-bad/gst1-plugins-bad.mk
+++ b/package/multimedia/gst1-plugins-bad/gst1-plugins-bad.mk
@@ -4,7 +4,7 @@
#
################################################################################
-GST1_PLUGINS_BAD_VERSION = 1.0.8
+GST1_PLUGINS_BAD_VERSION = 1.0.10
GST1_PLUGINS_BAD_SOURCE = gst-plugins-bad-$(GST1_PLUGINS_BAD_VERSION).tar.xz
GST1_PLUGINS_BAD_SITE = http://gstreamer.freedesktop.org/src/gst-plugins-bad
GST1_PLUGINS_BAD_LICENSE_FILES = COPYING COPYING.LIB
diff --git a/package/multimedia/gst1-plugins-base/gst1-plugins-base.mk b/package/multimedia/gst1-plugins-base/gst1-plugins-base.mk
index 1e32867..d3aebda 100644
--- a/package/multimedia/gst1-plugins-base/gst1-plugins-base.mk
+++ b/package/multimedia/gst1-plugins-base/gst1-plugins-base.mk
@@ -4,7 +4,7 @@
#
################################################################################
-GST1_PLUGINS_BASE_VERSION = 1.0.8
+GST1_PLUGINS_BASE_VERSION = 1.0.10
GST1_PLUGINS_BASE_SOURCE = gst-plugins-base-$(GST1_PLUGINS_BASE_VERSION).tar.xz
GST1_PLUGINS_BASE_SITE = http://gstreamer.freedesktop.org/src/gst-plugins-base
GST1_PLUGINS_BASE_INSTALL_STAGING = YES
diff --git a/package/multimedia/gst1-plugins-good/gst1-plugins-good-dyn-multi-udpsink-unbreak-on-IPv6-systems-after-1302.patch b/package/multimedia/gst1-plugins-good/gst1-plugins-good-dyn-multi-udpsink-unbreak-on-IPv6-systems-after-1302.patch
deleted file mode 100644
index 68a9969..0000000
--- a/package/multimedia/gst1-plugins-good/gst1-plugins-good-dyn-multi-udpsink-unbreak-on-IPv6-systems-after-1302.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 118876702467d6063e9c9745b7d093682ad16472 Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet@sunsite.dk>
-Date: Fri, 19 Jul 2013 15:24:08 +0200
-Subject: [PATCH] (dyn|multi)udpsink: unbreak on !IPv6 systems after 130268bc
- (Bind socket before using it)
-
-The g_socket functions only touch the error argument on errors, so clear
-err back to NULL in case g_socket_new (G_SOCKET_FAMILY_IPV6) failed, as
-we check for err != NULL later on to know if g_socket_bind() failed,
-otherwise we errously fail on systems without IPv6 support.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=704553
----
- gst/udp/gstdynudpsink.c | 1 +
- gst/udp/gstmultiudpsink.c | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/gst/udp/gstdynudpsink.c b/gst/udp/gstdynudpsink.c
-index 4690bde..fadbd7f 100644
---- a/gst/udp/gstdynudpsink.c
-+++ b/gst/udp/gstdynudpsink.c
-@@ -316,6 +316,7 @@ gst_dynudpsink_start (GstBaseSink * bsink)
- if ((udpsink->used_socket =
- g_socket_new (G_SOCKET_FAMILY_IPV6,
- G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, &err)) == NULL) {
-+ g_clear_error (&err);
- udpsink->family = G_SOCKET_FAMILY_IPV4;
- if ((udpsink->used_socket = g_socket_new (G_SOCKET_FAMILY_IPV4,
- G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, &err)) == NULL)
-diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c
-index 92d1bac..69011c7 100644
---- a/gst/udp/gstmultiudpsink.c
-+++ b/gst/udp/gstmultiudpsink.c
-@@ -868,6 +868,7 @@ gst_multiudpsink_start (GstBaseSink * bsink)
- if (sink->force_ipv4 || (sink->used_socket =
- g_socket_new (G_SOCKET_FAMILY_IPV6,
- G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, &err)) == NULL) {
-+ g_clear_error (&err);
- if ((sink->used_socket = g_socket_new (G_SOCKET_FAMILY_IPV4,
- G_SOCKET_TYPE_DATAGRAM, G_SOCKET_PROTOCOL_UDP, &err)) == NULL)
- goto no_socket;
---
-1.7.10.4
-
diff --git a/package/multimedia/gst1-plugins-good/gst1-plugins-good.mk b/package/multimedia/gst1-plugins-good/gst1-plugins-good.mk
index 614a006..29b8983 100644
--- a/package/multimedia/gst1-plugins-good/gst1-plugins-good.mk
+++ b/package/multimedia/gst1-plugins-good/gst1-plugins-good.mk
@@ -4,7 +4,7 @@
#
################################################################################
-GST1_PLUGINS_GOOD_VERSION = 1.0.8
+GST1_PLUGINS_GOOD_VERSION = 1.0.10
GST1_PLUGINS_GOOD_SOURCE = gst-plugins-good-$(GST1_PLUGINS_GOOD_VERSION).tar.xz
GST1_PLUGINS_GOOD_SITE = http://gstreamer.freedesktop.org/src/gst-plugins-good
GST1_PLUGINS_GOOD_LICENSE_FILES = COPYING
diff --git a/package/multimedia/gst1-plugins-ugly/gst1-plugins-ugly.mk b/package/multimedia/gst1-plugins-ugly/gst1-plugins-ugly.mk
index c6c927b..e666d61 100644
--- a/package/multimedia/gst1-plugins-ugly/gst1-plugins-ugly.mk
+++ b/package/multimedia/gst1-plugins-ugly/gst1-plugins-ugly.mk
@@ -4,7 +4,7 @@
#
################################################################################
-GST1_PLUGINS_UGLY_VERSION = 1.0.8
+GST1_PLUGINS_UGLY_VERSION = 1.0.10
GST1_PLUGINS_UGLY_SOURCE = gst-plugins-ugly-$(GST1_PLUGINS_UGLY_VERSION).tar.xz
GST1_PLUGINS_UGLY_SITE = http://gstreamer.freedesktop.org/src/gst-plugins-ugly
GST1_PLUGINS_UGLY_LICENSE_FILES = COPYING
diff --git a/package/multimedia/gstreamer1/gstreamer1.mk b/package/multimedia/gstreamer1/gstreamer1.mk
index d3db119..79b2b56 100644
--- a/package/multimedia/gstreamer1/gstreamer1.mk
+++ b/package/multimedia/gstreamer1/gstreamer1.mk
@@ -4,7 +4,7 @@
#
################################################################################
-GSTREAMER1_VERSION = 1.0.8
+GSTREAMER1_VERSION = 1.0.10
GSTREAMER1_SOURCE = gstreamer-$(GSTREAMER1_VERSION).tar.xz
GSTREAMER1_SITE = http://gstreamer.freedesktop.org/src/gstreamer
GSTREAMER1_INSTALL_STAGING = YES
diff --git a/package/neon/Config.in b/package/neon/Config.in
index f972dbb..e76278c 100644
--- a/package/neon/Config.in
+++ b/package/neon/Config.in
@@ -5,44 +5,37 @@ config BR2_PACKAGE_NEON
http://www.webdav.org/neon/
+if BR2_PACKAGE_NEON
+
config BR2_PACKAGE_NEON_ZLIB
bool "ZLIB support"
- depends on BR2_PACKAGE_NEON
select BR2_PACKAGE_ZLIB
help
build with ZLIB support
config BR2_PACKAGE_NEON_SSL
bool "SSL support"
- depends on BR2_PACKAGE_NEON
select BR2_PACKAGE_OPENSSL
help
build with SSL support
-choice
- prompt "XML Support"
- depends on BR2_PACKAGE_NEON
- help
- Select which XML library to use...
- none do not build with XML support
- expat use expat
- libxml2 use libxml2
-
-config BR2_PACKAGE_NEON_NOXML
- bool "none"
- help
- none do not build with XML support
+# This is an hidden symbol other packages can select to ensure that
+# Neon has XML support, either provided by Expat or libxml2.
+config BR2_PACKAGE_NEON_XML
+ bool
+ select BR2_PACKAGE_NEON_EXPAT if !BR2_PACKAGE_NEON_LIBXML2
config BR2_PACKAGE_NEON_EXPAT
- bool "expat"
+ bool "XML support with expat"
select BR2_PACKAGE_EXPAT
+ depends on !BR2_PACKAGE_NEON_LIBXML2
help
- expat use expat, a library for parsing XML.
+ Enable XML support in neon, using the Expat XML library.
config BR2_PACKAGE_NEON_LIBXML2
- bool "libxml2"
+ bool "XML support with libxml2"
select BR2_PACKAGE_LIBXML2
help
- libxml2 use libxml2, a library to read, modify and
- write XML and HTML files.
-endchoice
+ Enable XML support in neon, using the libxml2 XML library.
+
+endif
diff --git a/package/orbit/Config.in b/package/orbit/Config.in
new file mode 100644
index 0000000..556c46e
--- /dev/null
+++ b/package/orbit/Config.in
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_ORBIT
+ bool "orbit"
+ # These are runtime dependencies
+ select BR2_PACKAGE_WSAPI
+ select BR2_PACKAGE_LUAFILESYSTEM
+ help
+ An MVC web framework for Lua. The design is inspired by lightweight
+ Ruby frameworks such as Camping
+
+ http://keplerproject.github.com/orbit
diff --git a/package/orbit/orbit-01-fix-installation.patch b/package/orbit/orbit-01-fix-installation.patch
new file mode 100644
index 0000000..ae50ad9
--- /dev/null
+++ b/package/orbit/orbit-01-fix-installation.patch
@@ -0,0 +1,26 @@
+Fix installation commands
+
+The installation commands did not match the location of the source
+files within the Orbit source tree.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/Makefile
+===================================================================
+--- a/Makefile
++++ b/Makefile
+@@ -11,12 +11,9 @@
+ mkdir -p $(LUA_DIR)
+ cp src/orbit.lua $(LUA_DIR)
+ mkdir -p $(LUA_DIR)/orbit
+- cp src/model.lua $(LUA_DIR)/orbit
+- cp src/cache.lua $(LUA_DIR)/orbit
+- cp src/pages.lua $(LUA_DIR)/orbit
+- cp src/ophandler.lua $(LUA_DIR)/orbit
++ cp src/orbit/*.lua $(LUA_DIR)/orbit
+ mkdir -p $(BIN_DIR)
+- cp src/orbit $(BIN_DIR)
++ cp src/launchers/* $(BIN_DIR)
+ if [ -f ./wsapi/Makefile ]; then \
+ cd wsapi && make install; \
+ fi
diff --git a/package/orbit/orbit.mk b/package/orbit/orbit.mk
new file mode 100644
index 0000000..af5f0af
--- /dev/null
+++ b/package/orbit/orbit.mk
@@ -0,0 +1,19 @@
+################################################################################
+#
+# orbit
+#
+################################################################################
+
+ORBIT_VERSION = 2.2.0
+ORBIT_SITE = http://github.com/downloads/keplerproject/orbit
+ORBIT_LICENSE = MIT
+ORBIT_LICENSE_FILES = COPYRIGHT
+
+define ORBIT_INSTALL_TARGET_CMDS
+ $(MAKE) -C $(@D) \
+ LUA_DIR=$(TARGET_DIR)/usr/share/lua/ \
+ BIN_DIR=$(TARGET_DIR)/usr/bin \
+ install
+endef
+
+$(eval $(generic-package))
diff --git a/package/orc/orc.mk b/package/orc/orc.mk
index dc93882..8db58e9 100644
--- a/package/orc/orc.mk
+++ b/package/orc/orc.mk
@@ -4,7 +4,7 @@
#
################################################################################
-ORC_VERSION = 0.4.16
+ORC_VERSION = 0.4.18
ORC_SITE = http://code.entropywave.com/download/orc/
ORC_LICENSE = BSD-2c, BSD-3c
ORC_LICENSE_FILES = COPYING
diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index 5afaaaf..37a38f7 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -12,7 +12,7 @@ PERL_LICENSE = Artistic
PERL_LICENSE_FILES = Artistic
PERL_INSTALL_STAGING = YES
-PERL_CROSS_VERSION = 0.7.2
+PERL_CROSS_VERSION = 0.7.4
PERL_CROSS_BASE_VERSION = 5.$(PERL_VERSION_MAJOR).3
PERL_CROSS_SITE = http://download.berlios.de/perlcross
PERL_CROSS_SOURCE = perl-$(PERL_CROSS_BASE_VERSION)-cross-$(PERL_CROSS_VERSION).tar.gz
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index b8eaa98..2e2e66f 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -435,12 +435,12 @@ endif
rm -f $$($(2)_TARGET_INSTALL_IMAGES)
rm -f $$($(2)_TARGET_INSTALL_HOST)
-$(1)-rebuild: $(1)-clean-for-rebuild all
+$(1)-rebuild: $(1)-clean-for-rebuild $(1)
$(1)-clean-for-reconfigure: $(1)-clean-for-rebuild
rm -f $$($(2)_TARGET_CONFIGURE)
-$(1)-reconfigure: $(1)-clean-for-reconfigure all
+$(1)-reconfigure: $(1)-clean-for-reconfigure $(1)
# define the PKG variable for all targets, containing the
# uppercase package variable prefix
diff --git a/package/rpm/Config.in b/package/rpm/Config.in
index 14072c9..63e5367 100644
--- a/package/rpm/Config.in
+++ b/package/rpm/Config.in
@@ -1,17 +1,14 @@
comment "rpm requires a toolchain with thread support"
depends on !BR2_TOOLCHAIN_HAS_THREADS
-comment "rpm requires libneon with SSL, XML and ZLIB support"
- depends on !BR2_PACKAGE_NEON || BR2_PACKAGE_NEON_NOXML && BR2_TOOLCHAIN_HAS_THREADS
-
config BR2_PACKAGE_RPM
bool "rpm"
depends on BR2_TOOLCHAIN_HAS_THREADS # beecrypt
select BR2_PACKAGE_BEECRYPT
select BR2_PACKAGE_POPT
select BR2_PACKAGE_OPENSSL
- depends on BR2_PACKAGE_NEON
- depends on !BR2_PACKAGE_NEON_NOXML
+ select BR2_PACKAGE_NEON
+ select BR2_PACKAGE_NEON_XML
select BR2_PACKAGE_NEON_ZLIB
select BR2_PACKAGE_NEON_SSL
help
diff --git a/package/sstrip/sstrip.mk b/package/sstrip/sstrip.mk
index be8c563..c79a501 100644
--- a/package/sstrip/sstrip.mk
+++ b/package/sstrip/sstrip.mk
@@ -8,11 +8,6 @@ SSTRIP_SITE = svn://dev.openwrt.org/openwrt/trunk/tools/sstrip
SSTRIP_VERSION = 20154
HOST_SSTRIP_BINARY = $(GNU_TARGET_NAME)-sstrip
-# This is a kludge to get host-ccache built before us or it fails
-ifeq ($(BR2_CCACHE),y)
-HOST_SSTRIP_DEPENDENCIES = host-ccache
-endif
-
define SSTRIP_BUILD_CMDS
cd $(@D) ; \
$(TARGET_CC) $(TARGET_CFLAGS) -include endian.h -include byteswap.h \
diff --git a/package/subversion/Config.in b/package/subversion/Config.in
new file mode 100644
index 0000000..c1358fe
--- /dev/null
+++ b/package/subversion/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_SUBVERSION
+ bool "subversion"
+ select BR2_PACKAGE_APR_UTIL
+ # apr really needs shared library support
+ depends on !BR2_PREFER_STATIC_LIB
+ select BR2_PACKAGE_NEON
+ select BR2_PACKAGE_NEON_XML
+ help
+ Subversion is an open source version control system
+
+ http://subversion.apache.org/
diff --git a/package/subversion/subversion.mk b/package/subversion/subversion.mk
new file mode 100644
index 0000000..de4db7c
--- /dev/null
+++ b/package/subversion/subversion.mk
@@ -0,0 +1,28 @@
+################################################################################
+#
+# subversion
+#
+################################################################################
+
+SUBVERSION_VERSION = 1.7.9
+SUBVERSION_SITE = http://archive.apache.org/dist/subversion
+SUBVERSION_LICENSE = Apache 2.0
+SUBVERSION_LICENSE_FILES = LICENSE
+
+SUBVERSION_DEPENDENCIES = apr apr-util expat neon zlib
+SUBVERSION_CONF_OPT = \
+ --with-expat=$(STAGING_DIR)/usr/include:$(STAGING_DIR)/usr/lib: \
+ --with-apr=$(STAGING_DIR)/usr \
+ --with-apr-util=$(STAGING_DIR)/usr \
+ --with-zlib=$(STAGING_DIR)/usr \
+ --with-neon=$(STAGING_DIR)/usr \
+ --without-gssapi \
+ --without-serf \
+ --without-apxs \
+ --without-berkeyley-db \
+ --without-sasl \
+ --without-gnome-keyring \
+ --without-ssl \
+ --without-libmagic
+
+$(eval $(autotools-package))
diff --git a/package/trace-cmd/Config.in b/package/trace-cmd/Config.in
new file mode 100644
index 0000000..8d79304
--- /dev/null
+++ b/package/trace-cmd/Config.in
@@ -0,0 +1,16 @@
+config BR2_PACKAGE_TRACE_CMD
+ bool "trace-cmd"
+ depends on BR2_LARGEFILE
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ help
+ Command line reader for ftrace.
+
+ To use this profiling tool, you should enable ftrace in your kernel
+ configuration. This command collect traces on your target.
+ You can analyse these traces on the target or on the host via the gui
+ "kernel shark"
+
+ http://git.kernel.org/cgit/linux/kernel/git/rostedt/trace-cmd.git
+
+comment "trace-cmd needs a toolchain with largefile and threads support"
+ depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/trace-cmd/trace-cmd.mk b/package/trace-cmd/trace-cmd.mk
new file mode 100644
index 0000000..ada0306
--- /dev/null
+++ b/package/trace-cmd/trace-cmd.mk
@@ -0,0 +1,26 @@
+################################################################################
+#
+# trace-cmd
+#
+################################################################################
+
+TRACE_CMD_VERSION = trace-cmd-v2.2.1
+TRACE_CMD_SITE = http://git.kernel.org/cgit/linux/kernel/git/rostedt/trace-cmd.git
+TRACE_CMD_SITE_METHOD = git
+TRACE_CMD_INSTALL_STAGING = YES
+TRACE_CMD_LICENSE = GPLv2 LGPLv2.1
+TRACE_CMD_LICENSE_FILES = COPYING COPYING.LIB
+
+define TRACE_CMD_BUILD_CMDS
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) \
+ CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" \
+ -C $(@D) all
+endef
+
+define TRACE_CMD_INSTALL_TARGET_CMDS
+ $(INSTALL) -D -m 0755 $(@D)/trace-cmd $(TARGET_DIR)/usr/bin/trace-cmd
+ $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/trace-cmd/plugins
+ $(INSTALL) -D -m 0755 $(@D)/plugin_*.so $(TARGET_DIR)/usr/lib/trace-cmd/plugins
+endef
+
+$(eval $(generic-package))
diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
index 36a5001..39877bb 100644
--- a/package/uclibc/uclibc.mk
+++ b/package/uclibc/uclibc.mk
@@ -242,6 +242,20 @@ endef
endif
#
+# MMU
+#
+
+ifeq ($(BR2_USE_MMU),y)
+define UCLIBC_MMU_CONFIG
+ $(call UCLIBC_OPT_SET,ARCH_USE_MMU,y,$(@D))
+endef
+else
+define UCLIBC_MMU_CONFIG
+ $(call UCLIBC_OPT_UNSET,ARCH_USE_MMU,$(@D))
+endef
+endif
+
+#
# IPv6
#
diff --git a/package/wsapi/Config.in b/package/wsapi/Config.in
index 3621648..348a040 100644
--- a/package/wsapi/Config.in
+++ b/package/wsapi/Config.in
@@ -1,5 +1,6 @@
config BR2_PACKAGE_WSAPI
bool "wsapi"
+ # Runtime dependency only
select BR2_PACKAGE_COXPCALL
select BR2_PACKAGE_LUAFILESYSTEM
select BR2_PACKAGE_RINGS
diff --git a/package/wsapi/wsapi.mk b/package/wsapi/wsapi.mk
index 4a64b94..c70502b 100644
--- a/package/wsapi/wsapi.mk
+++ b/package/wsapi/wsapi.mk
@@ -6,7 +6,6 @@
WSAPI_VERSION = 1.5
WSAPI_SITE = http://github.com/downloads/keplerproject/wsapi
-WSAPI_DEPENDENCIES = coxpcall luafilesystem rings
WSAPI_LICENSE = MIT
define WSAPI_INSTALL_TARGET_CMDS
diff --git a/package/xavante/Config.in b/package/xavante/Config.in
index db34d66..be8e6d9 100644
--- a/package/xavante/Config.in
+++ b/package/xavante/Config.in
@@ -1,5 +1,6 @@
config BR2_PACKAGE_XAVANTE
bool "xavante"
+ # Runtime dependency only
select BR2_PACKAGE_CGILUA
select BR2_PACKAGE_COPAS
select BR2_PACKAGE_COXPCALL
diff --git a/package/xavante/xavante.mk b/package/xavante/xavante.mk
index 7c7fdde..dd2a707 100644
--- a/package/xavante/xavante.mk
+++ b/package/xavante/xavante.mk
@@ -6,7 +6,6 @@
XAVANTE_VERSION = 2.2.1
XAVANTE_SITE = http://github.com/downloads/keplerproject/xavante
-XAVANTE_DEPENDENCIES = cgilua copas coxpcall lua luafilesystem luasocket wsapi
XAVANTE_LICENSE = MIT
define XAVANTE_INSTALL_TARGET_CMDS
diff --git a/support/dependencies/dependencies.mk b/support/dependencies/dependencies.mk
index a2d229c..4a220e0 100644
--- a/support/dependencies/dependencies.mk
+++ b/support/dependencies/dependencies.mk
@@ -20,11 +20,17 @@ ifeq ($(BR2_STRIP_sstrip),y)
DEPENDENCIES_HOST_PREREQ+=host-sstrip
endif
+ifeq ($(BR2_CCACHE),y)
+DEPENDENCIES_HOST_PREREQ += host-ccache
+endif
+
core-dependencies:
@HOSTCC="$(firstword $(HOSTCC))" MAKE="$(MAKE)" \
DL_TOOLS="$(sort $(DL_TOOLS_DEPENDENCIES))" \
$(TOPDIR)/support/dependencies/dependencies.sh
+dependencies: HOSTCC=$(HOSTCC_NOCCACHE)
+dependencies: HOSTCXX=$(HOSTCXX_NOCCACHE)
dependencies: core-dependencies $(DEPENDENCIES_HOST_PREREQ)
dependencies-source:
diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
index 61a4140..bce5cc6 100755
--- a/support/dependencies/dependencies.sh
+++ b/support/dependencies/dependencies.sh
@@ -173,14 +173,6 @@ if grep -q ^BR2_PACKAGE_CLASSPATH=y $BUILDROOT_CONFIG ; then
done
fi
-if grep -E '^BR2_TARGET_GENERIC_ROOT_PASSWD=".+"$' $BUILDROOT_CONFIG > /dev/null 2>&1; then
- if ! which mkpasswd > /dev/null 2>&1; then
- /bin/echo -e "\nYou need the 'mkpasswd' utility to set the root password\n"
- /bin/echo -e "(in Debian/ubuntu, 'mkpasswd' provided by the whois package)\n"
- exit 1
- fi
-fi
-
if grep -q ^BR2_HOSTARCH_NEEDS_IA32_LIBS=y $BUILDROOT_CONFIG ; then
if test ! -f /lib/ld-linux.so.2 ; then
/bin/echo -e "\nYour Buildroot configuration uses pre-built tools for the x86 architecture,"
diff --git a/system/system.mk b/system/system.mk
index df8c802..b4ddc3e 100644
--- a/system/system.mk
+++ b/system/system.mk
@@ -2,9 +2,6 @@ TARGET_GENERIC_HOSTNAME := $(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME))
TARGET_GENERIC_ISSUE := $(call qstrip,$(BR2_TARGET_GENERIC_ISSUE))
TARGET_GENERIC_ROOT_PASSWD := $(call qstrip,$(BR2_TARGET_GENERIC_ROOT_PASSWD))
TARGET_GENERIC_PASSWD_METHOD := $(call qstrip,$(BR2_TARGET_GENERIC_PASSWD_METHOD))
-ifneq ($(TARGET_GENERIC_ROOT_PASSWD),)
-TARGET_GENERIC_ROOT_PASSWD_HASH = $(shell mkpasswd -m "$(TARGET_GENERIC_PASSWD_METHOD)" "$(TARGET_GENERIC_ROOT_PASSWD)")
-endif
TARGET_GENERIC_GETTY := $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT))
TARGET_GENERIC_GETTY_BAUDRATE := $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE))
TARGET_GENERIC_GETTY_TERM := $(call qstrip,$(BR2_TARGET_GENERIC_GETTY_TERM))
@@ -23,8 +20,13 @@ target-generic-issue:
mkdir -p $(TARGET_DIR)/etc
echo "$(TARGET_GENERIC_ISSUE)" > $(TARGET_DIR)/etc/issue
+ifneq ($(TARGET_GENERIC_ROOT_PASSWD),)
+target-root-passwd: host-mkpasswd
+endif
target-root-passwd:
- $(SED) 's,^root:[^:]*:,root:$(TARGET_GENERIC_ROOT_PASSWD_HASH):,' $(TARGET_DIR)/etc/shadow
+ [ -n "$(TARGET_GENERIC_ROOT_PASSWD)" ] && \
+ TARGET_GENERIC_ROOT_PASSWD_HASH=$$($(MKPASSWD) -m "$(TARGET_GENERIC_PASSWD_METHOD)" "$(TARGET_GENERIC_ROOT_PASSWD)"); \
+ $(SED) "s,^root:[^:]*:,root:$$TARGET_GENERIC_ROOT_PASSWD_HASH:," $(TARGET_DIR)/etc/shadow
target-generic-getty-busybox:
$(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(TARGET_GENERIC_GETTY)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) $(TARGET_GENERIC_GETTY_TERM) #~' \
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 396a434..7a26441 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -22,6 +22,7 @@ config BR2_TOOLCHAIN_BUILDROOT_EGLIBC
BR2_mips64 || BR2_mips64el || BR2_powerpc || \
BR2_sh || BR2_sh64 || BR2_sparc || \
BR2_x86_64
+ depends on BR2_USE_MMU
select BR2_TOOLCHAIN_USES_GLIBC
# our eglibc.mk enables RPC support
select BR2_TOOLCHAIN_HAS_NATIVE_RPC