From 556eb8fa5e8a32ea980fa5fe8db0bae77a2d898b Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 13 Jun 2010 11:14:31 +0200 Subject: do not export HOME here --- package/base-files/src/etc/profile | 1 - 1 file changed, 1 deletion(-) (limited to 'package/base-files/src') diff --git a/package/base-files/src/etc/profile b/package/base-files/src/etc/profile index 1b8f4a6a6..b849feb49 100644 --- a/package/base-files/src/etc/profile +++ b/package/base-files/src/etc/profile @@ -4,7 +4,6 @@ if [[ $(id -u) = 0 ]]; then export PS1='# ' else export PS1='$ ' - export HOME=/tmp fi cat /etc/banner 2>&- [ -x /usr/bin/vim ] && alias vi=vim || alias vim=vi -- cgit v1.2.3 From 3069ceb7f91acb37fde64731b8ac7eaa505b0a0e Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 16 Jun 2010 09:44:54 +0200 Subject: add webcam and wireless-tools support for lemote --- mk/build.mk | 1 - mk/modules.mk | 4 +++ package/Config.in | 1 + .../src/etc/network/if-pre-up.d/04-wireless | 24 ++++++++++---- package/wireless-tools/Makefile | 37 ++++++++++++++++++++++ target/linux/config/Config.in.multimedia | 7 ++++ 6 files changed, 66 insertions(+), 8 deletions(-) create mode 100644 package/wireless-tools/Makefile (limited to 'package/base-files/src') diff --git a/mk/build.mk b/mk/build.mk index 0d807076a..3d2b69537 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -20,7 +20,6 @@ DEFCONFIG= ADK_DEVELSYSTEM=n \ ADK_PACKAGE_XORG_SERVER_WITH_DRI=n \ ADK_PACKAGE_AUFS2_UTIL=n \ ADK_PACKAGE_BASE_FILES=y \ - ADK_PACKAGE_GCC=n \ ADK_PACKAGE_MGETTY=n \ ADK_COMPILE_HEIMDAL=n \ ADK_PACKAGE_HEIMDAL_PKINIT=n \ diff --git a/mk/modules.mk b/mk/modules.mk index 7322870c8..a53438928 100644 --- a/mk/modules.mk +++ b/mk/modules.mk @@ -1044,6 +1044,10 @@ $(eval $(call KMOD_template,VIDEODEV,videodev,\ $(MODULES_DIR)/kernel/drivers/media/video/videodev \ ,65)) +$(eval $(call KMOD_template,USB_VIDEO_CLASS,usb-video-class,\ + $(MODULES_DIR)/kernel/drivers/media/video/uvc/uvcvideo \ +,70)) + $(eval $(call KMOD_template,PWC,pwc,\ $(MODULES_DIR)/kernel/drivers/usb/pwc \ ,70)) diff --git a/package/Config.in b/package/Config.in index 581eab25e..2f7aecaa4 100644 --- a/package/Config.in +++ b/package/Config.in @@ -607,6 +607,7 @@ source "package/olsrd/Config.in" source "package/p54-firmware/Config.in" source "package/rt61-firmware/Config.in" source "package/wifidog/Config.in" +source "package/wireless-tools/Config.in" source "package/wpa_supplicant/Config.in" endmenu diff --git a/package/base-files/src/etc/network/if-pre-up.d/04-wireless b/package/base-files/src/etc/network/if-pre-up.d/04-wireless index 1898de4d4..1ccc4d823 100755 --- a/package/base-files/src/etc/network/if-pre-up.d/04-wireless +++ b/package/base-files/src/etc/network/if-pre-up.d/04-wireless @@ -74,13 +74,23 @@ case "$IF_WIRELESS_MODE" in } ;; sta) - [ -x /usr/sbin/iw ] || { - logger -t wireless "No iw utility found" - exit 1 - } ip link set up dev ${IFACE} - iw dev ${IFACE} set channel $IF_WIRELESS_CHANNEL - iw dev ${IFACE} connect $IF_WIRELESS_SSID + [ $IF_WIRELESS_EXTENSION -eq 1 ] && { + [ -x /usr/sbin/iwconfig ] || { + logger -t wireless "No wireless-tools found" + exit 1 + } + driver=wext + iwconfig ${IFACE} essid $IF_WIRELESS_SSID + } || { + [ -x /usr/sbin/iw ] || { + logger -t wireless "No iw utility found" + exit 1 + } + driver=nl80211 + iw dev ${IFACE} set channel $IF_WIRELESS_CHANNEL + iw dev ${IFACE} connect $IF_WIRELESS_SSID + } [ $wpa2 -eq 1 ] && { [ -x /usr/sbin/wpa_supplicant ] || { logger -t wireless "No wpa_supplicant found" @@ -93,7 +103,7 @@ case "$IF_WIRELESS_MODE" in echo " psk=\"$IF_WIRELESS_PASSPHRASE\"" >> /tmp/wpa_supplicant.conf echo " priority=5" >> /tmp/wpa_supplicant.conf echo "}" >> /tmp/wpa_supplicant.conf - wpa_supplicant -B -Dnl80211 -i${IFACE} -c/tmp/wpa_supplicant.conf + wpa_supplicant -B -D${driver} -i${IFACE} -c/tmp/wpa_supplicant.conf } ;; *) diff --git a/package/wireless-tools/Makefile b/package/wireless-tools/Makefile new file mode 100644 index 000000000..ca9a84809 --- /dev/null +++ b/package/wireless-tools/Makefile @@ -0,0 +1,37 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include ${TOPDIR}/rules.mk + +PKG_NAME:= wireless-tools +PKG_VERSION:= 29 +PKG_RELEASE:= 1 +PKG_MD5SUM:= e06c222e186f7cc013fd272d023710cb +PKG_DESCR:= Linux wireless tools (for older wireless drivers) +PKG_SECTION:= base +PKG_SITES:= http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ + +DISTFILES:= wireless_tools.${PKG_VERSION}.tar.gz +WRKDIST= ${WRKDIR}/wireless_tools.29 + +include ${TOPDIR}/mk/package.mk + +$(eval $(call PKG_template,WIRELESS_TOOLS,$(PKG_NAME),$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) + +CONFIG_STYLE:= manual +MAKE_FLAGS+= CC="${TARGET_CC}" CFLAGS="${TARGET_CFLAGS} -I." +ALL_TARGET:= libiw.so.29 iwmulticall +FAKE_FLAGS:= INSTALL_DIR="${WRKINST}/usr/sbin" \ + INSTALL_LIB="${WRKINST}/usr/lib" \ + INSTALL_INC="${WRKINST}/usr/include" +INSTALL_TARGET:= install-iwmulticall install-hdr install-dynamic + +post-install: + ${INSTALL_DIR} ${IDIR_WIRELESS_TOOLS}/usr/sbin + ${INSTALL_DIR} ${IDIR_WIRELESS_TOOLS}/usr/lib + ${INSTALL_DATA} ${WRKINST}/usr/lib/libiw.so.* \ + ${IDIR_WIRELESS_TOOLS}/usr/lib/ + ${CP} ${WRKINST}/usr/sbin/iw* ${IDIR_WIRELESS_TOOLS}/usr/sbin/ + +include ${TOPDIR}/mk/pkg-bottom.mk + diff --git a/target/linux/config/Config.in.multimedia b/target/linux/config/Config.in.multimedia index ef10e4832..75a2b3780 100644 --- a/target/linux/config/Config.in.multimedia +++ b/target/linux/config/Config.in.multimedia @@ -124,6 +124,13 @@ config ADK_KPACKAGE_KMOD_VIDEO_V4L1 Enables a compatibility API used by most V4L2 devices to allow its usage with legacy applications that supports only V4L1 api. +config ADK_KPACKAGE_KMOD_USB_VIDEO_CLASS + prompt "kmod-usb-video-class............ Kernel driver for USB video webcams" + tristate + depends on ADK_KPACKAGE_KMOD_USB + default n + help + config ADK_KPACKAGE_KMOD_USB_PWC prompt "kmod-usb-pwc.................... Kernel driver for USB Philips Cameras" tristate -- cgit v1.2.3 From 7310c677852c7a925c55922481052ad0ff7c8310 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 20 Jun 2010 11:33:29 +0200 Subject: make tmpfs size configurable via /etc/tmpfs --- package/base-files/Makefile | 2 +- package/base-files/src/init | 3 ++- target/lemote/Makefile | 1 + target/lemote/files/etc/tmpfs | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 target/lemote/files/etc/tmpfs (limited to 'package/base-files/src') diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 3f63df3e6..34807d6a0 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk PKG_NAME:= base-files PKG_VERSION:= 1.0 -PKG_RELEASE:= 10 +PKG_RELEASE:= 11 PKG_DESCR:= basic filesystem structure and scripts PKG_SECTION:= base diff --git a/package/base-files/src/init b/package/base-files/src/init index 618547693..173e91b0b 100755 --- a/package/base-files/src/init +++ b/package/base-files/src/init @@ -4,7 +4,8 @@ export PATH=/bin:/sbin:/usr/bin:/usr/sbin mount -nt proc proc /proc mount -o nosuid,nodev,noexec -t sysfs sysfs /sys [ ! -f /etc/notmpfs ] && { - size=$(awk '/MemTotal:/ { if ($2 > 16000) { print 4096 } else { print 2048 }}' /proc/meminfo) + size=2048 + size=$(cat /etc/tmpfs 2>/dev/null) mount none /tmp -t tmpfs -o size=${size}k mount none /tmp -t tmpfs -o remount,nosuid,nodev,mode=1777 } diff --git a/target/lemote/Makefile b/target/lemote/Makefile index d79f1e270..8f8042827 100644 --- a/target/lemote/Makefile +++ b/target/lemote/Makefile @@ -24,6 +24,7 @@ createinitcrypt: ifeq ($(FS),nfsroot) imageinstall: $(BIN_DIR)/$(ROOTFSUSERTARBALL) + @cp $(LINUX_DIR)/vmlinuz $(BIN_DIR)/${ADK_TARGET}-${FS}-kernel @echo 'The kernel file is: ${BIN_DIR}/${ADK_TARGET}-${FS}-kernel' @echo 'The nfs root tarball is: ${BIN_DIR}/${ROOTFSUSERTARBALL}' @echo 'Boot your lemote and type following commands in PMON:' diff --git a/target/lemote/files/etc/tmpfs b/target/lemote/files/etc/tmpfs new file mode 100644 index 000000000..08558e471 --- /dev/null +++ b/target/lemote/files/etc/tmpfs @@ -0,0 +1 @@ +16384 -- cgit v1.2.3 From 36c8c2eb53bf2fb400f138b2177bea2fe0651d12 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Tue, 29 Jun 2010 17:45:03 +0200 Subject: optimize ipkg package management ipkg will automatically mount the normal read-only rootfs as read-write and after the command back to read-only. ipkg install/remove/upgrades are only supported for compact disk or disk based systems. On flash systems better reflash completely. make a kernel package containing the real kernel. Adjust ipkg.conf to contain a configurable server adress. --- Config.in | 6 ++ mk/build.mk | 2 +- mk/image.mk | 16 +++- mk/kernel-build.mk | 10 -- mk/kernel.mk | 1 - mk/mirrors.mk | 2 +- package/base-files/Makefile | 9 +- package/base-files/src/etc/ipkg.conf | 2 +- package/busybox/patches/001-ipkg.patch | 165 +++++++++++++++++---------------- rules.mk | 1 + scripts/ipkg-make-index.sh | 2 +- 11 files changed, 115 insertions(+), 101 deletions(-) (limited to 'package/base-files/src') diff --git a/Config.in b/Config.in index 64915d678..438388bbb 100644 --- a/Config.in +++ b/Config.in @@ -17,6 +17,12 @@ config ADK_HAVE_DOT_CONFIG menu "ADK settings" +config ADK_HOST + string "Webserver for packages and distfiles" + default "www.openadk.org" + help + Configure host for IPKG package management + config ADK_DEVELSYSTEM bool "Compile a ADK development system" default n diff --git a/mk/build.mk b/mk/build.mk index c13694013..2f4b367b9 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -95,7 +95,7 @@ else ifeq ($(ADK_TOOLCHAIN_ONLY),y) $(MAKE) -f mk/build.mk toolchain/install package/compile else - $(MAKE) -f mk/build.mk toolchain/install target/config-prepare target/compile package/compile root_clean package/install package_index target/install + $(MAKE) -f mk/build.mk toolchain/install target/config-prepare target/compile package/compile root_clean package/install target/install package_index endif endif diff --git a/mk/image.mk b/mk/image.mk index ef0a626e0..4713d621d 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -52,14 +52,26 @@ image-prepare-post: done; \ fi +KERNEL_PKGDIR:=$(LINUX_BUILD_DIR)/kernel-pkg +KERNEL_PKG:=$(PACKAGE_DIR)/kernel_$(ADK_TARGET)-$(KERNEL_VERSION)_$(CPU_ARCH).$(PKG_SUFFIX) + +kernel-package: $(LINUX_DIR)/vmlinux + $(TRACE) target/$(ADK_TARGET)-create-kernel-package + rm -rf $(KERNEL_PKGDIR) + @mkdir -p $(KERNEL_PKGDIR)/boot + cp $(KERNEL) $(KERNEL_PKGDIR)/boot/vmlinuz-adk + ${BASH} ${SCRIPT_DIR}/make-ipkg-dir.sh ${KERNEL_PKGDIR} \ + ../linux/kernel.control ${ADK_TARGET}-${KERNEL_VERSION} ${CPU_ARCH} + $(PKG_BUILD) $(KERNEL_PKGDIR) $(PACKAGE_DIR) + $(PKG_INSTALL) $(KERNEL_PKG) + INITRAMFS= ${ADK_TARGET}-${ADK_LIBC}-${FS} ROOTFSSQUASHFS= ${ADK_TARGET}-${ADK_LIBC}-${FS}.img ROOTFSTARBALL= ${ADK_TARGET}-${ADK_LIBC}-${FS}+kernel.tar.gz ROOTFSUSERTARBALL= ${ADK_TARGET}-${ADK_LIBC}-${FS}.tar.gz INITRAMFS_PIGGYBACK= ${ADK_TARGET}-${ADK_LIBC}-${FS}.cpio -${BIN_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR} - cp $(KERNEL) $(TARGET_DIR)/boot/vmlinuz-adk +${BIN_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR} kernel-package cd ${TARGET_DIR}; tar -cf - --owner=0 --group=0 . | gzip -n9 >$@ ${BIN_DIR}/${ROOTFSUSERTARBALL}: ${TARGET_DIR} diff --git a/mk/kernel-build.mk b/mk/kernel-build.mk index 797ad60d4..bd8b47164 100644 --- a/mk/kernel-build.mk +++ b/mk/kernel-build.mk @@ -5,8 +5,6 @@ include $(TOPDIR)/rules.mk include $(TOPDIR)/mk/linux.mk include ${TOPDIR}/mk/kernel-vars.mk -KERNEL_PKGDIR:=$(LINUX_BUILD_DIR)/kernel-pkg - $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/linux-$(KERNEL_VERSION)/.patched: $(TRACE) target/$(ADK_TARGET)-kernel-patch $(PATCH) $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/linux-$(KERNEL_VERSION) ../linux/patches/$(KERNEL_VERSION) *.patch $(MAKE_TRACE) @@ -39,14 +37,6 @@ $(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.config $(MAKE) $(KERNEL_PKG) $(TARGETS) touch -c $(LINUX_DIR)/vmlinux -$(KERNEL_PKG): - $(TRACE) target/$(ADK_TARGET)-create-kernel-package - rm -rf $(KERNEL_PKGDIR) - @mkdir -p $(KERNEL_PKGDIR)/etc - ${BASH} ${SCRIPT_DIR}/make-ipkg-dir.sh ${KERNEL_PKGDIR} \ - ../linux/kernel.control ${ADK_TARGET}-${KERNEL_VERSION} ${CPU_ARCH} - $(PKG_BUILD) $(KERNEL_PKGDIR) $(PACKAGE_DIR) $(MAKE_TRACE) - prepare: compile: $(LINUX_DIR)/vmlinux install: compile diff --git a/mk/kernel.mk b/mk/kernel.mk index d09425e44..a8b3884da 100644 --- a/mk/kernel.mk +++ b/mk/kernel.mk @@ -8,7 +8,6 @@ KMOD_BUILD_DIR := $(LINUX_BUILD_DIR)/linux-modules MODULES_DIR := $(LINUX_BUILD_DIR)/modules/$(MODULES_SUBDIR) TARGET_MODULES_DIR := $(LINUX_TARGET_DIR)/$(MODULES_SUBDIR) -KERNEL_PKG:=$(PACKAGE_DIR)/kernel_$(ADK_TARGET)-$(KERNEL_VERSION)_$(CPU_ARCH).$(PKG_SUFFIX) INSTALL_TARGETS:= $(KERNEL_PKG) NOINSTALL_TARGETS:= TARGETS:= diff --git a/mk/mirrors.mk b/mk/mirrors.mk index c7e0ac623..a57cb8ec8 100644 --- a/mk/mirrors.mk +++ b/mk/mirrors.mk @@ -1,7 +1,7 @@ # This file is part of the OpenADK project. OpenADK is copyrighted # material, please see the LICENCE file in the top-level directory. -MASTER_SITE_BACKUP?= ${MASTER_SITE_OPENADK} +MASTER_SITE_BACKUP?= http://${ADK_HOST}/distfiles/ MASTER_SITE_OPENADK?= \ http://www.openadk.org/distfiles/ \ diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 34807d6a0..26daf87e9 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk PKG_NAME:= base-files PKG_VERSION:= 1.0 -PKG_RELEASE:= 11 +PKG_RELEASE:= 12 PKG_DESCR:= basic filesystem structure and scripts PKG_SECTION:= base @@ -31,12 +31,9 @@ do-install: ifeq (${ADK_TARGET_ROOTFS_NFSROOT},y) @-rm $(IDIR_BASE_FILES)/etc/network/interfaces endif -ifeq (${ADK_TARGET_PACKAGE_IPKG},y) $(SED) 's,@TARGET@,$(ADK_TARGET),g' $(IDIR_BASE_FILES)/etc/ipkg.conf - $(SED) 's,@VERSION@,$(ADK_VERSION),g' $(IDIR_BASE_FILES)/etc/ipkg.conf -else - @-rm $(IDIR_BASE_FILES)/etc/ipkg.conf -endif + $(SED) 's,@HOST@,$(ADK_HOST),g' $(IDIR_BASE_FILES)/etc/ipkg.conf + $(SED) 's,@LIBC@,$(ADK_LIBC),g' $(IDIR_BASE_FILES)/etc/ipkg.conf echo /bin/sh >${IDIR_BASE_FILES}/etc/shells echo /bin/ash >>${IDIR_BASE_FILES}/etc/shells ifneq (${ADK_PACKAGE_BASH},) diff --git a/package/base-files/src/etc/ipkg.conf b/package/base-files/src/etc/ipkg.conf index 6c9242620..452079766 100644 --- a/package/base-files/src/etc/ipkg.conf +++ b/package/base-files/src/etc/ipkg.conf @@ -1,3 +1,3 @@ -src openadk http://www.openadk.org/packages/@TARGET@ +src openadk http://@HOST@/@TARGET@_@LIBC@/packages dest root / dest ram /tmp diff --git a/package/busybox/patches/001-ipkg.patch b/package/busybox/patches/001-ipkg.patch index eaae63e18..335a2334b 100644 --- a/package/busybox/patches/001-ipkg.patch +++ b/package/busybox/patches/001-ipkg.patch @@ -1,6 +1,6 @@ diff -Nur busybox-1.16.1.orig/archival/Config.in busybox-1.16.1/archival/Config.in --- busybox-1.16.1.orig/archival/Config.in 2010-03-28 19:43:35.000000000 +0200 -+++ busybox-1.16.1/archival/Config.in 2010-06-11 18:01:45.390987788 +0200 ++++ busybox-1.16.1/archival/Config.in 2010-06-29 17:31:21.805863709 +0200 @@ -187,6 +187,14 @@ are actually slower than gzip at equivalent compression ratios and take up 3.2K of code. @@ -18,7 +18,7 @@ diff -Nur busybox-1.16.1.orig/archival/Config.in busybox-1.16.1/archival/Config. default n diff -Nur busybox-1.16.1.orig/archival/ipkg.c busybox-1.16.1/archival/ipkg.c --- busybox-1.16.1.orig/archival/ipkg.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/ipkg.c 2010-06-11 18:01:45.643464189 +0200 ++++ busybox-1.16.1/archival/ipkg.c 2010-06-29 17:31:21.827118101 +0200 @@ -0,0 +1,28 @@ +/* ipkg.c - the itsy package management system + @@ -50,7 +50,7 @@ diff -Nur busybox-1.16.1.orig/archival/ipkg.c busybox-1.16.1/archival/ipkg.c +} diff -Nur busybox-1.16.1.orig/archival/Kbuild busybox-1.16.1/archival/Kbuild --- busybox-1.16.1.orig/archival/Kbuild 2010-03-20 03:58:07.000000000 +0100 -+++ busybox-1.16.1/archival/Kbuild 2010-06-11 18:01:45.690978489 +0200 ++++ busybox-1.16.1/archival/Kbuild 2010-06-29 17:31:21.865866986 +0200 @@ -16,6 +16,7 @@ lib-$(CONFIG_DPKG_DEB) += dpkg_deb.o lib-$(CONFIG_GUNZIP) += bbunzip.o @@ -61,7 +61,7 @@ diff -Nur busybox-1.16.1.orig/archival/Kbuild busybox-1.16.1/archival/Kbuild lib-$(CONFIG_RPM2CPIO) += rpm2cpio.o diff -Nur busybox-1.16.1.orig/archival/libipkg/args.c busybox-1.16.1/archival/libipkg/args.c --- busybox-1.16.1.orig/archival/libipkg/args.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/args.c 2010-06-11 18:01:45.731229906 +0200 ++++ busybox-1.16.1/archival/libipkg/args.c 2010-06-29 17:31:21.905863813 +0200 @@ -0,0 +1,242 @@ +/* args.c - parse command-line args + @@ -307,7 +307,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/args.c busybox-1.16.1/archival/li +} diff -Nur busybox-1.16.1.orig/archival/libipkg/args.h busybox-1.16.1/archival/libipkg/args.h --- busybox-1.16.1.orig/archival/libipkg/args.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/args.h 2010-06-11 18:01:45.770978491 +0200 ++++ busybox-1.16.1/archival/libipkg/args.h 2010-06-29 17:31:21.945866019 +0200 @@ -0,0 +1,72 @@ +/* args.h - parse command-line args + @@ -383,7 +383,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/args.h busybox-1.16.1/archival/li +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/conffile.c busybox-1.16.1/archival/libipkg/conffile.c --- busybox-1.16.1.orig/archival/libipkg/conffile.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/conffile.c 2010-06-11 18:01:45.811722262 +0200 ++++ busybox-1.16.1/archival/libipkg/conffile.c 2010-06-29 17:31:21.987118040 +0200 @@ -0,0 +1,65 @@ +/* conffile.c - the itsy package management system + @@ -452,7 +452,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/conffile.c busybox-1.16.1/archiva +} diff -Nur busybox-1.16.1.orig/archival/libipkg/conffile.h busybox-1.16.1/archival/libipkg/conffile.h --- busybox-1.16.1.orig/archival/libipkg/conffile.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/conffile.h 2010-06-11 18:01:45.851179506 +0200 ++++ busybox-1.16.1/archival/libipkg/conffile.h 2010-06-29 17:31:22.018368070 +0200 @@ -0,0 +1,30 @@ +/* conffile.h - the itsy package management system + @@ -486,7 +486,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/conffile.h busybox-1.16.1/archiva + diff -Nur busybox-1.16.1.orig/archival/libipkg/conffile_list.c busybox-1.16.1/archival/libipkg/conffile_list.c --- busybox-1.16.1.orig/archival/libipkg/conffile_list.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/conffile_list.c 2010-06-11 18:01:45.891550268 +0200 ++++ busybox-1.16.1/archival/libipkg/conffile_list.c 2010-06-29 17:31:22.055873481 +0200 @@ -0,0 +1,47 @@ +/* conffile_list.c - the itsy package management system + @@ -537,7 +537,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/conffile_list.c busybox-1.16.1/ar + diff -Nur busybox-1.16.1.orig/archival/libipkg/conffile_list.h busybox-1.16.1/archival/libipkg/conffile_list.h --- busybox-1.16.1.orig/archival/libipkg/conffile_list.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/conffile_list.h 2010-06-11 18:01:45.931013871 +0200 ++++ busybox-1.16.1/archival/libipkg/conffile_list.h 2010-06-29 17:31:22.089612450 +0200 @@ -0,0 +1,36 @@ +/* conffile_list.h - the itsy package management system + @@ -577,7 +577,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/conffile_list.h busybox-1.16.1/ar + diff -Nur busybox-1.16.1.orig/archival/libipkg/file_util.c busybox-1.16.1/archival/libipkg/file_util.c --- busybox-1.16.1.orig/archival/libipkg/file_util.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/file_util.c 2010-06-11 18:01:45.972223098 +0200 ++++ busybox-1.16.1/archival/libipkg/file_util.c 2010-06-29 17:31:22.137606321 +0200 @@ -0,0 +1,186 @@ +/* file_util.c - convenience routines for common stat operations + @@ -767,7 +767,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/file_util.c busybox-1.16.1/archiv + diff -Nur busybox-1.16.1.orig/archival/libipkg/file_util.h busybox-1.16.1/archival/libipkg/file_util.h --- busybox-1.16.1.orig/archival/libipkg/file_util.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/file_util.h 2010-06-11 18:01:46.010975367 +0200 ++++ busybox-1.16.1/archival/libipkg/file_util.h 2010-06-29 17:31:22.220596553 +0200 @@ -0,0 +1,29 @@ +/* file_util.h - convenience routines for common file operations + @@ -800,7 +800,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/file_util.h busybox-1.16.1/archiv +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/hash_table.c busybox-1.16.1/archival/libipkg/hash_table.c --- busybox-1.16.1.orig/archival/libipkg/hash_table.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/hash_table.c 2010-06-11 18:01:46.050978363 +0200 ++++ busybox-1.16.1/archival/libipkg/hash_table.c 2010-06-29 17:31:22.257056261 +0200 @@ -0,0 +1,155 @@ +/* hash.c - hash tables for ipkg + @@ -959,7 +959,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/hash_table.c busybox-1.16.1/archi + diff -Nur busybox-1.16.1.orig/archival/libipkg/hash_table.h busybox-1.16.1/archival/libipkg/hash_table.h --- busybox-1.16.1.orig/archival/libipkg/hash_table.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/hash_table.h 2010-06-11 18:01:46.090978480 +0200 ++++ busybox-1.16.1/archival/libipkg/hash_table.h 2010-06-29 17:31:22.305858166 +0200 @@ -0,0 +1,44 @@ +/* hash.h - hash tables for ipkg + @@ -1007,7 +1007,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/hash_table.h busybox-1.16.1/archi +#endif /* _HASH_TABLE_H_ */ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_cmd.c busybox-1.16.1/archival/libipkg/ipkg_cmd.c --- busybox-1.16.1.orig/archival/libipkg/ipkg_cmd.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_cmd.c 2010-06-11 18:01:46.131129708 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_cmd.c 2010-06-29 17:31:22.355873403 +0200 @@ -0,0 +1,1386 @@ +/* ipkg_cmd.c - the itsy package management system + @@ -2397,7 +2397,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_cmd.c busybox-1.16.1/archiva + diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_cmd.h busybox-1.16.1/archival/libipkg/ipkg_cmd.h --- busybox-1.16.1.orig/archival/libipkg/ipkg_cmd.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_cmd.h 2010-06-11 18:01:46.170978767 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_cmd.h 2010-06-29 17:31:22.398358961 +0200 @@ -0,0 +1,41 @@ +/* ipkg_cmd.h - the itsy package management system + @@ -2442,7 +2442,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_cmd.h busybox-1.16.1/archiva +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_conf.c busybox-1.16.1/archival/libipkg/ipkg_conf.c --- busybox-1.16.1.orig/archival/libipkg/ipkg_conf.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_conf.c 2010-06-11 18:01:46.210975629 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_conf.c 2010-06-29 17:31:22.425857952 +0200 @@ -0,0 +1,711 @@ +/* ipkg_conf.c - the itsy package management system + @@ -3157,7 +3157,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_conf.c busybox-1.16.1/archiv +} diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_conf.h busybox-1.16.1/archival/libipkg/ipkg_conf.h --- busybox-1.16.1.orig/archival/libipkg/ipkg_conf.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_conf.h 2010-06-11 18:01:46.250978751 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_conf.h 2010-06-29 17:31:22.458368131 +0200 @@ -0,0 +1,107 @@ +/* ipkg_conf.h - the itsy package management system + @@ -3268,7 +3268,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_conf.h busybox-1.16.1/archiv +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_configure.c busybox-1.16.1/archival/libipkg/ipkg_configure.c --- busybox-1.16.1.orig/archival/libipkg/ipkg_configure.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_configure.c 2010-06-11 18:01:46.291597277 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_configure.c 2010-06-29 17:31:22.488368061 +0200 @@ -0,0 +1,40 @@ +/* ipkg_configure.c - the itsy package management system + @@ -3312,7 +3312,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_configure.c busybox-1.16.1/a + diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_configure.h busybox-1.16.1/archival/libipkg/ipkg_configure.h --- busybox-1.16.1.orig/archival/libipkg/ipkg_configure.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_configure.h 2010-06-11 18:01:46.340978728 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_configure.h 2010-06-29 17:31:22.527882534 +0200 @@ -0,0 +1,25 @@ +/* ipkg_configure.h - the itsy package management system + @@ -3341,7 +3341,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_configure.h busybox-1.16.1/a +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_download.c busybox-1.16.1/archival/libipkg/ipkg_download.c --- busybox-1.16.1.orig/archival/libipkg/ipkg_download.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_download.c 2010-06-11 18:01:46.380981407 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_download.c 2010-06-29 17:31:22.569385415 +0200 @@ -0,0 +1,195 @@ +/* ipkg_download.c - the itsy package management system + @@ -3540,7 +3540,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_download.c busybox-1.16.1/ar +} diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_download.h busybox-1.16.1/archival/libipkg/ipkg_download.h --- busybox-1.16.1.orig/archival/libipkg/ipkg_download.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_download.h 2010-06-11 18:01:46.420978503 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_download.h 2010-06-29 17:31:22.608368046 +0200 @@ -0,0 +1,30 @@ +/* ipkg_download.h - the itsy package management system + @@ -3574,7 +3574,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_download.h busybox-1.16.1/ar +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg.h busybox-1.16.1/archival/libipkg/ipkg.h --- busybox-1.16.1.orig/archival/libipkg/ipkg.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg.h 2010-06-11 18:01:46.450978611 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg.h 2010-06-29 17:31:22.647281522 +0200 @@ -0,0 +1,68 @@ +/* ipkg.h - the itsy package management system + @@ -3646,8 +3646,8 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg.h busybox-1.16.1/archival/li +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_includes.h busybox-1.16.1/archival/libipkg/ipkg_includes.h --- busybox-1.16.1.orig/archival/libipkg/ipkg_includes.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_includes.h 2010-06-11 18:01:46.491601499 +0200 -@@ -0,0 +1,79 @@ ++++ busybox-1.16.1/archival/libipkg/ipkg_includes.h 2010-06-29 17:32:10.339618090 +0200 +@@ -0,0 +1,81 @@ +#ifndef IPKG_INCLUDES_H +#define IPKG_INCLUDES_H + @@ -3726,10 +3726,12 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_includes.h busybox-1.16.1/ar +# include +#endif + ++#include ++ +#endif /* IPKG_INCLUDES_H */ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_install.c busybox-1.16.1/archival/libipkg/ipkg_install.c --- busybox-1.16.1.orig/archival/libipkg/ipkg_install.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_install.c 2010-06-11 18:01:46.520978675 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_install.c 2010-06-29 17:31:22.727172508 +0200 @@ -0,0 +1,1982 @@ +/* ipkg_install.c - the itsy package management system + @@ -5715,7 +5717,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_install.c busybox-1.16.1/arc +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_install.h busybox-1.16.1/archival/libipkg/ipkg_install.h --- busybox-1.16.1.orig/archival/libipkg/ipkg_install.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_install.h 2010-06-11 18:01:46.570978506 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_install.h 2010-06-29 17:31:22.768368136 +0200 @@ -0,0 +1,35 @@ +/* ipkg_install.h - the itsy package management system + @@ -5754,7 +5756,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_install.h busybox-1.16.1/arc +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_message.c busybox-1.16.1/archival/libipkg/ipkg_message.c --- busybox-1.16.1.orig/archival/libipkg/ipkg_message.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_message.c 2010-06-11 18:01:46.600978529 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_message.c 2010-06-29 17:31:22.798368009 +0200 @@ -0,0 +1,35 @@ +/* ipkg_message.c - the itsy package management system + @@ -5793,7 +5795,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_message.c busybox-1.16.1/arc +} diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_message.h busybox-1.16.1/archival/libipkg/ipkg_message.h --- busybox-1.16.1.orig/archival/libipkg/ipkg_message.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_message.h 2010-06-11 18:01:46.641329150 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_message.h 2010-06-29 17:31:22.839937503 +0200 @@ -0,0 +1,32 @@ +/* ipkg_message.h - the itsy package management system + @@ -5829,7 +5831,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_message.h busybox-1.16.1/arc +#endif /* _IPKG_MESSAGE_H_ */ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_remove.c busybox-1.16.1/archival/libipkg/ipkg_remove.c --- busybox-1.16.1.orig/archival/libipkg/ipkg_remove.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_remove.c 2010-06-11 18:01:46.670978873 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_remove.c 2010-06-29 17:31:22.876628032 +0200 @@ -0,0 +1,385 @@ +/* ipkg_remove.c - the itsy package management system + @@ -6218,7 +6220,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_remove.c busybox-1.16.1/arch +} diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_remove.h busybox-1.16.1/archival/libipkg/ipkg_remove.h --- busybox-1.16.1.orig/archival/libipkg/ipkg_remove.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_remove.h 2010-06-11 18:01:46.700978899 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_remove.h 2010-06-29 17:31:22.918368225 +0200 @@ -0,0 +1,33 @@ +/* ipkg_remove.h - the itsy package management system + @@ -6255,7 +6257,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_remove.h busybox-1.16.1/arch +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_upgrade.c busybox-1.16.1/archival/libipkg/ipkg_upgrade.c --- busybox-1.16.1.orig/archival/libipkg/ipkg_upgrade.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_upgrade.c 2010-06-11 18:01:46.740978357 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_upgrade.c 2010-06-29 17:31:22.976264794 +0200 @@ -0,0 +1,79 @@ +/* ipkg_upgrade.c - the itsy package management system + @@ -6338,7 +6340,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_upgrade.c busybox-1.16.1/arc +} diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_upgrade.h busybox-1.16.1/archival/libipkg/ipkg_upgrade.h --- busybox-1.16.1.orig/archival/libipkg/ipkg_upgrade.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_upgrade.h 2010-06-11 18:01:46.781573524 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_upgrade.h 2010-06-29 17:31:23.015873328 +0200 @@ -0,0 +1,18 @@ +/* ipkg_upgrade.c - the itsy package management system + @@ -6360,7 +6362,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_upgrade.h busybox-1.16.1/arc +int ipkg_upgrade_pkg(ipkg_conf_t *conf, pkg_t *old); diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_utils.c busybox-1.16.1/archival/libipkg/ipkg_utils.c --- busybox-1.16.1.orig/archival/libipkg/ipkg_utils.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_utils.c 2010-06-11 18:01:46.810978735 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_utils.c 2010-06-29 17:31:23.067592883 +0200 @@ -0,0 +1,185 @@ +/* ipkg_utils.c - the itsy package management system + @@ -6549,7 +6551,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_utils.c busybox-1.16.1/archi + diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_utils.h busybox-1.16.1/archival/libipkg/ipkg_utils.h --- busybox-1.16.1.orig/archival/libipkg/ipkg_utils.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/ipkg_utils.h 2010-06-11 18:01:46.840975225 +0200 ++++ busybox-1.16.1/archival/libipkg/ipkg_utils.h 2010-06-29 17:31:23.105873432 +0200 @@ -0,0 +1,29 @@ +/* ipkg_utils.h - the itsy package management system + @@ -6582,7 +6584,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/ipkg_utils.h busybox-1.16.1/archi +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/Kbuild busybox-1.16.1/archival/libipkg/Kbuild --- busybox-1.16.1.orig/archival/libipkg/Kbuild 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/Kbuild 2010-06-11 18:01:46.891222949 +0200 ++++ busybox-1.16.1/archival/libipkg/Kbuild 2010-06-29 17:31:23.145868229 +0200 @@ -0,0 +1,60 @@ +# Makefile for busybox +# @@ -6646,8 +6648,8 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/Kbuild busybox-1.16.1/archival/li +CFLAGS += -DIPKGLIBDIR="\"/usr/lib\"" -DHOST_CPU_STR="\"$(IPKG_ARCH)\"" diff -Nur busybox-1.16.1.orig/archival/libipkg/libipkg.c busybox-1.16.1/archival/libipkg/libipkg.c --- busybox-1.16.1.orig/archival/libipkg/libipkg.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/libipkg.c 2010-06-11 18:01:46.931643721 +0200 -@@ -0,0 +1,525 @@ ++++ busybox-1.16.1/archival/libipkg/libipkg.c 2010-06-29 17:35:49.219617937 +0200 +@@ -0,0 +1,532 @@ +/* ipkglib.c - the itsy package management system + + Florina Boor @@ -7101,6 +7103,10 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/libipkg.c busybox-1.16.1/archival + ipkg_conf_t ipkg_conf; + const char *message = "ipkg must have one sub-command argument"; + ++ /* mount rootfs read-write */ ++ if (mount("","/",0,MS_REMOUNT,0)<0) ++ fprintf (stderr, "Mounting rootfs read-write failed\n"); ++ + args_init (&args); + + optind_ = args_parse (&args, argc, argv); @@ -7170,12 +7176,15 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/libipkg.c busybox-1.16.1/archival + err = ipkg_cmd_exec (cmd, &ipkg_conf, argc - optind_, (const char **) (argv + optind_), NULL); + + ipkg_conf_deinit (&ipkg_conf); ++ /* mount rootfs read-only */ ++ if (mount("","/",0,MS_REMOUNT|MS_RDONLY,0)<0) ++ fprintf (stderr, "Mounting rootfs read-only failed\n"); + + return err; +} diff -Nur busybox-1.16.1.orig/archival/libipkg/libipkg.h busybox-1.16.1/archival/libipkg/libipkg.h --- busybox-1.16.1.orig/archival/libipkg/libipkg.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/libipkg.h 2010-06-11 18:01:46.960978837 +0200 ++++ busybox-1.16.1/archival/libipkg/libipkg.h 2010-06-29 17:31:24.283460019 +0200 @@ -0,0 +1,78 @@ +/* ipkglib.h - the itsy package management system + @@ -7257,7 +7266,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/libipkg.h busybox-1.16.1/archival +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/nv_pair.c busybox-1.16.1/archival/libipkg/nv_pair.c --- busybox-1.16.1.orig/archival/libipkg/nv_pair.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/nv_pair.c 2010-06-11 18:01:46.990978300 +0200 ++++ busybox-1.16.1/archival/libipkg/nv_pair.c 2010-06-29 17:31:24.316180264 +0200 @@ -0,0 +1,40 @@ +/* nv_pair.c - the itsy package management system + @@ -7301,7 +7310,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/nv_pair.c busybox-1.16.1/archival + diff -Nur busybox-1.16.1.orig/archival/libipkg/nv_pair.h busybox-1.16.1/archival/libipkg/nv_pair.h --- busybox-1.16.1.orig/archival/libipkg/nv_pair.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/nv_pair.h 2010-06-11 18:01:47.031017435 +0200 ++++ busybox-1.16.1/archival/libipkg/nv_pair.h 2010-06-29 17:31:24.358376170 +0200 @@ -0,0 +1,32 @@ +/* nv_pair.h - the itsy package management system + @@ -7337,7 +7346,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/nv_pair.h busybox-1.16.1/archival + diff -Nur busybox-1.16.1.orig/archival/libipkg/nv_pair_list.c busybox-1.16.1/archival/libipkg/nv_pair_list.c --- busybox-1.16.1.orig/archival/libipkg/nv_pair_list.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/nv_pair_list.c 2010-06-11 18:01:47.080970848 +0200 ++++ busybox-1.16.1/archival/libipkg/nv_pair_list.c 2010-06-29 17:31:24.395873641 +0200 @@ -0,0 +1,98 @@ +/* nv_pair_list.c - the itsy package management system + @@ -7439,7 +7448,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/nv_pair_list.c busybox-1.16.1/arc +} diff -Nur busybox-1.16.1.orig/archival/libipkg/nv_pair_list.h busybox-1.16.1/archival/libipkg/nv_pair_list.h --- busybox-1.16.1.orig/archival/libipkg/nv_pair_list.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/nv_pair_list.h 2010-06-11 18:01:47.120979074 +0200 ++++ busybox-1.16.1/archival/libipkg/nv_pair_list.h 2010-06-29 17:31:24.439618049 +0200 @@ -0,0 +1,60 @@ +/* nv_pair_list.h - the itsy package management system + @@ -7503,7 +7512,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/nv_pair_list.h busybox-1.16.1/arc + diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg.c busybox-1.16.1/archival/libipkg/pkg.c --- busybox-1.16.1.orig/archival/libipkg/pkg.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg.c 2010-06-11 18:01:47.150978716 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg.c 2010-06-29 17:31:24.502860549 +0200 @@ -0,0 +1,1757 @@ +/* pkg.c - the itsy package management system + @@ -9264,7 +9273,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg.c busybox-1.16.1/archival/lib +} diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_depends.c busybox-1.16.1/archival/libipkg/pkg_depends.c --- busybox-1.16.1.orig/archival/libipkg/pkg_depends.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_depends.c 2010-06-11 18:01:47.180978610 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_depends.c 2010-06-29 17:31:24.548368104 +0200 @@ -0,0 +1,1032 @@ +/* pkg_depends.c - the itsy package management system + @@ -10300,7 +10309,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_depends.c busybox-1.16.1/arch +} diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_depends.h busybox-1.16.1/archival/libipkg/pkg_depends.h --- busybox-1.16.1.orig/archival/libipkg/pkg_depends.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_depends.h 2010-06-11 18:01:47.220978691 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_depends.h 2010-06-29 17:31:24.588368223 +0200 @@ -0,0 +1,105 @@ +/* pkg_depends.h - the itsy package management system + @@ -10409,7 +10418,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_depends.h busybox-1.16.1/arch +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_dest.c busybox-1.16.1/archival/libipkg/pkg_dest.c --- busybox-1.16.1.orig/archival/libipkg/pkg_dest.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_dest.c 2010-06-11 18:01:47.250978446 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_dest.c 2010-06-29 17:31:24.625873289 +0200 @@ -0,0 +1,92 @@ +/* pkg_dest.c - the itsy package management system + @@ -10505,7 +10514,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_dest.c busybox-1.16.1/archiva +} diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_dest.h busybox-1.16.1/archival/libipkg/pkg_dest.h --- busybox-1.16.1.orig/archival/libipkg/pkg_dest.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_dest.h 2010-06-11 18:01:47.291101105 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_dest.h 2010-06-29 17:31:24.669618111 +0200 @@ -0,0 +1,38 @@ +/* pkg_dest.h - the itsy package management system + @@ -10547,7 +10556,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_dest.h busybox-1.16.1/archiva + diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_dest_list.c busybox-1.16.1/archival/libipkg/pkg_dest_list.c --- busybox-1.16.1.orig/archival/libipkg/pkg_dest_list.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_dest_list.c 2010-06-11 18:01:47.350985970 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_dest_list.c 2010-06-29 17:31:24.715868178 +0200 @@ -0,0 +1,85 @@ +/* pkg_dest_list.c - the itsy package management system + @@ -10636,7 +10645,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_dest_list.c busybox-1.16.1/ar +} diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_dest_list.h busybox-1.16.1/archival/libipkg/pkg_dest_list.h --- busybox-1.16.1.orig/archival/libipkg/pkg_dest_list.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_dest_list.h 2010-06-11 18:01:47.380979315 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_dest_list.h 2010-06-29 17:31:24.760275316 +0200 @@ -0,0 +1,50 @@ +/* pkg_dest_list.h - the itsy package management system + @@ -10690,7 +10699,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_dest_list.h busybox-1.16.1/ar + diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_extract.c busybox-1.16.1/archival/libipkg/pkg_extract.c --- busybox-1.16.1.orig/archival/libipkg/pkg_extract.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_extract.c 2010-06-11 18:01:47.430975182 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_extract.c 2010-06-29 17:31:24.818364193 +0200 @@ -0,0 +1,255 @@ +/* pkg_extract.c - the itsy package management system + @@ -10949,7 +10958,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_extract.c busybox-1.16.1/arch +} diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_extract.h busybox-1.16.1/archival/libipkg/pkg_extract.h --- busybox-1.16.1.orig/archival/libipkg/pkg_extract.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_extract.h 2010-06-11 18:01:47.470978638 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_extract.h 2010-06-29 17:31:24.858368110 +0200 @@ -0,0 +1,32 @@ +/* pkg_extract.c - the itsy package management system + @@ -10985,7 +10994,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_extract.h busybox-1.16.1/arch +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg.h busybox-1.16.1/archival/libipkg/pkg.h --- busybox-1.16.1.orig/archival/libipkg/pkg.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg.h 2010-06-11 18:01:47.511696154 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg.h 2010-06-29 17:31:24.897965989 +0200 @@ -0,0 +1,229 @@ +/* pkg.h - the itsy package management system + @@ -11218,7 +11227,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg.h busybox-1.16.1/archival/lib +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_hash.c busybox-1.16.1/archival/libipkg/pkg_hash.c --- busybox-1.16.1.orig/archival/libipkg/pkg_hash.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_hash.c 2010-06-11 18:01:47.540979363 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_hash.c 2010-06-29 17:31:24.956062867 +0200 @@ -0,0 +1,623 @@ +/* ipkg_hash.c - the itsy package management system + @@ -11845,7 +11854,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_hash.c busybox-1.16.1/archiva + diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_hash.h busybox-1.16.1/archival/libipkg/pkg_hash.h --- busybox-1.16.1.orig/archival/libipkg/pkg_hash.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_hash.h 2010-06-11 18:01:47.580975551 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_hash.h 2010-06-29 17:31:25.005861391 +0200 @@ -0,0 +1,61 @@ +/* pkg_hash.h - the itsy package management system + @@ -11910,7 +11919,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_hash.h busybox-1.16.1/archiva + diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_parse.c busybox-1.16.1/archival/libipkg/pkg_parse.c --- busybox-1.16.1.orig/archival/libipkg/pkg_parse.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_parse.c 2010-06-11 18:01:47.630975348 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_parse.c 2010-06-29 17:31:25.059133294 +0200 @@ -0,0 +1,368 @@ +/* pkg_parse.c - the itsy package management system + @@ -12282,7 +12291,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_parse.c busybox-1.16.1/archiv +} diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_parse.h busybox-1.16.1/archival/libipkg/pkg_parse.h --- busybox-1.16.1.orig/archival/libipkg/pkg_parse.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_parse.h 2010-06-11 18:01:47.670978484 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_parse.h 2010-06-29 17:31:25.098367969 +0200 @@ -0,0 +1,31 @@ +/* pkg_parse.h - the itsy package management system + @@ -12317,7 +12326,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_parse.h busybox-1.16.1/archiv +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_src.c busybox-1.16.1/archival/libipkg/pkg_src.c --- busybox-1.16.1.orig/archival/libipkg/pkg_src.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_src.c 2010-06-11 18:01:47.711042808 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_src.c 2010-06-29 17:31:25.135873346 +0200 @@ -0,0 +1,43 @@ +/* pkg_src.c - the itsy package management system + @@ -12364,7 +12373,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_src.c busybox-1.16.1/archival + diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_src.h busybox-1.16.1/archival/libipkg/pkg_src.h --- busybox-1.16.1.orig/archival/libipkg/pkg_src.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_src.h 2010-06-11 18:01:47.751659525 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_src.h 2010-06-29 17:31:25.195873136 +0200 @@ -0,0 +1,34 @@ +/* pkg_src.h - the itsy package management system + @@ -12402,7 +12411,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_src.h busybox-1.16.1/archival +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_src_list.c busybox-1.16.1/archival/libipkg/pkg_src_list.c --- busybox-1.16.1.orig/archival/libipkg/pkg_src_list.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_src_list.c 2010-06-11 18:01:47.780979194 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_src_list.c 2010-06-29 17:31:25.238287396 +0200 @@ -0,0 +1,75 @@ +/* pkg_src_list.c - the itsy package management system + @@ -12481,7 +12490,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_src_list.c busybox-1.16.1/arc +} diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_src_list.h busybox-1.16.1/archival/libipkg/pkg_src_list.h --- busybox-1.16.1.orig/archival/libipkg/pkg_src_list.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_src_list.h 2010-06-11 18:01:47.821074279 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_src_list.h 2010-06-29 17:31:25.278367968 +0200 @@ -0,0 +1,57 @@ +/* pkg_src_list.h - the itsy package management system + @@ -12542,7 +12551,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_src_list.h busybox-1.16.1/arc + diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_vec.c busybox-1.16.1/archival/libipkg/pkg_vec.c --- busybox-1.16.1.orig/archival/libipkg/pkg_vec.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_vec.c 2010-06-11 18:01:47.861221108 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_vec.c 2010-06-29 17:31:25.319617983 +0200 @@ -0,0 +1,231 @@ +/* pkg_vec.c - the itsy package management system + @@ -12777,7 +12786,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_vec.c busybox-1.16.1/archival + diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_vec.h busybox-1.16.1/archival/libipkg/pkg_vec.h --- busybox-1.16.1.orig/archival/libipkg/pkg_vec.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/pkg_vec.h 2010-06-11 18:01:47.900978730 +0200 ++++ busybox-1.16.1/archival/libipkg/pkg_vec.h 2010-06-29 17:31:25.358368186 +0200 @@ -0,0 +1,62 @@ +/* pkg_vec.h - the itsy package management system + @@ -12843,7 +12852,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/pkg_vec.h busybox-1.16.1/archival + diff -Nur busybox-1.16.1.orig/archival/libipkg/sprintf_alloc.h busybox-1.16.1/archival/libipkg/sprintf_alloc.h --- busybox-1.16.1.orig/archival/libipkg/sprintf_alloc.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/sprintf_alloc.h 2010-06-11 18:01:47.930988175 +0200 ++++ busybox-1.16.1/archival/libipkg/sprintf_alloc.h 2010-06-29 17:31:25.395865857 +0200 @@ -0,0 +1,25 @@ +/* sprintf_alloca.c -- like sprintf with memory allocation + @@ -12872,7 +12881,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/sprintf_alloc.h busybox-1.16.1/ar +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/str_list.c busybox-1.16.1/archival/libipkg/str_list.c --- busybox-1.16.1.orig/archival/libipkg/str_list.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/str_list.c 2010-06-11 18:01:47.980982004 +0200 ++++ busybox-1.16.1/archival/libipkg/str_list.c 2010-06-29 17:31:25.437577685 +0200 @@ -0,0 +1,76 @@ +/* str_list.c - the itsy package management system + @@ -12952,7 +12961,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/str_list.c busybox-1.16.1/archiva +} diff -Nur busybox-1.16.1.orig/archival/libipkg/str_list.h busybox-1.16.1/archival/libipkg/str_list.h --- busybox-1.16.1.orig/archival/libipkg/str_list.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/str_list.h 2010-06-11 18:01:48.010979101 +0200 ++++ busybox-1.16.1/archival/libipkg/str_list.h 2010-06-29 17:31:25.487410851 +0200 @@ -0,0 +1,51 @@ +/* str_list.h - the itsy package management system + @@ -13007,7 +13016,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/str_list.h busybox-1.16.1/archiva +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/str_util.c busybox-1.16.1/archival/libipkg/str_util.c --- busybox-1.16.1.orig/archival/libipkg/str_util.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/str_util.c 2010-06-11 18:01:48.061519570 +0200 ++++ busybox-1.16.1/archival/libipkg/str_util.c 2010-06-29 17:31:25.540714295 +0200 @@ -0,0 +1,69 @@ +/* str_utils.c - the itsy package management system + @@ -13080,7 +13089,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/str_util.c busybox-1.16.1/archiva + diff -Nur busybox-1.16.1.orig/archival/libipkg/str_util.h busybox-1.16.1/archival/libipkg/str_util.h --- busybox-1.16.1.orig/archival/libipkg/str_util.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/str_util.h 2010-06-11 18:01:48.100964951 +0200 ++++ busybox-1.16.1/archival/libipkg/str_util.h 2010-06-29 17:31:25.578749246 +0200 @@ -0,0 +1,27 @@ +/* str_utils.h - the itsy package management system + @@ -13111,7 +13120,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/str_util.h busybox-1.16.1/archiva +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/user.c busybox-1.16.1/archival/libipkg/user.c --- busybox-1.16.1.orig/archival/libipkg/user.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/user.c 2010-06-11 18:01:48.142223451 +0200 ++++ busybox-1.16.1/archival/libipkg/user.c 2010-06-29 17:31:25.628536327 +0200 @@ -0,0 +1,49 @@ +/* user.c - the itsy package management system + @@ -13164,7 +13173,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/user.c busybox-1.16.1/archival/li +} diff -Nur busybox-1.16.1.orig/archival/libipkg/user.h busybox-1.16.1/archival/libipkg/user.h --- busybox-1.16.1.orig/archival/libipkg/user.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/user.h 2010-06-11 18:01:48.170978663 +0200 ++++ busybox-1.16.1/archival/libipkg/user.h 2010-06-29 17:31:25.678337891 +0200 @@ -0,0 +1,23 @@ +/* user.c - the itsy package management system + @@ -13191,7 +13200,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/user.h busybox-1.16.1/archival/li + diff -Nur busybox-1.16.1.orig/archival/libipkg/void_list.c busybox-1.16.1/archival/libipkg/void_list.c --- busybox-1.16.1.orig/archival/libipkg/void_list.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/void_list.c 2010-06-11 18:01:48.211076954 +0200 ++++ busybox-1.16.1/archival/libipkg/void_list.c 2010-06-29 17:31:25.715873105 +0200 @@ -0,0 +1,194 @@ +/* void_list.c - the itsy package management system + @@ -13389,7 +13398,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/void_list.c busybox-1.16.1/archiv +} diff -Nur busybox-1.16.1.orig/archival/libipkg/void_list.h busybox-1.16.1/archival/libipkg/void_list.h --- busybox-1.16.1.orig/archival/libipkg/void_list.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/void_list.h 2010-06-11 18:01:48.250975412 +0200 ++++ busybox-1.16.1/archival/libipkg/void_list.h 2010-06-29 17:31:25.758368030 +0200 @@ -0,0 +1,59 @@ +/* void_list.h - the itsy package management system + @@ -13452,7 +13461,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/void_list.h busybox-1.16.1/archiv +#endif diff -Nur busybox-1.16.1.orig/archival/libipkg/xsystem.c busybox-1.16.1/archival/libipkg/xsystem.c --- busybox-1.16.1.orig/archival/libipkg/xsystem.c 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/xsystem.c 2010-06-11 18:01:48.301113832 +0200 ++++ busybox-1.16.1/archival/libipkg/xsystem.c 2010-06-29 17:31:25.799781135 +0200 @@ -0,0 +1,64 @@ +/* xsystem.c - system(3) with error messages + @@ -13520,7 +13529,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/xsystem.c busybox-1.16.1/archival + diff -Nur busybox-1.16.1.orig/archival/libipkg/xsystem.h busybox-1.16.1/archival/libipkg/xsystem.h --- busybox-1.16.1.orig/archival/libipkg/xsystem.h 1970-01-01 01:00:00.000000000 +0100 -+++ busybox-1.16.1/archival/libipkg/xsystem.h 2010-06-11 18:01:48.342223316 +0200 ++++ busybox-1.16.1/archival/libipkg/xsystem.h 2010-06-29 17:31:25.855865061 +0200 @@ -0,0 +1,34 @@ +/* xsystem.h - system(3) with error messages + @@ -13558,7 +13567,7 @@ diff -Nur busybox-1.16.1.orig/archival/libipkg/xsystem.h busybox-1.16.1/archival + diff -Nur busybox-1.16.1.orig/archival/libunarchive/Kbuild busybox-1.16.1/archival/libunarchive/Kbuild --- busybox-1.16.1.orig/archival/libunarchive/Kbuild 2010-03-20 03:58:07.000000000 +0100 -+++ busybox-1.16.1/archival/libunarchive/Kbuild 2010-06-11 18:01:48.380978811 +0200 ++++ busybox-1.16.1/archival/libunarchive/Kbuild 2010-06-29 17:31:25.898368046 +0200 @@ -40,6 +40,7 @@ lib-$(CONFIG_DPKG) += $(DPKG_FILES) lib-$(CONFIG_DPKG_DEB) += $(DPKG_FILES) @@ -13569,7 +13578,7 @@ diff -Nur busybox-1.16.1.orig/archival/libunarchive/Kbuild busybox-1.16.1/archiv lib-$(CONFIG_TAR) += get_header_tar.o diff -Nur busybox-1.16.1.orig/include/applets.h busybox-1.16.1/include/applets.h --- busybox-1.16.1.orig/include/applets.h 2010-03-28 19:43:35.000000000 +0200 -+++ busybox-1.16.1/include/applets.h 2010-06-11 18:01:48.410970945 +0200 ++++ busybox-1.16.1/include/applets.h 2010-06-29 17:31:25.938368064 +0200 @@ -214,6 +214,7 @@ IF_IPCALC(APPLET(ipcalc, _BB_DIR_BIN, _BB_SUID_DROP)) IF_IPCRM(APPLET(ipcrm, _BB_DIR_USR_BIN, _BB_SUID_REQUIRE)) @@ -13580,7 +13589,7 @@ diff -Nur busybox-1.16.1.orig/include/applets.h busybox-1.16.1/include/applets.h IF_IPRULE(APPLET(iprule, _BB_DIR_BIN, _BB_SUID_DROP)) diff -Nur busybox-1.16.1.orig/include/unarchive.h busybox-1.16.1/include/unarchive.h --- busybox-1.16.1.orig/include/unarchive.h 2010-03-28 19:43:35.000000000 +0200 -+++ busybox-1.16.1/include/unarchive.h 2010-06-11 18:02:23.213464230 +0200 ++++ busybox-1.16.1/include/unarchive.h 2010-06-29 17:31:25.978368044 +0200 @@ -53,7 +53,7 @@ off_t offset; @@ -13601,7 +13610,7 @@ diff -Nur busybox-1.16.1.orig/include/unarchive.h busybox-1.16.1/include/unarchi /* How to process any sub archive, e.g. get_header_tar_gz */ diff -Nur busybox-1.16.1.orig/include/usage.h busybox-1.16.1/include/usage.h --- busybox-1.16.1.orig/include/usage.h 2010-03-28 19:44:04.000000000 +0200 -+++ busybox-1.16.1/include/usage.h 2010-06-11 18:01:48.460978722 +0200 ++++ busybox-1.16.1/include/usage.h 2010-06-29 17:31:26.018367985 +0200 @@ -1592,6 +1592,82 @@ "$ ls -la /tmp/busybox*\n" \ "-rw-rw-r-- 1 andersen andersen 554058 Apr 14 17:49 /tmp/busybox.tar.gz\n" @@ -13687,7 +13696,7 @@ diff -Nur busybox-1.16.1.orig/include/usage.h busybox-1.16.1/include/usage.h #define halt_full_usage "\n\n" \ diff -Nur busybox-1.16.1.orig/Makefile busybox-1.16.1/Makefile --- busybox-1.16.1.orig/Makefile 2010-03-28 19:44:09.000000000 +0200 -+++ busybox-1.16.1/Makefile 2010-06-11 18:01:48.511660693 +0200 ++++ busybox-1.16.1/Makefile 2010-06-29 17:31:26.058368031 +0200 @@ -454,6 +454,7 @@ libs-y := \ diff --git a/rules.mk b/rules.mk index 0d8aeb99b..402df38bc 100644 --- a/rules.mk +++ b/rules.mk @@ -27,6 +27,7 @@ endif # Strip off the annoying quoting ADK_TARGET:= $(strip $(subst ",, $(ADK_TARGET))) ADK_LIBC:= $(strip $(subst ",, $(ADK_LIBC))) +ADK_HOST:= $(strip $(subst ",, $(ADK_HOST))) ADK_TARGET_SUFFIX:= $(strip $(subst ",, $(ADK_TARGET_SUFFIX))) ADK_COMPRESSION_TOOL:= $(strip $(subst ",, $(ADK_COMPRESSION_TOOL))) diff --git a/scripts/ipkg-make-index.sh b/scripts/ipkg-make-index.sh index ec07dff59..927e67b93 100644 --- a/scripts/ipkg-make-index.sh +++ b/scripts/ipkg-make-index.sh @@ -9,7 +9,7 @@ fi find "$pkg_dir" -name '*.ipk' | sort | while IFS= read pkg; do dpkg=${pkg##*/} - echo "Generating index for package $dpkg" >&2 + #echo "Generating index for package $dpkg" >&2 file_size=$(ls -l $pkg | awk '{print $5}') md5sum=$(md5sum $pkg) tar -xzOf "$pkg" ./control.tar.gz | \ -- cgit v1.2.3 From d8c7316c1694601eba73f02e4ce8507873bd1bb8 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Fri, 2 Jul 2010 15:53:24 +0200 Subject: check exit code --- package/base-files/src/sbin/adkupdate | 2 ++ 1 file changed, 2 insertions(+) (limited to 'package/base-files/src') diff --git a/package/base-files/src/sbin/adkupdate b/package/base-files/src/sbin/adkupdate index dd8d3ecec..6078dbc46 100755 --- a/package/base-files/src/sbin/adkupdate +++ b/package/base-files/src/sbin/adkupdate @@ -30,8 +30,10 @@ prepare() { cd / if [ -x /sbin/cfgfs ];then umount -f /etc + check_exit fi mount -o remount,rw / + check_exit if [ "$system" == "RB532" ];then mount -t yaffs2 /dev/mtdblock0 /boot elif [ "$system" == "AR7130" ];then -- cgit v1.2.3 From 4be9df1c7fe577a7e34dee57e486c0b9e886c1ba Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Fri, 2 Jul 2010 16:10:38 +0200 Subject: kill crond before trying to umount /etc --- package/base-files/src/sbin/adkupdate | 1 + 1 file changed, 1 insertion(+) (limited to 'package/base-files/src') diff --git a/package/base-files/src/sbin/adkupdate b/package/base-files/src/sbin/adkupdate index 6078dbc46..3de759c74 100755 --- a/package/base-files/src/sbin/adkupdate +++ b/package/base-files/src/sbin/adkupdate @@ -29,6 +29,7 @@ check_exit() { prepare() { cd / if [ -x /sbin/cfgfs ];then + pkill crond umount -f /etc check_exit fi -- cgit v1.2.3 From 1879491b2b6e799b20ac06d1b510726eb200944f Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Mon, 5 Jul 2010 15:32:35 +0200 Subject: add menu based configuration of a password --- Config.in | 38 +-- mk/build.mk | 9 +- mk/vars.mk | 4 +- package/base-files/Makefile | 8 +- package/base-files/src/etc/ipkg.conf | 2 +- package/base-files/src/etc/shadow | 3 +- rules.mk | 1 + toolchain/Makefile | 2 +- tools/Makefile | 33 +++ tools/mkcrypt/Makefile | 22 ++ tools/mkcrypt/mkcrypt.c | 441 +++++++++++++++++++++++++++++++++++ tools/rules.mk | 7 + 12 files changed, 542 insertions(+), 28 deletions(-) create mode 100644 tools/Makefile create mode 100644 tools/mkcrypt/Makefile create mode 100644 tools/mkcrypt/mkcrypt.c create mode 100644 tools/rules.mk (limited to 'package/base-files/src') diff --git a/Config.in b/Config.in index 8304f1563..777260670 100644 --- a/Config.in +++ b/Config.in @@ -18,30 +18,17 @@ config ADK_HAVE_DOT_CONFIG menu "ADK settings" config ADK_VENDOR - string "Vendor name (f.e. OpenADK)" - default "OpenADK" + string "vendor name" + default "openadk" help - Vendor string is used for uvd and other stuff. + Vendor string is used for toolchain. config ADK_HOST - string "Webserver for packages and distfiles" + string "webserver for packages and distfiles" default "www.openadk.org" help Configure host for IPKG package management. -config ADK_SSH_PUBKEY - string "SSH public key (root user only)" - default "" - help - Paste your generated SSH public key here and it will be embedded into - the built image, so you can use it to login instantly. - -#config ADK_PASSWORD -# string "root password for the embedded system" -# default "linux123" -# help -# Predefine the root password enabled in the the built image. - config ADK_DEVELSYSTEM bool "Compile a ADK development system" default n @@ -161,4 +148,21 @@ endchoice endmenu source "target/Config.in" + +menu "Runtime configuration" +config ADK_SSH_PUBKEY + string "SSH public key (root user only)" + default "" + help + Paste your generated SSH public key here and it will be embedded into + the built image, so you can use it to login instantly. + +config ADK_PASSWORD + string "root password for the embedded system" + default "linux123" + help + Predefine the root password enabled in the built image. + +endmenu + source "package/Config.in" diff --git a/mk/build.mk b/mk/build.mk index 2f4b367b9..8791ebf1d 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -90,12 +90,12 @@ ${TOPDIR}/package/Depends.mk: ${TOPDIR}/.config $(wildcard ${TOPDIR}/package/*/M world: $(DISTDIR) $(BUILD_DIR) $(TARGET_DIR) $(PACKAGE_DIR) ${TOPDIR}/.ADK_HAVE_DOT_CONFIG ${BASH} ${TOPDIR}/scripts/scan-pkgs.sh ifeq ($(ADK_NATIVE),y) - $(MAKE) -f mk/build.mk toolchain/kernel-headers-prepare target/config-prepare target/compile package/compile root_clean package/install package_index target/install + $(MAKE) -f mk/build.mk toolchain/kernel-headers-prepare tools/install target/config-prepare target/compile package/compile root_clean package/install package_index target/install else ifeq ($(ADK_TOOLCHAIN_ONLY),y) - $(MAKE) -f mk/build.mk toolchain/install package/compile + $(MAKE) -f mk/build.mk toolchain/install tools/install package/compile else - $(MAKE) -f mk/build.mk toolchain/install target/config-prepare target/compile package/compile root_clean package/install target/install package_index + $(MAKE) -f mk/build.mk toolchain/install tools/install target/config-prepare target/compile package/compile root_clean package/install target/install package_index endif endif @@ -136,6 +136,9 @@ target/%: ${TOPDIR}/.ADK_HAVE_DOT_CONFIG toolchain/%: ${STAGING_DIR} $(MAKE) -C toolchain $(patsubst toolchain/%,%,$@) +tools/%: + $(MAKE) -C tools $(patsubst tools/%,%,$@) + image: $(MAKE) -C target image diff --git a/mk/vars.mk b/mk/vars.mk index 42c534071..f26e07b6a 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -37,8 +37,8 @@ PACKAGE_DIR:= $(BIN_DIR)/packages TARGET_DIR:= $(BASE_DIR)/root_${ADK_TARGET}_${ADK_LIBC} TARGET_DIR_PFX:= $(BASE_DIR)/root_* TARGET_PATH= ${SCRIPT_DIR}:${STAGING_TOOLS}/bin:${STAGING_DIR}/scripts:${_PATH} -REAL_GNU_TARGET_NAME= $(CPU_ARCH)-openadk-linux-$(ADK_TARGET_SUFFIX) -GNU_TARGET_NAME= $(CPU_ARCH)-openadk-linux +REAL_GNU_TARGET_NAME= $(CPU_ARCH)-$(ADK_VENDOR)-linux-$(ADK_TARGET_SUFFIX) +GNU_TARGET_NAME= $(CPU_ARCH)-$(ADK_VENDOR)-linux TOOLCHAIN_SYSROOT:= $(TOOLCHAIN_BUILD_DIR)/libc_dev ifeq ($(ADK_NATIVE),y) TARGET_CROSS:= diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 033844c1e..560158226 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -6,9 +6,9 @@ include $(TOPDIR)/mk/rootfs.mk PKG_NAME:= base-files PKG_VERSION:= 1.0 -PKG_RELEASE:= 15 -PKG_DESCR:= basic filesystem structure and scripts +PKG_RELEASE:= 17 PKG_SECTION:= base +PKG_DESCR:= basic filesystem structure and scripts WRKDIST= ${WRKDIR}/base-files NO_DISTFILES:= 1 @@ -34,6 +34,7 @@ endif $(SED) 's,@TARGET@,$(ADK_TARGET),g' $(IDIR_BASE_FILES)/etc/ipkg.conf $(SED) 's,@HOST@,$(ADK_HOST),g' $(IDIR_BASE_FILES)/etc/ipkg.conf $(SED) 's,@LIBC@,$(ADK_LIBC),g' $(IDIR_BASE_FILES)/etc/ipkg.conf + $(SED) 's,@VENDOR@,$(ADK_VENDOR),g' $(IDIR_BASE_FILES)/etc/ipkg.conf echo /bin/sh >${IDIR_BASE_FILES}/etc/shells echo /bin/ash >>${IDIR_BASE_FILES}/etc/shells ifneq (${ADK_PACKAGE_BASH},) @@ -64,6 +65,9 @@ endif ln -sf ../proc/mounts $(IDIR_BASE_FILES)/etc/mtab rm -rf $(IDIR_BASE_FILES)/var ln -sf tmp $(IDIR_BASE_FILES)/var + test -z $(ADK_PASSWORD) || \ + $(SED) 's,\*NP\*,'"$$(${STAGING_TOOLS}/bin/mkcrypt \ + ${ADK_PASSWORD}),g" $(IDIR_BASE_FILES)/etc/shadow git log -1|head -1|sed -e 's#commit ##' \ > $(IDIR_BASE_FILES)/etc/adkversion ifneq (${ADK_PACKAGE_CONFIG_IN_ETC},) diff --git a/package/base-files/src/etc/ipkg.conf b/package/base-files/src/etc/ipkg.conf index 452079766..edb050116 100644 --- a/package/base-files/src/etc/ipkg.conf +++ b/package/base-files/src/etc/ipkg.conf @@ -1,3 +1,3 @@ -src openadk http://@HOST@/@TARGET@_@LIBC@/packages +src @VENDOR@ http://@HOST@/@TARGET@_@LIBC@/packages dest root / dest ram /tmp diff --git a/package/base-files/src/etc/shadow b/package/base-files/src/etc/shadow index 3683d71ea..374e358bb 100644 --- a/package/base-files/src/etc/shadow +++ b/package/base-files/src/etc/shadow @@ -1,3 +1,2 @@ -root:$1$8sJkb6fV$46vEIu5ntmbUuljmr55zY/:14191:0::::: -admin:$1$8sJkb6fV$46vEIu5ntmbUuljmr55zY/:14191:0::::: +root:*NP*:14191:0::::: nobody:*:9797:0::::: diff --git a/rules.mk b/rules.mk index 402df38bc..92e455cbf 100644 --- a/rules.mk +++ b/rules.mk @@ -28,6 +28,7 @@ endif ADK_TARGET:= $(strip $(subst ",, $(ADK_TARGET))) ADK_LIBC:= $(strip $(subst ",, $(ADK_LIBC))) ADK_HOST:= $(strip $(subst ",, $(ADK_HOST))) +ADK_VENDOR:= $(strip $(subst ",, $(ADK_VENDOR))) ADK_TARGET_SUFFIX:= $(strip $(subst ",, $(ADK_TARGET_SUFFIX))) ADK_COMPRESSION_TOOL:= $(strip $(subst ",, $(ADK_COMPRESSION_TOOL))) diff --git a/toolchain/Makefile b/toolchain/Makefile index 0722894fd..2c4b24db2 100644 --- a/toolchain/Makefile +++ b/toolchain/Makefile @@ -3,7 +3,7 @@ # # Steps to build toolchains # 1) build and install binutils -# 2) build and install mpfr and gmp +# 2) build and install mpfr, mpc and gmp # 3) build and install gcc c compiler # 4) install kernel-headers # 5) install libc headers diff --git a/tools/Makefile b/tools/Makefile new file mode 100644 index 000000000..efb38843f --- /dev/null +++ b/tools/Makefile @@ -0,0 +1,33 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk + +TARGETS:=mkcrypt +TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS)) +TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS)) + +all: install +prepare: +compile: +install: $(TARGETS_INSTALL) +clean: $(TARGETS_CLEAN) + +$(TOOLS_BUILD_DIR): + mkdir -p $(TOOLS_BUILD_DIR) + +%-download: + $(TRACE) "tools/$(patsubst %-download,%,$@)-download: " + $(MAKE) -C $(patsubst %-download,%,$@) fetch + +%-compile: $(TOOLS_BUILD_DIR) + $(TRACE) "tools/$(patsubst %-compile,%,$@)-compile: " + $(MAKE) -C $(patsubst %-compile,%,$@) compile + +%-install: + $(TRACE) "tools/$(patsubst %-install,%,$@)-install: " + $(MAKE) -C $(patsubst %-install,%,$@) install + +%-clean: + $(TRACE) "tools/$(patsubst %-clean,%,$@)-clean: " + $(MAKE) -C $(patsubst %-clean,%,$@) clean diff --git a/tools/mkcrypt/Makefile b/tools/mkcrypt/Makefile new file mode 100644 index 000000000..e6c8d83e1 --- /dev/null +++ b/tools/mkcrypt/Makefile @@ -0,0 +1,22 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk + +PKG_NAME:= mkcrypt +PKG_VERSION:= 0.1 +PKG_RELEASE:= 1 +NO_DISTFILES:= 1 + +include ../rules.mk + +$(WRKBUILD)/.compiled: ${WRKDIST}/.prepared + $(HOSTCC) -o $(WRKBUILD)/mkcrypt mkcrypt.c + touch $@ + +$(WRKBUILD)/.installed: $(WRKBUILD)/.compiled + $(INSTALL_BIN) $(WRKBUILD)/mkcrypt \ + ${STAGING_TOOLS}/bin + touch $@ + +include $(TOPDIR)/mk/tools.mk diff --git a/tools/mkcrypt/mkcrypt.c b/tools/mkcrypt/mkcrypt.c new file mode 100644 index 000000000..a856759df --- /dev/null +++ b/tools/mkcrypt/mkcrypt.c @@ -0,0 +1,441 @@ +/*- + * Copyright (c) 2007 + * Thorsten Glaser + * + * Provided that these terms and disclaimer and all copyright notices + * are retained or reproduced in an accompanying document, permission + * is granted to deal in this work without restriction, including un- + * limited rights to use, publicly perform, distribute, sell, modify, + * merge, give away, or sublicence. + * + * Advertising materials mentioning features or use of this work must + * display the following acknowledgement: + * This product includes material provided by Thorsten Glaser. + * This product includes software developed by Niels Provos. + * + * This work is provided "AS IS" and WITHOUT WARRANTY of any kind, to + * the utmost extent permitted by applicable law, neither express nor + * implied; without malicious intent or gross negligence. In no event + * may a licensor, author or contributor be held liable for indirect, + * direct, other damage, loss, or other issues arising in any way out + * of dealing in the work, even if advised of the possibility of such + * damage or existence of a defect, except proven that it results out + * of said person's immediate fault when using the work as intended. + */ + +#include +#include +#include +#include +#include + +#define MD5_BLOCK_LENGTH 64 +#define MD5_DIGEST_LENGTH 16 +#define MD5_DIGEST_STRING_LENGTH (MD5_DIGEST_LENGTH * 2 + 1) + +typedef struct MD5Context { + u_int32_t state[4]; + u_int64_t count; + u_int8_t buffer[MD5_BLOCK_LENGTH]; +} MD5_CTX; + +/* low-level MD5 functions from md5c.c */ +void MD5Init(MD5_CTX *); +void MD5Update(MD5_CTX *, const u_int8_t *, size_t); +void MD5Pad(MD5_CTX *); +void MD5Final(u_int8_t [MD5_DIGEST_LENGTH], MD5_CTX *); +void MD5Transform(u_int32_t [4], const u_int8_t [MD5_BLOCK_LENGTH]); + +/* high-level functions from mdXhl.c */ +char *MD5End(MD5_CTX *, char *); +char *MD5File(const char *, char *); +char *MD5FileChunk(const char *, char *, off_t, off_t); +char *MD5Data(const u_int8_t *, size_t, char *); + +void to64(char *, u_int32_t, int); +char *md5crypt(const char *pw, const char *salt); +int pwd_gensalt(char *, int); + +static unsigned char itoa64[] = /* 0 ... 63 => ascii - 64 */ + "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + +void +to64(char *s, u_int32_t v, int n) +{ + while (--n >= 0) { + *s++ = itoa64[v&0x3f]; + v >>= 6; + } +} + +#define PUT_64BIT_LE(cp, value) do { \ + (cp)[7] = (value) >> 56; \ + (cp)[6] = (value) >> 48; \ + (cp)[5] = (value) >> 40; \ + (cp)[4] = (value) >> 32; \ + (cp)[3] = (value) >> 24; \ + (cp)[2] = (value) >> 16; \ + (cp)[1] = (value) >> 8; \ + (cp)[0] = (value); } while (0) + +#define PUT_32BIT_LE(cp, value) do { \ + (cp)[3] = (value) >> 24; \ + (cp)[2] = (value) >> 16; \ + (cp)[1] = (value) >> 8; \ + (cp)[0] = (value); } while (0) + +static u_int8_t PADDING[MD5_BLOCK_LENGTH] = { + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +/* + * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious + * initialization constants. + */ +void +MD5Init(MD5_CTX *ctx) +{ + ctx->count = 0; + ctx->state[0] = 0x67452301; + ctx->state[1] = 0xefcdab89; + ctx->state[2] = 0x98badcfe; + ctx->state[3] = 0x10325476; +} + +/* + * Update context to reflect the concatenation of another buffer full + * of bytes. + */ +void +MD5Update(MD5_CTX *ctx, const unsigned char *input, size_t len) +{ + size_t have, need; + + /* Check how many bytes we already have and how many more we need. */ + have = (size_t)((ctx->count >> 3) & (MD5_BLOCK_LENGTH - 1)); + need = MD5_BLOCK_LENGTH - have; + + /* Update bitcount */ + ctx->count += (u_int64_t)len << 3; + + if (len >= need) { + if (have != 0) { + memcpy(ctx->buffer + have, input, need); + MD5Transform(ctx->state, ctx->buffer); + input += need; + len -= need; + have = 0; + } + + /* Process data in MD5_BLOCK_LENGTH-byte chunks. */ + while (len >= MD5_BLOCK_LENGTH) { + MD5Transform(ctx->state, input); + input += MD5_BLOCK_LENGTH; + len -= MD5_BLOCK_LENGTH; + } + } + + /* Handle any remaining bytes of data. */ + if (len != 0) + memcpy(ctx->buffer + have, input, len); +} + +/* + * Pad pad to 64-byte boundary with the bit pattern + * 1 0* (64-bit count of bits processed, MSB-first) + */ +void +MD5Pad(MD5_CTX *ctx) +{ + u_int8_t count[8]; + size_t padlen; + + /* Convert count to 8 bytes in little endian order. */ + PUT_64BIT_LE(count, ctx->count); + + /* Pad out to 56 mod 64. */ + padlen = MD5_BLOCK_LENGTH - + ((ctx->count >> 3) & (MD5_BLOCK_LENGTH - 1)); + if (padlen < 1 + 8) + padlen += MD5_BLOCK_LENGTH; + MD5Update(ctx, PADDING, padlen - 8); /* padlen - 8 <= 64 */ + MD5Update(ctx, count, 8); +} + +/* + * Final wrapup--call MD5Pad, fill in digest and zero out ctx. + */ +void +MD5Final(unsigned char digest[MD5_DIGEST_LENGTH], MD5_CTX *ctx) +{ + int i; + + MD5Pad(ctx); + if (digest != NULL) { + for (i = 0; i < 4; i++) + PUT_32BIT_LE(digest + i * 4, ctx->state[i]); + memset(ctx, 0, sizeof(*ctx)); + } +} + + +/* The four core functions - F1 is optimized somewhat */ + +/* #define F1(x, y, z) (x & y | ~x & z) */ +#define F1(x, y, z) (z ^ (x & (y ^ z))) +#define F2(x, y, z) F1(z, x, y) +#define F3(x, y, z) (x ^ y ^ z) +#define F4(x, y, z) (y ^ (x | ~z)) + +/* This is the central step in the MD5 algorithm. */ +#define MD5STEP(f, w, x, y, z, data, s) \ + ( w += f(x, y, z) + data, w = w<>(32-s), w += x ) + +/* + * The core of the MD5 algorithm, this alters an existing MD5 hash to + * reflect the addition of 16 longwords of new data. MD5Update blocks + * the data and converts bytes into longwords for this routine. + */ +void +MD5Transform(u_int32_t state[4], const u_int8_t block[MD5_BLOCK_LENGTH]) +{ + u_int32_t a, b, c, d, in[MD5_BLOCK_LENGTH / 4]; + +#if BYTE_ORDER == LITTLE_ENDIAN + memcpy(in, block, sizeof(in)); +#else + for (a = 0; a < MD5_BLOCK_LENGTH / 4; a++) { + in[a] = (u_int32_t)( + (u_int32_t)(block[a * 4 + 0]) | + (u_int32_t)(block[a * 4 + 1]) << 8 | + (u_int32_t)(block[a * 4 + 2]) << 16 | + (u_int32_t)(block[a * 4 + 3]) << 24); + } +#endif + + a = state[0]; + b = state[1]; + c = state[2]; + d = state[3]; + + MD5STEP(F1, a, b, c, d, in[ 0] + 0xd76aa478, 7); + MD5STEP(F1, d, a, b, c, in[ 1] + 0xe8c7b756, 12); + MD5STEP(F1, c, d, a, b, in[ 2] + 0x242070db, 17); + MD5STEP(F1, b, c, d, a, in[ 3] + 0xc1bdceee, 22); + MD5STEP(F1, a, b, c, d, in[ 4] + 0xf57c0faf, 7); + MD5STEP(F1, d, a, b, c, in[ 5] + 0x4787c62a, 12); + MD5STEP(F1, c, d, a, b, in[ 6] + 0xa8304613, 17); + MD5STEP(F1, b, c, d, a, in[ 7] + 0xfd469501, 22); + MD5STEP(F1, a, b, c, d, in[ 8] + 0x698098d8, 7); + MD5STEP(F1, d, a, b, c, in[ 9] + 0x8b44f7af, 12); + MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); + MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); + MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); + MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); + MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); + MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); + + MD5STEP(F2, a, b, c, d, in[ 1] + 0xf61e2562, 5); + MD5STEP(F2, d, a, b, c, in[ 6] + 0xc040b340, 9); + MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); + MD5STEP(F2, b, c, d, a, in[ 0] + 0xe9b6c7aa, 20); + MD5STEP(F2, a, b, c, d, in[ 5] + 0xd62f105d, 5); + MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); + MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); + MD5STEP(F2, b, c, d, a, in[ 4] + 0xe7d3fbc8, 20); + MD5STEP(F2, a, b, c, d, in[ 9] + 0x21e1cde6, 5); + MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); + MD5STEP(F2, c, d, a, b, in[ 3] + 0xf4d50d87, 14); + MD5STEP(F2, b, c, d, a, in[ 8] + 0x455a14ed, 20); + MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); + MD5STEP(F2, d, a, b, c, in[ 2] + 0xfcefa3f8, 9); + MD5STEP(F2, c, d, a, b, in[ 7] + 0x676f02d9, 14); + MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); + + MD5STEP(F3, a, b, c, d, in[ 5] + 0xfffa3942, 4); + MD5STEP(F3, d, a, b, c, in[ 8] + 0x8771f681, 11); + MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); + MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); + MD5STEP(F3, a, b, c, d, in[ 1] + 0xa4beea44, 4); + MD5STEP(F3, d, a, b, c, in[ 4] + 0x4bdecfa9, 11); + MD5STEP(F3, c, d, a, b, in[ 7] + 0xf6bb4b60, 16); + MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); + MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); + MD5STEP(F3, d, a, b, c, in[ 0] + 0xeaa127fa, 11); + MD5STEP(F3, c, d, a, b, in[ 3] + 0xd4ef3085, 16); + MD5STEP(F3, b, c, d, a, in[ 6] + 0x04881d05, 23); + MD5STEP(F3, a, b, c, d, in[ 9] + 0xd9d4d039, 4); + MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); + MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); + MD5STEP(F3, b, c, d, a, in[2 ] + 0xc4ac5665, 23); + + MD5STEP(F4, a, b, c, d, in[ 0] + 0xf4292244, 6); + MD5STEP(F4, d, a, b, c, in[7 ] + 0x432aff97, 10); + MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); + MD5STEP(F4, b, c, d, a, in[5 ] + 0xfc93a039, 21); + MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); + MD5STEP(F4, d, a, b, c, in[3 ] + 0x8f0ccc92, 10); + MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); + MD5STEP(F4, b, c, d, a, in[1 ] + 0x85845dd1, 21); + MD5STEP(F4, a, b, c, d, in[8 ] + 0x6fa87e4f, 6); + MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); + MD5STEP(F4, c, d, a, b, in[6 ] + 0xa3014314, 15); + MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); + MD5STEP(F4, a, b, c, d, in[4 ] + 0xf7537e82, 6); + MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); + MD5STEP(F4, c, d, a, b, in[2 ] + 0x2ad7d2bb, 15); + MD5STEP(F4, b, c, d, a, in[9 ] + 0xeb86d391, 21); + + state[0] += a; + state[1] += b; + state[2] += c; + state[3] += d; +} + +/* + * UNIX password + * + * Use MD5 for what it is best at... + */ + +char * +md5crypt(const char *pw, const char *salt) +{ + /* + * This string is magic for this algorithm. Having + * it this way, we can get get better later on + */ + static const unsigned char *magic = (const unsigned char *)"$1$"; + + static char passwd[120], *p; + static const unsigned char *sp,*ep; + unsigned char final[16]; + int sl,pl,i; + MD5_CTX ctx,ctx1; + u_int32_t l; + + /* Refine the Salt first */ + sp = (const unsigned char *)salt; + + /* If it starts with the magic string, then skip that */ + if(!strncmp((const char *)sp,(const char *)magic,strlen((const char *)magic))) + sp += strlen((const char *)magic); + + /* It stops at the first '$', max 8 chars */ + for(ep=sp;*ep && *ep != '$' && ep < (sp+8);ep++) + continue; + + /* get the length of the true salt */ + sl = ep - sp; + + MD5Init(&ctx); + + /* The password first, since that is what is most unknown */ + MD5Update(&ctx,(const unsigned char *)pw,strlen(pw)); + + /* Then our magic string */ + MD5Update(&ctx,magic,strlen((const char *)magic)); + + /* Then the raw salt */ + MD5Update(&ctx,sp,sl); + + /* Then just as many characters of the MD5(pw,salt,pw) */ + MD5Init(&ctx1); + MD5Update(&ctx1,(const unsigned char *)pw,strlen(pw)); + MD5Update(&ctx1,sp,sl); + MD5Update(&ctx1,(const unsigned char *)pw,strlen(pw)); + MD5Final(final,&ctx1); + for(pl = strlen(pw); pl > 0; pl -= 16) + MD5Update(&ctx,final,pl>16 ? 16 : pl); + + /* Don't leave anything around in vm they could use. */ + memset(final,0,sizeof final); + + /* Then something really weird... */ + for (i = strlen(pw); i ; i >>= 1) + if(i&1) + MD5Update(&ctx, final, 1); + else + MD5Update(&ctx, (const unsigned char *)pw, 1); + + /* Now make the output string */ + snprintf(passwd, sizeof(passwd), "%s%.*s$", magic, + sl, (const char *)sp); + + MD5Final(final,&ctx); + + /* + * and now, just to make sure things don't run too fast + * On a 60 Mhz Pentium this takes 34 msec, so you would + * need 30 seconds to build a 1000 entry dictionary... + */ + for(i=0;i<1000;i++) { + MD5Init(&ctx1); + if(i & 1) + MD5Update(&ctx1,(const unsigned char *)pw,strlen(pw)); + else + MD5Update(&ctx1,final,16); + + if(i % 3) + MD5Update(&ctx1,sp,sl); + + if(i % 7) + MD5Update(&ctx1,(const unsigned char *)pw,strlen(pw)); + + if(i & 1) + MD5Update(&ctx1,final,16); + else + MD5Update(&ctx1,(const unsigned char *)pw,strlen(pw)); + MD5Final(final,&ctx1); + } + + p = passwd + strlen(passwd); + + l = (final[ 0]<<16) | (final[ 6]<<8) | final[12]; to64(p,l,4); p += 4; + l = (final[ 1]<<16) | (final[ 7]<<8) | final[13]; to64(p,l,4); p += 4; + l = (final[ 2]<<16) | (final[ 8]<<8) | final[14]; to64(p,l,4); p += 4; + l = (final[ 3]<<16) | (final[ 9]<<8) | final[15]; to64(p,l,4); p += 4; + l = (final[ 4]<<16) | (final[10]<<8) | final[ 5]; to64(p,l,4); p += 4; + l = final[11] ; to64(p,l,2); p += 2; + *p = '\0'; + + /* Don't leave anything around in vm they could use. */ + memset(final, 0, sizeof final); + + return passwd; +} + +int pwd_gensalt(char *salt, int saltlen) { + + *salt = '\0'; + + if (saltlen < 13) { /* $1$8salt$\0 */ + return 0; + } + + strcpy(salt, "$1$"); + to64(&salt[3], random(), 4); + to64(&salt[7], random(), 4); + strcpy(&salt[11], "$"); + return 1; +} + +int main(int argc, char *argv[]) { + char salt[16]; + char *pw; + + if (!argv[1]) { + fprintf(stderr, "Syntax Error!\n"); + return (1); + } + if (!pwd_gensalt(salt, sizeof (salt))) + return (255); + if ((pw = md5crypt(argv[1], salt)) == NULL) { + fprintf(stderr, "Error generating password!\n"); + return (1); + } + printf("%s\n", pw); + return (0); +} diff --git a/tools/rules.mk b/tools/rules.mk new file mode 100644 index 000000000..a6a3684ac --- /dev/null +++ b/tools/rules.mk @@ -0,0 +1,7 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +WRKDIR_BASE= ${TOOLS_BUILD_DIR} +WRKDIR= ${WRKDIR_BASE} + +include ${TOPDIR}/mk/buildhlp.mk -- cgit v1.2.3