From 1bd0a45bf78557eb2b92dacd06bced53cce0f9f9 Mon Sep 17 00:00:00 2001
From: Jose V Beneyto <sepen@crux.nu>
Date: Thu, 1 Nov 2012 17:18:57 +0000
Subject: [PATCH 01/16] Initial import for setup-helper script

---
 filesystem/setup-helper | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100755 filesystem/setup-helper

diff --git a/filesystem/setup-helper b/filesystem/setup-helper
new file mode 100755
index 0000000..e69de29
-- 
2.45.2


From 762878ffea86aa0a4175f54b063eaa73f9388c4f Mon Sep 17 00:00:00 2001
From: Jose V Beneyto <sepen@crux.nu>
Date: Thu, 1 Nov 2012 17:27:07 +0000
Subject: [PATCH 02/16] Initial import for setup-helper script (imported from
 upstream CRUX iso.git repository

---
 filesystem/setup-helper | 133 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 133 insertions(+)
 mode change 100755 => 100644 filesystem/setup-helper

diff --git a/filesystem/setup-helper b/filesystem/setup-helper
old mode 100755
new mode 100644
index e69de29..348fb08
--- a/filesystem/setup-helper
+++ b/filesystem/setup-helper
@@ -0,0 +1,133 @@
+#!/bin/bash
+# post setup
+#
+# Johannes Winkelmann, jw at tks6 dot net
+
+ROOT=$1
+DB=$ROOT/var/lib/pkg/db
+
+## those values should be changed:
+TMPDB=$DB.tmp
+BACKUPDB=$DB.backup
+PKGADD="pkgadd"
+PKGRM="pkgrm"
+MV="mv"
+
+
+is_installed() {
+    printf "%s" $(pkginfo -r $ROOT -i | gawk -v r="^$1\$" '$1 ~ r {print $1}')
+}
+
+
+rename_packages() {
+    if [ -z "$1" ]; then
+	return
+    fi
+    pkg=$@
+    
+    filter="sed "
+    runfilter="no"
+    for tuple in $@; do
+	split=($(echo $tuple|sed -e 's|:| |'))
+	if [ -n "${split[1]}" ] && [ `is_installed ${split[0]}` ]; then
+	    echo "Package renamed:  ${split[0]} -> ${split[1]}"
+	    filter="$filter -e 's|^${split[0]}$|${split[1]}|'"
+	    runfilter="yes"
+	fi
+    done
+    if [ "$runfilter" = "no" ]; then
+	return
+    fi
+
+    :> $TMPDB
+    if [ -f $DB ]; then
+	nextIsName=1
+	cat $DB|while read l; do
+	    if [ $nextIsName -eq 1 ]; then
+		nextIsName=0
+		echo $l|eval $filter >> $TMPDB
+	    else
+		if [ "$l" = "" ]; then
+		    nextIsName=1
+		fi
+		echo $l >> $TMPDB
+	    fi
+	done
+    fi
+
+    $MV $DB $BACKUPDB
+    $MV $TMPDB $DB
+}
+
+
+remove_packages() {
+    for package in $@; do
+	if [ `is_installed $package` ]; then
+	    echo "Package removed:  $package"
+            $PKGRM -r $ROOT $package
+	fi
+    done
+}
+
+inject_packages() {
+    for package in $@; do
+    pkg="`find core opt xorg \( -name \"${package}#*.pkg.tar.gz\" -o -name \"${package}#*.pkg.tar.bz2\" -o -name \"${package}#*.pkg.tar.xz\" \)&2> /dev/null`"
+	if [ -z "$pkg" ]; then
+		echo "  ERROR: package $package not found on ISO"
+	else
+		if [ -z `is_installed $package` ]; then
+		    echo "Package injected: $package"
+			$PKGADD -r $ROOT -f $pkg
+		else
+			echo "Package upgraded: $package"
+			$PKGADD -r $ROOT -u -f $pkg
+		fi
+	fi
+    done
+}
+
+####################
+
+if [ -z "$1" ]; then
+    echo "Usage: $0 <root>"
+    exit -1
+fi
+
+
+##### # 2.7 -> 2.8 #####
+echo "* CRUX 2.7 -> 2.8 setup-helper"
+
+rename_packages "util-linux-ng:util-linux"
+remove_packages module-init-tools eject
+inject_packages kmod tzdata util-linux
+
+if [ `is_installed glib` ]; then
+    inject_packages libffi
+fi
+
+if [ `is_installed wpa_supplicant` ]; then
+    inject_packages libnl
+fi
+
+if [ `is_installed xorg-xcb-util` ]; then
+    inject_packages xorg-xcb-util-image xorg-xcb-util-keysyms xorg-xcb-util-renderutil xorg-xcb-util-wm
+fi
+
+if [ `is_installed xorg-xf86-input-evdev` ]; then
+    inject_packages mtdev
+fi
+
+if [ `is_installed xorg-xf86-input-synaptics` ]; then
+    inject_packages mtdev
+fi
+
+if [ `is_installed firefox` ]; then
+    inject_packages nspr nss sqlite3
+fi
+
+if [ `is_installed mesa3d` ]; then
+    inject_packages glu
+fi
+
+# force replacement of /etc/mtab with symlink
+ln -sf /proc/self/mounts $ROOT/etc/mtab
-- 
2.45.2


From b58c75077584a025d89ddc92a094d128c055d4ca Mon Sep 17 00:00:00 2001
From: Jose V Beneyto <sepen@crux.nu>
Date: Thu, 1 Nov 2012 17:45:33 +0000
Subject: [PATCH 03/16] Modified setup-helper script to handle extra
 collections

---
 filesystem/setup-helper | 56 +++++++++++++++++++++++++----------------
 1 file changed, 35 insertions(+), 21 deletions(-)
 mode change 100644 => 100755 filesystem/setup-helper

diff --git a/filesystem/setup-helper b/filesystem/setup-helper
old mode 100644
new mode 100755
index 348fb08..37101a7
--- a/filesystem/setup-helper
+++ b/filesystem/setup-helper
@@ -71,9 +71,9 @@ remove_packages() {
 
 inject_packages() {
     for package in $@; do
-    pkg="`find core opt xorg \( -name \"${package}#*.pkg.tar.gz\" -o -name \"${package}#*.pkg.tar.bz2\" -o -name \"${package}#*.pkg.tar.xz\" \)&2> /dev/null`"
+    pkg="`find core $EXTRA_COLLECTIONS \( -name \"${package}#*.pkg.tar.gz\" -o -name \"${package}#*.pkg.tar.bz2\" -o -name \"${package}#*.pkg.tar.xz\" \)&2> /dev/null`"
 	if [ -z "$pkg" ]; then
-		echo "  ERROR: package $package not found on ISO"
+		echo "  ERROR: package $package not found on CRUX media installer"
 	else
 		if [ -z `is_installed $package` ]; then
 		    echo "Package injected: $package"
@@ -93,6 +93,14 @@ if [ -z "$1" ]; then
     exit -1
 fi
 
+EXTRA_COLLECTIONS=""
+for i in /media/crux/*; do.
+	if [ -d $i ]; then
+		if [ "$i" != "core" ] && [ "$i" != "kernel" ]; then
+			EXTRA_COLLECTIONS="$EXTRA_COLLECTIONS $i"
+		fi
+	fi
+done
 
 ##### # 2.7 -> 2.8 #####
 echo "* CRUX 2.7 -> 2.8 setup-helper"
@@ -101,32 +109,38 @@ rename_packages "util-linux-ng:util-linux"
 remove_packages module-init-tools eject
 inject_packages kmod tzdata util-linux
 
-if [ `is_installed glib` ]; then
-    inject_packages libffi
-fi
+if grep -q opt $EXTRA_COLLECTIONS; then
 
-if [ `is_installed wpa_supplicant` ]; then
-    inject_packages libnl
-fi
+	if [ `is_installed glib` ]; then
+	    inject_packages libffi
+	fi
 
-if [ `is_installed xorg-xcb-util` ]; then
-    inject_packages xorg-xcb-util-image xorg-xcb-util-keysyms xorg-xcb-util-renderutil xorg-xcb-util-wm
+	if [ `is_installed wpa_supplicant` ]; then
+	    inject_packages libnl
+	fi
 fi
 
-if [ `is_installed xorg-xf86-input-evdev` ]; then
-    inject_packages mtdev
-fi
+if grep -q xorg $EXTRA_COLLECTIONS; then
 
-if [ `is_installed xorg-xf86-input-synaptics` ]; then
-    inject_packages mtdev
-fi
+	if [ `is_installed xorg-xcb-util` ]; then
+	    inject_packages xorg-xcb-util-image xorg-xcb-util-keysyms xorg-xcb-util-renderutil xorg-xcb-util-wm
+	fi
 
-if [ `is_installed firefox` ]; then
-    inject_packages nspr nss sqlite3
-fi
+	if [ `is_installed xorg-xf86-input-evdev` ]; then
+	    inject_packages mtdev
+	fi
+
+	if [ `is_installed xorg-xf86-input-synaptics` ]; then
+	    inject_packages mtdev
+	fi
+
+	if [ `is_installed firefox` ]; then
+	    inject_packages nspr nss sqlite3
+	fi
 
-if [ `is_installed mesa3d` ]; then
-    inject_packages glu
+	if [ `is_installed mesa3d` ]; then
+	    inject_packages glu
+	fi
 fi
 
 # force replacement of /etc/mtab with symlink
-- 
2.45.2


From c1447ba5b58ca34b500f137a5fc9c360ce39bc2d Mon Sep 17 00:00:00 2001
From: Jose V Beneyto <sepen@crux.nu>
Date: Thu, 1 Nov 2012 17:48:10 +0000
Subject: [PATCH 04/16] Fixed order for injected packages in setup-helper
 script.

---
 filesystem/setup-helper | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/filesystem/setup-helper b/filesystem/setup-helper
index 37101a7..bce20d2 100755
--- a/filesystem/setup-helper
+++ b/filesystem/setup-helper
@@ -118,6 +118,10 @@ if grep -q opt $EXTRA_COLLECTIONS; then
 	if [ `is_installed wpa_supplicant` ]; then
 	    inject_packages libnl
 	fi
+
+	if [ `is_installed firefox` ]; then
+	    inject_packages nspr nss sqlite3
+	fi
 fi
 
 if grep -q xorg $EXTRA_COLLECTIONS; then
@@ -134,10 +138,6 @@ if grep -q xorg $EXTRA_COLLECTIONS; then
 	    inject_packages mtdev
 	fi
 
-	if [ `is_installed firefox` ]; then
-	    inject_packages nspr nss sqlite3
-	fi
-
 	if [ `is_installed mesa3d` ]; then
 	    inject_packages glu
 	fi
-- 
2.45.2


From c305836a24a148bb4f7abd63cc36825b5bff3364 Mon Sep 17 00:00:00 2001
From: Jose V Beneyto <sepen@crux.nu>
Date: Wed, 14 Aug 2013 10:07:13 +0000
Subject: [PATCH 05/16] Updated filesystem/crux to 3.0

---
 filesystem/crux | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/filesystem/crux b/filesystem/crux
index 561d9ef..2c2d764 100755
--- a/filesystem/crux
+++ b/filesystem/crux
@@ -1,5 +1,5 @@
 #! /bin/sh
 
-echo "CRUX 2.8"
+echo "CRUX-ARM 3.0"
 
 # End of file
-- 
2.45.2


From a3d2f9f8fd8681756fc7669470af8d1b9d15c86c Mon Sep 17 00:00:00 2001
From: Jose V Beneyto <sepen@crux.nu>
Date: Wed, 14 Aug 2013 10:07:18 +0000
Subject: [PATCH 06/16] Fixed compiler for TARGET and removed DEVICE in
 Makefile

---
 Makefile | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 54c8259..764262e 100644
--- a/Makefile
+++ b/Makefile
@@ -6,8 +6,7 @@ TOPDIR = $(shell pwd)
 
 include $(TOPDIR)/../toolchain/vars.mk
 
-TARGET = arm-crux-linux-gnueabi
-DEVICE = versatile
+TARGET = arm-crux-linux-gnueabihf
 
 WORK = $(TOPDIR)/work
 CLFS = $(TOPDIR)/../toolchain/clfs
-- 
2.45.2


From 07e084db07076225b6b0d80222d30620916fb102 Mon Sep 17 00:00:00 2001
From: Jose V Beneyto <sepen@crux.nu>
Date: Wed, 14 Aug 2013 10:15:46 +0000
Subject: [PATCH 07/16] Updated dialog version to 1.2-20130523

---
 Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 764262e..04bf224 100644
--- a/Makefile
+++ b/Makefile
@@ -15,8 +15,8 @@ CROSSTOOLS = $(TOPDIR)/../toolchain/crosstools
 BUSYBOX_VERSION  = 1.20.2
 BUSYBOX_SOURCE   = http://busybox.net/downloads/busybox-$(BUSYBOX_VERSION).tar.bz2
 
-DIALOG_VERSION = 1.1-20120706
-DIALOG_SOURCE = ftp://dickey.his.com/dialog/dialog-$(DIALOG_VERSION).tgz
+DIALOG_VERSION = 1.2-20130523
+DIALOG_SOURCE = ftp://invisible-island.net/dialog/dialog-$(DIALOG_VERSION).tgz
 
 NCURSES_HEADER = $(CLFS)/usr/include/ncurses.h
 
-- 
2.45.2


From f28332c0744f16bc240b58e3d78fde587f331361 Mon Sep 17 00:00:00 2001
From: Jose V Beneyto <sepen@crux.nu>
Date: Wed, 14 Aug 2013 10:30:30 +0000
Subject: [PATCH 08/16] Updated busybox to 1.21.1

---
 Makefile                                      |  2 +-
 ...box-1.20.2.config => busybox-1.21.1.config | 32 ++++++++++++-------
 2 files changed, 22 insertions(+), 12 deletions(-)
 rename busybox-1.20.2.config => busybox-1.21.1.config (98%)

diff --git a/Makefile b/Makefile
index 04bf224..a1bb6fe 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ WORK = $(TOPDIR)/work
 CLFS = $(TOPDIR)/../toolchain/clfs
 CROSSTOOLS = $(TOPDIR)/../toolchain/crosstools
 
-BUSYBOX_VERSION  = 1.20.2
+BUSYBOX_VERSION  = 1.21.1
 BUSYBOX_SOURCE   = http://busybox.net/downloads/busybox-$(BUSYBOX_VERSION).tar.bz2
 
 DIALOG_VERSION = 1.2-20130523
diff --git a/busybox-1.20.2.config b/busybox-1.21.1.config
similarity index 98%
rename from busybox-1.20.2.config
rename to busybox-1.21.1.config
index e9dac93..9e5fdf1 100644
--- a/busybox-1.20.2.config
+++ b/busybox-1.21.1.config
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Busybox version: 1.20.2
-# Wed Oct 10 14:39:32 2012
+# Busybox version: 1.21.1
+# Wed Aug 14 10:26:37 2013
 #
 CONFIG_HAVE_DOT_CONFIG=y
 
@@ -42,6 +42,7 @@ CONFIG_FEATURE_DEVPTS=y
 # CONFIG_FEATURE_UTMP is not set
 # CONFIG_FEATURE_WTMP is not set
 CONFIG_FEATURE_PIDFILE=y
+CONFIG_PID_FILE_PATH="/var/run"
 # CONFIG_FEATURE_SUID is not set
 # CONFIG_FEATURE_SUID_CONFIG is not set
 # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
@@ -96,6 +97,7 @@ CONFIG_PREFIX="./_install"
 # CONFIG_FEATURE_RTMINMAX is not set
 CONFIG_PASSWORD_MINLEN=6
 CONFIG_MD5_SMALL=1
+CONFIG_SHA3_SMALL=1
 CONFIG_FEATURE_FAST_TOP=y
 # CONFIG_FEATURE_ETC_NETWORKS is not set
 CONFIG_FEATURE_USE_TERMIOS=y
@@ -263,6 +265,7 @@ CONFIG_SEQ=y
 CONFIG_SHA1SUM=y
 CONFIG_SHA256SUM=y
 CONFIG_SHA512SUM=y
+CONFIG_SHA3SUM=y
 CONFIG_SLEEP=y
 CONFIG_FEATURE_FANCY_SLEEP=y
 CONFIG_FEATURE_FLOAT_SLEEP=y
@@ -310,7 +313,7 @@ CONFIG_FEATURE_AUTOWIDTH=y
 CONFIG_FEATURE_HUMAN_READABLE=y
 
 #
-# Common options for md5sum, sha1sum, sha256sum, sha512sum
+# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
 #
 CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
 
@@ -375,7 +378,6 @@ CONFIG_FEATURE_VI_SETOPTS=y
 CONFIG_FEATURE_VI_SET=y
 CONFIG_FEATURE_VI_WIN_RESIZE=y
 CONFIG_FEATURE_VI_ASK_TERMINAL=y
-CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
 CONFIG_AWK=y
 CONFIG_FEATURE_AWK_LIBM=y
 CONFIG_CMP=y
@@ -616,9 +618,11 @@ CONFIG_FEATURE_VOLUMEID_EXT=y
 CONFIG_FEATURE_VOLUMEID_BTRFS=y
 CONFIG_FEATURE_VOLUMEID_REISERFS=y
 CONFIG_FEATURE_VOLUMEID_FAT=y
+CONFIG_FEATURE_VOLUMEID_EXFAT=y
 CONFIG_FEATURE_VOLUMEID_HFS=y
 CONFIG_FEATURE_VOLUMEID_JFS=y
 CONFIG_FEATURE_VOLUMEID_XFS=y
+CONFIG_FEATURE_VOLUMEID_NILFS=y
 CONFIG_FEATURE_VOLUMEID_NTFS=y
 CONFIG_FEATURE_VOLUMEID_ISO9660=y
 CONFIG_FEATURE_VOLUMEID_UDF=y
@@ -626,6 +630,7 @@ CONFIG_FEATURE_VOLUMEID_LUKS=y
 CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
 CONFIG_FEATURE_VOLUMEID_CRAMFS=y
 CONFIG_FEATURE_VOLUMEID_ROMFS=y
+CONFIG_FEATURE_VOLUMEID_SQUASHFS=y
 CONFIG_FEATURE_VOLUMEID_SYSV=y
 CONFIG_FEATURE_VOLUMEID_OCFS2=y
 CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
@@ -898,6 +903,13 @@ CONFIG_POWERTOP=y
 CONFIG_PSTREE=y
 CONFIG_PWDX=y
 CONFIG_SMEMCAP=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+CONFIG_FEATURE_TOP_SMP_CPU=y
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_FEATURE_TOP_SMP_PROCESS=y
+CONFIG_FEATURE_TOPMEM=y
 CONFIG_UPTIME=y
 # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set
 CONFIG_FREE=y
@@ -918,13 +930,6 @@ CONFIG_FEATURE_PS_LONG=y
 # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
 CONFIG_RENICE=y
 CONFIG_BB_SYSCTL=y
-CONFIG_TOP=y
-CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
-CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
-CONFIG_FEATURE_TOP_SMP_CPU=y
-CONFIG_FEATURE_TOP_DECIMALS=y
-CONFIG_FEATURE_TOP_SMP_PROCESS=y
-CONFIG_FEATURE_TOPMEM=y
 CONFIG_FEATURE_SHOW_THREADS=y
 CONFIG_WATCH=y
 
@@ -1019,6 +1024,11 @@ CONFIG_FEATURE_IPC_SYSLOG=y
 CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
 CONFIG_LOGREAD=y
 CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
+CONFIG_FEATURE_KMSG_SYSLOG=y
 CONFIG_KLOGD=y
+
+#
+# klogd should not be used together with syslog to kernel printk buffer
+#
 CONFIG_FEATURE_KLOGD_KLOGCTL=y
 CONFIG_LOGGER=y
-- 
2.45.2


From a03a415ee6975fdb68e0f7aea750bf359f927293 Mon Sep 17 00:00:00 2001
From: Victor Martinez <pitillo@ono.com>
Date: Wed, 14 Aug 2013 12:59:26 +0200
Subject: [PATCH 09/16] Removed -mno-unaligned-access from dialog build

---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index a1bb6fe..14d439c 100644
--- a/Makefile
+++ b/Makefile
@@ -75,7 +75,7 @@ $(WORK)/dialog-$(DIALOG_VERSION)/_install/usr/bin/dialog: $(WORK)/dialog-$(DIALO
 		./configure --build=$(BUILD) --host=$(TARGET) --prefix=/usr --with-ncursesw && \
 		find -type f -name 'makefile' \
 		-exec sed -e "s|-I/usr|-I$(CLFS)/usr|g" -e "s|-L/usr|-L$(CLFS)/usr|g" -i {} \; && \
-		make CC="$(TARGET)-gcc -static -mno-unaligned-access" && \
+		make CC="$(TARGET)-gcc -static" && \
 		make DESTDIR=$(WORK)/dialog-$(DIALOG_VERSION)/_install install && \
 		$(TARGET)-strip $(WORK)/dialog-$(DIALOG_VERSION)/_install/usr/bin/dialog && \
 		touch $(WORK)/dialog-$(DIALOG_VERSION)/_install/usr/bin/dialog
-- 
2.45.2


From a87f2538b905696d5a27895b0394a53f231a6de3 Mon Sep 17 00:00:00 2001
From: Jose V Beneyto <sepen@crux.nu>
Date: Fri, 18 Oct 2013 00:39:51 +0000
Subject: [PATCH 10/16] Cleanup Makefile

---
 Makefile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 14d439c..41a7ee5 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 # 
-# initrd.git/Makefile
+# initrd/Makefile
 #
 
 TOPDIR = $(shell pwd)
@@ -38,7 +38,7 @@ check-root:
 $(WORK)/busybox-$(BUSYBOX_VERSION).tar.bz2:
 	wget -P $(WORK) -c $(BUSYBOX_SOURCE)
 
-$(WORK)/busybox-$(BUSYBOX_VERSION): $(WORK)/busybox-$(BUSYBOX_VERSION).tar.bz2 $(TOPDIR)/busybox-$(BUSYBOX_VERSION).config
+$(WORK)/busybox-$(BUSYBOX_VERSION): $(WORK)/busybox-$(BUSYBOX_VERSION).tar.bz2 $(TOPDIR)/busybox-$(BUSYBOX_VERSION).config $(WORK)/fix-resource_header.patch
 	tar -C $(WORK) -xvjf $(WORK)/busybox-$(BUSYBOX_VERSION).tar.bz2
 	cd $(WORK)/busybox-$(BUSYBOX_VERSION) && \
 		patch -p1 -i $(WORK)/fix-resource_header.patch
@@ -114,7 +114,7 @@ $(WORK)/initrd.gz: check-root busybox dialog $(WORK)/mnt $(TOPDIR)/filesystem $(
 initrd: $(WORK)/initrd.gz
 
 initrd-clean: check-root
-	rm -vf $(WORK)/initrd.gz
+	rm -vf $(WORK)/initrd.gz $(WORK)/mnt
 
 initrd-distclean: initrd-clean
 
-- 
2.45.2


From 2b95ffc0b6998aeb84f59ff1b0b27da46d4c01da Mon Sep 17 00:00:00 2001
From: Jose V Beneyto <sepen@crux.nu>
Date: Fri, 18 Oct 2013 10:15:56 +0000
Subject: [PATCH 11/16] Initial set of updates for 3.0.

---
 filesystem/rc           |  2 +-
 filesystem/setup        |  2 +-
 filesystem/setup-helper | 40 ++++------------------------------------
 3 files changed, 6 insertions(+), 38 deletions(-)

diff --git a/filesystem/rc b/filesystem/rc
index d035357..42b03d9 100755
--- a/filesystem/rc
+++ b/filesystem/rc
@@ -100,7 +100,7 @@ find_and_mount_media() {
 #
 
 echo ""
-echo -e "${BOLD}CRUX-ARM 2.8 - ${BLUE}http://crux-arm.nu/${NORM}"
+echo -e "${BOLD}CRUX-ARM 3.0 - ${BLUE}http://crux-arm.nu/${NORM}"
 echo ""
 
 exec >/dev/console </dev/console 2>&1
diff --git a/filesystem/setup b/filesystem/setup
index bb3b550..717a98b 100755
--- a/filesystem/setup
+++ b/filesystem/setup
@@ -22,7 +22,7 @@
 # USA.
 #
 
-VERSION="2.8"
+VERSION="3.0"
 
 do_dialog() {
     dialog --backtitle "CRUX $VERSION Setup" --no-shadow "$@"
diff --git a/filesystem/setup-helper b/filesystem/setup-helper
index bce20d2..a88adc8 100755
--- a/filesystem/setup-helper
+++ b/filesystem/setup-helper
@@ -102,44 +102,12 @@ for i in /media/crux/*; do.
 	fi
 done
 
-##### # 2.7 -> 2.8 #####
-echo "* CRUX 2.7 -> 2.8 setup-helper"
-
-rename_packages "util-linux-ng:util-linux"
-remove_packages module-init-tools eject
-inject_packages kmod tzdata util-linux
+##### # 2.8 -> 3.0 #####
+echo "* CRUX-ARM 2.8 -> 3.0 setup-helper"
 
 if grep -q opt $EXTRA_COLLECTIONS; then
-
-	if [ `is_installed glib` ]; then
-	    inject_packages libffi
-	fi
-
-	if [ `is_installed wpa_supplicant` ]; then
-	    inject_packages libnl
-	fi
-
-	if [ `is_installed firefox` ]; then
-	    inject_packages nspr nss sqlite3
-	fi
-fi
-
-if grep -q xorg $EXTRA_COLLECTIONS; then
-
-	if [ `is_installed xorg-xcb-util` ]; then
-	    inject_packages xorg-xcb-util-image xorg-xcb-util-keysyms xorg-xcb-util-renderutil xorg-xcb-util-wm
-	fi
-
-	if [ `is_installed xorg-xf86-input-evdev` ]; then
-	    inject_packages mtdev
-	fi
-
-	if [ `is_installed xorg-xf86-input-synaptics` ]; then
-	    inject_packages mtdev
-	fi
-
-	if [ `is_installed mesa3d` ]; then
-	    inject_packages glu
+	if [ `is_installed pango` ]; then
+		inject_packages harfbuzz
 	fi
 fi
 
-- 
2.45.2


From 58823b0a719f22e27e59229e615fcb7714bc0d8f Mon Sep 17 00:00:00 2001
From: Victor Martinez <pitillo@ono.com>
Date: Tue, 29 Oct 2013 17:36:53 +0000
Subject: [PATCH 12/16] Fixed initrd-clean recursive dir clean.

---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 41a7ee5..3f08178 100644
--- a/Makefile
+++ b/Makefile
@@ -114,7 +114,7 @@ $(WORK)/initrd.gz: check-root busybox dialog $(WORK)/mnt $(TOPDIR)/filesystem $(
 initrd: $(WORK)/initrd.gz
 
 initrd-clean: check-root
-	rm -vf $(WORK)/initrd.gz $(WORK)/mnt
+	rm -rvf $(WORK)/initrd.gz $(WORK)/mnt
 
 initrd-distclean: initrd-clean
 
-- 
2.45.2


From 1a72982e160ab633820e4de04023b5a963c2bceb Mon Sep 17 00:00:00 2001
From: Jose V Beneyto <sepen@crux.nu>
Date: Fri, 1 Nov 2013 12:04:59 +0000
Subject: [PATCH 13/16] Synced changes with initramfs.git

---
 Makefile      |  1 +
 filesystem/rc | 35 ++++++++++++++++++++++++++++++++---
 2 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 3f08178..6f91338 100644
--- a/Makefile
+++ b/Makefile
@@ -106,6 +106,7 @@ $(WORK)/initrd.gz: check-root busybox dialog $(WORK)/mnt $(TOPDIR)/filesystem $(
 	install -v -m 0400 $(TOPDIR)/filesystem/shadow $(WORK)/mnt/etc
 	install -v -m 0755 $(TOPDIR)/filesystem/rc $(WORK)/mnt/etc && \
 	install -v -m 0755 $(TOPDIR)/filesystem/{setup,setup-chroot,crux} $(WORK)/mnt/usr/bin && \
+	ln -s bin/busybox $(WORK)/mnt/init
 	/sbin/ldconfig -r $(WORK)/mnt
 	umount -v $(WORK)/mnt
 	cd $(WORK) && gzip -v initrd
diff --git a/filesystem/rc b/filesystem/rc
index 42b03d9..5b19485 100755
--- a/filesystem/rc
+++ b/filesystem/rc
@@ -31,7 +31,6 @@ checkReturn() {
 find_and_mount_media() {
 	echo -e " ${BOLD}${BLUE}*${NORM} Searching for the CRUX media..."
 	mkdir -p /media
-	CRUXMEDIA=""
 	MMC_DEVICES="`grep -E 'mmcblk0p' /proc/partitions | awk '{ print $4 }'`"
 	BLOCK_DEVICES="`grep -E '[sh]d' /proc/partitions | awk '{ print $4 }'`"
 	for DEV in $MMC_DEVICES $BLOCK_DEVICES
@@ -44,7 +43,6 @@ find_and_mount_media() {
 			if [ -e /media/crux-media ]
 			then
 				echo ", CRUX media."
-				CRUXMEDIA=$DEV
 				ln -s $DEV /dev/media
 				break
 			else
@@ -105,6 +103,26 @@ echo ""
 
 exec >/dev/console </dev/console 2>&1
 
+# premature mount /proc since we need some rw operations
+echo -e -n " ${BOLD}${BLUE}*${NORM} Mounting "
+echo -e -n "${BOLD}${GREEN}/proc${NORM}"
+mount -t proc proc /proc
+
+if grep -q "debug" /proc/cmdline
+then
+	DEBUG=1
+fi
+
+# dont show kernel printk messages
+PRINTK="`cat /proc/sys/kernel/printk`"
+if [ -z $DEBUG ]
+then
+	echo "0" > /proc/sys/kernel/printk
+fi
+
+echo -e ", ${BOLD}${GREEN}/sys${NORM}."
+mount -t sysfs sysfs /sys
+
 echo -e -n " ${BOLD}${BLUE}*${NORM} Mounting filesystems... "
 mount -a && \
 mount -o remount,rw /
@@ -141,10 +159,18 @@ echo -e -n " ${BOLD}${BLUE}*${NORM} Saving boot messages... "
 dmesg > /var/log/boot
 checkReturn
 
+# run mdev again to fix issues with mmc devices. yeah, it is weird but worked
+mdev -s
+
 echo -e " ${BOLD}${BLUE}*${NORM} Trying to find and mount the media installer..."
 find_and_mount_media
 
-if grep -q debug /proc/cmdline; then
+# debug could be necessary when are working with a new device and/or features
+# and for a weird reason you can't see any output message on the console.
+# You can create a debug.sh script at topdir of your install media and redirect
+# the output to a file to inspect later
+if [ ! -z $DEBUG ];
+then
 	echo -e -n " ${BOLD}${BLUE}*${NORM} Loading debug script..."
 	/media/debug.sh
 	checkReturn
@@ -154,4 +180,7 @@ echo
 echo "The system is coming up. Please wait."
 echo
 
+# restore kernel printk status
+echo "$PRINTK" > /proc/sys/kernel/printk
+
 # End of file
-- 
2.45.2


From 07bbf582863b81ea9032177bb39662c58d646427 Mon Sep 17 00:00:00 2001
From: Jose V Beneyto <sepen@crux.nu>
Date: Fri, 1 Nov 2013 12:05:41 +0000
Subject: [PATCH 14/16] Fixed MAKEFLAGS usage (FS#56)

---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index 6f91338..842fcb4 100644
--- a/Makefile
+++ b/Makefile
@@ -48,7 +48,7 @@ $(WORK)/busybox-$(BUSYBOX_VERSION): $(WORK)/busybox-$(BUSYBOX_VERSION).tar.bz2 $
 $(WORK)/busybox-$(BUSYBOX_VERSION)/_install/bin/busybox: $(WORK)/busybox-$(BUSYBOX_VERSION)
 	export PATH=$(CROSSTOOLS)/bin:$$PATH &&  \
 	export LD_LIBRARY_PATH=$(CROSSTOOLS)/lib:$$LD_LIBRARY_PATH && \
-	make -C $(WORK)/busybox-$(BUSYBOX_VERSION) ARCH=arm CROSS_COMPILE=$(TARGET)- install && \
+	make -j1 -C $(WORK)/busybox-$(BUSYBOX_VERSION) ARCH=arm CROSS_COMPILE=$(TARGET)- install && \
 	install -D -m 0755 $(WORK)/busybox-$(BUSYBOX_VERSION)/examples/udhcp/simple.script $(WORK)/busybox-$(BUSYBOX_VERSION)/_install/usr/share/udhcpc/default.script && \
 	$(TARGET)-strip $(WORK)/busybox-$(BUSYBOX_VERSION)/_install/bin/busybox && \
 	touch $(WORK)/busybox-$(BUSYBOX_VERSION)/_install/bin/busybox
-- 
2.45.2


From 908a5d6e0089b76fdb40a20bf7781035a2c92839 Mon Sep 17 00:00:00 2001
From: Jose V Beneyto <sepen@crux.nu>
Date: Sat, 2 Nov 2013 00:31:49 +0000
Subject: [PATCH 15/16] Synced changes with initramfs.git

---
 Makefile              | 45 ++++++++++++++++++++++++++++++++----
 busybox-1.21.1.config | 54 +++++++++++++++++++++----------------------
 2 files changed, 68 insertions(+), 31 deletions(-)

diff --git a/Makefile b/Makefile
index 842fcb4..905f003 100644
--- a/Makefile
+++ b/Makefile
@@ -15,18 +15,21 @@ CROSSTOOLS = $(TOPDIR)/../toolchain/crosstools
 BUSYBOX_VERSION  = 1.21.1
 BUSYBOX_SOURCE   = http://busybox.net/downloads/busybox-$(BUSYBOX_VERSION).tar.bz2
 
+E2FSPROGS_VERSION = 1.42.5
+E2FSPROGS_SOURCE = http://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v$(E2FSPROGS_VERSION)/e2fsprogs-$(E2FSPROGS_VERSION).tar.gz
+
 DIALOG_VERSION = 1.2-20130523
 DIALOG_SOURCE = ftp://invisible-island.net/dialog/dialog-$(DIALOG_VERSION).tgz
 
 NCURSES_HEADER = $(CLFS)/usr/include/ncurses.h
 
-.PHONY: all check-root busybox dialog initrd clean distclean
+.PHONY: all check-root busybox e2fsprogs dialog initrd clean distclean
 
 all: initrd
 
-clean: busybox-clean dialog-clean initrd-clean
+clean: busybox-clean e2fsprogs-clean dialog-clean initrd-clean
 
-distclean: busybox-distclean dialog-distclean initrd-distclean
+distclean: busybox-distclean e2fsprogs-clean dialog-distclean initrd-distclean
 
 check-root:
 	@if [ "$$UID" != "0" ]; then \
@@ -61,6 +64,36 @@ busybox-clean:
 busybox-distclean: busybox-clean
 	rm -vf $(WORK)/busybox-$(BUSYBOX_VERSION).tar.bz2
 
+$(WORK)/e2fsprogs-$(E2FSPROGS_VERSION).tar.gz:
+	wget -P $(WORK) -c $(E2FSPROGS_SOURCE)
+
+$(WORK)/e2fsprogs-$(E2FSPROGS_VERSION): $(WORK)/e2fsprogs-$(E2FSPROGS_VERSION).tar.gz
+	tar -C $(WORK) -xvzf $(WORK)/e2fsprogs-$(E2FSPROGS_VERSION).tar.gz
+	touch $(WORK)/e2fsprogs-$(E2FSPROGS_VERSION)
+
+$(WORK)/e2fsprogs-$(E2FSPROGS_VERSION)/misc/mke2fs: $(WORK)/e2fsprogs-$(E2FSPROGS_VERSION)
+	export PATH=$(CROSSTOOLS)/bin:$$PATH &&  \
+        export LD_LIBRARY_PATH=$(CROSSTOOLS)/lib:$$LD_LIBRARY_PATH && \
+        cd $(WORK)/e2fsprogs-$(E2FSPROGS_VERSION) && \
+                ./configure --build=$(BUILD) --host=$(TARGET) --prefix=/usr --with-root-prefix= \
+                --mandir=/usr/man --disable-symlink-install --disable-nls --disable-compression \
+                --disable-htree --disable-elf-shlibs --disable-bsd-shlibs --disable-profile \
+                --disable-checker --disable-jbd-debug --disable-blkid-debug --disable-testio-debug \
+                --enable-libuuid --enable-libblkid --disable-libquota --disable-debugfs --disable-imager \
+                --disable-resizer --disable-defrag --disable-fsck --disable-e2initrd-helper \
+                --disable-tls --disable-rpath && \
+                make V=1 CFLAGS="$(CFLAGS) -static" LDFLAGS="$(LDFLAGS) -static" && \
+                $(TARGET)-strip $(WORK)/e2fsprogs-$(E2FSPROGS_VERSION)/misc/mke2fs && \
+                touch $(WORK)/e2fsprogs-$(E2FSPROGS_VERSION)/misc/mke2fs
+
+e2fsprogs: $(WORK)/e2fsprogs-$(E2FSPROGS_VERSION)/misc/mke2fs
+
+e2fsprogs-clean:
+	rm -vrf $(WORK)/e2fsprogs-$(E2FSPROGS_VERSION)
+
+e2fsprogs-distclean:
+	rm -vf $(WORK)/e2fsprogs-$(E2FSPROGS_VERSION).tar.bz2
+
 $(WORK)/dialog-$(DIALOG_VERSION).tgz:
 	wget -P $(WORK) -c $(DIALOG_SOURCE)
 
@@ -91,11 +124,15 @@ dialog-distclean: dialog-clean
 $(WORK)/mnt:
 	mkdir -p $(WORK)/mnt
 
-$(WORK)/initrd.gz: check-root busybox dialog $(WORK)/mnt $(TOPDIR)/filesystem $(TOPDIR)/mkinitrd.sh
+$(WORK)/initrd.gz: check-root busybox e2fsprogs dialog $(WORK)/mnt $(TOPDIR)/filesystem $(TOPDIR)/mkinitrd.sh
 	sh mkinitrd.sh --name=$(WORK)/initrd.gz --size=4096
 	cd $(WORK) && gunzip -v initrd.gz
 	mount -v -t ext2 -o loop,rw $(WORK)/initrd $(WORK)/mnt
 	cp -dRv $(WORK)/busybox-$(BUSYBOX_VERSION)/_install/* $(WORK)/mnt
+	install -v -m 0755 $(WORK)/e2fsprogs-$(E2FSPROGS_VERSION)/misc/mke2fs $(WORK)/mnt/sbin
+	for i in 2 3 4 4dev; do \
+		ln -s mke2fs $(WORK)/mnt/sbin/mkfs.ext$$i; \
+	done
 	install -v -m 0755 $(WORK)/dialog-$(DIALOG_VERSION)/_install/usr/bin/dialog $(WORK)/mnt/usr/bin
 	cp -dRv $(CLFS)/lib/libnss_{files*,dns*} $(CLFS)/lib/libresolv* $(WORK)/mnt/lib
 	install -d  $(WORK)/mnt/usr/share/terminfo
diff --git a/busybox-1.21.1.config b/busybox-1.21.1.config
index 9e5fdf1..c18cea0 100644
--- a/busybox-1.21.1.config
+++ b/busybox-1.21.1.config
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Busybox version: 1.21.1
-# Wed Aug 14 10:26:37 2013
+# Fri Nov  1 23:35:07 2013
 #
 CONFIG_HAVE_DOT_CONFIG=y
 
@@ -116,7 +116,7 @@ CONFIG_FEATURE_NON_POSIX_CP=y
 # CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
 CONFIG_FEATURE_COPYBUF_KB=4
 CONFIG_FEATURE_SKIP_ROOTFS=y
-# CONFIG_MONOTONIC_SYSCALL is not set
+CONFIG_MONOTONIC_SYSCALL=y
 CONFIG_IOCTL_HEX2STR_ERROR=y
 CONFIG_FEATURE_HWIB=y
 
@@ -370,7 +370,7 @@ CONFIG_FEATURE_VI_MAX_LEN=4096
 CONFIG_FEATURE_VI_COLON=y
 CONFIG_FEATURE_VI_YANKMARK=y
 CONFIG_FEATURE_VI_SEARCH=y
-# CONFIG_FEATURE_VI_REGEX_SEARCH is not set
+CONFIG_FEATURE_VI_REGEX_SEARCH=y
 CONFIG_FEATURE_VI_USE_SIGNALS=y
 CONFIG_FEATURE_VI_DOT_CMD=y
 CONFIG_FEATURE_VI_READONLY=y
@@ -427,9 +427,9 @@ CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
 #
 # Init Utilities
 #
-CONFIG_BOOTCHARTD=y
-CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER=y
-CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE=y
+# CONFIG_BOOTCHARTD is not set
+# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
+# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set
 CONFIG_HALT=y
 # CONFIG_FEATURE_CALL_TELINIT is not set
 CONFIG_TELINIT_PATH=""
@@ -440,10 +440,10 @@ CONFIG_FEATURE_KILL_DELAY=0
 CONFIG_FEATURE_INIT_SCTTY=y
 CONFIG_FEATURE_INIT_SYSLOG=y
 CONFIG_FEATURE_EXTRA_QUIET=y
-CONFIG_FEATURE_INIT_COREDUMPS=y
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
 CONFIG_FEATURE_INITRD=y
 CONFIG_INIT_TERMINAL_TYPE="linux"
-CONFIG_MESG=y
+# CONFIG_MESG is not set
 # CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set
 
 #
@@ -559,7 +559,7 @@ CONFIG_FINDFS=y
 CONFIG_FLOCK=y
 CONFIG_FREERAMDISK=y
 CONFIG_FSCK_MINIX=y
-CONFIG_MKFS_EXT2=y
+# CONFIG_MKFS_EXT2 is not set
 CONFIG_MKFS_MINIX=y
 CONFIG_FEATURE_MINIX2=y
 CONFIG_MKFS_REISER=y
@@ -659,8 +659,8 @@ CONFIG_UBIRMVOL=y
 CONFIG_UBIRSVOL=y
 CONFIG_UBIUPDATEVOL=y
 CONFIG_ADJTIMEX=y
-# CONFIG_BBCONFIG is not set
-# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
+CONFIG_BBCONFIG=y
+CONFIG_FEATURE_COMPRESS_BBCONFIG=y
 CONFIG_BEEP=y
 CONFIG_FEATURE_BEEP_FREQ=4000
 CONFIG_FEATURE_BEEP_LENGTH_MS=30
@@ -745,7 +745,7 @@ CONFIG_WHOIS=y
 CONFIG_FEATURE_IPV6=y
 # CONFIG_FEATURE_UNIX_LOCAL is not set
 CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
-# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+CONFIG_VERBOSE_RESOLUTION_ERRORS=y
 CONFIG_ARP=y
 CONFIG_ARPING=y
 CONFIG_BRCTL=y
@@ -876,20 +876,20 @@ CONFIG_ZCIP=y
 #
 # Print Utilities
 #
-CONFIG_LPD=y
-CONFIG_LPR=y
-CONFIG_LPQ=y
+# CONFIG_LPD is not set
+# CONFIG_LPR is not set
+# CONFIG_LPQ is not set
 
 #
 # Mail Utilities
 #
-CONFIG_MAKEMIME=y
-CONFIG_FEATURE_MIME_CHARSET="us-ascii"
-CONFIG_POPMAILDIR=y
-CONFIG_FEATURE_POPMAILDIR_DELIVERY=y
-CONFIG_REFORMIME=y
-CONFIG_FEATURE_REFORMIME_COMPAT=y
-CONFIG_SENDMAIL=y
+# CONFIG_MAKEMIME is not set
+CONFIG_FEATURE_MIME_CHARSET=""
+# CONFIG_POPMAILDIR is not set
+# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
+# CONFIG_REFORMIME is not set
+# CONFIG_FEATURE_REFORMIME_COMPAT is not set
+# CONFIG_SENDMAIL is not set
 
 #
 # Process Utilities
@@ -936,12 +936,12 @@ CONFIG_WATCH=y
 #
 # Runit Utilities
 #
-CONFIG_RUNSV=y
-CONFIG_RUNSVDIR=y
+# CONFIG_RUNSV is not set
+# CONFIG_RUNSVDIR is not set
 # CONFIG_FEATURE_RUNSVDIR_LOG is not set
-CONFIG_SV=y
-CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service"
-CONFIG_SVLOGD=y
+# CONFIG_SV is not set
+CONFIG_SV_DEFAULT_SERVICE_DIR=""
+# CONFIG_SVLOGD is not set
 CONFIG_CHPST=y
 CONFIG_SETUIDGID=y
 CONFIG_ENVUIDGID=y
-- 
2.45.2


From c8f0f771e612bbb05dffae26f84a1e1508e23355 Mon Sep 17 00:00:00 2001
From: Victor Martinez <pitillo@ono.com>
Date: Tue, 30 Sep 2014 11:48:54 +0000
Subject: [PATCH 16/16] Initrd updated: - busybox updated to 1.22.0 - Updated
 filesystem/{crux,rc,setup,setup-helper} to 3.1

---
 Makefile                                      |  2 +-
 ...box-1.21.1.config => busybox-1.22.0.config | 66 ++++++++++---------
 filesystem/crux                               |  2 +-
 filesystem/rc                                 |  2 +-
 filesystem/setup                              |  2 +-
 filesystem/setup-helper                       |  4 +-
 6 files changed, 41 insertions(+), 37 deletions(-)
 rename busybox-1.21.1.config => busybox-1.22.0.config (99%)

diff --git a/Makefile b/Makefile
index 905f003..ab69208 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ WORK = $(TOPDIR)/work
 CLFS = $(TOPDIR)/../toolchain/clfs
 CROSSTOOLS = $(TOPDIR)/../toolchain/crosstools
 
-BUSYBOX_VERSION  = 1.21.1
+BUSYBOX_VERSION  = 1.22.0
 BUSYBOX_SOURCE   = http://busybox.net/downloads/busybox-$(BUSYBOX_VERSION).tar.bz2
 
 E2FSPROGS_VERSION = 1.42.5
diff --git a/busybox-1.21.1.config b/busybox-1.22.0.config
similarity index 99%
rename from busybox-1.21.1.config
rename to busybox-1.22.0.config
index c18cea0..a30b48f 100644
--- a/busybox-1.21.1.config
+++ b/busybox-1.22.0.config
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Busybox version: 1.21.1
-# Fri Nov  1 23:35:07 2013
+# Busybox version: 1.22.0
+# Tue Sep 30 09:14:27 2014
 #
 CONFIG_HAVE_DOT_CONFIG=y
 
@@ -135,7 +135,14 @@ CONFIG_FEATURE_SEAMLESS_GZ=y
 # CONFIG_AR is not set
 # CONFIG_FEATURE_AR_LONG_FILENAMES is not set
 # CONFIG_FEATURE_AR_CREATE is not set
+# CONFIG_UNCOMPRESS is not set
+CONFIG_GUNZIP=y
 CONFIG_BUNZIP2=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_LZMA=y
+CONFIG_UNXZ=y
+CONFIG_XZ=y
 CONFIG_BZIP2=y
 CONFIG_CPIO=y
 CONFIG_FEATURE_CPIO_O=y
@@ -143,14 +150,13 @@ CONFIG_FEATURE_CPIO_P=y
 # CONFIG_DPKG is not set
 # CONFIG_DPKG_DEB is not set
 # CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
-CONFIG_GUNZIP=y
 CONFIG_GZIP=y
 CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
 CONFIG_GZIP_FAST=0
 CONFIG_LZOP=y
 # CONFIG_LZOP_COMPR_HIGH is not set
-CONFIG_RPM2CPIO=y
 CONFIG_RPM=y
+CONFIG_RPM2CPIO=y
 CONFIG_TAR=y
 CONFIG_FEATURE_TAR_CREATE=y
 CONFIG_FEATURE_TAR_AUTODETECT=y
@@ -163,12 +169,6 @@ CONFIG_FEATURE_TAR_TO_COMMAND=y
 CONFIG_FEATURE_TAR_UNAME_GNAME=y
 CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
 # CONFIG_FEATURE_TAR_SELINUX is not set
-# CONFIG_UNCOMPRESS is not set
-CONFIG_UNLZMA=y
-CONFIG_FEATURE_LZMA_FAST=y
-CONFIG_LZMA=y
-CONFIG_UNXZ=y
-CONFIG_XZ=y
 CONFIG_UNZIP=y
 
 #
@@ -186,6 +186,7 @@ CONFIG_ID=y
 CONFIG_TEST=y
 CONFIG_FEATURE_TEST_64=y
 CONFIG_TOUCH=y
+CONFIG_FEATURE_TOUCH_NODEREF=y
 CONFIG_FEATURE_TOUCH_SUSV3=y
 CONFIG_TR=y
 CONFIG_FEATURE_TR_CLASSES=y
@@ -363,7 +364,16 @@ CONFIG_WHICH=y
 #
 # Editors
 #
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_LIBM=y
+CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_ED=y
 CONFIG_PATCH=y
+CONFIG_SED=y
 CONFIG_VI=y
 CONFIG_FEATURE_VI_MAX_LEN=4096
 # CONFIG_FEATURE_VI_8BIT is not set
@@ -378,14 +388,6 @@ CONFIG_FEATURE_VI_SETOPTS=y
 CONFIG_FEATURE_VI_SET=y
 CONFIG_FEATURE_VI_WIN_RESIZE=y
 CONFIG_FEATURE_VI_ASK_TERMINAL=y
-CONFIG_AWK=y
-CONFIG_FEATURE_AWK_LIBM=y
-CONFIG_CMP=y
-CONFIG_DIFF=y
-CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
-CONFIG_FEATURE_DIFF_DIR=y
-CONFIG_ED=y
-CONFIG_SED=y
 CONFIG_FEATURE_ALLOW_EXEC=y
 
 #
@@ -528,6 +530,7 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
 # Linux System Utilities
 #
 CONFIG_BLOCKDEV=y
+CONFIG_FSTRIM=y
 CONFIG_MDEV=y
 CONFIG_FEATURE_MDEV_CONF=y
 CONFIG_FEATURE_MDEV_RENAME=y
@@ -614,26 +617,27 @@ CONFIG_VOLUMEID=y
 #
 # Filesystem/Volume identification
 #
-CONFIG_FEATURE_VOLUMEID_EXT=y
 CONFIG_FEATURE_VOLUMEID_BTRFS=y
-CONFIG_FEATURE_VOLUMEID_REISERFS=y
-CONFIG_FEATURE_VOLUMEID_FAT=y
+CONFIG_FEATURE_VOLUMEID_CRAMFS=y
 CONFIG_FEATURE_VOLUMEID_EXFAT=y
+CONFIG_FEATURE_VOLUMEID_EXT=y
+CONFIG_FEATURE_VOLUMEID_F2FS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
 CONFIG_FEATURE_VOLUMEID_HFS=y
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
 CONFIG_FEATURE_VOLUMEID_JFS=y
-CONFIG_FEATURE_VOLUMEID_XFS=y
+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+CONFIG_FEATURE_VOLUMEID_LUKS=y
 CONFIG_FEATURE_VOLUMEID_NILFS=y
 CONFIG_FEATURE_VOLUMEID_NTFS=y
-CONFIG_FEATURE_VOLUMEID_ISO9660=y
-CONFIG_FEATURE_VOLUMEID_UDF=y
-CONFIG_FEATURE_VOLUMEID_LUKS=y
-CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
-CONFIG_FEATURE_VOLUMEID_CRAMFS=y
+CONFIG_FEATURE_VOLUMEID_OCFS2=y
+CONFIG_FEATURE_VOLUMEID_REISERFS=y
 CONFIG_FEATURE_VOLUMEID_ROMFS=y
 CONFIG_FEATURE_VOLUMEID_SQUASHFS=y
 CONFIG_FEATURE_VOLUMEID_SYSV=y
-CONFIG_FEATURE_VOLUMEID_OCFS2=y
-CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
+CONFIG_FEATURE_VOLUMEID_UDF=y
+CONFIG_FEATURE_VOLUMEID_XFS=y
 
 #
 # Miscellaneous Utilities
@@ -651,6 +655,7 @@ CONFIG_FEATURE_LESS_DASHCMD=y
 CONFIG_FEATURE_LESS_LINENUMS=y
 CONFIG_NANDWRITE=y
 CONFIG_NANDDUMP=y
+CONFIG_RFKILL=y
 CONFIG_SETSERIAL=y
 CONFIG_UBIATTACH=y
 CONFIG_UBIDETACH=y
@@ -658,6 +663,7 @@ CONFIG_UBIMKVOL=y
 CONFIG_UBIRMVOL=y
 CONFIG_UBIRSVOL=y
 CONFIG_UBIUPDATEVOL=y
+# CONFIG_WALL is not set
 CONFIG_ADJTIMEX=y
 CONFIG_BBCONFIG=y
 CONFIG_FEATURE_COMPRESS_BBCONFIG=y
@@ -714,7 +720,6 @@ CONFIG_MOUNTPOINT=y
 CONFIG_MT=y
 CONFIG_RAIDAUTORUN=y
 CONFIG_READAHEAD=y
-CONFIG_RFKILL=y
 # CONFIG_RUNLEVEL is not set
 CONFIG_RX=y
 CONFIG_SETSID=y
@@ -725,7 +730,6 @@ CONFIG_TIME=y
 CONFIG_TIMEOUT=y
 CONFIG_TTYSIZE=y
 CONFIG_VOLNAME=y
-# CONFIG_WALL is not set
 CONFIG_WATCHDOG=y
 
 #
diff --git a/filesystem/crux b/filesystem/crux
index 2c2d764..c7ca611 100755
--- a/filesystem/crux
+++ b/filesystem/crux
@@ -1,5 +1,5 @@
 #! /bin/sh
 
-echo "CRUX-ARM 3.0"
+echo "CRUX-ARM 3.1"
 
 # End of file
diff --git a/filesystem/rc b/filesystem/rc
index 5b19485..cc1bc7e 100755
--- a/filesystem/rc
+++ b/filesystem/rc
@@ -98,7 +98,7 @@ find_and_mount_media() {
 #
 
 echo ""
-echo -e "${BOLD}CRUX-ARM 3.0 - ${BLUE}http://crux-arm.nu/${NORM}"
+echo -e "${BOLD}CRUX-ARM 3.1 - ${BLUE}http://crux-arm.nu/${NORM}"
 echo ""
 
 exec >/dev/console </dev/console 2>&1
diff --git a/filesystem/setup b/filesystem/setup
index 717a98b..71476a7 100755
--- a/filesystem/setup
+++ b/filesystem/setup
@@ -22,7 +22,7 @@
 # USA.
 #
 
-VERSION="3.0"
+VERSION="3.1"
 
 do_dialog() {
     dialog --backtitle "CRUX $VERSION Setup" --no-shadow "$@"
diff --git a/filesystem/setup-helper b/filesystem/setup-helper
index a88adc8..9af9d22 100755
--- a/filesystem/setup-helper
+++ b/filesystem/setup-helper
@@ -102,8 +102,8 @@ for i in /media/crux/*; do.
 	fi
 done
 
-##### # 2.8 -> 3.0 #####
-echo "* CRUX-ARM 2.8 -> 3.0 setup-helper"
+##### # 3.0 -> 3.1 #####
+echo "* CRUX-ARM 3.0 -> 3.1 setup-helper"
 
 if grep -q opt $EXTRA_COLLECTIONS; then
 	if [ `is_installed pango` ]; then
-- 
2.45.2