summaryrefslogtreecommitdiffstats
path: root/master/endstop
diff options
context:
space:
mode:
Diffstat (limited to 'master/endstop')
-rw-r--r--master/endstop2510
1 files changed, 2510 insertions, 0 deletions
diff --git a/master/endstop b/master/endstop
new file mode 100644
index 0000000..8c9db8d
--- /dev/null
+++ b/master/endstop
@@ -0,0 +1,2510 @@
+diff --git a/.config b/.config
+index c633d20..65a8c38 100644
+--- a/.config
++++ b/.config
+@@ -1,7 +1,7 @@
+ #
+ # Automatically generated make config: don't edit
+ # OpenWrt version: Barrier Breaker (r36060)
+-# Sat Mar 23 05:43:05 2013
++# Sun May 12 00:29:53 2013
+ #
+ CONFIG_HAVE_DOT_CONFIG=y
+ # CONFIG_TARGET_ppc40x is not set
+@@ -1012,9 +1012,10 @@ CONFIG_BUSYBOX_CONFIG_HWCLOCK=y
+ # CONFIG_BUSYBOX_CONFIG_IPCS is not set
+ # CONFIG_BUSYBOX_CONFIG_LOSETUP is not set
+ # CONFIG_BUSYBOX_CONFIG_LSPCI is not set
+-# CONFIG_BUSYBOX_CONFIG_LSUSB is not set
++CONFIG_BUSYBOX_CONFIG_LSUSB=y
+ # CONFIG_BUSYBOX_CONFIG_MDEV is not set
+-# CONFIG_BUSYBOX_CONFIG_MKSWAP is not set
++CONFIG_BUSYBOX_CONFIG_MKSWAP=y
++CONFIG_BUSYBOX_CONFIG_FEATURE_MKSWAP_UUID=y
+ # CONFIG_BUSYBOX_CONFIG_MORE is not set
+ CONFIG_BUSYBOX_CONFIG_MOUNT=y
+ # CONFIG_BUSYBOX_CONFIG_FEATURE_MOUNT_FAKE is not set
+@@ -1033,7 +1034,8 @@ CONFIG_BUSYBOX_CONFIG_PIVOT_ROOT=y
+ # CONFIG_BUSYBOX_CONFIG_SCRIPT is not set
+ # CONFIG_BUSYBOX_CONFIG_SCRIPTREPLAY is not set
+ # CONFIG_BUSYBOX_CONFIG_SETARCH is not set
+-# CONFIG_BUSYBOX_CONFIG_SWAPONOFF is not set
++CONFIG_BUSYBOX_CONFIG_SWAPONOFF=y
++CONFIG_BUSYBOX_CONFIG_FEATURE_SWAPON_PRI=y
+ CONFIG_BUSYBOX_CONFIG_SWITCH_ROOT=y
+ CONFIG_BUSYBOX_CONFIG_UMOUNT=y
+ CONFIG_BUSYBOX_CONFIG_FEATURE_UMOUNT_ALL=y
+@@ -1319,7 +1321,7 @@ CONFIG_PACKAGE_libgcc=y
+ CONFIG_PACKAGE_libpthread=y
+ CONFIG_PACKAGE_librt=y
+ # CONFIG_PACKAGE_libstdcpp is not set
+-# CONFIG_PACKAGE_libthread-db is not set
++CONFIG_PACKAGE_libthread-db=m
+ # CONFIG_PACKAGE_mksh is not set
+ CONFIG_PACKAGE_mtd=y
+ CONFIG_PACKAGE_netifd=y
+@@ -1332,7 +1334,28 @@ CONFIG_PACKAGE_procd=y
+ # CONFIG_PACKAGE_sflowovsd is not set
+ CONFIG_PACKAGE_swconfig=y
+ CONFIG_PACKAGE_uci=y
+-# CONFIG_PACKAGE_udev is not set
++CONFIG_PACKAGE_udev=y
++
++#
++# Configuration
++#
++# CONFIG_UDEV_DISABLE_LOGGING is not set
++# CONFIG_UDEV_ENABLE_DEBUG is not set
++CONFIG_UDEV_EXTRA_accelerometer=y
++CONFIG_UDEV_EXTRA_ata_id=y
++CONFIG_UDEV_EXTRA_cdrom_id=y
++# CONFIG_UDEV_EXTRA_collect is not set
++# CONFIG_UDEV_EXTRA_edd_id is not set
++# CONFIG_UDEV_EXTRA_firmware is not set
++# CONFIG_UDEV_EXTRA_floppy is not set
++CONFIG_UDEV_EXTRA_input_id=y
++CONFIG_UDEV_EXTRA_mtd_probe=y
++CONFIG_UDEV_EXTRA_path_id=y
++# CONFIG_UDEV_EXTRA_qemu is not set
++CONFIG_UDEV_EXTRA_rule_generator=y
++CONFIG_UDEV_EXTRA_scsi_id=y
++CONFIG_UDEV_EXTRA_usb_id=y
++CONFIG_UDEV_EXTRA_v4l_id=y
+ CONFIG_PACKAGE_wireless-tools=y
+ # CONFIG_PACKAGE_zram-swap is not set
+
+@@ -2416,7 +2439,7 @@ CONFIG_PACKAGE_iodine=m
+ # CONFIG_PACKAGE_howl-nifd is not set
+ # CONFIG_PACKAGE_howl-utils is not set
+ # CONFIG_PACKAGE_ipupdate is not set
+-# CONFIG_PACKAGE_isc-dhcp-client-ipv4 is not set
++CONFIG_PACKAGE_isc-dhcp-client-ipv4=m
+ # CONFIG_PACKAGE_isc-dhcp-client-ipv6 is not set
+ # CONFIG_PACKAGE_isc-dhcp-omshell-ipv4 is not set
+ # CONFIG_PACKAGE_isc-dhcp-omshell-ipv6 is not set
+@@ -2894,7 +2917,6 @@ CONFIG_PACKAGE_uhttpd-mod-ubus=y
+ # CONFIG_PACKAGE_cdp-tools is not set
+ CONFIG_PACKAGE_chat=y
+ # CONFIG_PACKAGE_cifsmount is not set
+-# CONFIG_PACKAGE_crda is not set
+ # CONFIG_PACKAGE_daemonlogger is not set
+ # CONFIG_PACKAGE_darkstat is not set
+ # CONFIG_PACKAGE_ditg is not set
+@@ -3076,15 +3098,17 @@ CONFIG_PACKAGE_tcpdump=y
+ # CONFIG_PACKAGE_wiviz is not set
+ # CONFIG_PACKAGE_wol is not set
+ # CONFIG_PACKAGE_wpa-cli is not set
+-# CONFIG_PACKAGE_wpa-supplicant is not set
+-# CONFIG_WPA_SUPPLICANT_NO_TIMESTAMP_CHECK is not set
++CONFIG_PACKAGE_wpa-supplicant=y
++CONFIG_WPA_SUPPLICANT_NO_TIMESTAMP_CHECK=y
++# CONFIG_WPA_SUPPLICANT_INTERNAL is not set
++CONFIG_WPA_SUPPLICANT_OPENSSL=y
+ # CONFIG_WPA_RFKILL_SUPPORT is not set
+ CONFIG_WPA_MSG_MIN_PRIORITY=3
+ # CONFIG_DRIVER_WEXT_SUPPORT is not set
+ CONFIG_DRIVER_11N_SUPPORT=y
+ # CONFIG_PACKAGE_wpa-supplicant-mini is not set
+-# CONFIG_PACKAGE_wpad is not set
+-CONFIG_PACKAGE_wpad-mini=y
++CONFIG_PACKAGE_wpad=y
++# CONFIG_PACKAGE_wpad-mini is not set
+ # CONFIG_PACKAGE_wprobe-export is not set
+ # CONFIG_PACKAGE_wprobe-util is not set
+ # CONFIG_PACKAGE_wshaper is not set
+@@ -3194,7 +3218,7 @@ CONFIG_PACKAGE_bluez-libs=m
+ # CONFIG_PACKAGE_ftplib is not set
+ # CONFIG_PACKAGE_giflib is not set
+ # CONFIG_PACKAGE_glib1 is not set
+-CONFIG_PACKAGE_glib2=m
++CONFIG_PACKAGE_glib2=y
+ # CONFIG_PACKAGE_glibmm is not set
+ # CONFIG_PACKAGE_id3lib is not set
+ # CONFIG_PACKAGE_jansson is not set
+@@ -3233,7 +3257,7 @@ CONFIG_PACKAGE_libcurl=m
+ # CONFIG_PACKAGE_libdb47 is not set
+ # CONFIG_PACKAGE_libdb47xx is not set
+ # CONFIG_PACKAGE_libdbi is not set
+-CONFIG_PACKAGE_libdbus=m
++CONFIG_PACKAGE_libdbus=y
+ CONFIG_PACKAGE_libdbus-glib=m
+ # CONFIG_PACKAGE_libdevmapper is not set
+ # CONFIG_PACKAGE_libdmapsharing is not set
+@@ -3249,12 +3273,12 @@ CONFIG_PACKAGE_libdbus-glib=m
+ # CONFIG_PACKAGE_libevent2-pthreads is not set
+ # CONFIG_PACKAGE_libeventlog is not set
+ # CONFIG_PACKAGE_libexif is not set
+-CONFIG_PACKAGE_libexpat=m
++CONFIG_PACKAGE_libexpat=y
+ # CONFIG_PACKAGE_libexslt is not set
+ # CONFIG_PACKAGE_libezxml is not set
+ # CONFIG_PACKAGE_libfaad2 is not set
+ # CONFIG_PACKAGE_libfaifa is not set
+-CONFIG_PACKAGE_libffi=m
++CONFIG_PACKAGE_libffi=y
+ # CONFIG_PACKAGE_libffmpeg-full is not set
+ # CONFIG_PACKAGE_libffmpeg-mini is not set
+ # CONFIG_PACKAGE_libflac is not set
+@@ -3412,8 +3436,8 @@ CONFIG_PACKAGE_libuci-lua=y
+ # CONFIG_PACKAGE_libunbound is not set
+ # CONFIG_PACKAGE_libupnp is not set
+ # CONFIG_PACKAGE_liburcu is not set
+-# CONFIG_PACKAGE_libusb-1.0 is not set
+-# CONFIG_PACKAGE_libusb-compat is not set
++CONFIG_PACKAGE_libusb-1.0=y
++CONFIG_PACKAGE_libusb-compat=y
+ # CONFIG_PACKAGE_libusbmuxd is not set
+ CONFIG_PACKAGE_libustream-cyassl=y
+ CONFIG_PACKAGE_libustream-openssl=y
+@@ -3811,7 +3835,7 @@ CONFIG_PACKAGE_comgt=y
+ # CONFIG_PACKAGE_crypto-tools is not set
+ # CONFIG_PACKAGE_cryptsetup is not set
+ # CONFIG_PACKAGE_daemontools is not set
+-CONFIG_PACKAGE_dbus=m
++CONFIG_PACKAGE_dbus=y
+ CONFIG_PACKAGE_dbus-utils=m
+ # CONFIG_PACKAGE_devmem2 is not set
+ # CONFIG_PACKAGE_dfu-util is not set
+@@ -3962,23 +3986,9 @@ CONFIG_PACKAGE_shadow-su=m
+ # CONFIG_PACKAGE_spidev-test is not set
+ # CONFIG_PACKAGE_ssldump is not set
+ # CONFIG_PACKAGE_stm32flash is not set
+-# CONFIG_PACKAGE_strace is not set
++CONFIG_PACKAGE_strace=y
+ # CONFIG_PACKAGE_stress is not set
+ # CONFIG_PACKAGE_sysstat is not set
+-CONFIG_PACKAGE_systemd-udev=m
+-
+-#
+-# Configuration
+-#
+-# CONFIG_SYSTEMD_UDEV_DISABLE_GUDEV is not set
+-# CONFIG_SYSTEMD_UDEV_EXTRA_ata_id is not set
+-CONFIG_SYSTEMD_UDEV_EXTRA_cdrom_id=y
+-# CONFIG_SYSTEMD_UDEV_EXTRA_collect is not set
+-CONFIG_SYSTEMD_UDEV_EXTRA_scsi_id=y
+-# CONFIG_SYSTEMD_UDEV_EXTRA_v4l_id is not set
+-# CONFIG_SYSTEMD_UDEV_EXTRA_accelerometer is not set
+-CONFIG_SYSTEMD_UDEV_EXTRA_mtd_probe=y
+-# CONFIG_SYSTEMD_UDEV_EXTRA_qemu is not set
+ # CONFIG_PACKAGE_tar is not set
+ # CONFIG_PACKAGE_taskwarrior is not set
+ # CONFIG_PACKAGE_tcpser is not set
+@@ -3991,7 +4001,8 @@ CONFIG_SYSTEMD_UDEV_EXTRA_mtd_probe=y
+ CONFIG_PACKAGE_uboot-envtools=y
+ # CONFIG_PACKAGE_uboot-envtools-mmc is not set
+ # CONFIG_PACKAGE_upx is not set
+-# CONFIG_PACKAGE_usb-modeswitch is not set
++CONFIG_PACKAGE_usb-modeswitch=y
++CONFIG_PACKAGE_usb-modeswitch-data=y
+ # CONFIG_PACKAGE_usbmuxd is not set
+ # CONFIG_PACKAGE_usbreset is not set
+ # CONFIG_PACKAGE_usbutils is not set
+@@ -4044,7 +4055,7 @@ CONFIG_PACKAGE_uboot-envtools=y
+ # CONFIG_PACKAGE_binutils is not set
+ # CONFIG_PACKAGE_cppunit is not set
+ # CONFIG_PACKAGE_diffutils is not set
+-# CONFIG_PACKAGE_gdb is not set
++CONFIG_PACKAGE_gdb=m
+ # CONFIG_PACKAGE_gdbserver is not set
+ # CONFIG_PACKAGE_lttng-tools is not set
+ # CONFIG_PACKAGE_make is not set
+diff --git a/feeds/packages/libs/dbus-glib/patches/dont-segv-on-null-object-path.patch b/feeds/packages/libs/dbus-glib/patches/dont-segv-on-null-object-path.patch
+new file mode 100644
+index 0000000..02cc604
+--- /dev/null
++++ b/feeds/packages/libs/dbus-glib/patches/dont-segv-on-null-object-path.patch
+@@ -0,0 +1,15 @@
++Index: dbus-glib-0.94/dbus/dbus-gvalue.c
++===================================================================
++--- dbus-glib-0.94.orig/dbus/dbus-gvalue.c
+++++ dbus-glib-0.94/dbus/dbus-gvalue.c
++@@ -1593,6 +1593,10 @@ marshal_object (DBusMessageIter
++ g_return_val_if_fail (G_IS_OBJECT (obj), FALSE);
++
++ path = _dbus_gobject_get_path (obj);
+++ if (!path) {
+++ g_warning ("Cannot marshal NULL object path of object %p",obj);
+++ return FALSE;
+++ }
++ g_return_val_if_fail (g_variant_is_object_path (path), FALSE);
++
++ if (!dbus_message_iter_append_basic (iter,
+diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile
+index 16db2d8..7b10ed5 100644
+--- a/package/network/services/hostapd/Makefile
++++ b/package/network/services/hostapd/Makefile
+@@ -86,7 +86,7 @@ ifneq ($(LOCAL_TYPE),hostapd)
+ CONFIG_DRIVER_ROBOSWITCH=$(CONFIG_PACKAGE_kmod-switch)
+ endif
+
+-DRV_DEPENDS:=+PACKAGE_kmod-mac80211:libnl-tiny @(!TARGET_avr32||BROKEN)
++DRV_DEPENDS:=+PACKAGE_kmod-mac80211:libnl-tiny @(!TARGET_avr32||BROKEN) +dbus
+
+ define Package/hostapd/Default
+ SECTION:=net
+@@ -163,7 +163,7 @@ define Package/wpa-supplicant
+ CATEGORY:=Network
+ TITLE:=WPA Supplicant
+ URL:=http://hostap.epitest.fi/wpa_supplicant/
+- DEPENDS:=$(DRV_DEPENDS) +WPA_SUPPLICANT_OPENSSL:libopenssl
++ DEPENDS:=$(DRV_DEPENDS) +WPA_SUPPLICANT_OPENSSL:libopenssl
+ VARIANT:=supplicant-full
+ endef
+
+@@ -230,6 +230,9 @@ ifdef CONFIG_PACKAGE_kmod-mac80211
+ TARGET_LDFLAGS += -lm -lnl-tiny
+ endif
+
++TARGET_LDFLAGS += -ldbus-1
++DEPENDS +=
++
+ define Build/RunMake
+ CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
+ $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(1) \
+diff --git a/package/network/services/hostapd/files/wpa_supplicant-full.config b/package/network/services/hostapd/files/wpa_supplicant-full.config
+index f5abbad..28a0ae9 100644
+--- a/package/network/services/hostapd/files/wpa_supplicant-full.config
++++ b/package/network/services/hostapd/files/wpa_supplicant-full.config
+@@ -346,7 +346,7 @@ CONFIG_INTERNAL_LIBTOMMATH_FAST=y
+
+ # Add support for new DBus control interface
+ # (fi.w1.hostap.wpa_supplicant1)
+-#CONFIG_CTRL_IFACE_DBUS_NEW=y
++CONFIG_CTRL_IFACE_DBUS_NEW=y
+
+ # Add introspection support for new DBus control interface
+ #CONFIG_CTRL_IFACE_DBUS_INTRO=y
+diff --git a/package/network/utils/modemmanager/Makefile b/package/network/utils/modemmanager/Makefile
+new file mode 100644
+index 0000000..df05f2f
+--- /dev/null
++++ b/package/network/utils/modemmanager/Makefile
+@@ -0,0 +1,103 @@
++#
++# Copyright (C) 2013 OpenWrt.org
++#
++# This is free software, licensed under the GNU General Public License v2.
++# See /LICENSE for more information.
++#
++
++include $(TOPDIR)/rules.mk
++
++PKG_NAME:=modemmanager
++PKG_VERSION:=2013-02-13
++PKG_RELEASE=$(PKG_SOURCE_VERSION)
++
++PKG_SOURCE_PROTO:=git
++PKG_SOURCE_URL:=git://anongit.freedesktop.org/ModemManager/ModemManager
++PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
++PKG_SOURCE_VERSION:=c1ef36b860931d32bd216af85d143b061913f2ce
++PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
++
++PKG_INSTALL:=1
++PKG_FIXUP:=autoreconf
++
++include $(INCLUDE_DIR)/package.mk
++
++define Package/modemmanager
++ SECTION:=net
++ CATEGORY:=Network
++ TITLE:=ModemManager
++ URL:=http://cgit.freedesktop.org/ModemManager/ModemManager
++ DEPENDS:= \
++ +udev \
++ +glib2 \
++ +libqmi \
++ +dbus \
++ +kmod-usb-net-cdc-ncm \
++ +kmod-usb-net-hso \
++ +kmod-usb-net-rndis \
++ +kmod-usb-net-sierrawireless \
++ +kmod-usb-acm \
++ +kmod-usb-serial-option \
++ +kmod-usb-serial-qualcomm \
++ +kmod-usb-serial-sierrawireless \
++ +kmod-usb-serial-option \
++ +kmod-usb-serial-wwan
++endef
++
++define Package/modemmanager/description
++ ModemManager is a DBus-activated service which allows controlling mobile
++ broadband modems.
++endef
++
++CONFIGURE_ARGS += \
++ --prefix=/usr \
++ --sysconfdir=/etc \
++ --localstatedir=/var \
++ --without-docs \
++ --without-tests \
++ --without-polkit \
++ --without-qmi
++
++
++
++define autoreconf_target
++ ( cd "$(PKG_BUILD_DIR)"; ./autogen.sh ); \
++ $(strip $(call autoreconf, \
++ $(PKG_BUILD_DIR), $(PKG_REMOVE_FILES), \
++ $(PKG_AUTOMAKE_PATHS), $(PKG_LIBTOOL_PATHS), \
++ $(STAGING_DIR)/host/share/aclocal $(STAGING_DIR)/usr/share/aclocal $(PKG_MACRO_PATHS)))
++endef
++
++define Build/InstallDev
++ $(INSTALL_DIR) $(1)/usr/include/ModemManager
++ $(CP) $(PKG_INSTALL_DIR)/usr/include/ModemManager/*.h $(1)/usr/include/ModemManager
++ $(INSTALL_DIR) $(1)/usr/include/libmm-glib
++ $(CP) $(PKG_INSTALL_DIR)/usr/include/libmm-glib/*.h $(1)/usr/include/libmm-glib
++ $(INSTALL_DIR) $(1)/usr/lib
++ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmm-glib.so* $(1)/usr/lib
++ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
++ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/ModemManager.pc $(1)/usr/lib/pkgconfig
++ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/mm-glib.pc $(1)/usr/lib/pkgconfig
++endef
++
++define Package/modemmanager/install
++ $(INSTALL_DIR) $(1)/lib/udev/rules.d
++ $(INSTALL_DATA) $(PKG_INSTALL_DIR)/lib/udev/rules.d/*.rules $(1)/lib/udev/rules.d
++
++ $(INSTALL_DIR) $(1)/etc/dbus-1/system.d/
++ $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/dbus-1/system.d/*.conf $(1)/etc/dbus-1/system.d/
++
++ $(INSTALL_DIR) $(1)/usr/sbin
++ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ModemManager $(1)/usr/sbin
++
++ $(INSTALL_DIR) $(1)/usr/bin
++ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mmcli $(1)/usr/bin
++
++ $(INSTALL_DIR) $(1)/usr/lib
++ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmm-glib.so* $(1)/usr/lib
++
++ $(INSTALL_DIR) $(1)/usr/lib/ModemManager
++ $(CP) $(PKG_INSTALL_DIR)/usr/lib/ModemManager/libmm-plugin-*.so* $(1)/usr/lib/ModemManager
++endef
++
++$(eval $(call BuildPackage,modemmanager))
+diff --git a/package/network/utils/modemmanager/patches/001-qmi-has-no-primary.patch b/package/network/utils/modemmanager/patches/001-qmi-has-no-primary.patch
+new file mode 100644
+index 0000000..6baae13
+--- /dev/null
++++ b/package/network/utils/modemmanager/patches/001-qmi-has-no-primary.patch
+@@ -0,0 +1,25 @@
++Index: modemmanager-2013-02-13/src/mm-base-modem.c
++===================================================================
++--- modemmanager-2013-02-13.orig/src/mm-base-modem.c
+++++ modemmanager-2013-02-13/src/mm-base-modem.c
++@@ -1014,7 +1014,8 @@ mm_base_modem_organize_ports (MMBaseMode
++ #endif
++
++ /* We keep new refs to the objects here */
++- self->priv->primary = g_object_ref (primary);
+++ // JMM - qmi has primary == NULL here, can't g_object_ref that
+++ self->priv->primary = primary ? g_object_ref (primary) : NULL;
++ self->priv->secondary = (secondary ? g_object_ref (secondary) : NULL);
++ self->priv->qcdm = (qcdm ? g_object_ref (qcdm) : NULL);
++ self->priv->gps_control = (gps_control ? g_object_ref (gps_control) : NULL);
++@@ -1301,7 +1302,9 @@ dispose (GObject *object)
++ g_cancellable_cancel (self->priv->cancellable);
++ g_clear_object (&self->priv->cancellable);
++
++- g_clear_object (&self->priv->primary);
+++ // JMM - primary is NULL for qmi
+++ if (self->priv->primary)
+++ g_clear_object (&self->priv->primary);
++ g_clear_object (&self->priv->secondary);
++ g_list_free_full (self->priv->data, g_object_unref);
++ self->priv->data = NULL;
+diff --git a/package/network/utils/modemmanager/patches/002-qmi-pin-status.patch b/package/network/utils/modemmanager/patches/002-qmi-pin-status.patch
+new file mode 100644
+index 0000000..fc8ece9
+--- /dev/null
++++ b/package/network/utils/modemmanager/patches/002-qmi-pin-status.patch
+@@ -0,0 +1,21 @@
++Index: modemmanager-2013-02-13/src/mm-broadband-modem-qmi.c
++===================================================================
++--- modemmanager-2013-02-13.orig/src/mm-broadband-modem-qmi.c
+++++ modemmanager-2013-02-13/src/mm-broadband-modem-qmi.c
++@@ -1141,6 +1141,8 @@ dms_uim_get_pin_status_ready (QmiClientD
++ NULL))
++ lock = mm_modem_lock_from_qmi_uim_pin_status (current_status, TRUE);
++
+++#if 0
+++ // JMM - pin2 does not need to be provisioned or unlocked for the modem to work
++ if (lock == MM_MODEM_LOCK_NONE &&
++ qmi_message_dms_uim_get_pin_status_output_get_pin2_status (
++ output,
++@@ -1149,6 +1151,7 @@ dms_uim_get_pin_status_ready (QmiClientD
++ NULL, /* unblock_retries_left */
++ NULL))
++ lock = mm_modem_lock_from_qmi_uim_pin_status (current_status, FALSE);
+++#endif
++
++ g_simple_async_result_set_op_res_gpointer (simple, GUINT_TO_POINTER (lock), NULL);
++ }
+diff --git a/package/network/utils/network-manager/0.9.6.4-fixes/libnl-ifr-collision.patch b/package/network/utils/network-manager/0.9.6.4-fixes/libnl-ifr-collision.patch
+new file mode 100644
+index 0000000..4058528
+--- /dev/null
++++ b/package/network/utils/network-manager/0.9.6.4-fixes/libnl-ifr-collision.patch
+@@ -0,0 +1,104 @@
++Index: NetworkManager-0.9.6.4/src/nm-device-ethernet.c
++===================================================================
++--- NetworkManager-0.9.6.4.orig/src/nm-device-ethernet.c
+++++ NetworkManager-0.9.6.4/src/nm-device-ethernet.c
++@@ -29,7 +29,7 @@
++ #include <linux/ethtool.h>
++ #include <sys/ioctl.h>
++ #include <unistd.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <errno.h>
++ #include <netinet/ether.h>
++
++Index: NetworkManager-0.9.6.4/src/nm-device-olpc-mesh.c
++===================================================================
++--- NetworkManager-0.9.6.4.orig/src/nm-device-olpc-mesh.c
+++++ NetworkManager-0.9.6.4/src/nm-device-olpc-mesh.c
++@@ -36,7 +36,7 @@
++ #include <sys/wait.h>
++ #include <signal.h>
++ #include <unistd.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <sys/ioctl.h>
++ #include <errno.h>
++
++Index: NetworkManager-0.9.6.4/src/nm-device-wired.c
++===================================================================
++--- NetworkManager-0.9.6.4.orig/src/nm-device-wired.c
+++++ NetworkManager-0.9.6.4/src/nm-device-wired.c
++@@ -22,7 +22,7 @@
++ #include "config.h"
++ #include <glib.h>
++ #include <sys/socket.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <linux/if_infiniband.h>
++ #include <netinet/ether.h>
++ #include <linux/sockios.h>
++Index: NetworkManager-0.9.6.4/src/nm-device.c
++===================================================================
++--- NetworkManager-0.9.6.4.orig/src/nm-device.c
+++++ NetworkManager-0.9.6.4/src/nm-device.c
++@@ -35,7 +35,7 @@
++ #include <sys/wait.h>
++ #include <arpa/inet.h>
++ #include <fcntl.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++
++ #include "nm-glib-compat.h"
++ #include "nm-device.h"
++Index: NetworkManager-0.9.6.4/src/nm-system.c
++===================================================================
++--- NetworkManager-0.9.6.4.orig/src/nm-system.c
+++++ NetworkManager-0.9.6.4/src/nm-system.c
++@@ -41,7 +41,7 @@
++ #include <netdb.h>
++ #include <glib.h>
++ #include <ctype.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <linux/sockios.h>
++ #include <linux/if_bonding.h>
++ #include <linux/if_vlan.h>
++Index: NetworkManager-0.9.6.4/src/ppp-manager/nm-ppp-manager.c
++===================================================================
++--- NetworkManager-0.9.6.4.orig/src/ppp-manager/nm-ppp-manager.c
+++++ NetworkManager-0.9.6.4/src/ppp-manager/nm-ppp-manager.c
++@@ -32,7 +32,7 @@
++ #include <sys/socket.h>
++ #include <sys/ioctl.h>
++ #include <asm/types.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <sys/stat.h>
++
++ #include <linux/ppp_defs.h>
++Index: NetworkManager-0.9.6.4/src/wifi/wifi-utils-wext.c
++===================================================================
++--- NetworkManager-0.9.6.4.orig/src/wifi/wifi-utils-wext.c
+++++ NetworkManager-0.9.6.4/src/wifi/wifi-utils-wext.c
++@@ -41,7 +41,7 @@
++ #include <sys/types.h>
++ #include <linux/types.h>
++ #include <sys/socket.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <linux/wireless.h>
++
++
++Index: NetworkManager-0.9.6.4/src/wimax/nm-device-wimax.c
++===================================================================
++--- NetworkManager-0.9.6.4.orig/src/wimax/nm-device-wimax.c
+++++ NetworkManager-0.9.6.4/src/wimax/nm-device-wimax.c
++@@ -24,7 +24,7 @@
++ #include <sys/ioctl.h>
++ #include <net/ethernet.h>
++ #include <sys/socket.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <netinet/ether.h>
++
++ #include <WiMaxAPI.h>
+diff --git a/package/network/utils/network-manager/0.9.6.4-fixes/no-crashdump.patch b/package/network/utils/network-manager/0.9.6.4-fixes/no-crashdump.patch
+new file mode 100644
+index 0000000..b65d9a4
+--- /dev/null
++++ b/package/network/utils/network-manager/0.9.6.4-fixes/no-crashdump.patch
+@@ -0,0 +1,12 @@
++Index: NetworkManager-0.9.6.4/src/logging/nm-logging.c
++===================================================================
++--- NetworkManager-0.9.6.4.orig/src/logging/nm-logging.c
+++++ NetworkManager-0.9.6.4/src/logging/nm-logging.c
++@@ -32,6 +32,7 @@
++ #include <strings.h>
++ #include <string.h>
++
+++#undef ENABLE_CRASHTRACE
++ #ifdef ENABLE_CRASHTRACE
++ #include <execinfo.h>
++ #endif
+diff --git a/package/network/utils/network-manager/0.9.6.4-fixes/series b/package/network/utils/network-manager/0.9.6.4-fixes/series
+new file mode 100644
+index 0000000..3f53eae
+--- /dev/null
++++ b/package/network/utils/network-manager/0.9.6.4-fixes/series
+@@ -0,0 +1,2 @@
++libnl-ifr-collision.patch
++no-crashdump.patch
+diff --git a/package/network/utils/network-manager/001-no-test-no-examples.patch b/package/network/utils/network-manager/001-no-test-no-examples.patch
+new file mode 100644
+index 0000000..1aa40e3
+--- /dev/null
++++ b/package/network/utils/network-manager/001-no-test-no-examples.patch
+@@ -0,0 +1,32 @@
++Index: NetworkManager-0.9.8.0/Makefile.in
++===================================================================
++--- NetworkManager-0.9.8.0.orig/Makefile.in
+++++ NetworkManager-0.9.8.0/Makefile.in
++@@ -440,11 +440,9 @@ SUBDIRS = \
++ tools \
++ policy \
++ data \
++- test \
++ po \
++ man \
++ docs \
++- examples \
++ vapi
++
++ EXTRA_DIST = \
++Index: NetworkManager-0.9.8.0/Makefile.am
++===================================================================
++--- NetworkManager-0.9.8.0.orig/Makefile.am
+++++ NetworkManager-0.9.8.0/Makefile.am
++@@ -11,11 +11,9 @@ SUBDIRS = \
++ tools \
++ policy \
++ data \
++- test \
++ po \
++ man \
++ docs \
++- examples \
++ vapi
++
++ EXTRA_DIST = \
+diff --git a/package/network/utils/network-manager/999-1-assorted-fixes.patch b/package/network/utils/network-manager/999-1-assorted-fixes.patch
+new file mode 100644
+index 0000000..5919cef
+--- /dev/null
++++ b/package/network/utils/network-manager/999-1-assorted-fixes.patch
+@@ -0,0 +1,59 @@
++Index: NetworkManager-0.9.8.0/src/nm-device-ethernet.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/nm-device-ethernet.c
+++++ NetworkManager-0.9.8.0/src/nm-device-ethernet.c
++@@ -431,21 +431,16 @@ update_permanent_hw_address (NMDevice *d
++ memset (&req, 0, sizeof (struct ifreq));
++ strncpy (req.ifr_name, nm_device_get_iface (dev), IFNAMSIZ);
++
++- epaddr = g_malloc0 (sizeof (struct ethtool_perm_addr) + ETH_ALEN);
++- epaddr->cmd = ETHTOOL_GPERMADDR;
++- epaddr->size = ETH_ALEN;
++- req.ifr_data = (void *) epaddr;
+++ ret = ioctl (fd, SIOCGIFHWADDR, &req);
++
++- errno = 0;
++- ret = ioctl (fd, SIOCETHTOOL, &req);
++- if ((ret < 0) || !nm_ethernet_address_is_valid ((struct ether_addr *) epaddr->data)) {
+++ if ((ret < 0) || !nm_ethernet_address_is_valid ((struct ether_addr *) req.ifr_hwaddr.sa_data)) {
++ nm_log_err (LOGD_HW | LOGD_ETHER, "(%s): unable to read permanent MAC address (error %d)",
++ nm_device_get_iface (dev), errno);
++ /* Fall back to current address */
++- memcpy (epaddr->data, priv->hw_addr, ETH_ALEN);
+++ memcpy (req.ifr_hwaddr.sa_data, priv->hw_addr, ETH_ALEN);
++ }
++
++- if (memcmp (&priv->perm_hw_addr, epaddr->data, ETH_ALEN)) {
+++ if (memcmp (&priv->perm_hw_addr, req.ifr_hwaddr.sa_data, ETH_ALEN)) {
++ memcpy (&priv->perm_hw_addr, epaddr->data, ETH_ALEN);
++ g_object_notify (G_OBJECT (dev), NM_DEVICE_ETHERNET_PERMANENT_HW_ADDRESS);
++ }
++Index: NetworkManager-0.9.8.0/src/nm-manager.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/nm-manager.c
+++++ NetworkManager-0.9.8.0/src/nm-manager.c
++@@ -2227,6 +2227,9 @@ udev_device_added_cb (NMUdevManager *ude
++ g_return_if_fail (sysfs_path != NULL);
++ g_return_if_fail (driver != NULL);
++
+++ //g_return_if_fail (strcmp(iface, "eth0"));
+++ //g_return_if_fail (strcmp(iface, "wlan0"));
+++
++ /* Most devices will have an ifindex here */
++ if (ifindex > 0) {
++ device = find_device_by_ifindex (self, ifindex);
++Index: NetworkManager-0.9.8.0/src/settings/nm-settings.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/settings/nm-settings.c
+++++ NetworkManager-0.9.8.0/src/settings/nm-settings.c
++@@ -880,8 +880,10 @@ claim_connection (NMSettings *self,
++ g_signal_emit (self, signals[CONNECTION_ADDED], 0, connection);
++ g_signal_emit_by_name (self, NM_CP_SIGNAL_CONNECTION_ADDED, connection);
++
+++#if 1 // I segfault
++ /* Exported D-Bus signal */
++ g_signal_emit (self, signals[NEW_CONNECTION], 0, connection);
+++#endif
++ }
++ }
++
+diff --git a/package/network/utils/network-manager/Makefile b/package/network/utils/network-manager/Makefile
+index 463658a..fc6bf66 100644
+--- a/package/network/utils/network-manager/Makefile
++++ b/package/network/utils/network-manager/Makefile
+@@ -31,7 +31,7 @@ define Package/network-manager
+ SUBMENU:=app
+ TITLE:=Network Manager
+ URL:=http://network-manager.sourceforge.net/
+- DEPENDS:=+wireless-tools +hal +libnl +libgcrypt +libiw +libuuid +libgnutls +dbus +glib2 +libnl3 +libpthread +librt +libdbus-glib +modemmanager +systemd
++ DEPENDS:=+wireless-tools +libnl +libgcrypt +libiw +libuuid +libgnutls +dbus +glib2 +libnl3 +libpthread +librt +libdbus-glib +modemmanager
+ endef
+
+ SITE_VARS+= enable_ifcfg_rh=no
+diff --git a/package/network/utils/network-manager/patches/999-0-use-linux-if-not-libnl.patch b/package/network/utils/network-manager/patches/999-0-use-linux-if-not-libnl.patch
+new file mode 100644
+index 0000000..2896f14
+--- /dev/null
++++ b/package/network/utils/network-manager/patches/999-0-use-linux-if-not-libnl.patch
+@@ -0,0 +1,130 @@
++Index: NetworkManager-0.9.8.0/src/nm-device-ethernet.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/nm-device-ethernet.c
+++++ NetworkManager-0.9.8.0/src/nm-device-ethernet.c
++@@ -29,7 +29,7 @@
++ #include <linux/ethtool.h>
++ #include <sys/ioctl.h>
++ #include <unistd.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <errno.h>
++ #include <netinet/ether.h>
++
++Index: NetworkManager-0.9.8.0/src/nm-device-olpc-mesh.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/nm-device-olpc-mesh.c
+++++ NetworkManager-0.9.8.0/src/nm-device-olpc-mesh.c
++@@ -36,7 +36,7 @@
++ #include <sys/wait.h>
++ #include <signal.h>
++ #include <unistd.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <sys/ioctl.h>
++ #include <errno.h>
++
++Index: NetworkManager-0.9.8.0/src/nm-device-vlan.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/nm-device-vlan.c
+++++ NetworkManager-0.9.8.0/src/nm-device-vlan.c
++@@ -24,7 +24,7 @@
++ #include <glib/gi18n.h>
++
++ #include <sys/socket.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <netinet/ether.h>
++
++ #include "nm-device-vlan.h"
++Index: NetworkManager-0.9.8.0/src/nm-device-wired.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/nm-device-wired.c
+++++ NetworkManager-0.9.8.0/src/nm-device-wired.c
++@@ -22,7 +22,7 @@
++ #include "config.h"
++ #include <glib.h>
++ #include <sys/socket.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <linux/if_infiniband.h>
++ #include <netinet/ether.h>
++ #include <linux/sockios.h>
++Index: NetworkManager-0.9.8.0/src/nm-device.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/nm-device.c
+++++ NetworkManager-0.9.8.0/src/nm-device.c
++@@ -35,7 +35,7 @@
++ #include <sys/wait.h>
++ #include <arpa/inet.h>
++ #include <fcntl.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++
++ #include "nm-glib-compat.h"
++ #include "nm-device.h"
++Index: NetworkManager-0.9.8.0/src/nm-system.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/nm-system.c
+++++ NetworkManager-0.9.8.0/src/nm-system.c
++@@ -40,7 +40,7 @@
++ #include <resolv.h>
++ #include <netdb.h>
++ #include <glib.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <linux/sockios.h>
++ #include <linux/if_bonding.h>
++ #include <linux/if_vlan.h>
++Index: NetworkManager-0.9.8.0/src/ppp-manager/nm-ppp-manager.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/ppp-manager/nm-ppp-manager.c
+++++ NetworkManager-0.9.8.0/src/ppp-manager/nm-ppp-manager.c
++@@ -32,7 +32,7 @@
++ #include <sys/socket.h>
++ #include <sys/ioctl.h>
++ #include <asm/types.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <sys/stat.h>
++
++ #include <linux/ppp_defs.h>
++Index: NetworkManager-0.9.8.0/src/wifi/wifi-utils-wext.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/wifi/wifi-utils-wext.c
+++++ NetworkManager-0.9.8.0/src/wifi/wifi-utils-wext.c
++@@ -41,7 +41,7 @@
++ #include <sys/types.h>
++ #include <linux/types.h>
++ #include <sys/socket.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <linux/wireless.h>
++
++
++Index: NetworkManager-0.9.8.0/src/wimax/iwmxsdk.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/wimax/iwmxsdk.c
+++++ NetworkManager-0.9.8.0/src/wimax/iwmxsdk.c
++@@ -28,7 +28,7 @@
++ #include <errno.h>
++ #include <string.h>
++ #include <sys/socket.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++
++ #include <glib.h>
++
++Index: NetworkManager-0.9.8.0/src/wimax/nm-device-wimax.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/wimax/nm-device-wimax.c
+++++ NetworkManager-0.9.8.0/src/wimax/nm-device-wimax.c
++@@ -24,7 +24,7 @@
++ #include <sys/ioctl.h>
++ #include <net/ethernet.h>
++ #include <sys/socket.h>
++-#include <linux/if.h>
+++#include <../include/linux/if.h>
++ #include <netinet/ether.h>
++
++ #include <WiMaxAPI.h>
+diff --git a/package/network/utils/network-manager/patches/999-2-move-resolv-conf.patch b/package/network/utils/network-manager/patches/999-2-move-resolv-conf.patch
+new file mode 100644
+index 0000000..1af8469
+--- /dev/null
++++ b/package/network/utils/network-manager/patches/999-2-move-resolv-conf.patch
+@@ -0,0 +1,13 @@
++Index: NetworkManager-0.9.8.0/src/dns-manager/nm-dns-manager.c
++===================================================================
++--- NetworkManager-0.9.8.0.orig/src/dns-manager/nm-dns-manager.c
+++++ NetworkManager-0.9.8.0/src/dns-manager/nm-dns-manager.c
++@@ -47,7 +47,7 @@
++ #include "nm-dns-dnsmasq.h"
++
++ #ifndef RESOLV_CONF
++-#define RESOLV_CONF "/etc/resolv.conf"
+++#define RESOLV_CONF "/tmp/resolv.conf.nm"
++ #endif
++
++ G_DEFINE_TYPE(NMDnsManager, nm_dns_manager, G_TYPE_OBJECT)
+diff --git a/package/network/utils/network-manager/patches/999-use-linux-if-not-libnl.patch b/package/network/utils/network-manager/patches/999-use-linux-if-not-libnl.patch
+deleted file mode 100644
+index 2896f14..0000000
+--- a/package/network/utils/network-manager/patches/999-use-linux-if-not-libnl.patch
++++ /dev/null
+@@ -1,130 +0,0 @@
+-Index: NetworkManager-0.9.8.0/src/nm-device-ethernet.c
+-===================================================================
+---- NetworkManager-0.9.8.0.orig/src/nm-device-ethernet.c
+-+++ NetworkManager-0.9.8.0/src/nm-device-ethernet.c
+-@@ -29,7 +29,7 @@
+- #include <linux/ethtool.h>
+- #include <sys/ioctl.h>
+- #include <unistd.h>
+--#include <linux/if.h>
+-+#include <../include/linux/if.h>
+- #include <errno.h>
+- #include <netinet/ether.h>
+-
+-Index: NetworkManager-0.9.8.0/src/nm-device-olpc-mesh.c
+-===================================================================
+---- NetworkManager-0.9.8.0.orig/src/nm-device-olpc-mesh.c
+-+++ NetworkManager-0.9.8.0/src/nm-device-olpc-mesh.c
+-@@ -36,7 +36,7 @@
+- #include <sys/wait.h>
+- #include <signal.h>
+- #include <unistd.h>
+--#include <linux/if.h>
+-+#include <../include/linux/if.h>
+- #include <sys/ioctl.h>
+- #include <errno.h>
+-
+-Index: NetworkManager-0.9.8.0/src/nm-device-vlan.c
+-===================================================================
+---- NetworkManager-0.9.8.0.orig/src/nm-device-vlan.c
+-+++ NetworkManager-0.9.8.0/src/nm-device-vlan.c
+-@@ -24,7 +24,7 @@
+- #include <glib/gi18n.h>
+-
+- #include <sys/socket.h>
+--#include <linux/if.h>
+-+#include <../include/linux/if.h>
+- #include <netinet/ether.h>
+-
+- #include "nm-device-vlan.h"
+-Index: NetworkManager-0.9.8.0/src/nm-device-wired.c
+-===================================================================
+---- NetworkManager-0.9.8.0.orig/src/nm-device-wired.c
+-+++ NetworkManager-0.9.8.0/src/nm-device-wired.c
+-@@ -22,7 +22,7 @@
+- #include "config.h"
+- #include <glib.h>
+- #include <sys/socket.h>
+--#include <linux/if.h>
+-+#include <../include/linux/if.h>
+- #include <linux/if_infiniband.h>
+- #include <netinet/ether.h>
+- #include <linux/sockios.h>
+-Index: NetworkManager-0.9.8.0/src/nm-device.c
+-===================================================================
+---- NetworkManager-0.9.8.0.orig/src/nm-device.c
+-+++ NetworkManager-0.9.8.0/src/nm-device.c
+-@@ -35,7 +35,7 @@
+- #include <sys/wait.h>
+- #include <arpa/inet.h>
+- #include <fcntl.h>
+--#include <linux/if.h>
+-+#include <../include/linux/if.h>
+-
+- #include "nm-glib-compat.h"
+- #include "nm-device.h"
+-Index: NetworkManager-0.9.8.0/src/nm-system.c
+-===================================================================
+---- NetworkManager-0.9.8.0.orig/src/nm-system.c
+-+++ NetworkManager-0.9.8.0/src/nm-system.c
+-@@ -40,7 +40,7 @@
+- #include <resolv.h>
+- #include <netdb.h>
+- #include <glib.h>
+--#include <linux/if.h>
+-+#include <../include/linux/if.h>
+- #include <linux/sockios.h>
+- #include <linux/if_bonding.h>
+- #include <linux/if_vlan.h>
+-Index: NetworkManager-0.9.8.0/src/ppp-manager/nm-ppp-manager.c
+-===================================================================
+---- NetworkManager-0.9.8.0.orig/src/ppp-manager/nm-ppp-manager.c
+-+++ NetworkManager-0.9.8.0/src/ppp-manager/nm-ppp-manager.c
+-@@ -32,7 +32,7 @@
+- #include <sys/socket.h>
+- #include <sys/ioctl.h>
+- #include <asm/types.h>
+--#include <linux/if.h>
+-+#include <../include/linux/if.h>
+- #include <sys/stat.h>
+-
+- #include <linux/ppp_defs.h>
+-Index: NetworkManager-0.9.8.0/src/wifi/wifi-utils-wext.c
+-===================================================================
+---- NetworkManager-0.9.8.0.orig/src/wifi/wifi-utils-wext.c
+-+++ NetworkManager-0.9.8.0/src/wifi/wifi-utils-wext.c
+-@@ -41,7 +41,7 @@
+- #include <sys/types.h>
+- #include <linux/types.h>
+- #include <sys/socket.h>
+--#include <linux/if.h>
+-+#include <../include/linux/if.h>
+- #include <linux/wireless.h>
+-
+-
+-Index: NetworkManager-0.9.8.0/src/wimax/iwmxsdk.c
+-===================================================================
+---- NetworkManager-0.9.8.0.orig/src/wimax/iwmxsdk.c
+-+++ NetworkManager-0.9.8.0/src/wimax/iwmxsdk.c
+-@@ -28,7 +28,7 @@
+- #include <errno.h>
+- #include <string.h>
+- #include <sys/socket.h>
+--#include <linux/if.h>
+-+#include <../include/linux/if.h>
+-
+- #include <glib.h>
+-
+-Index: NetworkManager-0.9.8.0/src/wimax/nm-device-wimax.c
+-===================================================================
+---- NetworkManager-0.9.8.0.orig/src/wimax/nm-device-wimax.c
+-+++ NetworkManager-0.9.8.0/src/wimax/nm-device-wimax.c
+-@@ -24,7 +24,7 @@
+- #include <sys/ioctl.h>
+- #include <net/ethernet.h>
+- #include <sys/socket.h>
+--#include <linux/if.h>
+-+#include <../include/linux/if.h>
+- #include <netinet/ether.h>
+-
+- #include <WiMaxAPI.h>
+diff --git a/package/systemd-udev/Config.in b/package/systemd-udev/Config.in
+deleted file mode 100644
+index dcc2908..0000000
+--- a/package/systemd-udev/Config.in
++++ /dev/null
+@@ -1,64 +0,0 @@
+-# systemd-udev package config
+-
+-menu "Configuration"
+- depends on PACKAGE_systemd-udev
+-
+-config SYSTEMD_UDEV_DISABLE_GUDEV
+- bool "Disable libgudev"
+- default n
+- help
+- Disable compilation of libgudev
+-
+-config SYSTEMD_UDEV_EXTRA_ata_id
+- bool "Install udev ata_id callout"
+- default y
+- help
+- ata_id - udev callout to read product/serial number
+- from ATA drives
+-
+-config SYSTEMD_UDEV_EXTRA_cdrom_id
+- bool "Install udev cdrom_id callout"
+- default y
+- help
+- cdrom_id - udev callout to determine the capabilities
+- of optical drives and media
+-
+-config SYSTEMD_UDEV_EXTRA_collect
+- bool "Install udev collect"
+- default n
+- help
+- Adds ID to the list governed by <checkpoint>
+-
+-config SYSTEMD_UDEV_EXTRA_scsi_id
+- bool "Install udev scsi_id callout"
+- default y
+- help
+- scsi_id - retrieve and generate a unique SCSI identifier
+-
+-config SYSTEMD_UDEV_EXTRA_v4l_id
+- bool "Install udev v4l_id callout"
+- default y
+- help
+- v4l_id - udev callout to identify Video4Linux devices
+-
+-config SYSTEMD_UDEV_EXTRA_accelerometer
+- bool "Install udev accelerometer callout"
+- default y
+- help
+- accelerometer - udev callout to export device orientation
+- through property
+-
+-config SYSTEMD_UDEV_EXTRA_mtd_probe
+- bool "Install mtd_probe callout"
+- default y
+- help
+- mtd_probe - udev callout to probe mtd devices
+-
+-config SYSTEMD_UDEV_EXTRA_qemu
+- bool "Install qemu specific rules"
+- default y
+- help
+- Install rules for autosuspension of QEMU emulated
+- USB HID devices
+-
+-endmenu
+diff --git a/package/systemd-udev/Makefile b/package/systemd-udev/Makefile
+deleted file mode 100644
+index 104379a..0000000
+--- a/package/systemd-udev/Makefile
++++ /dev/null
+@@ -1,191 +0,0 @@
+-#
+-# Copyright (C) 2006-2103 OpenWrt.org
+-#
+-# This is free software, licensed under the GNU General Public License v2.
+-# See /LICENSE for more information.
+-#
+-# Since udev 182, the sources are integrated within the systemd tree.
+-#
+-
+-include $(TOPDIR)/rules.mk
+-
+-PKG_NAME:=systemd
+-PKG_VERSION:=197
+-PKG_RELEASE:=1
+-
+-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+-PKG_SOURCE_URL:=http://www.freedesktop.org/software/systemd/
+-PKG_MD5SUM:=56a860dceadfafe59f40141eb5223743
+-
+-PKG_FIXUP:=autoreconf
+-
+-include $(INCLUDE_DIR)/package.mk
+-
+-PKG_INSTALL=1
+-
+-define Package/systemd-udev
+- SECTION:=utils
+- CATEGORY:=Utilities
+- TITLE:=Dynamic device management subsystem
+- URL:=http://www.freedesktop.org/wiki/Software/systemd/
+- MENU:=1
+- DEPENDS:=+librt +dbus +libcap +glib2
+-endef
+-
+-define Package/systemd-udev/description
+- udev allows Linux users to have a dynamic /dev directory and it
+- provides the ability to have persistent device names.
+-endef
+-
+-define Package/systemd-udev/conffiles
+-/etc/udev/udev.conf
+-endef
+-
+-define Package/systemd-udev/config
+- source "$(SOURCE)/Config.in"
+-endef
+-
+-# gudev args
+-systemd-udev-args-$(CONFIG_SYSTEMD_UDEV_DISABLE_GUDEV) += --disable-gudev
+-
+-
+-CONFIGURE_ARGS += \
+- --prefix=/usr \
+- --sysconfdir=/etc \
+- --without-python \
+- --disable-gtk-doc-html \
+- --disable-introspection \
+- --disable-kmod \
+- --disable-blkid \
+- --disable-ima \
+- --disable-chkconfig \
+- --disable-selinux \
+- --disable-xz \
+- --disable-tcpwrap \
+- --disable-pam \
+- --disable-acl \
+- --disable-xattr \
+- --disable-gcrypt \
+- --disable-audit \
+- --disable-libcryptsetup \
+- --disable-qrencode \
+- --disable-microhttpd \
+- --disable-binfmt \
+- --disable-vconsole \
+- --disable-readahead \
+- --disable-bootchart \
+- --disable-quotacheck \
+- --disable-randomseed \
+- --disable-logind \
+- --disable-hostnamed \
+- --disable-timedated \
+- --disable-localed \
+- --disable-coredump \
+- --disable-myhostname \
+- --disable-keymap \
+- --disable-manpages \
+- $(systemd-udev-args-y)
+-
+-# ata_id callout
+-systemd-udev-extra-lib-bin-$(CONFIG_SYSTEMD_UDEV_EXTRA_ata_id) += ata_id
+-
+-# cdrom_id callout
+-systemd-udev-extra-lib-bin-$(CONFIG_SYSTEMD_UDEV_EXTRA_cdrom_id) += cdrom_id
+-systemd-udev-extra-rules-$(CONFIG_SYSTEMD_UDEV_EXTRA_cdrom_id) += 60-cdrom_id.rules
+-
+-# collect callout
+-systemd-udev-extra-lib-bin-$(CONFIG_SYSTEMD_UDEV_EXTRA_collect) += collect
+-
+-# scsi_id callout
+-systemd-udev-extra-lib-bin-$(CONFIG_SYSTEMD_UDEV_EXTRA_scsi_id) += scsi_id
+-
+-# v4l_id callout
+-systemd-udev-extra-lib-bin-$(CONFIG_SYSTEMD_UDEV_EXTRA_v4l_id) += v4l_id
+-systemd-udev-extra-rules-$(CONFIG_SYSTEMD_UDEV_EXTRA_v4l_id) += 60-persistent-v4l.rules
+-
+-# accelerometer callout
+-systemd-udev-extra-lib-bin-$(CONFIG_SYSTEMD_UDEV_EXTRA_accelerometer) += accelerometer
+-systemd-udev-extra-rules-$(CONFIG_SYSTEMD_UDEV_EXTRA_accelerometer) += 61-accelerometer.rules
+-
+-# mtd_probe callout
+-systemd-udev-extra-lib-bin-$(CONFIG_SYSTEMD_UDEV_EXTRA_mtd_probe) += mtd_probe
+-systemd-udev-extra-rules-$(CONFIG_SYSTEMD_UDEV_EXTRA_mtd_probe) += 75-probe_mtd.rules
+-
+-# qemu rules
+-systemd-udev-extra-rules-$(CONFIG_SYSTEMD_UDEV_EXTRA_qemu) += 42-usb-hid-pm.rules
+-
+-# TODO: keymap
+-
+-define Build/InstallDev
+- $(INSTALL_DIR) $(1)/usr/include
+- $(CP) $(PKG_INSTALL_DIR)/usr/include/libudev.h $(1)/usr/include
+- $(INSTALL_DIR) $(1)/usr/share/pkgconfig
+- $(CP) $(PKG_INSTALL_DIR)/usr/share/pkgconfig/udev.pc $(1)/usr/share/pkgconfig
+- $(INSTALL_DIR) $(1)/usr/lib
+- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libudev.so* $(1)/usr/lib
+- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsystemd-daemon.so* $(1)/usr/lib
+- $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+- $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libudev.pc $(1)/usr/lib/pkgconfig
+- $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libsystemd-daemon.pc $(1)/usr/lib/pkgconfig
+-ifneq ($(CONFIG_SYSTEMD_UDEV_DISABLE_GUDEV),y)
+- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgudev-1.0.so* $(1)/usr/lib
+- $(INSTALL_DIR) $(1)/usr/include/gudev-1.0/gudev
+- $(CP) $(PKG_INSTALL_DIR)/usr/include/gudev-1.0/gudev/gudev.h $(1)/usr/include/gudev-1.0/gudev/gudev.h
+- $(CP) $(PKG_INSTALL_DIR)/usr/include/gudev-1.0/gudev/gudevclient.h $(1)/usr/include/gudev-1.0/gudev/gudevclient.h
+- $(CP) $(PKG_INSTALL_DIR)/usr/include/gudev-1.0/gudev/gudevdevice.h $(1)/usr/include/gudev-1.0/gudev/gudevdevice.h
+- $(CP) $(PKG_INSTALL_DIR)/usr/include/gudev-1.0/gudev/gudevenumerator.h $(1)/usr/include/gudev-1.0/gudev/gudevenumerator.h
+- $(CP) $(PKG_INSTALL_DIR)/usr/include/gudev-1.0/gudev/gudevenums.h $(1)/usr/include/gudev-1.0/gudev/gudevenums.h
+- $(CP) $(PKG_INSTALL_DIR)/usr/include/gudev-1.0/gudev/gudevenumtypes.h $(1)/usr/include/gudev-1.0/gudev/gudevenumtypes.h
+- $(CP) $(PKG_INSTALL_DIR)/usr/include/gudev-1.0/gudev/gudevtypes.h $(1)/usr/include/gudev-1.0/gudev/gudevtypes.h
+- $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/gudev-1.0.pc $(1)/usr/lib/pkgconfig
+- # for really complicated reasons we need this
+- sed -i -e 's%libdir=/usr%libdir=$$$${exec_prefix}%g' $(1)/usr/lib/pkgconfig/gudev-1.0.pc
+- sed -i -e 's%includedir=/usr%includedir=$$$${prefix}%g' $(1)/usr/lib/pkgconfig/gudev-1.0.pc
+-endif
+-endef
+-
+-define Package/systemd-udev/install
+- $(INSTALL_DIR) $(1)/etc/udev/rules.d
+- $(INSTALL_DATA) $(PKG_INSTALL_DIR)/etc/udev/udev.conf $(1)/etc/udev
+-
+- $(INSTALL_DIR) $(1)/sbin
+- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/udevadm $(1)/sbin/
+- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/systemd/systemd-udevd $(1)/sbin/udevd
+-
+- $(INSTALL_DIR) $(1)/lib/udev/rules.d
+- $(INSTALL_DATA) \
+- $(addprefix $(PKG_INSTALL_DIR)/usr/lib/udev/rules.d/, \
+- $(systemd-udev-extra-rules-y)) \
+- $(addprefix $(PKG_INSTALL_DIR)/usr/lib/udev/rules.d/, \
+- 50-udev-default.rules \
+- 60-persistent-alsa.rules \
+- 60-persistent-input.rules \
+- 60-persistent-serial.rules \
+- 60-persistent-storage.rules \
+- 60-persistent-storage-tape.rules \
+- 64-btrfs.rules \
+- 75-net-description.rules \
+- 75-tty-description.rules \
+- 78-sound-card.rules \
+- 80-net-name-slot.rules \
+- 95-udev-late.rules \
+- 99-systemd.rules) \
+- $(1)/lib/udev/rules.d
+-
+- $(INSTALL_DIR) $(1)/lib
+- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libudev.so* $(1)/lib
+- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsystemd-daemon.so* $(1)/lib
+-ifneq ($(CONFIG_SYSTEMD_UDEV_DISABLE_GUDEV),y)
+- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgudev-1.0.so* $(1)/lib
+-endif
+-
+- $(INSTALL_DIR) $(1)/lib/udev
+-ifneq ($(systemd-udev-extra-lib-bin-y),)
+- $(INSTALL_BIN) \
+- $(addprefix $(PKG_INSTALL_DIR)/usr/lib/udev/, \
+- $(systemd-udev-extra-lib-bin-y)) \
+- $(1)/lib/udev/
+-endif
+-endef
+-
+-$(eval $(call BuildPackage,systemd-udev))
+diff --git a/package/systemd-udev/patches/0001-missing-define-MS_REC-and-MS_SHARED-if-not-defined-a.patch b/package/systemd-udev/patches/0001-missing-define-MS_REC-and-MS_SHARED-if-not-defined-a.patch
+deleted file mode 100644
+index e519c77..0000000
+--- a/package/systemd-udev/patches/0001-missing-define-MS_REC-and-MS_SHARED-if-not-defined-a.patch
++++ /dev/null
+@@ -1,32 +0,0 @@
+-From 1125071483e501023ce60f79f27601fba3098cad Mon Sep 17 00:00:00 2001
+-From: Aleksander Morgado <aleksander@lanedo.com>
+-Date: Tue, 12 Feb 2013 13:07:23 +0100
+-Subject: [PATCH 1/8] missing: define MS_REC and MS_SHARED if not defined
+- already
+-
+----
+- src/shared/missing.h | 8 ++++++++
+- 1 file changed, 8 insertions(+)
+-
+-diff --git a/src/shared/missing.h b/src/shared/missing.h
+-index c53579f..d4ba0d3 100644
+---- a/src/shared/missing.h
+-+++ b/src/shared/missing.h
+-@@ -196,6 +196,14 @@ static inline pid_t gettid(void) {
+- #define MS_STRICTATIME (1<<24)
+- #endif
+-
+-+#ifndef MS_REC
+-+#define MS_REC 16384
+-+#endif
+-+
+-+#ifndef MS_SHARED
+-+#define MS_SHARED (1<<20)
+-+#endif
+-+
+- #ifndef PR_SET_NO_NEW_PRIVS
+- #define PR_SET_NO_NEW_PRIVS 38
+- #endif
+---
+-1.8.1.2
+-
+diff --git a/package/systemd-udev/patches/0002-uclibc-use-plain-getenv-instead.patch b/package/systemd-udev/patches/0002-uclibc-use-plain-getenv-instead.patch
+deleted file mode 100644
+index 2615afe..0000000
+--- a/package/systemd-udev/patches/0002-uclibc-use-plain-getenv-instead.patch
++++ /dev/null
+@@ -1,27 +0,0 @@
+-From a2fbd49c5d0b73e2f6c1a0482fc7c3d40b23829e Mon Sep 17 00:00:00 2001
+-From: Aleksander Morgado <aleksander@lanedo.com>
+-Date: Mon, 11 Feb 2013 14:47:49 +0100
+-Subject: [PATCH 2/8] uclibc: use plain getenv() instead
+-
+-uclibc doesn't implement secure_getenv(), fallback to getenv() instead just to
+-get this compiled.
+----
+- src/shared/missing.h | 2 +-
+- 1 file changed, 1 insertion(+), 1 deletion(-)
+-
+-diff --git a/src/shared/missing.h b/src/shared/missing.h
+-index d4ba0d3..865f16b 100644
+---- a/src/shared/missing.h
+-+++ b/src/shared/missing.h
+-@@ -254,7 +254,7 @@ static inline int name_to_handle_at(int fd, const char *name, struct file_handle
+- # ifdef HAVE___SECURE_GETENV
+- # define secure_getenv __secure_getenv
+- # else
+--# error neither secure_getenv nor __secure_getenv are available
+-+# define secure_getenv getenv
+- # endif
+- #endif
+-
+---
+-1.8.1.2
+-
+diff --git a/package/systemd-udev/patches/0003-uclibc-use-execvp-instead-of-execvpe.patch b/package/systemd-udev/patches/0003-uclibc-use-execvp-instead-of-execvpe.patch
+deleted file mode 100644
+index f5c7ed1..0000000
+--- a/package/systemd-udev/patches/0003-uclibc-use-execvp-instead-of-execvpe.patch
++++ /dev/null
+@@ -1,55 +0,0 @@
+-From e2d2de2ac6a60d2a1bac09dcdb09021961172e93 Mon Sep 17 00:00:00 2001
+-From: Aleksander Morgado <aleksander@lanedo.com>
+-Date: Tue, 12 Feb 2013 15:04:12 +0100
+-Subject: [PATCH 3/8] uclibc: use execvp instead of execvpe
+-
+----
+- configure.ac | 1 +
+- src/nspawn/nspawn.c | 11 +++++++++--
+- 2 files changed, 10 insertions(+), 2 deletions(-)
+-
+-diff --git a/configure.ac b/configure.ac
+-index 56694ff..4a481a7 100644
+---- a/configure.ac
+-+++ b/configure.ac
+-@@ -193,6 +193,7 @@ CAP_LIBS="$LIBS"
+- LIBS="$save_LIBS"
+- AC_SUBST(CAP_LIBS)
+-
+-+AC_CHECK_FUNCS([execvpe])
+- AC_CHECK_FUNCS([fanotify_init fanotify_mark])
+- AC_CHECK_FUNCS([__secure_getenv secure_getenv])
+- AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at], [], [], [[#include <sys/types.h>
+-diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
+-index 4c87371..68f7436 100644
+---- a/src/nspawn/nspawn.c
+-+++ b/src/nspawn/nspawn.c
+-@@ -58,6 +58,8 @@
+- #include "fdset.h"
+- #include "build.h"
+-
+-+#include "config.h"
+-+
+- typedef enum LinkJournal {
+- LINK_NO,
+- LINK_AUTO,
+-@@ -1468,9 +1470,14 @@ int main(int argc, char *argv[]) {
+-
+- a[0] = (char*) "/sbin/init";
+- execve(a[0], a, (char**) envp);
+-- } else if (argc > optind)
+-+ } else if (argc > optind) {
+-+#ifdef HAVE_EXECVPE
+- execvpe(argv[optind], argv + optind, (char**) envp);
+-- else {
+-+#else
+-+ environ = (char **)envp;
+-+ execvp(argv[optind], argv + optind);
+-+#endif /* HAVE_EXECVPE */
+-+ }else {
+- chdir(home ? home : "/root");
+- execle("/bin/bash", "-bash", NULL, (char**) envp);
+- }
+---
+-1.8.1.2
+-
+diff --git a/package/systemd-udev/patches/0004-uclibc-use-mkstemp-instead-of-mkostemp.patch b/package/systemd-udev/patches/0004-uclibc-use-mkstemp-instead-of-mkostemp.patch
+deleted file mode 100644
+index e3d5b02..0000000
+--- a/package/systemd-udev/patches/0004-uclibc-use-mkstemp-instead-of-mkostemp.patch
++++ /dev/null
+@@ -1,258 +0,0 @@
+-From b4f13b8f304175b8999fef41685bba73c24d3e4f Mon Sep 17 00:00:00 2001
+-From: Aleksander Morgado <aleksander@lanedo.com>
+-Date: Tue, 12 Feb 2013 15:16:16 +0100
+-Subject: [PATCH 4/8] uclibc: use mkstemp instead of mkostemp
+-
+----
+- configure.ac | 2 +-
+- src/core/manager.c | 10 ++++++++++
+- src/journal/coredumpctl.c | 6 ++++++
+- src/journal/journal-send.c | 9 +++++++++
+- src/journal/journal-verify.c | 23 +++++++++++++++++++++++
+- src/journal/journalctl.c | 10 ++++++++++
+- src/shared/ask-password-api.c | 10 ++++++++++
+- src/shared/util.c | 9 +++++++++
+- 8 files changed, 78 insertions(+), 1 deletion(-)
+-
+-diff --git a/configure.ac b/configure.ac
+-index 4a481a7..f02cfdc 100644
+---- a/configure.ac
+-+++ b/configure.ac
+-@@ -193,7 +193,7 @@ CAP_LIBS="$LIBS"
+- LIBS="$save_LIBS"
+- AC_SUBST(CAP_LIBS)
+-
+--AC_CHECK_FUNCS([execvpe])
+-+AC_CHECK_FUNCS([execvpe mkostemp])
+- AC_CHECK_FUNCS([fanotify_init fanotify_mark])
+- AC_CHECK_FUNCS([__secure_getenv secure_getenv])
+- AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at], [], [], [[#include <sys/types.h>
+-diff --git a/src/core/manager.c b/src/core/manager.c
+-index 4bebb29..84a379b 100644
+---- a/src/core/manager.c
+-+++ b/src/core/manager.c
+-@@ -73,6 +73,8 @@
+- #include "efivars.h"
+- #include "env-util.h"
+-
+-+#include "config.h"
+-+
+- /* As soon as 16 units are in our GC queue, make sure to run a gc sweep */
+- #define GC_QUEUE_ENTRIES_MAX 16
+-
+-@@ -1830,7 +1832,15 @@ int manager_open_serialization(Manager *m, FILE **_f) {
+- return -ENOMEM;
+-
+- saved_umask = umask(0077);
+-+
+-+#ifdef HAVE_MKOSTEMP
+- fd = mkostemp(path, O_RDWR|O_CLOEXEC);
+-+#else
+-+ fd = mkstemp(path);
+-+ if (fd >= 0)
+-+ fcntl(fd, F_SETFD, FD_CLOEXEC);
+-+#endif /* HAVE_MKOSTEMP */
+-+
+- umask(saved_umask);
+-
+- if (fd < 0) {
+-diff --git a/src/journal/coredumpctl.c b/src/journal/coredumpctl.c
+-index b6e5581..74e1489 100644
+---- a/src/journal/coredumpctl.c
+-+++ b/src/journal/coredumpctl.c
+-@@ -35,6 +35,8 @@
+- #include "path-util.h"
+- #include "pager.h"
+-
+-+#include "config.h"
+-+
+- static enum {
+- ACTION_NONE,
+- ACTION_LIST,
+-@@ -472,7 +474,11 @@ static int run_gdb(sd_journal *j) {
+- data = (const uint8_t*) data + 9;
+- len -= 9;
+-
+-+#ifdef HAVE_MKOSTEMP
+- fd = mkostemp(path, O_WRONLY);
+-+#else
+-+ fd = mkstemp(path);
+-+#endif
+- if (fd < 0) {
+- log_error("Failed to create temporary file: %m");
+- return -errno;
+-diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
+-index d5ec73e..32f9eba9 100644
+---- a/src/journal/journal-send.c
+-+++ b/src/journal/journal-send.c
+-@@ -33,6 +33,8 @@
+- #include "util.h"
+- #include "socket-util.h"
+-
+-+#include "config.h"
+-+
+- #define SNDBUF_SIZE (8*1024*1024)
+-
+- #define ALLOCA_CODE_FUNC(f, func) \
+-@@ -330,7 +332,14 @@ _public_ int sd_journal_sendv(const struct iovec *iov, int n) {
+- * file and just pass a file descriptor of it to the other
+- * side */
+-
+-+#ifdef HAVE_MKOSTEMP
+- buffer_fd = mkostemp(path, O_CLOEXEC|O_RDWR);
+-+#else
+-+ buffer_fd = mkstemp(path);
+-+ if (buffer_fd >= 0)
+-+ fcntl(buffer_fd, F_SETFD, FD_CLOEXEC);
+-+#endif /* HAVE_MKOSTEMP */
+-+
+- if (buffer_fd < 0) {
+- r = -errno;
+- goto finish;
+-diff --git a/src/journal/journal-verify.c b/src/journal/journal-verify.c
+-index ed28b45..f9e1dba 100644
+---- a/src/journal/journal-verify.c
+-+++ b/src/journal/journal-verify.c
+-@@ -34,6 +34,8 @@
+- #include "compress.h"
+- #include "fsprg.h"
+-
+-+#include "config.h"
+-+
+- static int journal_file_object_verify(JournalFile *f, Object *o) {
+- uint64_t i;
+-
+-@@ -701,7 +703,14 @@ int journal_file_verify(
+- } else if (f->seal)
+- return -ENOKEY;
+-
+-+#ifdef HAVE_MKOSTEMP
+- data_fd = mkostemp(data_path, O_CLOEXEC);
+-+#else
+-+ data_fd = mkstemp(data_path);
+-+ if (data_fd >= 0)
+-+ fcntl(data_fd, F_SETFD, FD_CLOEXEC);
+-+#endif /* HAVE_MKOSTEMP */
+-+
+- if (data_fd < 0) {
+- log_error("Failed to create data file: %m");
+- r = -errno;
+-@@ -709,7 +718,14 @@ int journal_file_verify(
+- }
+- unlink(data_path);
+-
+-+#ifdef HAVE_MKOSTEMP
+- entry_fd = mkostemp(entry_path, O_CLOEXEC);
+-+#else
+-+ entry_fd = mkstemp(entry_path);
+-+ if (entry_fd >= 0)
+-+ fcntl(entry_fd, F_SETFD, FD_CLOEXEC);
+-+#endif /* HAVE_MKOSTEMP */
+-+
+- if (entry_fd < 0) {
+- log_error("Failed to create entry file: %m");
+- r = -errno;
+-@@ -717,7 +733,14 @@ int journal_file_verify(
+- }
+- unlink(entry_path);
+-
+-+#ifdef HAVE_MKOSTEMP
+- entry_array_fd = mkostemp(entry_array_path, O_CLOEXEC);
+-+#else
+-+ entry_array_fd = mkstemp(entry_array_path);
+-+ if (entry_array_fd >= 0)
+-+ fcntl(entry_array_fd, F_SETFD, FD_CLOEXEC);
+-+#endif /* HAVE_MKOSTEMP */
+-+
+- if (entry_array_fd < 0) {
+- log_error("Failed to create entry array file: %m");
+- r = -errno;
+-diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
+-index 0afeef9..a00010c 100644
+---- a/src/journal/journalctl.c
+-+++ b/src/journal/journalctl.c
+-@@ -53,6 +53,8 @@
+- #include "unit-name.h"
+- #include "catalog.h"
+-
+-+#include "config.h"
+-+
+- #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
+-
+- static OutputMode arg_output = OUTPUT_SHORT;
+-@@ -679,7 +681,15 @@ static int setup_keys(void) {
+- n /= arg_interval;
+-
+- close_nointr_nofail(fd);
+-+
+-+#ifdef HAVE_MKOSTEMP
+- fd = mkostemp(k, O_WRONLY|O_CLOEXEC|O_NOCTTY);
+-+#else
+-+ fd = mkstemp(k);
+-+ if (fd >= 0)
+-+ fcntl(fd, F_SETFD, FD_CLOEXEC);
+-+#endif /* HAVE_MKOSTEMP */
+-+
+- if (fd < 0) {
+- log_error("Failed to open %s: %m", k);
+- r = -errno;
+-diff --git a/src/shared/ask-password-api.c b/src/shared/ask-password-api.c
+-index 8a0fb89..e5e9afd 100644
+---- a/src/shared/ask-password-api.c
+-+++ b/src/shared/ask-password-api.c
+-@@ -37,6 +37,8 @@
+-
+- #include "ask-password-api.h"
+-
+-+#include "config.h"
+-+
+- static void backspace_chars(int ttyfd, size_t p) {
+-
+- if (ttyfd < 0)
+-@@ -326,7 +328,15 @@ int ask_password_agent(
+- mkdir_p_label("/run/systemd/ask-password", 0755);
+-
+- u = umask(0022);
+-+
+-+#ifdef HAVE_MKOSTEMP
+- fd = mkostemp(temp, O_CLOEXEC|O_CREAT|O_WRONLY);
+-+#else
+-+ fd = mkstemp(temp);
+-+ if (fd >= 0)
+-+ fcntl(fd, F_SETFD, FD_CLOEXEC);
+-+#endif /* HAVE_MKOSTEMP */
+-+
+- umask(u);
+-
+- if (fd < 0) {
+-diff --git a/src/shared/util.c b/src/shared/util.c
+-index 24f9e7e..35cee2a 100644
+---- a/src/shared/util.c
+-+++ b/src/shared/util.c
+-@@ -72,6 +72,8 @@
+- #include "hashmap.h"
+- #include "env-util.h"
+-
+-+#include "config.h"
+-+
+- int saved_argc = 0;
+- char **saved_argv = NULL;
+-
+-@@ -4144,7 +4146,14 @@ int fopen_temporary(const char *path, FILE **_f, char **_temp_path) {
+- t[k] = '.';
+- stpcpy(stpcpy(t+k+1, fn), "XXXXXX");
+-
+-+#ifdef HAVE_MKOSTEMP
+- fd = mkostemp(t, O_WRONLY|O_CLOEXEC);
+-+#else
+-+ fd = mkstemp(t);
+-+ if (fd >= 0)
+-+ fcntl(fd, F_SETFD, FD_CLOEXEC);
+-+#endif /* HAVE_MKOSTEMP */
+-+
+- if (fd < 0) {
+- free(t);
+- return -errno;
+---
+-1.8.1.2
+-
+diff --git a/package/systemd-udev/patches/0005-uclibc-skip-using-unavailable-posix_fallocate.patch b/package/systemd-udev/patches/0005-uclibc-skip-using-unavailable-posix_fallocate.patch
+deleted file mode 100644
+index 66f56a8..0000000
+--- a/package/systemd-udev/patches/0005-uclibc-skip-using-unavailable-posix_fallocate.patch
++++ /dev/null
+@@ -1,109 +0,0 @@
+-From b9f0b9ba87c58a38b8c4116a5cffc5b1cfa4ff34 Mon Sep 17 00:00:00 2001
+-From: Aleksander Morgado <aleksander@lanedo.com>
+-Date: Tue, 12 Feb 2013 15:25:42 +0100
+-Subject: [PATCH 5/8] uclibc: skip using unavailable posix_fallocate()
+-
+----
+- configure.ac | 2 +-
+- src/journal/journal-file.c | 19 ++++++++++++++++++-
+- src/journal/journald-kmsg.c | 16 ++++++++++++++--
+- 3 files changed, 33 insertions(+), 4 deletions(-)
+-
+-diff --git a/configure.ac b/configure.ac
+-index f02cfdc..dbb2680 100644
+---- a/configure.ac
+-+++ b/configure.ac
+-@@ -193,7 +193,7 @@ CAP_LIBS="$LIBS"
+- LIBS="$save_LIBS"
+- AC_SUBST(CAP_LIBS)
+-
+--AC_CHECK_FUNCS([execvpe mkostemp])
+-+AC_CHECK_FUNCS([execvpe mkostemp posix_fallocate])
+- AC_CHECK_FUNCS([fanotify_init fanotify_mark])
+- AC_CHECK_FUNCS([__secure_getenv secure_getenv])
+- AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at], [], [], [[#include <sys/types.h>
+-diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
+-index 13fc8ed..df4333b 100644
+---- a/src/journal/journal-file.c
+-+++ b/src/journal/journal-file.c
+-@@ -38,6 +38,8 @@
+- #include "compress.h"
+- #include "fsprg.h"
+-
+-+#include "config.h"
+-+
+- #define DEFAULT_DATA_HASH_TABLE_SIZE (2047ULL*sizeof(HashItem))
+- #define DEFAULT_FIELD_HASH_TABLE_SIZE (333ULL*sizeof(HashItem))
+-
+-@@ -276,7 +278,7 @@ static int journal_file_verify_header(JournalFile *f) {
+-
+- static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size) {
+- uint64_t old_size, new_size;
+-- int r;
+-+ int r = 0;
+-
+- assert(f);
+-
+-@@ -321,10 +323,25 @@ static int journal_file_allocate(JournalFile *f, uint64_t offset, uint64_t size)
+- /* Note that the glibc fallocate() fallback is very
+- inefficient, hence we try to minimize the allocation area
+- as we can. */
+-+#ifdef HAVE_POSIX_ALLOCATE
+- r = posix_fallocate(f->fd, old_size, new_size - old_size);
+- if (r != 0)
+- return -r;
+-
+-+#else
+-+ /* Use good old method to write zeros into the journal file
+-+ perhaps very inefficient yet working. */
+-+ if(new_size > old_size) {
+-+ char *buf = alloca(new_size - old_size);
+-+ off_t oldpos = lseek(f->fd, 0, SEEK_CUR);
+-+ bzero(buf, new_size - old_size);
+-+ lseek(f->fd, old_size, SEEK_SET);
+-+ r = write(f->fd, buf, new_size - old_size);
+-+ lseek(f->fd, oldpos, SEEK_SET);
+-+ }
+-+ if (r < 0)
+-+ return -errno;
+-+#endif /* HAVE_POSIX_FALLOCATE */
+- if (fstat(f->fd, &f->last_stat) < 0)
+- return -errno;
+-
+-diff --git a/src/journal/journald-kmsg.c b/src/journal/journald-kmsg.c
+-index b819876..0d18bba 100644
+---- a/src/journal/journald-kmsg.c
+-+++ b/src/journal/journald-kmsg.c
+-@@ -404,6 +404,7 @@ int server_open_dev_kmsg(Server *s) {
+-
+- int server_open_kernel_seqnum(Server *s) {
+- int fd;
+-+ int r = 0;
+- uint64_t *p;
+-
+- assert(s);
+-@@ -417,8 +418,19 @@ int server_open_kernel_seqnum(Server *s) {
+- log_error("Failed to open /run/systemd/journal/kernel-seqnum, ignoring: %m");
+- return 0;
+- }
+--
+-- if (posix_fallocate(fd, 0, sizeof(uint64_t)) < 0) {
+-+#ifdef HAVE_POSIX_ALLOCATE
+-+ r = posix_fallocate(fd, 0, sizeof(uint64_t));
+-+#else
+-+ /* Use good old method to write zeros into the journal file
+-+ perhaps very inefficient yet working. */
+-+ char *buf = alloca(sizeof(uint64_t));
+-+ off_t oldpos = lseek(fd, 0, SEEK_CUR);
+-+ bzero(buf, sizeof(uint64_t));
+-+ lseek(fd, 0, SEEK_SET);
+-+ r = write(fd, buf, sizeof(uint64_t));
+-+ lseek(fd, oldpos, SEEK_SET);
+-+#endif /* HAVE_POSIX_FALLOCATE */
+-+ if (r < 0) {
+- log_error("Failed to allocate sequential number file, ignoring: %m");
+- close_nointr_nofail(fd);
+- return 0;
+---
+-1.8.1.2
+-
+diff --git a/package/systemd-udev/patches/0006-uclibc-use-dup2-instead-of-dup3.patch b/package/systemd-udev/patches/0006-uclibc-use-dup2-instead-of-dup3.patch
+deleted file mode 100644
+index 92062c7..0000000
+--- a/package/systemd-udev/patches/0006-uclibc-use-dup2-instead-of-dup3.patch
++++ /dev/null
+@@ -1,86 +0,0 @@
+-From 868897a6c4af2b8b27805ae097890630bfb202c4 Mon Sep 17 00:00:00 2001
+-From: Aleksander Morgado <aleksander@lanedo.com>
+-Date: Tue, 12 Feb 2013 15:35:01 +0100
+-Subject: [PATCH 6/8] uclibc: use dup2() instead of dup3()
+-
+----
+- configure.ac | 2 +-
+- src/journal/cat.c | 11 +++++++++++
+- src/shared/util.c | 6 ++++++
+- 3 files changed, 18 insertions(+), 1 deletion(-)
+-
+-diff --git a/configure.ac b/configure.ac
+-index dbb2680..98d9413 100644
+---- a/configure.ac
+-+++ b/configure.ac
+-@@ -193,7 +193,7 @@ CAP_LIBS="$LIBS"
+- LIBS="$save_LIBS"
+- AC_SUBST(CAP_LIBS)
+-
+--AC_CHECK_FUNCS([execvpe mkostemp posix_fallocate])
+-+AC_CHECK_FUNCS([execvpe mkostemp posix_fallocate dup3])
+- AC_CHECK_FUNCS([fanotify_init fanotify_mark])
+- AC_CHECK_FUNCS([__secure_getenv secure_getenv])
+- AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at], [], [], [[#include <sys/types.h>
+-diff --git a/src/journal/cat.c b/src/journal/cat.c
+-index a95392c..f631f2b 100644
+---- a/src/journal/cat.c
+-+++ b/src/journal/cat.c
+-@@ -32,6 +32,8 @@
+- #include "util.h"
+- #include "build.h"
+-
+-+#include "config.h"
+-+
+- static char *arg_identifier = NULL;
+- static int arg_priority = LOG_INFO;
+- static bool arg_level_prefix = true;
+-@@ -143,8 +145,13 @@ int main(int argc, char *argv[]) {
+-
+- saved_stderr = fcntl(STDERR_FILENO, F_DUPFD_CLOEXEC, 3);
+-
+-+#if HAVE_DUP3
+- if (dup3(fd, STDOUT_FILENO, 0) < 0 ||
+- dup3(fd, STDERR_FILENO, 0) < 0) {
+-+#else
+-+ if (dup2(fd, STDOUT_FILENO) < 0 ||
+-+ dup2(fd, STDERR_FILENO) < 0) {
+-+#endif /* HAVE_DUP3 */
+- log_error("Failed to duplicate fd: %m");
+- r = -errno;
+- goto finish;
+-@@ -164,7 +171,11 @@ int main(int argc, char *argv[]) {
+-
+- /* Let's try to restore a working stderr, so we can print the error message */
+- if (saved_stderr >= 0)
+-+#if HAVE_DUP3
+- dup3(saved_stderr, STDERR_FILENO, 0);
+-+#else
+-+ dup2(saved_stderr, STDERR_FILENO);
+-+#endif /* HAVE_DUP3 */
+-
+- log_error("Failed to execute process: %s", strerror(-r));
+-
+-diff --git a/src/shared/util.c b/src/shared/util.c
+-index 35cee2a..659f650 100644
+---- a/src/shared/util.c
+-+++ b/src/shared/util.c
+-@@ -2600,9 +2600,15 @@ int make_stdio(int fd) {
+-
+- assert(fd >= 0);
+-
+-+#if HAVE_DUP3
+- r = dup3(fd, STDIN_FILENO, 0);
+- s = dup3(fd, STDOUT_FILENO, 0);
+- t = dup3(fd, STDERR_FILENO, 0);
+-+#else
+-+ r = dup2(fd, STDIN_FILENO);
+-+ s = dup2(fd, STDOUT_FILENO);
+-+ t = dup2(fd, STDERR_FILENO);
+-+#endif /* HAVE_DUP3 */
+-
+- if (fd >= 3)
+- close_nointr_nofail(fd);
+---
+-1.8.1.2
+-
+diff --git a/package/systemd-udev/patches/0007-test-udev-include-missing.h.patch b/package/systemd-udev/patches/0007-test-udev-include-missing.h.patch
+deleted file mode 100644
+index 43a5e67..0000000
+--- a/package/systemd-udev/patches/0007-test-udev-include-missing.h.patch
++++ /dev/null
+@@ -1,26 +0,0 @@
+-From c3b23153355fd3dbcf0a6be300b295c62423377b Mon Sep 17 00:00:00 2001
+-From: Aleksander Morgado <aleksander@lanedo.com>
+-Date: Tue, 12 Feb 2013 15:38:48 +0100
+-Subject: [PATCH 7/8] test-udev: include missing.h
+-
+-We need MS_REC and MS_SHARED defined for a proper compilation, so get them from
+-'missing.h' if not defined already.
+----
+- src/test/test-udev.c | 1 +
+- 1 file changed, 1 insertion(+)
+-
+-diff --git a/src/test/test-udev.c b/src/test/test-udev.c
+-index 7cb93ed..aee87f7 100644
+---- a/src/test/test-udev.c
+-+++ b/src/test/test-udev.c
+-@@ -32,6 +32,7 @@
+- #include <sys/mount.h>
+- #include <sys/signalfd.h>
+-
+-+#include "missing.h"
+- #include "udev.h"
+-
+- void udev_main_log(struct udev *udev, int priority,
+---
+-1.8.1.2
+-
+diff --git a/package/systemd-udev/patches/0008-uclibc-don-t-require-SSP.patch b/package/systemd-udev/patches/0008-uclibc-don-t-require-SSP.patch
+deleted file mode 100644
+index 755a67c..0000000
+--- a/package/systemd-udev/patches/0008-uclibc-don-t-require-SSP.patch
++++ /dev/null
+@@ -1,27 +0,0 @@
+-From 156bc19bb657fe0e2fdbe6f2bd1f63450e695635 Mon Sep 17 00:00:00 2001
+-From: Aleksander Morgado <aleksander@lanedo.com>
+-Date: Wed, 13 Feb 2013 17:20:38 +0100
+-Subject: [PATCH 8/8] uclibc: don't require SSP
+-
+----
+- configure.ac | 4 +---
+- 1 file changed, 1 insertion(+), 3 deletions(-)
+-
+-diff --git a/configure.ac b/configure.ac
+-index 98d9413..35646ec 100644
+---- a/configure.ac
+-+++ b/configure.ac
+-@@ -130,9 +130,7 @@ CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
+- -fno-strict-aliasing \
+- -fvisibility=hidden \
+- -ffunction-sections \
+-- -fdata-sections \
+-- -fstack-protector \
+-- --param=ssp-buffer-size=4])
+-+ -fdata-sections])
+- AC_SUBST([OUR_CFLAGS], $with_cflags)
+-
+- AS_CASE([$CFLAGS], [*-O[[12345\ ]]*], [
+---
+-1.8.1.2
+-
+diff --git a/package/systemd-udev/patches/0009-uclibc-no-utmpx.patch b/package/systemd-udev/patches/0009-uclibc-no-utmpx.patch
+deleted file mode 100644
+index efd21f0..0000000
+--- a/package/systemd-udev/patches/0009-uclibc-no-utmpx.patch
++++ /dev/null
+@@ -1,210 +0,0 @@
+-Index: systemd-197/src/shared/utmp-wtmp.c
+-===================================================================
+---- systemd-197.orig/src/shared/utmp-wtmp.c
+-+++ systemd-197/src/shared/utmp-wtmp.c
+-@@ -19,7 +19,7 @@
+- along with systemd; If not, see <http://www.gnu.org/licenses/>.
+- ***/
+-
+--#include <utmpx.h>
+-+#include <utmp.h>
+- #include <errno.h>
+- #include <assert.h>
+- #include <string.h>
+-@@ -33,7 +33,7 @@
+- #include "utmp-wtmp.h"
+-
+- int utmp_get_runlevel(int *runlevel, int *previous) {
+-- struct utmpx lookup, *found;
+-+ struct utmp lookup, *found;
+- int r;
+- const char *e;
+-
+-@@ -61,15 +61,15 @@ int utmp_get_runlevel(int *runlevel, int
+- return 0;
+- }
+-
+-- if (utmpxname(_PATH_UTMPX) < 0)
+-+ if (utmpname(_PATH_UTMP) < 0)
+- return -errno;
+-
+-- setutxent();
+-+ setutent();
+-
+- zero(lookup);
+- lookup.ut_type = RUN_LVL;
+-
+-- if (!(found = getutxid(&lookup)))
+-+ if (!(found = getutid(&lookup)))
+- r = -errno;
+- else {
+- int a, b;
+-@@ -88,12 +88,12 @@ int utmp_get_runlevel(int *runlevel, int
+- }
+- }
+-
+-- endutxent();
+-+ endutent();
+-
+- return r;
+- }
+-
+--static void init_timestamp(struct utmpx *store, usec_t t) {
+-+static void init_timestamp(struct utmp *store, usec_t t) {
+- assert(store);
+-
+- zero(*store);
+-@@ -105,7 +105,7 @@ static void init_timestamp(struct utmpx
+- store->ut_tv.tv_usec = t % USEC_PER_SEC;
+- }
+-
+--static void init_entry(struct utmpx *store, usec_t t) {
+-+static void init_entry(struct utmp *store, usec_t t) {
+- struct utsname uts;
+-
+- assert(store);
+-@@ -121,7 +121,7 @@ static void init_entry(struct utmpx *sto
+- strncpy(store->ut_id, "~~", sizeof(store->ut_id));
+- }
+-
+--static int write_entry_utmp(const struct utmpx *store) {
+-+static int write_entry_utmp(const struct utmp *store) {
+- int r;
+-
+- assert(store);
+-@@ -130,33 +130,33 @@ static int write_entry_utmp(const struct
+- * each entry type resp. user; i.e. basically a key/value
+- * table. */
+-
+-- if (utmpxname(_PATH_UTMPX) < 0)
+-+ if (utmpname(_PATH_UTMP) < 0)
+- return -errno;
+-
+-- setutxent();
+-+ setutent();
+-
+-- if (!pututxline(store))
+-+ if (!pututline(store))
+- r = -errno;
+- else
+- r = 0;
+-
+-- endutxent();
+-+ endutent();
+-
+- return r;
+- }
+-
+--static int write_entry_wtmp(const struct utmpx *store) {
+-+static int write_entry_wtmp(const struct utmp *store) {
+- assert(store);
+-
+- /* wtmp is a simple append-only file where each entry is
+- simply appended to * the end; i.e. basically a log. */
+-
+- errno = 0;
+-- updwtmpx(_PATH_WTMPX, store);
+-+ updwtmp(_PATH_WTMP, store);
+- return -errno;
+- }
+-
+--static int write_utmp_wtmp(const struct utmpx *store_utmp, const struct utmpx *store_wtmp) {
+-+static int write_utmp_wtmp(const struct utmp *store_utmp, const struct utmp *store_wtmp) {
+- int r, s;
+-
+- r = write_entry_utmp(store_utmp);
+-@@ -173,12 +173,12 @@ static int write_utmp_wtmp(const struct
+- return r;
+- }
+-
+--static int write_entry_both(const struct utmpx *store) {
+-+static int write_entry_both(const struct utmp *store) {
+- return write_utmp_wtmp(store, store);
+- }
+-
+- int utmp_put_shutdown(void) {
+-- struct utmpx store;
+-+ struct utmp store;
+-
+- init_entry(&store, 0);
+-
+-@@ -189,7 +189,7 @@ int utmp_put_shutdown(void) {
+- }
+-
+- int utmp_put_reboot(usec_t t) {
+-- struct utmpx store;
+-+ struct utmp store;
+-
+- init_entry(&store, t);
+-
+-@@ -205,14 +205,14 @@ static const char *sanitize_id(const cha
+- assert(id);
+- l = strlen(id);
+-
+-- if (l <= sizeof(((struct utmpx*) NULL)->ut_id))
+-+ if (l <= sizeof(((struct utmp*) NULL)->ut_id))
+- return id;
+-
+-- return id + l - sizeof(((struct utmpx*) NULL)->ut_id);
+-+ return id + l - sizeof(((struct utmp*) NULL)->ut_id);
+- }
+-
+- int utmp_put_init_process(const char *id, pid_t pid, pid_t sid, const char *line) {
+-- struct utmpx store;
+-+ struct utmp store;
+-
+- assert(id);
+-
+-@@ -231,17 +231,17 @@ int utmp_put_init_process(const char *id
+- }
+-
+- int utmp_put_dead_process(const char *id, pid_t pid, int code, int status) {
+-- struct utmpx lookup, store, store_wtmp, *found;
+-+ struct utmp lookup, store, store_wtmp, *found;
+-
+- assert(id);
+-
+-- setutxent();
+-+ setutent();
+-
+- zero(lookup);
+- lookup.ut_type = INIT_PROCESS; /* looks for DEAD_PROCESS, LOGIN_PROCESS, USER_PROCESS, too */
+- strncpy(lookup.ut_id, sanitize_id(id), sizeof(lookup.ut_id));
+-
+-- if (!(found = getutxid(&lookup)))
+-+ if (!(found = getutid(&lookup)))
+- return 0;
+-
+- if (found->ut_pid != pid)
+-@@ -265,7 +265,7 @@ int utmp_put_dead_process(const char *id
+-
+-
+- int utmp_put_runlevel(int runlevel, int previous) {
+-- struct utmpx store;
+-+ struct utmp store;
+- int r;
+-
+- assert(runlevel > 0);
+-@@ -366,7 +366,7 @@ finish:
+- }
+-
+- int utmp_wall(const char *message, bool (*match_tty)(const char *tty)) {
+-- struct utmpx *u;
+-+ struct utmp *u;
+- char date[FORMAT_TIMESTAMP_MAX];
+- char *text = NULL, *hn = NULL, *un = NULL, *tty = NULL;
+- int r;
+-@@ -391,11 +391,11 @@ int utmp_wall(const char *message, bool
+- goto finish;
+- }
+-
+-- setutxent();
+-+ setutent();
+-
+- r = 0;
+-
+-- while ((u = getutxent())) {
+-+ while ((u = getutent())) {
+- int q;
+- const char *path;
+- char *buf = NULL;
+diff --git a/package/udev/Makefile b/package/udev/Makefile
+index 4679917..9c0f3dd 100644
+--- a/package/udev/Makefile
++++ b/package/udev/Makefile
+@@ -26,7 +26,7 @@ define Package/udev
+ URL:=http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
+ MAINTAINER:=Geoff Levand <geoff@infradead.org>
+ MENU:=1
+- DEPENDS:=+librt
++ DEPENDS:=+librt +glib2
+ endef
+
+ define Package/udev/description
+@@ -50,7 +50,7 @@ udev-args-$(CONFIG_UDEV_EXTRA_floppy) += --enable-floppy
+ # TODO: make hwdb and introspection work
+
+ CONFIGURE_ARGS += --prefix=/usr --exec-prefix= --sysconfdir=/etc \
+- --disable-hwdb --disable-keymap --disable-gudev --disable-introspection \
++ --disable-hwdb --disable-keymap --enable-gudev --disable-introspection \
+ --libexecdir=/lib/udev --disable-gtk-doc-html \
+ --sbindir=/sbin $(udev-args-y)
+
+@@ -72,8 +72,6 @@ udev-extra-rules-$(CONFIG_UDEV_EXTRA_firmware) += 50-firmware.rules
+
+ udev-extra-lib-bin-$(CONFIG_UDEV_EXTRA_floppy) += create_floppy_devices
+
+-# TODO: make gudev work
+-
+ udev-extra-lib-bin-$(CONFIG_UDEV_EXTRA_input_id) += input_id
+
+ # TODO: make keymap work
+@@ -110,6 +108,11 @@ define Build/InstallDev
+ $(CP) $(PKG_INSTALL_DIR)/lib/libudev.so* $(1)/lib
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+ $(CP) $(PKG_INSTALL_DIR)/lib/pkgconfig/libudev.pc $(1)/usr/lib/pkgconfig
++ $(INSTALL_DIR) $(1)/usr/include/gudev-1.0/gudev
++ $(CP) $(PKG_INSTALL_DIR)/usr/include/gudev-1.0/gudev/* $(1)/usr/include/gudev-1.0/gudev/
++ $(INSTALL_DIR) $(1)/lib
++ $(CP) $(PKG_INSTALL_DIR)/lib/libgudev-1.0.so* $(1)/lib
++ $(CP) $(PKG_INSTALL_DIR)/lib/pkgconfig/gudev-1.0.pc $(1)/usr/lib/pkgconfig
+ endef
+
+ define Package/udev/install
+@@ -137,6 +140,7 @@ define Package/udev/install
+
+ $(INSTALL_DIR) $(1)/lib
+ $(CP) $(PKG_INSTALL_DIR)/lib/libudev.so* $(1)/lib
++ $(CP) $(PKG_INSTALL_DIR)/lib/libgudev-1.0.so* $(1)/lib
+
+ $(INSTALL_DIR) $(1)/lib/udev
+ ifneq ($(udev-extra-lib-bin-y),)
+diff --git a/package/udev/patches/9999-add-libudev-to-gudev-deps b/package/udev/patches/9999-add-libudev-to-gudev-deps
+new file mode 100644
+index 0000000..2bb363b
+--- /dev/null
++++ b/package/udev/patches/9999-add-libudev-to-gudev-deps
+@@ -0,0 +1,12 @@
++Index: udev-173/extras/gudev/gudev-1.0.pc.in
++===================================================================
++--- udev-173.orig/extras/gudev/gudev-1.0.pc.in
+++++ udev-173/extras/gudev/gudev-1.0.pc.in
++@@ -6,6 +6,6 @@ includedir=@includedir@
++ Name: gudev-1.0
++ Description: GObject bindings for libudev
++ Version: @VERSION@
++-Requires: glib-2.0, gobject-2.0
+++Requires: libudev, glib-2.0, gobject-2.0
++ Libs: -L${libdir} -lgudev-1.0
++ Cflags: -I${includedir}/gudev-1.0
+diff --git a/rules.mk b/rules.mk
+index 6455fde..2225b2b 100644
+--- a/rules.mk
++++ b/rules.mk
+@@ -109,7 +109,7 @@ BUILD_LOG_DIR:=$(TOPDIR)/logs
+ PKG_INFO_DIR := $(STAGING_DIR)/pkginfo
+
+ TARGET_PATH:=$(STAGING_DIR_HOST)/bin:$(subst $(space),:,$(filter-out .,$(filter-out ./,$(subst :,$(space),$(PATH)))))
+-TARGET_CFLAGS:=$(TARGET_OPTIMIZATION)$(if $(CONFIG_DEBUG), -g3)
++TARGET_CFLAGS:=$(TARGET_OPTIMIZATION)$(if $(CONFIG_DEBUG), -O0 -g3)
+ TARGET_CXXFLAGS = $(TARGET_CFLAGS)
+ TARGET_CPPFLAGS:=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include
+ TARGET_LDFLAGS:=-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib
+diff --git a/target/linux/ar71xx/config-3.8 b/target/linux/ar71xx/config-3.8
+index 847b9a5..a124def 100644
+--- a/target/linux/ar71xx/config-3.8
++++ b/target/linux/ar71xx/config-3.8
+@@ -97,8 +97,12 @@ CONFIG_ATH79_NVRAM=y
+ CONFIG_ATH79_PCI_ATH9K_FIXUP=y
+ CONFIG_ATH79_ROUTERBOOT=y
+ # CONFIG_ATH79_WDT is not set
++CONFIG_BLK_DEV_SD=y
++CONFIG_BLK_DEV_SR=m
++# CONFIG_BLK_DEV_SR_VENDOR is not set
+ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+ CONFIG_CEVT_R4K=y
++CONFIG_CHR_DEV_SG=m
+ CONFIG_CMDLINE="rootfstype=squashfs,yaffs,jffs2 noinitrd"
+ CONFIG_CMDLINE_BOOL=y
+ # CONFIG_CMDLINE_OVERRIDE is not set
+@@ -113,11 +117,18 @@ CONFIG_CPU_R4K_CACHE_TLB=y
+ CONFIG_CPU_R4K_FPU=y
+ CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
+ CONFIG_CPU_SUPPORTS_HIGHMEM=y
++CONFIG_CRC16=y
++CONFIG_CRC7=y
++CONFIG_CRC_ITU_T=y
++CONFIG_CRYPTO_CRC32C=y
++CONFIG_CRYPTO_HASH=y
++CONFIG_CRYPTO_HASH2=y
+ CONFIG_CSRC_R4K=y
+ CONFIG_DECOMPRESS_LZMA=y
+ CONFIG_DMA_NONCOHERENT=y
+ CONFIG_EARLY_PRINTK=y
+ CONFIG_ETHERNET_PACKET_MANGLE=y
++CONFIG_EXT3_FS=y
+ CONFIG_GENERIC_ATOMIC64=y
+ CONFIG_GENERIC_CLOCKEVENTS=y
+ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+@@ -129,7 +140,6 @@ CONFIG_GENERIC_PCI_IOMAP=y
+ CONFIG_GENERIC_SMP_IDLE_THREAD=y
+ CONFIG_GPIOLIB=y
+ CONFIG_GPIO_NXP_74HC153=y
+-CONFIG_GPIO_PCF857X=y
+ CONFIG_GPIO_SYSFS=y
+ CONFIG_HARDWARE_WATCHPOINTS=y
+ CONFIG_HAS_DMA=y
+@@ -159,27 +169,21 @@ CONFIG_HAVE_NET_DSA=y
+ CONFIG_HAVE_OPROFILE=y
+ CONFIG_HAVE_PERF_EVENTS=y
+ CONFIG_HW_HAS_PCI=y
+-CONFIG_I2C=y
+-CONFIG_I2C_ALGOBIT=y
+-CONFIG_I2C_BOARDINFO=y
+-CONFIG_I2C_GPIO=y
+ CONFIG_IMAGE_CMDLINE_HACK=y
+ CONFIG_INITRAMFS_ROOT_GID=0
+ CONFIG_INITRAMFS_ROOT_UID=0
+ CONFIG_INITRAMFS_SOURCE="../../root"
+-CONFIG_IP17XX_PHY=y
+ CONFIG_IRQ_CPU=y
+-CONFIG_IRQ_DOMAIN=y
+ CONFIG_IRQ_FORCED_THREADING=y
++# CONFIG_ISDN is not set
++CONFIG_JBD=y
+ # CONFIG_LEDS_RB750 is not set
+ # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+ # CONFIG_LEDS_TRIGGER_NETDEV is not set
+ # CONFIG_LEDS_TRIGGER_TIMER is not set
+ # CONFIG_LEDS_WNDR3700_USB is not set
+ # CONFIG_M25PXX_USE_FAST_READ is not set
+-CONFIG_MARVELL_PHY=y
+ CONFIG_MDIO_BOARDINFO=y
+-CONFIG_MICREL_PHY=y
+ CONFIG_MIPS=y
+ # CONFIG_MIPS_HUGE_TLB_SUPPORT is not set
+ CONFIG_MIPS_L1_CACHE_SHIFT=5
+@@ -204,10 +208,48 @@ CONFIG_MTD_WRT160NL_PARTS=y
+ CONFIG_MYLOADER=y
+ CONFIG_NEED_DMA_MAP_STATE=y
+ CONFIG_NEED_PER_CPU_KM=y
++# CONFIG_NETWORK_FILESYSTEMS is not set
++# CONFIG_NET_CADENCE is not set
+ CONFIG_NET_DSA=y
+ CONFIG_NET_DSA_MV88E6060=y
+ CONFIG_NET_DSA_MV88E6063=y
+ CONFIG_NET_DSA_TAG_TRAILER=y
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_VENDOR_ADAPTEC is not set
++# CONFIG_NET_VENDOR_ALTEON is not set
++# CONFIG_NET_VENDOR_AMD is not set
++# CONFIG_NET_VENDOR_BROADCOM is not set
++# CONFIG_NET_VENDOR_BROCADE is not set
++# CONFIG_NET_VENDOR_CHELSIO is not set
++# CONFIG_NET_VENDOR_CISCO is not set
++# CONFIG_NET_VENDOR_DEC is not set
++# CONFIG_NET_VENDOR_DLINK is not set
++# CONFIG_NET_VENDOR_EMULEX is not set
++# CONFIG_NET_VENDOR_EXAR is not set
++# CONFIG_NET_VENDOR_HP is not set
++# CONFIG_NET_VENDOR_INTEL is not set
++# CONFIG_NET_VENDOR_MARVELL is not set
++# CONFIG_NET_VENDOR_MELLANOX is not set
++# CONFIG_NET_VENDOR_MICREL is not set
++# CONFIG_NET_VENDOR_MICROCHIP is not set
++# CONFIG_NET_VENDOR_MYRI is not set
++# CONFIG_NET_VENDOR_NATSEMI is not set
++# CONFIG_NET_VENDOR_NVIDIA is not set
++# CONFIG_NET_VENDOR_OKI is not set
++# CONFIG_NET_VENDOR_QLOGIC is not set
++# CONFIG_NET_VENDOR_RDC is not set
++# CONFIG_NET_VENDOR_REALTEK is not set
++# CONFIG_NET_VENDOR_SEEQ is not set
++# CONFIG_NET_VENDOR_SILAN is not set
++# CONFIG_NET_VENDOR_SIS is not set
++# CONFIG_NET_VENDOR_SMSC is not set
++# CONFIG_NET_VENDOR_STMICRO is not set
++# CONFIG_NET_VENDOR_SUN is not set
++# CONFIG_NET_VENDOR_TEHUTI is not set
++# CONFIG_NET_VENDOR_TI is not set
++# CONFIG_NET_VENDOR_TOSHIBA is not set
++# CONFIG_NET_VENDOR_VIA is not set
++CONFIG_NLS=y
+ CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y
+ CONFIG_PAGEFLAGS_EXTENDED=y
+ CONFIG_PCI=y
+@@ -219,12 +261,8 @@ CONFIG_PERF_USE_VMALLOC=y
+ CONFIG_PHYLIB=y
+ # CONFIG_PREEMPT_RCU is not set
+ CONFIG_RLE_DECOMPRESS=y
+-CONFIG_RTL8306_PHY=y
+-CONFIG_RTL8366RB_PHY=y
+-CONFIG_RTL8366S_PHY=y
+ CONFIG_RTL8366_SMI=y
+-CONFIG_RTL8367_PHY=y
+-# CONFIG_SCSI_DMA is not set
++CONFIG_SCSI=y
+ CONFIG_SERIAL_8250_NR_UARTS=1
+ CONFIG_SERIAL_8250_RUNTIME_UARTS=1
+ CONFIG_SERIAL_AR933X=y
+@@ -255,6 +293,29 @@ CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
+ CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
+ CONFIG_TICK_CPU_ACCOUNTING=y
+ CONFIG_UIDGID_CONVERTED=y
++CONFIG_USB=y
++CONFIG_USB_ACM=m
+ CONFIG_USB_ARCH_HAS_XHCI=y
++CONFIG_USB_COMMON=y
++# CONFIG_USB_EHCI_ATH79 is not set
++CONFIG_USB_EHCI_HCD=y
++CONFIG_USB_EHCI_HCD_PLATFORM=y
++CONFIG_USB_EHCI_PCI=y
++CONFIG_USB_NET_CDCETHER=m
++CONFIG_USB_NET_CDC_EEM=m
++CONFIG_USB_NET_CDC_MBIM=m
++CONFIG_USB_NET_CDC_NCM=m
++CONFIG_USB_NET_QMI_WWAN=m
++CONFIG_USB_SERIAL=m
++CONFIG_USB_SERIAL_OPTION=m
++CONFIG_USB_SERIAL_QCAUX=m
++CONFIG_USB_SERIAL_QUALCOMM=m
++CONFIG_USB_SERIAL_WWAN=m
++CONFIG_USB_SERIAL_ZTE=m
++CONFIG_USB_SIERRA_NET=m
++CONFIG_USB_STORAGE=y
+ CONFIG_USB_SUPPORT=y
++# CONFIG_USB_UHCI_HCD is not set
++CONFIG_USB_USBNET=m
++CONFIG_USB_WDM=m
+ CONFIG_ZONE_DMA_FLAG=0
+diff --git a/target/linux/ar71xx/patches-3.8/999-1-always-bitbang-spi b/target/linux/ar71xx/patches-3.8/999-1-always-bitbang-spi
+index 44cd2f2..825d022 100644
+--- a/target/linux/ar71xx/patches-3.8/999-1-always-bitbang-spi
++++ b/target/linux/ar71xx/patches-3.8/999-1-always-bitbang-spi
+@@ -84,7 +84,7 @@ Index: linux-3.8.3/arch/mips/ath79/mach-tl-mr11u.c
+
+ #include "common.h"
+ #include "dev-eth.h"
+-@@ -82,11 +84,60 @@ static struct gpio_keys_button tl_mr11u_
++@@ -82,11 +84,61 @@ static struct gpio_keys_button tl_mr11u_
+ },
+ };
+
+@@ -112,6 +112,7 @@ Index: linux-3.8.3/arch/mips/ath79/mach-tl-mr11u.c
+ + ath79_register_eth(0);
+ + ath79_eth0_data.phy_mask = BIT(0);
+ +
+++ mac[MAC_LEN - 1] ^= 1;
+ + }
+ +
+ + if (!strcmp(mtd->name, "art") && !art) {
+@@ -148,9 +149,9 @@ Index: linux-3.8.3/arch/mips/ath79/mach-tl-mr11u.c
+ /* Disable hardware control LAN1 and LAN2 LEDs, enabling GPIO14 and GPIO15 */
+ ath79_gpio_function_disable(AR933X_GPIO_FUNC_ETH_SWITCH_LED1_EN |
+ AR933X_GPIO_FUNC_ETH_SWITCH_LED2_EN);
+-@@ -94,18 +145,13 @@ static void __init common_setup(void)
++@@ -94,18 +146,13 @@ static void __init common_setup(void)
+ /* disable PHY_SWAP and PHY_ADDR_SWAP bits */
+- ath79_setup_ar933x_phy4_switch(false, false);
++ ath79_setup_ar933x_phy4_switch(false, true);
+
+ + register_mtd_user(&spi_notifier);
+ +
+diff --git a/target/linux/ar71xx/patches-3.8/999-2-sdcard-spi b/target/linux/ar71xx/patches-3.8/999-2-sdcard-spi
+index cb31388..44ccfc7 100644
+--- a/target/linux/ar71xx/patches-3.8/999-2-sdcard-spi
++++ b/target/linux/ar71xx/patches-3.8/999-2-sdcard-spi
+@@ -1,23 +1,20 @@
+-Index: linux-3.6.10/arch/mips/ath79/mach-tl-mr11u.c
++Index: linux-3.8.3/arch/mips/ath79/mach-tl-mr11u.c
+ ===================================================================
+---- linux-3.6.10.orig/arch/mips/ath79/mach-tl-mr11u.c
+-+++ linux-3.6.10/arch/mips/ath79/mach-tl-mr11u.c
+-@@ -12,7 +12,14 @@
+- #include <linux/gpio.h>
++--- linux-3.8.3.orig/arch/mips/ath79/mach-tl-mr11u.c
+++++ linux-3.8.3/arch/mips/ath79/mach-tl-mr11u.c
++@@ -13,6 +13,11 @@
+
+ #include <asm/mach-ath79/ath79.h>
+-+#include <asm/mach-ath79/ar71xx_regs.h>
++ #include <asm/mach-ath79/ar71xx_regs.h>
+ +#include <linux/spi/spi.h>
+ +#include <linux/spi/spi_gpio.h>
+ +#include <linux/spi/mmc_spi.h>
+ +#include <linux/mmc/host.h>
+ +#include <linux/platform_device.h>
++ #include <linux/mtd/mtd.h>
++ #include <linux/ath9k_platform.h>
+
+-+#include "common.h"
+- #include "dev-eth.h"
+- #include "dev-gpio-buttons.h"
+- #include "dev-leds-gpio.h"
+-@@ -34,6 +41,47 @@
++@@ -38,6 +43,47 @@
+ #define TL_MR11U_KEYS_POLL_INTERVAL 20 /* msecs */
+ #define TL_MR11U_KEYS_DEBOUNCE_INTERVAL (3 * TL_MR11U_KEYS_POLL_INTERVAL)
+
+@@ -51,7 +48,7 @@ Index: linux-3.6.10/arch/mips/ath79/mach-tl-mr11u.c
+ +};
+ +
+ +static struct platform_device tl_mr3040_spi_device = {
+-+#if 0
+++#if 1
+ + .name = "tl_mr3040_spi",
+ +#else
+ + .name = "spi_gpio",
+@@ -65,7 +62,7 @@ Index: linux-3.6.10/arch/mips/ath79/mach-tl-mr11u.c
+ static const char *tl_mr11u_part_probes[] = {
+ "tp-link",
+ NULL,
+-@@ -119,6 +167,10 @@ MIPS_MACHINE(ATH79_MACH_TL_MR11U, "TL-MR
++@@ -172,6 +218,10 @@ MIPS_MACHINE(ATH79_MACH_TL_MR11U, "TL-MR
+
+ static void __init tl_mr3040_setup(void)
+ {
+@@ -76,7 +73,7 @@ Index: linux-3.6.10/arch/mips/ath79/mach-tl-mr11u.c
+ common_setup();
+
+ ath79_register_gpio_keys_polled(-1, TL_MR11U_KEYS_POLL_INTERVAL,
+-@@ -126,6 +178,10 @@ static void __init tl_mr3040_setup(void)
++@@ -179,6 +229,10 @@ static void __init tl_mr3040_setup(void)
+ gpio_request_one(TL_MR3040_GPIO_USB_POWER,
+ GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED,
+ "USB power");
+@@ -87,10 +84,10 @@ Index: linux-3.6.10/arch/mips/ath79/mach-tl-mr11u.c
+ }
+
+ MIPS_MACHINE(ATH79_MACH_TL_MR3040, "TL-MR3040", "TP-LINK TL-MR3040",
+-Index: linux-3.6.10/drivers/spi/spi-tl_mr3040.c
++Index: linux-3.8.3/drivers/spi/spi-tl_mr3040.c
+ ===================================================================
+ --- /dev/null
+-+++ linux-3.6.10/drivers/spi/spi-tl_mr3040.c
+++++ linux-3.8.3/drivers/spi/spi-tl_mr3040.c
+ @@ -0,0 +1,7 @@
+ +#define DRIVER_NAME "tl_mr3040_spi"
+ +#define SPI_MISO_GPIO 13
+@@ -99,10 +96,10 @@ Index: linux-3.6.10/drivers/spi/spi-tl_mr3040.c
+ +#define SPI_N_CHIPSEL 1
+ +#undef NEED_SPIDELAY
+ +#include "spi-gpio.c"
+-Index: linux-3.6.10/drivers/spi/Makefile
++Index: linux-3.8.3/drivers/spi/Makefile
+ ===================================================================
+---- linux-3.6.10.orig/drivers/spi/Makefile
+-+++ linux-3.6.10/drivers/spi/Makefile
++--- linux-3.8.3.orig/drivers/spi/Makefile
+++++ linux-3.8.3/drivers/spi/Makefile
+ @@ -14,6 +14,7 @@ obj-$(CONFIG_SPI_ALTERA) += spi-altera.
+ obj-$(CONFIG_SPI_ATMEL) += spi-atmel.o
+ obj-$(CONFIG_SPI_AP83) += spi-ap83.o