summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Config.in2
-rw-r--r--mk/build.mk2
-rw-r--r--mk/fetch.mk2
-rw-r--r--mk/image.mk17
-rw-r--r--mk/kernel-build.mk6
-rw-r--r--mk/kernel-vars.mk2
-rw-r--r--mk/package.mk2
-rw-r--r--package/aufs-util/Makefile44
-rw-r--r--package/aufs-util/patches/patch-Makefile23
-rw-r--r--package/busybox/config/networking/Config.in1
-rw-r--r--package/capi4k-utils/Makefile48
-rw-r--r--package/capi4k-utils/patches/patch-Makefile42
-rw-r--r--package/capi4k-utils/patches/patch-capi20_capi20_h11
-rw-r--r--package/capi4k-utils/patches/patch-capiinfo_Makefile_in18
-rw-r--r--package/capi4k-utils/patches/patch-pppdcapiplugin_Rules_make18
-rw-r--r--package/capi4k-utils/patches/patch-rcapid_Makefile_in23
-rwxr-xr-xpackage/capi4k-utils/src/pppdcapiplugin/ppp-2.4.5/Makefile14
-rw-r--r--package/capi4k-utils/src/pppdcapiplugin/ppp-2.4.5/pppd/patchlevel.h2
-rw-r--r--package/capi4k-utils/src/pppdcapiplugin/ppp-2.4.5/pppd/pppd.h909
-rw-r--r--package/crda/Makefile53
-rw-r--r--package/cryptodev-linux/Makefile22
-rw-r--r--package/e2fsprogs/Makefile42
-rw-r--r--package/e2fsprogs/patches/patch-debugfs_dump_c12
-rw-r--r--package/e2fsprogs/patches/patch-debugfs_logdump_c4
-rw-r--r--package/e2fsprogs/patches/patch-debugfs_set_fields_c4
-rw-r--r--package/e2fsprogs/patches/patch-e2fsck_Makefile_in11
-rw-r--r--package/e2fsprogs/patches/patch-misc_Makefile_in65
-rw-r--r--package/e2fsprogs/patches/patch-misc_e2initrd_helper_c4
-rw-r--r--package/e2fsprogs/patches/patch-misc_e2undo_c4
-rw-r--r--package/e2fsprogs/patches/patch-util_subst_c6
-rw-r--r--package/ebtables/patches/patch-Makefile63
-rw-r--r--package/elfutils/Makefile37
-rw-r--r--package/gdb/Makefile2
-rw-r--r--package/hwids/Makefile61
-rw-r--r--package/i2400m-fw/Makefile30
-rw-r--r--package/inotify-tools/Makefile41
-rw-r--r--package/ipmitool/Makefile28
-rw-r--r--package/kismet/patches/patch-Makefile_in60
-rw-r--r--package/ldd/Makefile26
-rw-r--r--package/libpcap/Makefile11
-rw-r--r--package/libpcap/patch-Makefile_in14
-rw-r--r--package/libqmi/Makefile30
-rw-r--r--package/libqmi/patches/patch-Makefile_am13
-rw-r--r--package/libqmi/patches/patch-autogen_sh11
-rw-r--r--package/libqmi/patches/patch-configure_ac12
-rw-r--r--package/libqmi/patches/patch-docs_reference_libqmi-glib_Makefile_am25
-rw-r--r--package/mISDN/Makefile35
-rw-r--r--package/mISDN/patches/patch-Makefile53
-rw-r--r--package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_contr_c65
-rw-r--r--package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_c75
-rw-r--r--package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_h19
-rw-r--r--package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_debugtool_c49
-rw-r--r--package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_hfcs_usb_c17
-rw-r--r--package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_stack_c34
-rw-r--r--package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_inst_c30
-rw-r--r--package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_obj_c33
-rw-r--r--package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_st_c18
-rw-r--r--package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_udevice_c36
-rw-r--r--package/mISDNuser/Makefile35
-rw-r--r--package/mISDNuser/patches/patch-Makefile16
-rw-r--r--package/mISDNuser/patches/patch-debugtool_Makefile9
-rw-r--r--package/mISDNuser/patches/patch-i4lnet_Makefile9
-rw-r--r--package/mISDNuser/patches/patch-lib_Makefile9
-rw-r--r--package/mISDNuser/patches/patch-suppserv_Makefile9
-rw-r--r--package/nand/Makefile2
-rw-r--r--package/nand/src/nand.c45
-rw-r--r--package/newt/Makefile34
-rw-r--r--package/oprofile/Makefile28
-rw-r--r--package/oprofile/patches/patch-libop_op_cpu_type_c42
-rw-r--r--package/pdnsd/Makefile10
-rw-r--r--package/pdnsd/patches/patch-src_Makefile_in11
-rw-r--r--package/pdnsd/patches/patch-src_dns_query_c12
-rw-r--r--package/perf/Makefile43
-rw-r--r--package/slang/Makefile43
-rw-r--r--package/stats/Makefile23
-rw-r--r--package/stats/patches/patch-Makefile35
-rw-r--r--package/supl/Makefile34
-rw-r--r--package/supl/patches/patch-configure11
-rw-r--r--package/supl/patches/patch-src_Makefile16
-rw-r--r--package/supl/patches/patch-src_supl-client_c40
-rw-r--r--package/supl/patches/patch-src_supl_c46
-rw-r--r--package/supl/patches/patch-src_supl_h19
-rw-r--r--package/tcpdump/Makefile6
-rw-r--r--package/tcptrace/Makefile31
-rw-r--r--package/tcptrace/patches/patch-Makefile_in13
-rw-r--r--package/tcptrace/patches/patch-configure18
-rw-r--r--package/wget/Makefile4
-rw-r--r--package/wireless-regdb/Makefile28
-rwxr-xr-xscripts/install21
-rw-r--r--target/Makefile2
-rw-r--r--target/arm/Makefile5
-rw-r--r--target/config/Config.in.adk12
-rw-r--r--target/ppc/Makefile2
-rw-r--r--toolchain/Makefile3
-rw-r--r--toolchain/glibc/Makefile3
-rw-r--r--toolchain/kernel-headers/Makefile11
-rw-r--r--toolchain/prelink-cross/Config.in1
-rw-r--r--toolchain/prelink-cross/Makefile34
-rw-r--r--toolchain/prelink-cross/Makefile.inc8
99 files changed, 2752 insertions, 372 deletions
diff --git a/Config.in b/Config.in
index d3bbbfd3d..210c68dab 100644
--- a/Config.in
+++ b/Config.in
@@ -102,7 +102,7 @@ source "target/config/Config.in.runtime"
endmenu
menu "Kernel configuration"
- visible if !ADK_CHOOSE_APPLIANCE
+ visible if !ADK_CHOOSE_APPLIANCE && ADK_TARGET_KERNEL_CUSTOMISING
source "target/linux/Config.in"
endmenu
diff --git a/mk/build.mk b/mk/build.mk
index 214c52e88..29c99bd6f 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -223,7 +223,7 @@ kernelconfig:
${KERNEL_MAKE_ENV} ${MAKE} \
ARCH=$(ADK_TARGET_ARCH) \
${KERNEL_MAKE_OPTS} \
- -C $(BUILD_DIR)/linux menuconfig
+ menuconfig
# create a new package from package/.template
newpackage:
diff --git a/mk/fetch.mk b/mk/fetch.mk
index 5fb13a29e..6365b4c13 100644
--- a/mk/fetch.mk
+++ b/mk/fetch.mk
@@ -28,7 +28,7 @@ ifeq ($(strip ${PKG_NOCHECKSUM}),)
${_CHECKSUM_COOKIE}: ${FULLDISTFILES}
-rm -rf ${WRKDIR}
ifneq ($(ADK_DISABLE_CHECKSUM),y)
- @if [ ! -e "${FULLDISTFILES}.nohash" ]; then \
+ @if [ ! -e $(firstword ${FULLDISTFILES}).nohash ]; then \
OK=n; \
allsums="$(strip ${PKG_HASH})"; \
(shasum -a 256 ${FULLDISTFILES}; echo exit) | while read sum name; do \
diff --git a/mk/image.mk b/mk/image.mk
index bd7d66f96..7d982d773 100644
--- a/mk/image.mk
+++ b/mk/image.mk
@@ -37,7 +37,7 @@ else
$(error No login shell configured!)
endif
-imageprepare: image-prepare-post extra-install
+imageprepare: image-prepare-post extra-install prelink
# if an extra directory exist in ADK_TOPDIR, copy all content over the
# root directory, do the same if make extra=/dir/to/extra is used
@@ -79,6 +79,19 @@ ifneq ($(ADK_TARGET_ARCH_AARCH64)$(ADK_TARGET_ARCH_X86_64)$(ADK_TARGET_ARCH_PPC6
(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
endif
+ifeq (${ADK_PRELINK},)
+prelink:
+else
+${TARGET_DIR}/etc/prelink.conf:
+ echo '/' > $@
+
+prelink: ${TARGET_DIR}/etc/prelink.conf
+ $(TRACE) target/prelink
+ ${TARGET_CROSS}prelink ${ADK_PRELINK_OPTS} \
+ --ld-library-path=${STAGING_TARGET_DIR}/usr/lib:${STAGING_TARGET_DIR}/lib \
+ --root=${TARGET_DIR} -a $(MAKE_TRACE)
+endif
+
KERNEL_PKGDIR:=$(LINUX_BUILD_DIR)/kernel-pkg
KERNEL_PKG:=$(PACKAGE_DIR)/kernel_$(KERNEL_VERSION)_$(ADK_TARGET_CPU_ARCH).$(PKG_SUFFIX)
TARGET_KERNEL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_FS}-kernel
@@ -203,7 +216,7 @@ ifeq ($(ADK_KERNEL_COMP_BZIP2),y)
echo "CONFIG_INITRAMFS_COMPRESSION_BZIP2=y" >> ${LINUX_DIR}/.config
endif
@-rm $(LINUX_DIR)/usr/initramfs_data.cpio* 2>/dev/null
- env $(KERNEL_MAKE_ENV) $(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKE_OPTS) \
+ env $(KERNEL_MAKE_ENV) $(MAKE) $(KERNEL_MAKE_OPTS) \
-j${ADK_MAKE_JOBS} $(ADK_TARGET_KERNEL) $(MAKE_TRACE)
@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
diff --git a/mk/kernel-build.mk b/mk/kernel-build.mk
index b66f71132..37570909e 100644
--- a/mk/kernel-build.mk
+++ b/mk/kernel-build.mk
@@ -35,18 +35,18 @@ $(LINUX_DIR)/.config: $(LINUX_DIR)/.prepared $(BUILD_DIR)/.kernelconfig $(ADK_TO
$(TRACE) target/$(ADK_TARGET_ARCH)-kernel-configure
-for f in $(TARGETS);do if [ -f $$f ];then rm $$f;fi;done
$(CP) $(BUILD_DIR)/.kernelconfig $(LINUX_DIR)/mini.config
- ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG=mini.config allnoconfig $(MAKE_TRACE)
+ ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG=mini.config allnoconfig $(MAKE_TRACE)
touch -c $(LINUX_DIR)/.config
$(LINUX_DIR)/$(KERNEL_FILE): $(LINUX_DIR)/.config
$(TRACE) target/$(ADK_TARGET_ARCH)-kernel-compile
- ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} -j${ADK_MAKE_JOBS} LOCALVERSION="" $(KERNEL_TARGET) modules $(MAKE_TRACE)
+ ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} -j${ADK_MAKE_JOBS} LOCALVERSION="" $(KERNEL_TARGET) modules $(MAKE_TRACE)
touch -c $(LINUX_DIR)/$(KERNEL_FILE)
$(LINUX_BUILD_DIR)/modules: $(LINUX_DIR)/$(KERNEL_FILE)
$(TRACE) target/$(ADK_TARGET_ARCH)-kernel-modules-install
rm -rf $(LINUX_BUILD_DIR)/modules
- ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} DEPMOD=true \
+ ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} DEPMOD=true \
INSTALL_MOD_PATH=$(LINUX_BUILD_DIR)/modules \
LOCALVERSION="" \
modules_install $(MAKE_TRACE)
diff --git a/mk/kernel-vars.mk b/mk/kernel-vars.mk
index 17a8d23a2..89ba10dd9 100644
--- a/mk/kernel-vars.mk
+++ b/mk/kernel-vars.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.
-KERNEL_MAKE_OPTS:= V=1 \
+KERNEL_MAKE_OPTS:= V=1 -C "${LINUX_DIR}" \
ARCH="$(ADK_TARGET_KARCH)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
CC="$(TARGET_CC)" \
diff --git a/mk/package.mk b/mk/package.mk
index 65d9c8f9f..3b27d1278 100644
--- a/mk/package.mk
+++ b/mk/package.mk
@@ -308,7 +308,7 @@ clean-targets:
clean:
@$(CMD_TRACE) "cleaning... "
@$(MAKE) clean-targets $(MAKE_TRACE)
- rm -rf ${WRKDIR} ${ALL_IPKGS} ${STAGING_PKG_DIR}/stamps/${PKG_NAME}${PKG_VERSION}
+ rm -rf ${WRKDIR} ${ALL_IPKGS} ${_IPKGS_COOKIE}
distclean: clean
rm -f ${FULLDISTFILES}
diff --git a/package/aufs-util/Makefile b/package/aufs-util/Makefile
new file mode 100644
index 000000000..fc57c7bb6
--- /dev/null
+++ b/package/aufs-util/Makefile
@@ -0,0 +1,44 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= aufs-util
+# branch aufs3.x-rcN (of around June 6th, 2014)
+PKG_VERSION:= a0eb20c75c07299bfc50c3d80023e1d22c86b4cc
+PKG_RELEASE:= 1
+PKG_DESCR:= aufs utilities (version 3 and above)
+PKG_SECTION:= sys/fs
+PKG_URL:= http://aufs.sf.net/
+PKG_SITES:= git://aufs.git.sourceforge.net/gitroot/aufs/aufs-util
+
+PKG_SUBPKGS:= AUFS_UTIL LIBAU
+PKGSD_LIBAU:= aufs userspace library
+PKGSC_LIBAU:= libs/misc
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,AUFS_UTIL,$(PKG_NAME),$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+$(eval $(call PKG_template,LIBAU,libau,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_LIBAU),$(PKGSC_LIBAU)))
+
+CONFIG_STYLE:= manual
+XAKE_FLAGS+= Install=install \
+ HOSTCC="$(HOST_CC)" \
+ CPPFLAGS_FOR_BUILD="-I$(STAGING_TARGET_DIR)/usr/include -I./libau"
+
+aufs-util-install:
+ $(INSTALL_DIR) $(IDIR_AUFS_UTIL)/sbin
+ $(INSTALL_BIN) $(WRKINST)/sbin/{{u,}mount.aufs,auplink} \
+ $(IDIR_AUFS_UTIL)/sbin
+ $(INSTALL_DIR) $(IDIR_AUFS_UTIL)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/au{brsync,chk} \
+ $(IDIR_AUFS_UTIL)/usr/bin
+ $(INSTALL_DIR) $(IDIR_AUFS_UTIL)/etc/default
+ $(INSTALL_DATA) $(WRKINST)/etc/default/aufs \
+ $(IDIR_AUFS_UTIL)/etc/default
+
+libau-install:
+ $(INSTALL_DIR) $(IDIR_LIBAU)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libau* $(IDIR_LIBAU)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/aufs-util/patches/patch-Makefile b/package/aufs-util/patches/patch-Makefile
new file mode 100644
index 000000000..0253076f1
--- /dev/null
+++ b/package/aufs-util/patches/patch-Makefile
@@ -0,0 +1,23 @@
+ - Ensure correct (HOST-)FLAGS when compiling the intermediates
+ - Drop version test, this cant work anyway since there is no aufs3.12 branch anywhere
+--- w-aufs-util-3.x-rcN-050614-1.orig/Makefile 2014-05-06 15:36:53.000000000 +0200
++++ w-aufs-util-3.x-rcN-050614-1/Makefile 2014-06-05 14:32:53.496611173 +0200
+@@ -49,7 +49,7 @@ LibUtilObj = perror.o proc_mnt.o br.o pl
+ LibUtilHdr = au_util.h
+ export
+
+-all: ver_test ${Man} ${Bin} ${Etc}
++all: ${Man} ${Bin} ${Etc}
+ ${MAKE} -C libau $@
+ ln -sf ./libau/libau*.so .
+
+@@ -85,6 +85,9 @@ aufs.5: aufs.in.5 c2tmac
+ chmod a-w $@
+
+ c2sh c2tmac ver: CC = ${HOSTCC}
++c2sh c2tmac ver: CFLAGS = ${CFLAGS_FOR_BUILD}
++c2sh c2tmac ver: LDFLAGS = ${LDFLAGS_FOR_BUILD}
++c2sh c2tmac ver: CPPFLAGS = ${CPPFLAGS_FOR_BUILD}
+ .INTERMEDIATE: c2sh c2tmac ver
+
+ Install = install -o root -g root -p
diff --git a/package/busybox/config/networking/Config.in b/package/busybox/config/networking/Config.in
index 6e68fc786..d5bbad0ef 100644
--- a/package/busybox/config/networking/Config.in
+++ b/package/busybox/config/networking/Config.in
@@ -488,6 +488,7 @@ config BUSYBOX_FEATURE_IFUPDOWN_IP_BUILTIN
bool "Use busybox ip applet"
default y
depends on BUSYBOX_FEATURE_IFUPDOWN_IP
+ depends on !ADK_PACKAGE_IP
select BUSYBOX_PLATFORM_LINUX
select BUSYBOX_IP
select BUSYBOX_FEATURE_IP_ADDRESS
diff --git a/package/capi4k-utils/Makefile b/package/capi4k-utils/Makefile
new file mode 100644
index 000000000..0ac58e978
--- /dev/null
+++ b/package/capi4k-utils/Makefile
@@ -0,0 +1,48 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= capi4k-utils
+PKG_VERSION:= 2005-07-18
+PKG_RELEASE:= 1
+PKG_HASH:= b162d726a31310fc29e7c0a25a4f82a590457f6a95c1b1168bcd72b6497b5746
+PKG_DESCR:= capi4linux utils
+PKG_SECTION:= net/voip
+PKG_SITES:= ftp://ftp.in-berlin.de/pub/capi4linux/
+
+PKG_CFLINE_CAPI4K_UTILS:=depends on ADK_BROKEN
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+WRKDIST= $(WRKDIR)/$(PKG_NAME)
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,CAPI4K_UTILS,capi4k-utils,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+XAKE_FLAGS+= PPPVERSIONS=2.4.5
+
+do-configure:
+ echo "CONFIG_KERNELDIR='$(LINUX_DIR)'" >$(WRKDIST)/.config
+ echo "CONFIG_BINDIR='/usr/bin'" >>$(WRKDIST)/.config
+ echo "CONFIG_SBINDIR='/usr/sbin'" >>$(WRKDIST)/.config
+ echo "CONFIG_MANDIR='/usr/man'" >>$(WRKDIST)/.config
+ echo "CONFIG_RCAPID=y" >>$(WRKDIST)/.config
+ echo "CONFIG_PPPDCAPIPLUGIN=y" >>$(WRKDIST)/.config
+ (cd $(WRKDIST); \
+ cp Makefile Makefile.tmp; \
+ $(MAKE_ENV) $(MAKE) $(MAKE_FLAGS) -f Makefile.tmp subconfig; \
+ rm -f Makefile.tmp; \
+ )
+
+capi4k-utils-install:
+ $(INSTALL_DIR) $(IDIR_CAPI4K_UTILS)/usr/{bin,lib/pppd/2.4.5}
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/capiinfo \
+ $(IDIR_CAPI4K_UTILS)/usr/bin
+ $(CP) $(WRKINST)/usr/lib/libcapi20.so* \
+ $(IDIR_CAPI4K_UTILS)/usr/lib
+ $(INSTALL_DATA) $(WRKINST)/usr/lib/pppd/2.4.5/*.so \
+ $(IDIR_CAPI4K_UTILS)/usr/lib/pppd/2.4.5
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/capi4k-utils/patches/patch-Makefile b/package/capi4k-utils/patches/patch-Makefile
new file mode 100644
index 000000000..08e26f592
--- /dev/null
+++ b/package/capi4k-utils/patches/patch-Makefile
@@ -0,0 +1,42 @@
+ - pass CC, CFLAGS and LDFLAGS when running subdir configure and make
+ - install without root-permissions, do not create device nodes
+ - need to pass PPPVERSIONS to subtargets
+--- capi4k-utils.orig/Makefile 2002-11-20 14:45:14.000000000 +0100
++++ capi4k-utils/Makefile 2011-07-15 14:15:21.446001582 +0200
+@@ -53,7 +53,7 @@ ifneq ($(SUBDIRS),)
+ endif
+
+ subtargets: $(CONFIGURATION)
+- set -e; for i in `echo $(SUBDIRS)`; do $(MAKE) -C $$i all; done
++ set -e; for i in `echo $(SUBDIRS)`; do CC="${CC}" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" PPPVERSIONS="${PPPVERSIONS}" $(MAKE) -C $$i all; done
+
+ rootperm:
+ @echo 'main(int argc,char**argv){unlink(argv[0]);return(getuid()==0);}'>g
+@@ -62,16 +62,10 @@ rootperm:
+ exit 1; \
+ fi
+
+-install: rootperm
++install:
+ set -e; for i in `echo $(SUBDIRS)`; do $(MAKE) -C $$i install; done
+- @if [ -c $(DESTDIR)/dev/isdnctrl0 ] && ls -l $(DESTDIR)/dev/isdnctrl0 | egrep "[[:space:]]45,[[:space:]]+64[[:space:]]" > /dev/null; \
+- then \
+- echo -e '(some) ISDN devices already exist, not creating them.\nUse scripts/makedev.sh manually if necessary.'; \
+- else \
+- sh scripts/makedev.sh $(DESTDIR) ; \
+- fi
+
+-uninstall: rootperm
++uninstall:
+ set -e; for i in `echo $(SUBDIRS)`; do $(MAKE) -C $$i uninstall; done
+
+ #
+@@ -134,7 +128,7 @@ subconfig: scripts/autoconf.h
+ @set -e; for i in `echo $(SUBDIRS)`; do \
+ if [ -x $$i/configure ] ; then \
+ echo -e "\nRunning configure in $$i ...\n"; sleep 1; \
+- (cd $$i; ./configure --sbindir=$(CONFIG_SBINDIR) --bindir=$(CONFIG_BINDIR) --mandir=$(CONFIG_MANDIR) || $(MAKE) -C ../ ERRDIR=$$i cfgerror); \
++ (cd $$i; CC="${CC}" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" ./configure --sbindir=$(CONFIG_SBINDIR) --bindir=$(CONFIG_BINDIR) --mandir=$(CONFIG_MANDIR) || $(MAKE) -C ../ ERRDIR=$$i cfgerror); \
+ elif [ -f $$i/Makefile.in ] ; then \
+ echo -e "\nRunning make -f Makefile.in config in $$i ...\n"; sleep 1; \
+ $(MAKE) -C $$i -f Makefile.in config; \
diff --git a/package/capi4k-utils/patches/patch-capi20_capi20_h b/package/capi4k-utils/patches/patch-capi20_capi20_h
new file mode 100644
index 000000000..856eaba79
--- /dev/null
+++ b/package/capi4k-utils/patches/patch-capi20_capi20_h
@@ -0,0 +1,11 @@
+ - somehow this header misses sys/types.h (for size_t definition)
+--- capi4k-utils.orig/capi20/capi20.h 2000-11-19 11:15:01.000000000 +0100
++++ capi4k-utils/capi20/capi20.h 2011-07-14 17:26:51.680001337 +0200
+@@ -21,6 +21,7 @@
+ #define __CAPI20_H__
+
+ #include <sys/time.h>
++#include <sys/types.h>
+
+ #ifdef __cplusplus
+ extern "C" {
diff --git a/package/capi4k-utils/patches/patch-capiinfo_Makefile_in b/package/capi4k-utils/patches/patch-capiinfo_Makefile_in
new file mode 100644
index 000000000..5a5ae1c4b
--- /dev/null
+++ b/package/capi4k-utils/patches/patch-capiinfo_Makefile_in
@@ -0,0 +1,18 @@
+ allow CFLAGS override
+--- capi4k-utils.orig/capiinfo/Makefile.in 2002-11-27 09:08:04.000000000 +0100
++++ capi4k-utils/capiinfo/Makefile.in 2011-07-14 18:55:40.657001559 +0200
+@@ -72,10 +72,10 @@ CLEANFILES = *~ comperr
+ MAINTAINERCLEANFILES = configure aclocal.m4 Makefile.in config.h.in stamp-h.in comperr
+
+
+-INCLUDES = -I../capi20 $(all_includes)
+-CFLAGS = -Wall -O2
+-LDFLAGS = -L../capi20/.libs -L../capi20 $(all_libraries)
+-LDADD = -lcapi20
++INCLUDES += -I../capi20 $(all_includes)
++CFLAGS += -Wall -O2
++LDFLAGS += -L../capi20/.libs -L../capi20 $(all_libraries)
++LDADD += -lcapi20
+
+ bin_PROGRAMS = capiinfo
+
diff --git a/package/capi4k-utils/patches/patch-pppdcapiplugin_Rules_make b/package/capi4k-utils/patches/patch-pppdcapiplugin_Rules_make
new file mode 100644
index 000000000..cd54324e6
--- /dev/null
+++ b/package/capi4k-utils/patches/patch-pppdcapiplugin_Rules_make
@@ -0,0 +1,18 @@
+ allow CC, CFLAGS and LDFLAGS override
+--- capi4k-utils.orig/pppdcapiplugin/Rules.make 2001-05-01 14:43:49.000000000 +0200
++++ capi4k-utils/pppdcapiplugin/Rules.make 2011-07-14 17:13:53.567001779 +0200
+@@ -10,11 +10,11 @@
+
+ vpath %.c $(TOPDIR)
+
+-CC = gcc
++CC ?= gcc
+ INC = -I$(TOPDIR) -I$(CAPIINC) -Ipppd
+ DEFS = -DPPPVER=$(shell $(TOPDIR)/pversion $(PPPVERSION))
+-CFLAGS = -O2 -Wall -fPIC $(DEFS) $(INC) -L$(CAPILIB)
+-LDFLAGS = -shared -L$(CAPILIB)
++CFLAGS += -O2 -Wall -fPIC $(DEFS) $(INC) -L$(CAPILIB)
++LDFLAGS += -shared -L$(CAPILIB)
+
+ ALL = capiplugin.so userpass.so
+
diff --git a/package/capi4k-utils/patches/patch-rcapid_Makefile_in b/package/capi4k-utils/patches/patch-rcapid_Makefile_in
new file mode 100644
index 000000000..135d5fe25
--- /dev/null
+++ b/package/capi4k-utils/patches/patch-rcapid_Makefile_in
@@ -0,0 +1,23 @@
+ allow overriding things
+--- capi4k-utils.orig/rcapid/Makefile.in 2003-06-16 13:44:29.000000000 +0200
++++ capi4k-utils/rcapid/Makefile.in 2011-07-14 19:01:46.376001436 +0200
+@@ -57,7 +57,7 @@ POST_INSTALL = :
+ NORMAL_UNINSTALL = :
+ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+-CC = @CC@
++CC ?= @CC@
+ CONFIG_MANDIR = @CONFIG_MANDIR@
+ CONFIG_SBINDIR = @CONFIG_SBINDIR@
+ CPP = @CPP@
+@@ -72,8 +72,8 @@ MAINTAINERCLEANFILES = configure aclocal
+
+
+ INCLUDES = -I../capi20 $(all_includes)
+-CFLAGS = -Wall -O2
+-LDFLAGS = -L../capi20/.libs -L../capi20 $(all_libraries)
++CFLAGS += -Wall -O2
++LDFLAGS += -L../capi20/.libs -L../capi20 $(all_libraries)
+ LDADD = -lcapi20
+
+ sbin_PROGRAMS = rcapid
diff --git a/package/capi4k-utils/src/pppdcapiplugin/ppp-2.4.5/Makefile b/package/capi4k-utils/src/pppdcapiplugin/ppp-2.4.5/Makefile
new file mode 100755
index 000000000..d12b2373a
--- /dev/null
+++ b/package/capi4k-utils/src/pppdcapiplugin/ppp-2.4.5/Makefile
@@ -0,0 +1,14 @@
+# Makefile for the capiplugin for pppd(8).
+#
+# Copyright 2000 Carsten Paeth (calle@calle.in-berlin.de)
+# Copyright 2000 AVM GmbH Berlin (info@avm.de)
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version
+# 2 of the License, or (at your option) any later version.
+
+PLUGINDIR=${DESTDIR}/usr/lib/pppd/$(PPPVERSION)
+
+include $(TOPDIR)/Rules.make
+
diff --git a/package/capi4k-utils/src/pppdcapiplugin/ppp-2.4.5/pppd/patchlevel.h b/package/capi4k-utils/src/pppdcapiplugin/ppp-2.4.5/pppd/patchlevel.h
new file mode 100644
index 000000000..b7d6ce335
--- /dev/null
+++ b/package/capi4k-utils/src/pppdcapiplugin/ppp-2.4.5/pppd/patchlevel.h
@@ -0,0 +1,2 @@
+#define VERSION "2.4.5"
+#define DATE "17 November 2009"
diff --git a/package/capi4k-utils/src/pppdcapiplugin/ppp-2.4.5/pppd/pppd.h b/package/capi4k-utils/src/pppdcapiplugin/ppp-2.4.5/pppd/pppd.h
new file mode 100644
index 000000000..cf9840a41
--- /dev/null
+++ b/package/capi4k-utils/src/pppdcapiplugin/ppp-2.4.5/pppd/pppd.h
@@ -0,0 +1,909 @@
+/*
+ * pppd.h - PPP daemon global declarations.
+ *
+ * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The name "Carnegie Mellon University" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For permission or any legal
+ * details, please contact
+ * Office of Technology Transfer
+ * Carnegie Mellon University
+ * 5000 Forbes Avenue
+ * Pittsburgh, PA 15213-3890
+ * (412) 268-4387, fax: (412) 268-7395
+ * tech-transfer@andrew.cmu.edu
+ *
+ * 4. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by Computing Services
+ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
+ *
+ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
+ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * $Id: pppd.h,v 1.96 2008/06/23 11:47:18 paulus Exp $
+ */
+
+/*
+ * TODO:
+ */
+
+#ifndef __PPPD_H__
+#define __PPPD_H__
+
+#include <stdio.h> /* for FILE */
+#include <limits.h> /* for NGROUPS_MAX */
+#include <sys/param.h> /* for MAXPATHLEN and BSD4_4, if defined */
+#include <sys/types.h> /* for u_int32_t, if defined */
+#include <sys/time.h> /* for struct timeval */
+#include <net/ppp_defs.h>
+#include "patchlevel.h"
+
+#if defined(__STDC__)
+#include <stdarg.h>
+#define __V(x) x
+#else
+#include <varargs.h>
+#define __V(x) (va_alist) va_dcl
+#define const
+#define volatile
+#endif
+
+#ifdef INET6
+#include "eui64.h"
+#endif
+
+/*
+ * Limits.
+ */
+
+#define NUM_PPP 1 /* One PPP interface supported (per process) */
+#define MAXWORDLEN 1024 /* max length of word in file (incl null) */
+#define MAXARGS 1 /* max # args to a command */
+#define MAXNAMELEN 256 /* max length of hostname or name for auth */
+#define MAXSECRETLEN 256 /* max length of password or secret */
+
+/*
+ * Option descriptor structure.
+ */
+
+typedef unsigned char bool;
+
+enum opt_type {
+ o_special_noarg = 0,
+ o_special = 1,
+ o_bool,
+ o_int,
+ o_uint32,
+ o_string,
+ o_wild
+};
+
+typedef struct {
+ char *name; /* name of the option */
+ enum opt_type type;
+ void *addr;
+ char *description;
+ unsigned int flags;
+ void *addr2;
+ int upper_limit;
+ int lower_limit;
+ const char *source;
+ short int priority;
+ short int winner;
+} option_t;
+
+/* Values for flags */
+#define OPT_VALUE 0xff /* mask for presupplied value */
+#define OPT_HEX 0x100 /* int option is in hex */
+#define OPT_NOARG 0x200 /* option doesn't take argument */
+#define OPT_OR 0x400 /* for u32, OR in argument to value */
+#define OPT_INC 0x400 /* for o_int, increment value */
+#define OPT_A2OR 0x800 /* for o_bool, OR arg to *(u_char *)addr2 */
+#define OPT_PRIV 0x1000 /* privileged option */
+#define OPT_STATIC 0x2000 /* string option goes into static array */
+#define OPT_NOINCR 0x2000 /* for o_int, value mustn't be increased */
+#define OPT_LLIMIT 0x4000 /* check value against lower limit */
+#define OPT_ULIMIT 0x8000 /* check value against upper limit */
+#define OPT_LIMITS (OPT_LLIMIT|OPT_ULIMIT)
+#define OPT_ZEROOK 0x10000 /* 0 value is OK even if not within limits */
+#define OPT_HIDE 0x10000 /* for o_string, print value as ?????? */
+#define OPT_A2LIST 0x20000 /* for o_special, keep list of values */
+#define OPT_A2CLRB 0x20000 /* o_bool, clr val bits in *(u_char *)addr2 */
+#define OPT_ZEROINF 0x40000 /* with OPT_NOINCR, 0 == infinity */
+#define OPT_PRIO 0x80000 /* process option priorities for this option */
+#define OPT_PRIOSUB 0x100000 /* subsidiary member of priority group */
+#define OPT_ALIAS 0x200000 /* option is alias for previous option */
+#define OPT_A2COPY 0x400000 /* addr2 -> second location to rcv value */
+#define OPT_ENABLE 0x800000 /* use *addr2 as enable for option */
+#define OPT_A2CLR 0x1000000 /* clear *(bool *)addr2 */
+#define OPT_PRIVFIX 0x2000000 /* user can't override if set by root */
+#define OPT_INITONLY 0x4000000 /* option can only be set in init phase */
+#define OPT_DEVEQUIV 0x8000000 /* equiv to device name */
+#define OPT_DEVNAM (OPT_INITONLY | OPT_DEVEQUIV)
+#define OPT_A2PRINTER 0x10000000 /* *addr2 is a fn for printing option */
+#define OPT_A2STRVAL 0x20000000 /* *addr2 points to current string value */
+#define OPT_NOPRINT 0x40000000 /* don't print this option at all */
+
+#define OPT_VAL(x) ((x) & OPT_VALUE)
+
+/* Values for priority */
+#define OPRIO_DEFAULT 0 /* a default value */
+#define OPRIO_CFGFILE 1 /* value from a configuration file */
+#define OPRIO_CMDLINE 2 /* value from the command line */
+#define OPRIO_SECFILE 3 /* value from options in a secrets file */
+#define OPRIO_ROOT 100 /* added to priority if OPT_PRIVFIX && root */
+
+#ifndef GIDSET_TYPE
+#define GIDSET_TYPE gid_t
+#endif
+
+/* Structure representing a list of permitted IP addresses. */
+struct permitted_ip {
+ int permit; /* 1 = permit, 0 = forbid */
+ u_int32_t base; /* match if (addr & mask) == base */
+ u_int32_t mask; /* base and mask are in network byte order */
+};
+
+/*
+ * Unfortunately, the linux kernel driver uses a different structure
+ * for statistics from the rest of the ports.
+ * This structure serves as a common representation for the bits
+ * pppd needs.
+ */
+struct pppd_stats {
+ unsigned int bytes_in;
+ unsigned int bytes_out;
+ unsigned int pkts_in;
+ unsigned int pkts_out;
+};
+
+/* Used for storing a sequence of words. Usually malloced. */
+struct wordlist {
+ struct wordlist *next;
+ char *word;
+};
+
+/* An endpoint discriminator, used with multilink. */
+#define MAX_ENDP_LEN 20 /* maximum length of discriminator value */
+struct epdisc {
+ unsigned char class;
+ unsigned char length;
+ unsigned char value[MAX_ENDP_LEN];
+};
+
+/* values for epdisc.class */
+#define EPD_NULL 0 /* null discriminator, no data */
+#define EPD_LOCAL 1
+#define EPD_IP 2
+#define EPD_MAC 3
+#define EPD_MAGIC 4
+#define EPD_PHONENUM 5
+
+typedef void (*notify_func) __P((void *, int));
+
+struct notifier {
+ struct notifier *next;
+ notify_func func;
+ void *arg;
+};
+
+/*
+ * Global variables.
+ */
+
+extern int hungup; /* Physical layer has disconnected */
+extern int ifunit; /* Interface unit number */
+extern char ifname[]; /* Interface name */
+extern char hostname[]; /* Our hostname */
+extern u_char outpacket_buf[]; /* Buffer for outgoing packets */
+extern int devfd; /* fd of underlying device */
+extern int fd_ppp; /* fd for talking PPP */
+extern int phase; /* Current state of link - see values below */
+extern int baud_rate; /* Current link speed in bits/sec */
+extern char *progname; /* Name of this program */
+extern int redirect_stderr;/* Connector's stderr should go to file */
+extern char peer_authname[];/* Authenticated name of peer */
+extern int auth_done[NUM_PPP]; /* Methods actually used for auth */
+extern int privileged; /* We were run by real-uid root */
+extern int need_holdoff; /* Need holdoff period after link terminates */
+extern char **script_env; /* Environment variables for scripts */
+extern int detached; /* Have detached from controlling tty */
+extern GIDSET_TYPE groups[NGROUPS_MAX]; /* groups the user is in */
+extern int ngroups; /* How many groups valid in groups */
+extern struct pppd_stats link_stats; /* byte/packet counts etc. for link */
+extern int link_stats_valid; /* set if link_stats is valid */
+extern unsigned link_connect_time; /* time the link was up for */
+extern int using_pty; /* using pty as device (notty or pty opt.) */
+extern int log_to_fd; /* logging to this fd as well as syslog */
+extern bool log_default; /* log_to_fd is default (stdout) */
+extern char *no_ppp_msg; /* message to print if ppp not in kernel */
+extern volatile int status; /* exit status for pppd */
+extern bool devnam_fixed; /* can no longer change devnam */
+extern int unsuccess; /* # unsuccessful connection attempts */
+extern int do_callback; /* set if we want to do callback next */
+extern int doing_callback; /* set if this is a callback */
+extern int error_count; /* # of times error() has been called */
+extern char ppp_devnam[MAXPATHLEN];
+extern char remote_number[MAXNAMELEN]; /* Remote telephone number, if avail. */
+extern int ppp_session_number; /* Session number (eg PPPoE session) */
+extern int fd_devnull; /* fd open to /dev/null */
+
+extern int listen_time; /* time to listen first (ms) */
+extern bool doing_multilink;
+extern bool multilink_master;
+extern bool bundle_eof;
+extern bool bundle_terminating;
+
+extern struct notifier *pidchange; /* for notifications of pid changing */
+extern struct notifier *phasechange; /* for notifications of phase changes */
+extern struct notifier *exitnotify; /* for notification that we're exiting */
+extern struct notifier *sigreceived; /* notification of received signal */
+extern struct notifier *ip_up_notifier; /* IPCP has come up */
+extern struct notifier *ip_down_notifier; /* IPCP has gone down */
+extern struct notifier *auth_up_notifier; /* peer has authenticated */
+extern struct notifier *link_down_notifier; /* link has gone down */
+extern struct notifier *fork_notifier; /* we are a new child process */
+
+/* Values for do_callback and doing_callback */
+#define CALLBACK_DIALIN 1 /* we are expecting the call back */
+#define CALLBACK_DIALOUT 2 /* we are dialling out to call back */
+
+/*
+ * Variables set by command-line options.
+ */
+
+extern int debug; /* Debug flag */
+extern int kdebugflag; /* Tell kernel to print debug messages */
+extern int default_device; /* Using /dev/tty or equivalent */
+extern char devnam[MAXPATHLEN]; /* Device name */
+extern int crtscts; /* Use hardware flow control */
+extern bool modem; /* Use modem control lines */
+extern int inspeed; /* Input/Output speed requested */
+extern u_int32_t netmask; /* IP netmask to set on interface */
+extern bool lockflag; /* Create lock file to lock the serial dev */
+extern bool nodetach; /* Don't detach from controlling tty */
+extern bool updetach; /* Detach from controlling tty when link up */
+extern char *initializer; /* Script to initialize physical link */
+extern char *connect_script; /* Script to establish physical link */
+extern char *disconnect_script; /* Script to disestablish physical link */
+extern char *welcomer; /* Script to welcome client after connection */
+extern char *ptycommand; /* Command to run on other side of pty */
+extern int maxconnect; /* Maximum connect time (seconds) */
+extern char user[MAXNAMELEN];/* Our name for authenticating ourselves */
+extern char passwd[MAXSECRETLEN]; /* Password for PAP or CHAP */
+extern bool auth_required; /* Peer is required to authenticate */
+extern bool persist; /* Reopen link after it goes down */
+extern bool uselogin; /* Use /etc/passwd for checking PAP */
+extern bool session_mgmt; /* Do session management (login records) */
+extern char our_name[MAXNAMELEN];/* Our name for authentication purposes */
+extern char remote_name[MAXNAMELEN]; /* Peer's name for authentication */
+extern bool explicit_remote;/* remote_name specified with remotename opt */
+extern bool demand; /* Do dial-on-demand */
+extern char *ipparam; /* Extra parameter for ip up/down scripts */
+extern bool cryptpap; /* Others' PAP passwords are encrypted */
+extern int idle_time_limit;/* Shut down link if idle for this long */
+extern int holdoff; /* Dead time before restarting */
+extern bool holdoff_specified; /* true if user gave a holdoff value */
+extern bool notty; /* Stdin/out is not a tty */
+extern char *pty_socket; /* Socket to connect to pty */
+extern char *record_file; /* File to record chars sent/received */
+extern bool sync_serial; /* Device is synchronous serial device */
+extern int maxfail; /* Max # of unsuccessful connection attempts */
+extern char linkname[MAXPATHLEN]; /* logical name for link */
+extern bool tune_kernel; /* May alter kernel settings as necessary */
+extern int connect_delay; /* Time to delay after connect script */
+extern int max_data_rate; /* max bytes/sec through charshunt */
+extern int req_unit; /* interface unit number to use */
+extern bool multilink; /* enable multilink operation */
+extern bool noendpoint; /* don't send or accept endpt. discrim. */
+extern char *bundle_name; /* bundle name for multilink */
+extern bool dump_options; /* print out option values */
+extern bool dryrun; /* check everything, print options, exit */
+extern int child_wait; /* # seconds to wait for children at end */
+
+#ifdef MAXOCTETS
+extern unsigned int maxoctets; /* Maximum octetes per session (in bytes) */
+extern int maxoctets_dir; /* Direction :
+ 0 - in+out (default)
+ 1 - in
+ 2 - out
+ 3 - max(in,out) */
+extern int maxoctets_timeout; /* Timeout for check of octets limit */
+#define PPP_OCTETS_DIRECTION_SUM 0
+#define PPP_OCTETS_DIRECTION_IN 1
+#define PPP_OCTETS_DIRECTION_OUT 2
+#define PPP_OCTETS_DIRECTION_MAXOVERAL 3
+/* same as previos, but little different on RADIUS side */
+#define PPP_OCTETS_DIRECTION_MAXSESSION 4
+#endif
+
+#ifdef PPP_FILTER
+extern struct bpf_program pass_filter; /* Filter for pkts to pass */
+extern struct bpf_program active_filter; /* Filter for link-active pkts */
+#endif
+
+#ifdef MSLANMAN
+extern bool ms_lanman; /* Use LanMan password instead of NT */
+ /* Has meaning only with MS-CHAP challenges */
+#endif
+
+/* Values for auth_pending, auth_done */
+#define PAP_WITHPEER 0x1
+#define PAP_PEER 0x2
+#define CHAP_WITHPEER 0x4
+#define CHAP_PEER 0x8
+#define EAP_WITHPEER 0x10
+#define EAP_PEER 0x20
+
+/* Values for auth_done only */
+#define CHAP_MD5_WITHPEER 0x40
+#define CHAP_MD5_PEER 0x80
+#define CHAP_MS_SHIFT 8 /* LSB position for MS auths */
+#define CHAP_MS_WITHPEER 0x100
+#define CHAP_MS_PEER 0x200
+#define CHAP_MS2_WITHPEER 0x400
+#define CHAP_MS2_PEER 0x800
+
+extern char *current_option; /* the name of the option being parsed */
+extern int privileged_option; /* set iff the current option came from root */
+extern char *option_source; /* string saying where the option came from */
+extern int option_priority; /* priority of current options */
+
+/*
+ * Values for phase.
+ */
+#define PHASE_DEAD 0
+#define PHASE_INITIALIZE 1
+#define PHASE_SERIALCONN 2
+#define PHASE_DORMANT 3
+#define PHASE_ESTABLISH 4
+#define PHASE_AUTHENTICATE 5
+#define PHASE_CALLBACK 6
+#define PHASE_NETWORK 7
+#define PHASE_RUNNING 8
+#define PHASE_TERMINATE 9
+#define PHASE_DISCONNECT 10
+#define PHASE_HOLDOFF 11
+#define PHASE_MASTER 12
+
+/*
+ * The following struct gives the addresses of procedures to call
+ * for a particular protocol.
+ */
+struct protent {
+ u_short protocol; /* PPP protocol number */
+ /* Initialization procedure */
+ void (*init) __P((int unit));
+ /* Process a received packet */
+ void (*input) __P((int unit, u_char *pkt, int len));
+ /* Process a received protocol-reject */
+ void (*protrej) __P((int unit));
+ /* Lower layer has come up */
+ void (*lowerup) __P((int unit));
+ /* Lower layer has gone down */
+ void (*lowerdown) __P((int unit));
+ /* Open the protocol */
+ void (*open) __P((int unit));
+ /* Close the protocol */
+ void (*close) __P((int unit, char *reason));
+ /* Print a packet in readable form */
+ int (*printpkt) __P((u_char *pkt, int len,
+ void (*printer) __P((void *, char *, ...)),
+ void *arg));
+ /* Process a received data packet */
+ void (*datainput) __P((int unit, u_char *pkt, int len));
+ bool enabled_flag; /* 0 iff protocol is disabled */
+ char *name; /* Text name of protocol */
+ char *data_name; /* Text name of corresponding data protocol */
+ option_t *options; /* List of command-line options */
+ /* Check requested options, assign defaults */
+ void (*check_options) __P((void));
+ /* Configure interface for demand-dial */
+ int (*demand_conf) __P((int unit));
+ /* Say whether to bring up link for this pkt */
+ int (*active_pkt) __P((u_char *pkt, int len));
+};
+
+/* Table of pointers to supported protocols */
+extern struct protent *protocols[];
+
+/*
+ * This struct contains pointers to a set of procedures for
+ * doing operations on a "channel". A channel provides a way
+ * to send and receive PPP packets - the canonical example is
+ * a serial port device in PPP line discipline (or equivalently
+ * with PPP STREAMS modules pushed onto it).
+ */
+struct channel {
+ /* set of options for this channel */
+ option_t *options;
+ /* find and process a per-channel options file */
+ void (*process_extra_options) __P((void));
+ /* check all the options that have been given */
+ void (*check_options) __P((void));
+ /* get the channel ready to do PPP, return a file descriptor */
+ int (*connect) __P((void));
+ /* we're finished with the channel */
+ void (*disconnect) __P((void));
+ /* put the channel into PPP `mode' */
+ int (*establish_ppp) __P((int));
+ /* take the channel out of PPP `mode', restore loopback if demand */
+ void (*disestablish_ppp) __P((int));
+ /* set the transmit-side PPP parameters of the channel */
+ void (*send_config) __P((int, u_int32_t, int, int));
+ /* set the receive-side PPP parameters of the channel */
+ void (*recv_config) __P((int, u_int32_t, int, int));
+ /* cleanup on error or normal exit */
+ void (*cleanup) __P((void));
+ /* close the device, called in children after fork */
+ void (*close) __P((void));
+};
+
+extern struct channel *the_channel;
+
+/*
+ * Prototypes.
+ */
+
+/* Procedures exported from main.c. */
+void set_ifunit __P((int)); /* set stuff that depends on ifunit */
+void detach __P((void)); /* Detach from controlling tty */
+void die __P((int)); /* Cleanup and exit */
+void quit __P((void)); /* like die(1) */
+void novm __P((char *)); /* Say we ran out of memory, and die */
+void timeout __P((void (*func)(void *), void *arg, int s, int us));
+ /* Call func(arg) after s.us seconds */
+void untimeout __P((void (*func)(void *), void *arg));
+ /* Cancel call to func(arg) */
+void record_child __P((int, char *, void (*) (void *), void *, int));
+pid_t safe_fork __P((int, int, int)); /* Fork & close stuff in child */
+int device_script __P((char *cmd, int in, int out, int dont_wait));
+ /* Run `cmd' with given stdin and stdout */
+pid_t run_program __P((char *prog, char **args, int must_exist,
+ void (*done)(void *), void *arg, int wait));
+ /* Run program prog with args in child */
+void reopen_log __P((void)); /* (re)open the connection to syslog */
+void print_link_stats __P((void)); /* Print stats, if available */
+void reset_link_stats __P((int)); /* Reset (init) stats when link goes up */
+void update_link_stats __P((int)); /* Get stats at link termination */
+void script_setenv __P((char *, char *, int)); /* set script env var */
+void script_unsetenv __P((char *)); /* unset script env var */
+void new_phase __P((int)); /* signal start of new phase */
+void add_notifier __P((struct notifier **, notify_func, void *));
+void remove_notifier __P((struct notifier **, notify_func, void *));
+void notify __P((struct notifier *, int));
+int ppp_send_config __P((int, int, u_int32_t, int, int));
+int ppp_recv_config __P((int, int, u_int32_t, int, int));
+const char *protocol_name __P((int));
+void remove_pidfiles __P((void));
+void lock_db __P((void));
+void unlock_db __P((void));
+
+/* Procedures exported from tty.c. */
+void tty_init __P((void));
+
+/* Procedures exported from utils.c. */
+void log_packet __P((u_char *, int, char *, int));
+ /* Format a packet and log it with syslog */
+void print_string __P((char *, int, void (*) (void *, char *, ...),
+ void *)); /* Format a string for output */
+int slprintf __P((char *, int, char *, ...)); /* sprintf++ */
+int vslprintf __P((char *, int, char *, va_list)); /* vsprintf++ */
+size_t strlcpy __P((char *, const char *, size_t)); /* safe strcpy */
+size_t strlcat __P((char *, const char *, size_t)); /* safe strncpy */
+void dbglog __P((char *, ...)); /* log a debug message */
+void info __P((char *, ...)); /* log an informational message */
+void notice __P((char *, ...)); /* log a notice-level message */
+void warn __P((char *, ...)); /* log a warning message */
+void error __P((char *, ...)); /* log an error message */
+void fatal __P((char *, ...)); /* log an error message and die(1) */
+void init_pr_log __P((const char *, int)); /* initialize for using pr_log */
+void pr_log __P((void *, char *, ...)); /* printer fn, output to syslog */
+void end_pr_log __P((void)); /* finish up after using pr_log */
+void dump_packet __P((const char *, u_char *, int));
+ /* dump packet to debug log if interesting */
+ssize_t complete_read __P((int, void *, size_t));
+ /* read a complete buffer */
+
+/* Procedures exported from auth.c */
+void link_required __P((int)); /* we are starting to use the link */
+void start_link __P((int)); /* bring the link up now */
+void link_terminated __P((int)); /* we are finished with the link */
+void link_down __P((int)); /* the LCP layer has left the Opened state */
+void upper_layers_down __P((int));/* take all NCPs down */
+void link_established __P((int)); /* the link is up; authenticate now */
+void start_networks __P((int)); /* start all the network control protos */
+void continue_networks __P((int)); /* start network [ip, etc] control protos */
+void np_up __P((int, int)); /* a network protocol has come up */
+void np_down __P((int, int)); /* a network protocol has gone down */
+void np_finished __P((int, int)); /* a network protocol no longer needs link */
+void auth_peer_fail __P((int, int));
+ /* peer failed to authenticate itself */
+void auth_peer_success __P((int, int, int, char *, int));
+ /* peer successfully authenticated itself */
+void auth_withpeer_fail __P((int, int));
+ /* we failed to authenticate ourselves */
+void auth_withpeer_success __P((int, int, int));
+ /* we successfully authenticated ourselves */
+void auth_check_options __P((void));
+ /* check authentication options supplied */
+void auth_reset __P((int)); /* check what secrets we have */
+int check_passwd __P((int, char *, int, char *, int, char **));
+ /* Check peer-supplied username/password */
+int get_secret __P((int, char *, char *, char *, int *, int));
+ /* get "secret" for chap */
+int get_srp_secret __P((int unit, char *client, char *server, char *secret,
+ int am_server));
+int auth_ip_addr __P((int, u_int32_t));
+ /* check if IP address is authorized */
+int auth_number __P((void)); /* check if remote number is authorized */
+int bad_ip_adrs __P((u_int32_t));
+ /* check if IP address is unreasonable */
+
+/* Procedures exported from demand.c */
+void demand_conf __P((void)); /* config interface(s) for demand-dial */
+void demand_block __P((void)); /* set all NPs to queue up packets */
+void demand_unblock __P((void)); /* set all NPs to pass packets */
+void demand_discard __P((void)); /* set all NPs to discard packets */
+void demand_rexmit __P((int)); /* retransmit saved frames for an NP */
+int loop_chars __P((unsigned char *, int)); /* process chars from loopback */
+int loop_frame __P((unsigned char *, int)); /* should we bring link up? */
+
+/* Procedures exported from multilink.c */
+#ifdef HAVE_MULTILINK
+void mp_check_options __P((void)); /* Check multilink-related options */
+int mp_join_bundle __P((void)); /* join our link to an appropriate bundle */
+void mp_exit_bundle __P((void)); /* have disconnected our link from bundle */
+void mp_bundle_terminated __P((void));
+char *epdisc_to_str __P((struct epdisc *)); /* string from endpoint discrim. */
+int str_to_epdisc __P((struct epdisc *, char *)); /* endpt disc. from str */
+#else
+#define mp_bundle_terminated() /* nothing */
+#define mp_exit_bundle() /* nothing */
+#define doing_multilink 0
+#define multilink_master 0
+#endif
+
+/* Procedures exported from sys-*.c */
+void sys_init __P((void)); /* Do system-dependent initialization */
+void sys_cleanup __P((void)); /* Restore system state before exiting */
+int sys_check_options __P((void)); /* Check options specified */
+void sys_close __P((void)); /* Clean up in a child before execing */
+int ppp_available __P((void)); /* Test whether ppp kernel support exists */
+int get_pty __P((int *, int *, char *, int)); /* Get pty master/slave */
+int open_ppp_loopback __P((void)); /* Open loopback for demand-dialling */
+int tty_establish_ppp __P((int)); /* Turn serial port into a ppp interface */
+void tty_disestablish_ppp __P((int)); /* Restore port to normal operation */
+void generic_disestablish_ppp __P((int dev_fd)); /* Restore device setting */
+int generic_establish_ppp __P((int dev_fd)); /* Make a ppp interface */
+void make_new_bundle __P((int, int, int, int)); /* Create new bundle */
+int bundle_attach __P((int)); /* Attach link to existing bundle */
+void cfg_bundle __P((int, int, int, int)); /* Configure existing bundle */
+void destroy_bundle __P((void)); /* Tell driver to destroy bundle */
+void clean_check __P((void)); /* Check if line was 8-bit clean */
+void set_up_tty __P((int, int)); /* Set up port's speed, parameters, etc. */
+void restore_tty __P((int)); /* Restore port's original parameters */
+void setdtr __P((int, int)); /* Raise or lower port's DTR line */
+void output __P((int, u_char *, int)); /* Output a PPP packet */
+void wait_input __P((struct timeval *));
+ /* Wait for input, with timeout */
+void add_fd __P((int)); /* Add fd to set to wait for */
+void remove_fd __P((int)); /* Remove fd from set to wait for */
+int read_packet __P((u_char *)); /* Read PPP packet */
+int get_loop_output __P((void)); /* Read pkts from loopback */
+void tty_send_config __P((int, u_int32_t, int, int));
+ /* Configure i/f transmit parameters */
+void tty_set_xaccm __P((ext_accm));
+ /* Set extended transmit ACCM */
+void tty_recv_config __P((int, u_int32_t, int, int));
+ /* Configure i/f receive parameters */
+int ccp_test __P((int, u_char *, int, int));
+ /* Test support for compression scheme */
+void ccp_flags_set __P((int, int, int));
+ /* Set kernel CCP state */
+int ccp_fatal_error __P((int)); /* Test for fatal decomp error in kernel */
+int get_idle_time __P((int, struct ppp_idle *));
+ /* Find out how long link has been idle */
+int get_ppp_stats __P((int, struct pppd_stats *));
+ /* Return link statistics */
+void netif_set_mtu __P((int, int)); /* Set PPP interface MTU */
+int netif_get_mtu __P((int)); /* Get PPP interface MTU */
+int sifvjcomp __P((int, int, int, int));
+ /* Configure VJ TCP header compression */
+int sifup __P((int)); /* Configure i/f up for one protocol */
+int sifnpmode __P((int u, int proto, enum NPmode mode));
+ /* Set mode for handling packets for proto */
+int sifdown __P((int)); /* Configure i/f down for one protocol */
+int sifaddr __P((int, u_int32_t, u_int32_t, u_int32_t));
+ /* Configure IPv4 addresses for i/f */
+int cifaddr __P((int, u_int32_t, u_int32_t));
+ /* Reset i/f IP addresses */
+#ifdef INET6
+int sif6addr __P((int, eui64_t, eui64_t));
+ /* Configure IPv6 addresses for i/f */
+int cif6addr __P((int, eui64_t, eui64_t));
+ /* Remove an IPv6 address from i/f */
+#endif
+int sifdefaultroute __P((int, u_int32_t, u_int32_t));
+ /* Create default route through i/f */
+int cifdefaultroute __P((int, u_int32_t, u_int32_t));
+ /* Delete default route through i/f */
+int sifproxyarp __P((int, u_int32_t));
+ /* Add proxy ARP entry for peer */
+int cifproxyarp __P((int, u_int32_t));
+ /* Delete proxy ARP entry for peer */
+u_int32_t GetMask __P((u_int32_t)); /* Get appropriate netmask for address */
+int lock __P((char *)); /* Create lock file for device */
+int relock __P((int)); /* Rewrite lock file with new pid */
+void unlock __P((void)); /* Delete previously-created lock file */
+void logwtmp __P((const char *, const char *, const char *));
+ /* Write entry to wtmp file */
+int get_host_seed __P((void)); /* Get host-dependent random number seed */
+int have_route_to __P((u_int32_t)); /* Check if route to addr exists */
+#ifdef PPP_FILTER
+int set_filters __P((struct bpf_program *pass, struct bpf_program *active));
+ /* Set filter programs in kernel */
+#endif
+#ifdef IPX_CHANGE
+int sipxfaddr __P((int, unsigned long, unsigned char *));
+int cipxfaddr __P((int));
+#endif
+int get_if_hwaddr __P((u_char *addr, char *name));
+char *get_first_ethernet __P((void));
+
+/* Procedures exported from options.c */
+int setipaddr __P((char *, char **, int)); /* Set local/remote ip addresses */
+int parse_args __P((int argc, char **argv));
+ /* Parse options from arguments given */
+int options_from_file __P((char *filename, int must_exist, int check_prot,
+ int privileged));
+ /* Parse options from an options file */
+int options_from_user __P((void)); /* Parse options from user's .ppprc */
+int options_for_tty __P((void)); /* Parse options from /etc/ppp/options.tty */
+int options_from_list __P((struct wordlist *, int privileged));
+ /* Parse options from a wordlist */
+int getword __P((FILE *f, char *word, int *newlinep, char *filename));
+ /* Read a word from a file */
+void option_error __P((char *fmt, ...));
+ /* Print an error message about an option */
+int int_option __P((char *, int *));
+ /* Simplified number_option for decimal ints */
+void add_options __P((option_t *)); /* Add extra options */
+void check_options __P((void)); /* check values after all options parsed */
+int override_value __P((const char *, int, const char *));
+ /* override value if permitted by priority */
+void print_options __P((void (*) __P((void *, char *, ...)), void *));
+ /* print out values of all options */
+
+int parse_dotted_ip __P((char *, u_int32_t *));
+
+/*
+ * Hooks to enable plugins to change various things.
+ */
+extern int (*new_phase_hook) __P((int));
+extern int (*idle_time_hook) __P((struct ppp_idle *));
+extern int (*holdoff_hook) __P((void));
+extern int (*pap_check_hook) __P((void));
+extern int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp,
+ struct wordlist **paddrs,
+ struct wordlist **popts));
+extern void (*pap_logout_hook) __P((void));
+extern int (*pap_passwd_hook) __P((char *user, char *passwd));
+extern int (*allowed_address_hook) __P((u_int32_t addr));
+extern void (*ip_up_hook) __P((void));
+extern void (*ip_down_hook) __P((void));
+extern void (*ip_choose_hook) __P((u_int32_t *));
+
+extern int (*chap_check_hook) __P((void));
+extern int (*chap_passwd_hook) __P((char *user, char *passwd));
+extern void (*multilink_join_hook) __P((void));
+
+/* Let a plugin snoop sent and received packets. Useful for L2TP */
+extern void (*snoop_recv_hook) __P((unsigned char *p, int len));
+extern void (*snoop_send_hook) __P((unsigned char *p, int len));
+
+/*
+ * Inline versions of get/put char/short/long.
+ * Pointer is advanced; we assume that both arguments
+ * are lvalues and will already be in registers.
+ * cp MUST be u_char *.
+ */
+#define GETCHAR(c, cp) { \
+ (c) = *(cp)++; \
+}
+#define PUTCHAR(c, cp) { \
+ *(cp)++ = (u_char) (c); \
+}
+
+
+#define GETSHORT(s, cp) { \
+ (s) = *(cp)++ << 8; \
+ (s) |= *(cp)++; \
+}
+#define PUTSHORT(s, cp) { \
+ *(cp)++ = (u_char) ((s) >> 8); \
+ *(cp)++ = (u_char) (s); \
+}
+
+#define GETLONG(l, cp) { \
+ (l) = *(cp)++ << 8; \
+ (l) |= *(cp)++; (l) <<= 8; \
+ (l) |= *(cp)++; (l) <<= 8; \
+ (l) |= *(cp)++; \
+}
+#define PUTLONG(l, cp) { \
+ *(cp)++ = (u_char) ((l) >> 24); \
+ *(cp)++ = (u_char) ((l) >> 16); \
+ *(cp)++ = (u_char) ((l) >> 8); \
+ *(cp)++ = (u_char) (l); \
+}
+
+#define INCPTR(n, cp) ((cp) += (n))
+#define DECPTR(n, cp) ((cp) -= (n))
+
+/*
+ * System dependent definitions for user-level 4.3BSD UNIX implementation.
+ */
+
+#define TIMEOUT(r, f, t) timeout((r), (f), (t), 0)
+#define UNTIMEOUT(r, f) untimeout((r), (f))
+
+#define BCOPY(s, d, l) memcpy(d, s, l)
+#define BZERO(s, n) memset(s, 0, n)
+#define BCMP(s1, s2, l) memcmp(s1, s2, l)
+
+#define PRINTMSG(m, l) { info("Remote message: %0.*v", l, m); }
+
+/*
+ * MAKEHEADER - Add Header fields to a packet.
+ */
+#define MAKEHEADER(p, t) { \
+ PUTCHAR(PPP_ALLSTATIONS, p); \
+ PUTCHAR(PPP_UI, p); \
+ PUTSHORT(t, p); }
+
+/*
+ * Exit status values.
+ */
+#define EXIT_OK 0
+#define EXIT_FATAL_ERROR 1
+#define EXIT_OPTION_ERROR 2
+#define EXIT_NOT_ROOT 3
+#define EXIT_NO_KERNEL_SUPPORT 4
+#define EXIT_USER_REQUEST 5
+#define EXIT_LOCK_FAILED 6
+#define EXIT_OPEN_FAILED 7
+#define EXIT_CONNECT_FAILED 8
+#define EXIT_PTYCMD_FAILED 9
+#define EXIT_NEGOTIATION_FAILED 10
+#define EXIT_PEER_AUTH_FAILED 11
+#define EXIT_IDLE_TIMEOUT 12
+#define EXIT_CONNECT_TIME 13
+#define EXIT_CALLBACK 14
+#define EXIT_PEER_DEAD 15
+#define EXIT_HANGUP 16
+#define EXIT_LOOPBACK 17
+#define EXIT_INIT_FAILED 18
+#define EXIT_AUTH_TOPEER_FAILED 19
+#ifdef MAXOCTETS
+#define EXIT_TRAFFIC_LIMIT 20
+#endif
+#define EXIT_CNID_AUTH_FAILED 21
+
+/*
+ * Debug macros. Slightly useful for finding bugs in pppd, not particularly
+ * useful for finding out why your connection isn't being established.
+ */
+#ifdef DEBUGALL
+#define DEBUGMAIN 1
+#define DEBUGFSM 1
+#define DEBUGLCP 1
+#define DEBUGIPCP 1
+#define DEBUGIPV6CP 1
+#define DEBUGUPAP 1
+#define DEBUGCHAP 1
+#endif
+
+#ifndef LOG_PPP /* we use LOG_LOCAL2 for syslog by default */
+#if defined(DEBUGMAIN) || defined(DEBUGFSM) || defined(DEBUGSYS) \
+ || defined(DEBUGLCP) || defined(DEBUGIPCP) || defined(DEBUGUPAP) \
+ || defined(DEBUGCHAP) || defined(DEBUG) || defined(DEBUGIPV6CP)
+#define LOG_PPP LOG_LOCAL2
+#else
+#define LOG_PPP LOG_DAEMON
+#endif
+#endif /* LOG_PPP */
+
+#ifdef DEBUGMAIN
+#define MAINDEBUG(x) if (debug) dbglog x
+#else
+#define MAINDEBUG(x)
+#endif
+
+#ifdef DEBUGSYS
+#define SYSDEBUG(x) if (debug) dbglog x
+#else
+#define SYSDEBUG(x)
+#endif
+
+#ifdef DEBUGFSM
+#define FSMDEBUG(x) if (debug) dbglog x
+#else
+#define FSMDEBUG(x)
+#endif
+
+#ifdef DEBUGLCP
+#define LCPDEBUG(x) if (debug) dbglog x
+#else
+#define LCPDEBUG(x)
+#endif
+
+#ifdef DEBUGIPCP
+#define IPCPDEBUG(x) if (debug) dbglog x
+#else
+#define IPCPDEBUG(x)
+#endif
+
+#ifdef DEBUGIPV6CP
+#define IPV6CPDEBUG(x) if (debug) dbglog x
+#else
+#define IPV6CPDEBUG(x)
+#endif
+
+#ifdef DEBUGUPAP
+#define UPAPDEBUG(x) if (debug) dbglog x
+#else
+#define UPAPDEBUG(x)
+#endif
+
+#ifdef DEBUGCHAP
+#define CHAPDEBUG(x) if (debug) dbglog x
+#else
+#define CHAPDEBUG(x)
+#endif
+
+#ifdef DEBUGIPXCP
+#define IPXCPDEBUG(x) if (debug) dbglog x
+#else
+#define IPXCPDEBUG(x)
+#endif
+
+#ifndef SIGTYPE
+#if defined(sun) || defined(SYSV) || defined(POSIX_SOURCE)
+#define SIGTYPE void
+#else
+#define SIGTYPE int
+#endif /* defined(sun) || defined(SYSV) || defined(POSIX_SOURCE) */
+#endif /* SIGTYPE */
+
+#ifndef MIN
+#define MIN(a, b) ((a) < (b)? (a): (b))
+#endif
+#ifndef MAX
+#define MAX(a, b) ((a) > (b)? (a): (b))
+#endif
+
+#ifndef offsetof
+#define offsetof(type, member) ((size_t) &((type *)0)->member)
+#endif
+
+#endif /* __PPP_H__ */
diff --git a/package/crda/Makefile b/package/crda/Makefile
new file mode 100644
index 000000000..2b1d3a09f
--- /dev/null
+++ b/package/crda/Makefile
@@ -0,0 +1,53 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= crda
+PKG_VERSION:= 1.1.3
+PKG_RELEASE:= 1
+PKG_HASH:= aa8a7fe92f0765986c421a5b6768a185375ac210393df0605ee132f6754825f0
+PKG_DESCR:= central regulatory domain agent for wireless networks
+PKG_SECTION:= net/wifi
+PKG_DEPENDS:= libnl
+PKG_BUILDDEP:= libnl
+PKG_URL:= http://wireless.kernel.org/en/developers/Regulatory
+PKG_SITES:= http://linuxwireless.org/download/crda/
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
+
+PKG_FLAVOURS_CRDA:= WITH_UDEV
+PKGFD_WITH_UDEV:= install shipped udev rules
+PKGFS_WITH_UDEV:= udev
+PKGFB_WITH_UDEV:= eudev
+
+PKG_CHOICES_CRDA:= WITH_OPENSSL WITH_GCRYPT
+PKGCD_WITH_OPENSSL:= ssl support via openssl library
+PKGCD_WITH_GCRYPT:= ssl support via gcrypt library
+PKGCB_WITH_OPENSSL:= openssl
+PKGCB_WITH_GCRYPT:= libgcrypt
+PKGCS_WITH_OPENSSL:= libopenssl
+PKGCS_WITH_GCRYPT:= libgcrypt
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,CRDA,crda,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+ALL_TARGET:= all_noverify
+
+ifneq ($(ADK_PACKAGE_CRDA_WITH_OPENSSL),)
+XAKE_FLAGS+= USE_OPENSSL=1
+endif
+
+crda-install:
+ $(INSTALL_DIR) $(IDIR_CRDA)/usr/sbin
+ $(INSTALL_BIN) $(WRKINST)/sbin/{crda,regdbdump} \
+ $(IDIR_CRDA)/usr/sbin
+ifneq ($(ADK_PACKAGE_CRDA_WITH_UDEV),)
+ $(INSTALL_DIR) $(IDIR_CRDA)/lib/udev/rules.d
+ $(INSTALL_DATA) $(WRKINST)/lib/udev/rules.d/85-regulatory.rules \
+ $(IDIR_CRDA)/lib/udev/rules.d
+endif
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/cryptodev-linux/Makefile b/package/cryptodev-linux/Makefile
index b02bcaf4c..82e019acd 100644
--- a/package/cryptodev-linux/Makefile
+++ b/package/cryptodev-linux/Makefile
@@ -22,25 +22,23 @@ include ${ADK_TOPDIR}/mk/kernel-vars.mk
$(eval $(call PKG_template,CRYPTODEV_LINUX,cryptodev-linux,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
CONFIG_STYLE:= manual
-BUILD_STYLE:= manual
+XAKE_FLAGS+= CRYPTODEV_CFLAGS='-DENABLE_ASYNC -fhonour-copts' \
+ ARCH='${ADK_TARGET_KARCH}' \
+ KERNEL_DIR='${LINUX_DIR}' \
+ CROSS_COMPILE='${TARGET_CROSS}'
+ALL_TARGET:= build
INSTALL_STYLE:= manual
-do-build:
- ${MAKE} -C "${WRKBUILD}"/tests check
- ${MAKE} -C "${WRKBUILD}" version.h
- GCC_HONOUR_COPTS=0 LDFLAGS="" ${MAKE} -C ${LINUX_DIR} ${KERNEL_MAKE_OPTS} \
- M="${WRKBUILD}" modules
- ${INSTALL_DIR} ${WRKINST}/usr/include/crypto
- ${INSTALL_DATA} ${WRKBUILD}/crypto/cryptodev.h \
- ${WRKINST}/usr/include/crypto/
+post-build:
+ -${MAKE} -C "${WRKBUILD}"/tests check
do-install:
${INSTALL_DIR} ${IDIR_CRYPTODEV_LINUX}/usr/bin
for i in cipher cipher-aead hmac speed async_cipher async_hmac \
- async_speed sha_speed hashcrypt_speed fullspeed cipher-gcm \
- cipher-aead-srtp cipher_comp hash_comp hmac_comp; do \
+ async_speed sha_speed hashcrypt_speed fullspeed cipher-gcm \
+ cipher-aead-srtp cipher_comp hash_comp hmac_comp; do \
$(INSTALL_BIN) ${WRKBUILD}/tests/$$i ${IDIR_CRYPTODEV_LINUX}/usr/bin; \
- done
+ done
${INSTALL_DIR} ${IDIR_CRYPTODEV_LINUX}/usr/include/crypto
${INSTALL_DATA} ${WRKBUILD}/crypto/cryptodev.h \
${IDIR_CRYPTODEV_LINUX}/usr/include/crypto/
diff --git a/package/e2fsprogs/Makefile b/package/e2fsprogs/Makefile
index 2dd02edc4..83e3c66e0 100644
--- a/package/e2fsprogs/Makefile
+++ b/package/e2fsprogs/Makefile
@@ -4,28 +4,31 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= e2fsprogs
-PKG_VERSION:= 1.42.10
-PKG_RELEASE:= 3
-PKG_HASH:= 7b6e85c666d8fdd6062c75ba953de0e5481673bebef5f40f749a52a46476e29f
+PKG_VERSION:= 1.42.12
+PKG_RELEASE:= 1
+PKG_HASH:= 6dadcd3b759195150d20154ab9d6516e3b3cbb35d66d461f55ae94a2854e7de8
PKG_DESCR:= ext2/3/4 filesystem utilities
PKG_SECTION:= sys/fs
PKG_DEPENDS:= libpthread
PKG_BUILDDEP:= util-linux
PKG_URL:= http://e2fsprogs.sourceforge.net/
-PKG_SITES:= $(MASTER_SITE_SOURCEFORGE:=e2fsprogs/)
+PKG_SITES:= https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v$(PKG_VERSION)/
PKG_OPTS:= dev
PKG_NOPARALLEL:= 1
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
-
PKG_SUBPKGS:= LIBE2FS LIBCOM_ERR LIBSS
PKG_SUBPKGS+= RESIZE2FS TUNE2FS E2FSCK MKE2FS
+PKG_SUBPKGS+= E2FSCK_STATIC TUNE2FS_STATIC
PKGSD_LIBE2FS:= e2fsprogs library
PKGSC_LIBE2FS:= libs/misc
PKGSD_LIBCOM_ERR:= common error library
PKGSC_LIBCOM_ERR:= libs/misc
PKGSD_LIBSS:= subsystem command parsing library
PKGSC_LIBSS:= libs/misc
+PKGSD_E2FSCK_STATIC:= Static build of e2fsck
+PKGSC_E2FSCK_STATIC:= sys/fs
+PKGSD_TUNE2FS_STATIC:= Static build of tune2fs
+PKGSC_TUNE2FS_STATIC:= sys/fs
PKGSD_RESIZE2FS:= ext2/3/4 resize utility
PKGSC_RESIZE2FS:= sys/fs
PKGSS_RESIZE2FS:= libe2fs libcom-err libblkid
@@ -48,21 +51,26 @@ $(eval $(call PKG_template,TUNE2FS,tune2fs,$(PKG_VERSION)-$(PKG_RELEASE),$(PKGSS
$(eval $(call PKG_template,RESIZE2FS,resize2fs,$(PKG_VERSION)-$(PKG_RELEASE),$(PKGSS_RESIZE2FS),$(PKGSD_RESIZE2FS),$(PKGSC_RESIZE2FS)))
$(eval $(call PKG_template,MKE2FS,mke2fs,$(PKG_VERSION)-$(PKG_RELEASE),$(PKGSS_MKE2FS),$(PKGSD_MKE2FS),$(PKGSC_MKE2FS)))
$(eval $(call PKG_template,E2FSCK,e2fsck,$(PKG_VERSION)-$(PKG_RELEASE),$(PKGSS_E2FSCK),$(PKGSD_E2FSCK),$(PKGSC_E2FSCK)))
+$(eval $(call PKG_template,E2FSCK_STATIC,e2fsck-static,${PKG_VERSION}-${PKG_RELEASE},,${PKGSD_E2FSCK_STATIC},${PKGSC_E2FSCK_STATIC}))
+$(eval $(call PKG_template,TUNE2FS_STATIC,tune2fs-static,${PKG_VERSION}-${PKG_RELEASE},,${PKGSD_E2FSCK_STATIC},${PKGSC_E2FSCK_STATIC}))
+
ifeq ($(ADK_TARGET_USE_STATIC_LIBS),y)
-CONFIGURE_ARGS+= --disable-elf-shlibs \
- --enable-libblkid
+CONFIGURE_ARGS+= --disable-elf-shlibs
else
-CONFIGURE_ARGS+= --enable-elf-shlibs \
- --disable-libblkid
+CONFIGURE_ARGS+= --enable-elf-shlibs
endif
CONFIGURE_ARGS+= --disable-rpath \
- --disable-libuuid \
+ --enable-libuuid \
+ --disable-uuidd \
+ --enable-libblkid \
--disable-testio-debug \
--disable-debugfs \
+ --enable-verbose-makecmds \
--disable-defrag
TARGET_CFLAGS+= $(TARGET_CPPFLAGS) -I$(STAGING_TARGET_DIR)/usr/include
+#TARGET_LDFLAGS+= -L${WRKSRC}/lib -L${WRKSRC}/lib/ext2fs
MAKE_FLAGS+= BUILD_CC="$(HOST_CC)" \
BUILD_CFLAGS="$(HOST_CFLAGS) $(HOST_CPPFLAGS) -I$(WRKSRC)/lib -I." \
BUILD_LDFLAGS="$(HOST_LDFLAGS)"
@@ -106,4 +114,16 @@ libss-install:
$(CP) $(WRKINST)/usr/lib/libss.so* \
$(IDIR_LIBSS)/usr/lib
+e2fsck-static-install:
+ ${MAKE} -C ${WRKBUILD}/e2fsck e2fsck.static
+ ${INSTALL_DIR} ${IDIR_E2FSCK_STATIC}/usr/sbin
+ ${INSTALL_BIN} ${WRKBUILD}/e2fsck/e2fsck.static \
+ ${IDIR_E2FSCK_STATIC}/usr/sbin/e2fsck
+
+tune2fs-static-install:
+ ${MAKE} -C ${WRKBUILD}/misc tune2fs.static
+ ${INSTALL_DIR} ${IDIR_TUNE2FS_STATIC}/usr/sbin
+ ${INSTALL_BIN} ${WRKBUILD}/misc/tune2fs.static \
+ ${IDIR_TUNE2FS_STATIC}/usr/sbin/tune2fs
+
include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/e2fsprogs/patches/patch-debugfs_dump_c b/package/e2fsprogs/patches/patch-debugfs_dump_c
index 7e2868281..c244d28b8 100644
--- a/package/e2fsprogs/patches/patch-debugfs_dump_c
+++ b/package/e2fsprogs/patches/patch-debugfs_dump_c
@@ -1,5 +1,5 @@
---- e2fsprogs-1.42.4.orig/debugfs/dump.c 2012-05-29 03:29:43.000000000 +0200
-+++ e2fsprogs-1.42.4/debugfs/dump.c 2012-07-26 18:48:09.000000000 +0200
+--- e2fsprogs-1.42.12.orig/debugfs/dump.c 2014-08-05 00:58:23.000000000 +0200
++++ e2fsprogs-1.42.12/debugfs/dump.c 2015-02-24 13:49:24.673532944 +0100
@@ -22,7 +22,6 @@
#include <sys/types.h>
#include <sys/stat.h>
@@ -16,10 +16,10 @@
int i;
if (fd != -1)
-@@ -93,11 +91,6 @@ static void fix_perms(const char *cmd, c
-
- if (fd != -1)
- close(fd);
+@@ -90,11 +88,6 @@ static void fix_perms(const char *cmd, c
+ #endif
+ if (i == -1)
+ com_err(cmd, errno, "while changing ownership of %s", name);
-
- ut.actime = inode->i_atime;
- ut.modtime = inode->i_mtime;
diff --git a/package/e2fsprogs/patches/patch-debugfs_logdump_c b/package/e2fsprogs/patches/patch-debugfs_logdump_c
index bc00efb0d..1e18e799a 100644
--- a/package/e2fsprogs/patches/patch-debugfs_logdump_c
+++ b/package/e2fsprogs/patches/patch-debugfs_logdump_c
@@ -1,5 +1,5 @@
---- e2fsprogs-1.42.4.orig/debugfs/logdump.c 2012-06-04 18:42:23.000000000 +0200
-+++ e2fsprogs-1.42.4/debugfs/logdump.c 2012-07-26 18:48:09.000000000 +0200
+--- e2fsprogs-1.42.12.orig/debugfs/logdump.c 2014-07-06 06:13:18.000000000 +0200
++++ e2fsprogs-1.42.12/debugfs/logdump.c 2015-02-24 13:49:37.416495054 +0100
@@ -22,7 +22,6 @@
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/package/e2fsprogs/patches/patch-debugfs_set_fields_c b/package/e2fsprogs/patches/patch-debugfs_set_fields_c
index 6168cd0c5..ce738b2e2 100644
--- a/package/e2fsprogs/patches/patch-debugfs_set_fields_c
+++ b/package/e2fsprogs/patches/patch-debugfs_set_fields_c
@@ -1,5 +1,5 @@
---- e2fsprogs-1.42.4.orig/debugfs/set_fields.c 2012-06-04 18:42:23.000000000 +0200
-+++ e2fsprogs-1.42.4/debugfs/set_fields.c 2012-07-26 18:48:09.000000000 +0200
+--- e2fsprogs-1.42.12.orig/debugfs/set_fields.c 2014-08-19 14:24:52.000000000 +0200
++++ e2fsprogs-1.42.12/debugfs/set_fields.c 2015-02-24 13:49:44.483474041 +0100
@@ -34,7 +34,6 @@
#include <strings.h>
#endif
diff --git a/package/e2fsprogs/patches/patch-e2fsck_Makefile_in b/package/e2fsprogs/patches/patch-e2fsck_Makefile_in
new file mode 100644
index 000000000..9bafdabee
--- /dev/null
+++ b/package/e2fsprogs/patches/patch-e2fsck_Makefile_in
@@ -0,0 +1,11 @@
+--- e2fsprogs-1.42.12.orig/e2fsck/Makefile.in 2014-08-02 22:26:22.000000000 +0200
++++ e2fsprogs-1.42.12/e2fsck/Makefile.in 2015-02-24 13:53:08.463908514 +0100
+@@ -120,7 +120,7 @@ e2fsck: $(OBJS) $(DEPLIBS)
+
+ e2fsck.static: $(OBJS) $(STATIC_DEPLIBS)
+ $(E) " LD $@"
+- $(Q) $(LD) $(LDFLAGS_STATIC) -o e2fsck.static $(OBJS) $(STATIC_LIBS)
++ $(LD) $(LDFLAGS_STATIC) -o e2fsck.static $(OBJS) $(STATIC_LIBS)
+
+ e2fsck.profiled: $(OBJS) $(PROFILED_DEPLIBS)
+ $(E) " LD $@"
diff --git a/package/e2fsprogs/patches/patch-misc_Makefile_in b/package/e2fsprogs/patches/patch-misc_Makefile_in
index 614725007..78d736745 100644
--- a/package/e2fsprogs/patches/patch-misc_Makefile_in
+++ b/package/e2fsprogs/patches/patch-misc_Makefile_in
@@ -1,50 +1,15 @@
---- e2fsprogs-1.42.10.orig/misc/Makefile.in 2014-05-15 19:04:08.000000000 +0200
-+++ e2fsprogs-1.42.10/misc/Makefile.in 2014-07-08 21:15:18.000000000 +0200
-@@ -17,9 +17,6 @@ INSTALL = @INSTALL@
- @IMAGER_CMT@E2IMAGE_PROG= e2image
- @IMAGER_CMT@E2IMAGE_MAN= e2image.8
-
--@UUIDD_CMT@UUIDD_PROG= uuidd
--@UUIDD_CMT@UUIDD_MAN= uuidd.8
--
- @BLKID_CMT@BLKID_PROG= blkid
- @BLKID_CMT@BLKID_MAN= blkid.8
-
-@@ -35,8 +32,8 @@ SMANPAGES= tune2fs.8 mklost+found.8 mke2
- $(UUIDD_MAN) $(E4DEFRAG_MAN) @FSCK_MAN@
- FMANPAGES= mke2fs.conf.5 ext4.5
-
--UPROGS= chattr lsattr @UUID_CMT@ uuidgen
--UMANPAGES= chattr.1 lsattr.1 @UUID_CMT@ uuidgen.1
-+UPROGS= chattr lsattr
-+UMANPAGES= chattr.1 lsattr.1
-
- LPROGS= @E2INITRD_PROG@
-
-@@ -46,8 +43,6 @@ MKE2FS_OBJS= mke2fs.o util.o profile.o p
- mk_hugefiles.o
- CHATTR_OBJS= chattr.o
- LSATTR_OBJS= lsattr.o
--UUIDGEN_OBJS= uuidgen.o
--UUIDD_OBJS= uuidd.o
- DUMPE2FS_OBJS= dumpe2fs.o
- BADBLOCKS_OBJS= badblocks.o
- E2IMAGE_OBJS= e2image.o
-@@ -64,8 +59,6 @@ PROFILED_MKE2FS_OBJS= profiled/mke2fs.o
- profiled/prof_err.o profiled/default_profile.o
- PROFILED_CHATTR_OBJS= profiled/chattr.o
- PROFILED_LSATTR_OBJS= profiled/lsattr.o
--PROFILED_UUIDGEN_OBJS= profiled/uuidgen.o
--PROFILED_UUIDD_OBJS= profiled/uuidd.o
- PROFILED_DUMPE2FS_OBJS= profiled/dumpe2fs.o
- PROFILED_BADBLOCKS_OBJS= profiled/badblocks.o
- PROFILED_E2IMAGE_OBJS= profiled/e2image.o
-@@ -80,7 +73,7 @@ PROFILED_E4DEFRAG_OBJS= profiled/e4defra
- SRCS= $(srcdir)/tune2fs.c $(srcdir)/mklost+found.c $(srcdir)/mke2fs.c $(srcdir)/mk_hugefiles.c \
- $(srcdir)/chattr.c $(srcdir)/lsattr.c $(srcdir)/dumpe2fs.c \
- $(srcdir)/badblocks.c $(srcdir)/fsck.c $(srcdir)/util.c \
-- $(srcdir)/uuidgen.c $(srcdir)/blkid.c $(srcdir)/logsave.c \
-+ $(srcdir)/blkid.c $(srcdir)/logsave.c \
- $(srcdir)/filefrag.c $(srcdir)/base_device.c \
- $(srcdir)/ismounted.c $(srcdir)/../e2fsck/profile.c \
- $(srcdir)/e2undo.c $(srcdir)/e2freefrag.c
+ when linking tune2fs.static, pass libs in the correct order
+ (libuuid.a depends on libext2fs.a and therefore needs to come before that)
+--- e2fsprogs-1.42.12.orig/misc/Makefile.in 2014-08-03 01:41:18.000000000 +0200
++++ e2fsprogs-1.42.12/misc/Makefile.in 2015-02-10 18:19:51.022952937 +0100
+@@ -165,8 +165,8 @@ tune2fs: $(TUNE2FS_OBJS) $(DEPLIBS) $(DE
+ tune2fs.static: $(TUNE2FS_OBJS) $(STATIC_DEPLIBS) $(STATIC_LIBE2P) $(DEPSTATIC_LIBBLKID)
+ $(E) " LD $@"
+ $(Q) $(CC) $(LDFLAGS_STATIC) -o tune2fs.static $(TUNE2FS_OBJS) \
+- $(STATIC_LIBS) $(STATIC_LIBBLKID) $(STATIC_LIBUUID) \
+- $(STATIC_LIBQUOTA) $(STATIC_LIBE2P) $(LIBINTL) $(SYSLIBS)
++ $(STATIC_LIBBLKID) $(STATIC_LIBUUID) \
++ $(STATIC_LIBQUOTA) $(STATIC_LIBE2P) $(STATIC_LIBS) $(LIBINTL) $(SYSLIBS)
+
+ tune2fs.profiled: $(TUNE2FS_OBJS) $(PROFILED_DEPLIBS) \
+ $(PROFILED_E2P) $(DEPPROFILED_LIBBLKID) $(DEPPROFILED_LIBUUID) \
diff --git a/package/e2fsprogs/patches/patch-misc_e2initrd_helper_c b/package/e2fsprogs/patches/patch-misc_e2initrd_helper_c
index 736c1c948..aca847680 100644
--- a/package/e2fsprogs/patches/patch-misc_e2initrd_helper_c
+++ b/package/e2fsprogs/patches/patch-misc_e2initrd_helper_c
@@ -1,5 +1,5 @@
---- e2fsprogs-1.42.4.orig/misc/e2initrd_helper.c 2012-03-18 19:18:33.000000000 +0100
-+++ e2fsprogs-1.42.4/misc/e2initrd_helper.c 2012-07-26 18:48:09.000000000 +0200
+--- e2fsprogs-1.42.12.orig/misc/e2initrd_helper.c 2014-07-03 16:33:48.000000000 +0200
++++ e2fsprogs-1.42.12/misc/e2initrd_helper.c 2015-02-24 13:53:24.429861041 +0100
@@ -24,7 +24,6 @@
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/package/e2fsprogs/patches/patch-misc_e2undo_c b/package/e2fsprogs/patches/patch-misc_e2undo_c
index bc9fdb619..5281364a7 100644
--- a/package/e2fsprogs/patches/patch-misc_e2undo_c
+++ b/package/e2fsprogs/patches/patch-misc_e2undo_c
@@ -1,6 +1,6 @@
optind seems to need unistd.h, not only getopt.h
---- e2fsprogs-1.42.4.orig/misc/e2undo.c 2012-03-18 19:18:33.000000000 +0100
-+++ e2fsprogs-1.42.4/misc/e2undo.c 2012-07-26 18:48:09.000000000 +0200
+--- e2fsprogs-1.42.12.orig/misc/e2undo.c 2014-07-03 16:33:48.000000000 +0200
++++ e2fsprogs-1.42.12/misc/e2undo.c 2015-02-24 13:53:30.092844203 +0100
@@ -20,6 +20,7 @@
#if HAVE_ERRNO_H
#include <errno.h>
diff --git a/package/e2fsprogs/patches/patch-util_subst_c b/package/e2fsprogs/patches/patch-util_subst_c
index 601f7fa92..2874794d6 100644
--- a/package/e2fsprogs/patches/patch-util_subst_c
+++ b/package/e2fsprogs/patches/patch-util_subst_c
@@ -1,6 +1,6 @@
---- e2fsprogs-1.42.10.orig/util/subst.c 2014-05-15 19:04:08.000000000 +0200
-+++ e2fsprogs-1.42.10/util/subst.c 2014-07-08 21:18:41.000000000 +0200
-@@ -358,7 +358,7 @@ int main(int argc, char **argv)
+--- e2fsprogs-1.42.12.orig/util/subst.c 2014-08-02 22:26:22.000000000 +0200
++++ e2fsprogs-1.42.12/util/subst.c 2015-02-24 13:53:42.034808695 +0100
+@@ -363,7 +363,7 @@ int main(int argc, char **argv)
if (fd > 0) {
/* save the original atime, if possible */
if (fstat(fd, &stbuf) == 0) {
diff --git a/package/ebtables/patches/patch-Makefile b/package/ebtables/patches/patch-Makefile
index f4e293eaf..3cbce1353 100644
--- a/package/ebtables/patches/patch-Makefile
+++ b/package/ebtables/patches/patch-Makefile
@@ -22,66 +22,3 @@
ifeq ($(shell uname -m),sparc64)
CFLAGS+=-DEBT_MIN_ALIGN=8 -DKERNEL_64_USERSPACE_32
-@@ -157,31 +157,31 @@ tmp3:=$(shell printf $(PIPE) | sed 's/\/
- scripts: ebtables-save ebtables.sysv ebtables-config
- cat ebtables-save | sed 's/__EXEC_PATH__/$(tmp1)/g' > ebtables-save_
- mkdir -p $(DESTDIR)$(BINDIR)
-- install -m 0755 -o root -g root ebtables-save_ $(DESTDIR)$(BINDIR)/ebtables-save
-+ install -m 0755 ebtables-save_ $(DESTDIR)$(BINDIR)/ebtables-save
- cat ebtables.sysv | sed 's/__EXEC_PATH__/$(tmp1)/g' | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables.sysv_
- if [ "$(DESTDIR)" != "" ]; then mkdir -p $(DESTDIR)$(INITDIR); fi
-- if test -d $(DESTDIR)$(INITDIR); then install -m 0755 -o root -g root ebtables.sysv_ $(DESTDIR)$(INITDIR)/ebtables; fi
-+ if test -d $(DESTDIR)$(INITDIR); then install -m 0755 ebtables.sysv_ $(DESTDIR)$(INITDIR)/ebtables; fi
- cat ebtables-config | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables-config_
- if [ "$(DESTDIR)" != "" ]; then mkdir -p $(DESTDIR)$(SYSCONFIGDIR); fi
-- if test -d $(DESTDIR)$(SYSCONFIGDIR); then install -m 0600 -o root -g root ebtables-config_ $(DESTDIR)$(SYSCONFIGDIR)/ebtables-config; fi
-+ if test -d $(DESTDIR)$(SYSCONFIGDIR); then install -m 0600 ebtables-config_ $(DESTDIR)$(SYSCONFIGDIR)/ebtables-config; fi
- rm -f ebtables-save_ ebtables.sysv_ ebtables-config_
-
- tmp4:=$(shell printf $(LOCKFILE) | sed 's/\//\\\//g')
- $(MANDIR)/man8/ebtables.8: ebtables.8
- mkdir -p $(DESTDIR)$(@D)
- sed -e 's/$$(VERSION)/$(PROGVERSION)/' -e 's/$$(DATE)/$(PROGDATE)/' -e 's/$$(LOCKFILE)/$(tmp4)/' ebtables.8 > ebtables.8_
-- install -m 0644 -o root -g root ebtables.8_ $(DESTDIR)$@
-+ install -m 0644 ebtables.8_ $(DESTDIR)$@
- rm -f ebtables.8_
-
- $(DESTDIR)$(ETHERTYPESFILE): ethertypes
- mkdir -p $(@D)
-- install -m 0644 -o root -g root $< $@
-+ install -m 0644 $< $@
-
- .PHONY: exec
- exec: ebtables ebtables-restore
- mkdir -p $(DESTDIR)$(BINDIR)
-- install -m 0755 -o root -g root $(PROGNAME) $(DESTDIR)$(BINDIR)/$(PROGNAME)
-- install -m 0755 -o root -g root ebtables-restore $(DESTDIR)$(BINDIR)/ebtables-restore
-+ install -m 0755 $(PROGNAME) $(DESTDIR)$(BINDIR)/$(PROGNAME)
-+ install -m 0755 ebtables-restore $(DESTDIR)$(BINDIR)/ebtables-restore
-
- .PHONY: install
- install: $(MANDIR)/man8/ebtables.8 $(DESTDIR)$(ETHERTYPESFILE) exec scripts
-@@ -205,18 +205,18 @@ release:
- rm -f extensions/ebt_inat.c
- rm -rf $(CVSDIRS)
- mkdir -p include/linux/netfilter_bridge
-- install -m 0644 -o root -g root \
-+ install -m 0644 \
- $(KERNEL_INCLUDES)/linux/netfilter_bridge.h include/linux/
- # To keep possible compile error complaints about undefined ETH_P_8021Q
- # off my back
-- install -m 0644 -o root -g root \
-+ install -m 0644 \
- $(KERNEL_INCLUDES)/linux/if_ether.h include/linux/
-- install -m 0644 -o root -g root \
-+ install -m 0644 \
- $(KERNEL_INCLUDES)/linux/types.h include/linux/
-- install -m 0644 -o root -g root \
-+ install -m 0644 \
- $(KERNEL_INCLUDES)/linux/netfilter_bridge/*.h \
- include/linux/netfilter_bridge/
-- install -m 0644 -o root -g root \
-+ install -m 0644 \
- include/ebtables.h include/linux/netfilter_bridge/
- make clean
- touch *
diff --git a/package/elfutils/Makefile b/package/elfutils/Makefile
new file mode 100644
index 000000000..825ab10eb
--- /dev/null
+++ b/package/elfutils/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 $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= elfutils
+PKG_VERSION:= 0.161
+PKG_RELEASE:= 1
+PKG_HASH:= 570c91a1783fa5386aaa2dfdd08dda1de777c2b63bf3b9c1437d635ffdd7a070
+PKG_DESCR:= libraries/utilities to handle elf objects (drop in replacement for libelf)
+PKG_SECTION:= base/libs
+PKG_URL:= https://fedorahosted.org/elfutils/
+PKG_SITES:= https://fedorahosted.org/releases/e/l/elfutils/$(PKG_VERSION)/
+
+# require argp()
+PKG_LIBC_DEPENDS:= glibc
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,ELFUTILS,elfutils,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+# not only because we pass -DNDEBUG, this package won't build with -Werror
+TARGET_CFLAGS+= -Wno-error
+
+elfutils-install:
+ $(INSTALL_DIR) $(IDIR_ELFUTILS)/usr/lib/elfutils
+ $(CP) $(WRKINST)/usr/lib/lib{asm,dw,elf}*.so* \
+ $(IDIR_ELFUTILS)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/elfutils/libebl*.so \
+ $(IDIR_ELFUTILS)/usr/lib/elfutils
+ $(INSTALL_DIR) $(IDIR_ELFUTILS)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/* \
+ $(IDIR_ELFUTILS)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/gdb/Makefile b/package/gdb/Makefile
index 8cb1b5b8f..3dbe4d2f9 100644
--- a/package/gdb/Makefile
+++ b/package/gdb/Makefile
@@ -43,5 +43,7 @@ XAKE_FLAGS+= GCC_HONOUR_COPTS:=s
gdb-install:
${INSTALL_DIR} ${IDIR_GDB}/usr/bin
${INSTALL_BIN} ${WRKINST}/usr/bin/gdb ${IDIR_GDB}/usr/bin/
+ # shipped libbfd conflicts with system wide one
+ rm -f ${WRKINST}/usr/lib/libbfd*
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/hwids/Makefile b/package/hwids/Makefile
new file mode 100644
index 000000000..ceeca3a72
--- /dev/null
+++ b/package/hwids/Makefile
@@ -0,0 +1,61 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= hwids
+PKG_VERSION:= 20150129
+PKG_RELEASE:= 1
+PKG_HASH:= 33a7f4dbf14704076b0fe1d0052e86bb618e386a1ff18107097311df44f979d7
+PKG_DESCR:= combined repository of pci.ids and usb.ids
+PKG_SECTION:= sys/hw
+PKG_URL:= https://github.com/gentoo/hwids
+PKG_SITES:= https://github.com/gentoo/hwids/archive/
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+# typical problem of having tags like '<name>-<version>' in github
+WRKDIST= $(WRKDIR)/$(PKG_NAME)-$(PKG_NAME)-$(PKG_VERSION)
+
+PKG_SUBPKGS:= HWIDS_NET HWIDS_PCI HWIDS_USB
+PKGSD_HWIDS_NET:= HWIDS files oui.txt and iab.txt
+PKGSD_HWIDS_PCI:= HWIDS file pci.ids
+PKGSD_HWIDS_USB:= HWIDS file usb.ids
+
+PKG_FLAVOURS_HWIDS:= WITH_GZIP
+PKGFD_WITH_GZIP:= gzip pci.ids and usb.ids before installation
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,HWIDS_NET,hwids-net,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_HWIDS_NET),$(PKG_SECTION)))
+$(eval $(call PKG_template,HWIDS_PCI,hwids-pci,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_HWIDS_PCI),$(PKG_SECTION)))
+$(eval $(call PKG_template,HWIDS_USB,hwids-usb,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_HWIDS_USB),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+XAKE_FLAGS+= NET=yes \
+ PCI=yes \
+ UDEV=no \
+ USB=yes
+# note: Can't pass GZIP=yes to make, as this will turn it
+# into an env var automatically which makes gzip trip.
+# Therefore assume here that GZIP=yes is the default.
+ifneq ($(ADK_PACKAGE_HWIDS_WITH_GZIP),y)
+XAKE_FLAGS+= GZIP=no
+endif
+
+define HWIDS_INSTALL_template
+$(2)-install:
+ $$(INSTALL_DIR) $$(IDIR_$(1))/usr/share/misc
+ $$(INSTALL_DATA) $$(patsubst %,$$(WRKINST)/usr/share/misc/%,$(3)) \
+ $$(IDIR_$(1))/usr/share/misc/
+endef
+
+$(eval $(call HWIDS_INSTALL_template,HWIDS_NET,hwids-net,oui.txt iab.txt))
+ifeq ($(ADK_PACKAGE_HWIDS_WITH_GZIP),y)
+$(eval $(call HWIDS_INSTALL_template,HWIDS_PCI,hwids-pci,pci.ids.gz))
+$(eval $(call HWIDS_INSTALL_template,HWIDS_USB,hwids-usb,usb.ids.gz))
+else
+$(eval $(call HWIDS_INSTALL_template,HWIDS_PCI,hwids-pci,pci.ids))
+$(eval $(call HWIDS_INSTALL_template,HWIDS_USB,hwids-usb,usb.ids))
+endif
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/i2400m-fw/Makefile b/package/i2400m-fw/Makefile
new file mode 100644
index 000000000..85aef1ecd
--- /dev/null
+++ b/package/i2400m-fw/Makefile
@@ -0,0 +1,30 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= i2400m-fw
+PKG_VERSION:= 1.5.0
+PKG_RELEASE:= 1
+PKG_HASH:= edcb7c5322c0185173a2dc79b3df4bc74964edfa741ebf9a09cd70a32d758c3d
+PKG_DESCR:= intel (R) wimax 5150/5350/6250 firmware
+PKG_SECTION:= sys/firmware
+PKG_URL:= http://www.linuxwimax.org
+PKG_SITES:= "http://www.linuxwimax.org/Download?action=AttachFile&do=get&target="
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,I2400M_FW,i2400m-fw,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
+
+do-install:
+ $(INSTALL_DIR) $(IDIR_I2400M_FW)/lib/firmware
+ $(INSTALL_DATA) $(WRKDIST)/*-fw-usb-*.sbcf \
+ $(IDIR_I2400M_FW)/lib/firmware/
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/inotify-tools/Makefile b/package/inotify-tools/Makefile
new file mode 100644
index 000000000..82ea714d4
--- /dev/null
+++ b/package/inotify-tools/Makefile
@@ -0,0 +1,41 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= inotify-tools
+PKG_VERSION:= 3.14
+PKG_RELEASE:= 1
+PKG_HASH:= 222bcca8893d7bf8a1ce207fb39ceead5233b5015623d099392e95197676c92f
+PKG_DESCR:= command line programs providing a simple interface to inotify
+PKG_SECTION:= sys/fs
+PKG_URL:= https://github.com/rvoicilas/inotify-tools/wiki
+PKG_SITES:= http://github.com/downloads/rvoicilas/inotify-tools/
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+PKG_SUBPKGS:= INOTIFYWAIT INOTIFYWATCH LIBINOTIFYTOOLS
+PKGSC_LIBINOTIFYTOOLS:= libs/misc
+PKGSD_INOTIFYWAIT:= wait for changes to files using inotify
+PKGSD_INOTIFYWATCH:= gather filesystem access statistics using inotify
+PKGSD_LIBINOTIFYTOOLS:= inotify tools library
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,INOTIFYWAIT,inotifywait,$(PKG_VERSION)-$(PKG_RELEASE),libinotifytools,$(PKGSD_INOTIFYWAIT),$(PKG_SECTION)))
+$(eval $(call PKG_template,INOTIFYWATCH,inotifywatch,$(PKG_VERSION)-$(PKG_RELEASE),libinotifytools,$(PKGSD_INOTIFYWATCH),$(PKG_SECTION)))
+$(eval $(call PKG_template,LIBINOTIFYTOOLS,libinotifytools,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_LIBINOTIFYTOOLS),$(PKGSC_LIBINOTIFYTOOLS)))
+
+inotifywait-install:
+ $(INSTALL_DIR) $(IDIR_INOTIFYWAIT)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/inotifywait $(IDIR_INOTIFYWAIT)/usr/bin
+
+inotifywatch-install:
+ $(INSTALL_DIR) $(IDIR_INOTIFYWATCH)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/inotifywatch $(IDIR_INOTIFYWATCH)/usr/bin
+
+libinotifytools-install:
+ $(INSTALL_DIR) $(IDIR_LIBINOTIFYTOOLS)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libinotifytools.so* $(IDIR_LIBINOTIFYTOOLS)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/ipmitool/Makefile b/package/ipmitool/Makefile
new file mode 100644
index 000000000..2fec3dd77
--- /dev/null
+++ b/package/ipmitool/Makefile
@@ -0,0 +1,28 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= ipmitool
+PKG_VERSION:= 1.8.15
+PKG_RELEASE:= 1
+PKG_HASH:= f0964e644a8e693932a3e8da6929d5598ed24645bacd51fbb1a4a09b5e47cf78
+PKG_DESCR:= utility for controlling ipmi enabled devices
+PKG_SECTION:= net/misc
+PKG_URL:= http://ipmitool.sf.net/
+PKG_SITES:= $(MASTER_SITE_SOURCEFORGE:=ipmitool/)
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,IPMITOOL,ipmitool,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIGURE_ENV+= ac_cv_func_malloc_0_nonnull=yes
+
+ipmitool-install:
+ $(INSTALL_DIR) $(IDIR_IPMITOOL)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/ipmitool \
+ $(IDIR_IPMITOOL)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/kismet/patches/patch-Makefile_in b/package/kismet/patches/patch-Makefile_in
deleted file mode 100644
index 97a3cad75..000000000
--- a/package/kismet/patches/patch-Makefile_in
+++ /dev/null
@@ -1,60 +0,0 @@
---- kismet-2011-01-R1.orig/Makefile.in 2010-12-19 15:20:16.000000000 +0100
-+++ kismet-2011-01-R1/Makefile.in 2011-02-04 23:14:39.000000000 +0100
-@@ -112,26 +112,26 @@ commoninstall:
-
- if test -e $(NC); then \
- echo "Installing client"; \
-- $(INSTALL) -o $(INSTUSR) -g $(INSTGRP) -m 555 scripts/kismet $(BIN)/kismet; \
-- $(INSTALL) -o $(INSTUSR) -g $(INSTGRP) -m 555 $(NC) $(BIN)/$(NC); \
-+ $(INSTALL) -m 555 scripts/kismet $(BIN)/kismet; \
-+ $(INSTALL) -m 555 $(NC) $(BIN)/$(NC); \
- fi;
-- $(INSTALL) -o $(INSTUSR) -g $(INSTGRP) -m 555 $(PS) $(BIN)/$(PS);
-- $(INSTALL) -o $(INSTUSR) -g $(INSTGRP) -m 555 $(DRONE) $(BIN)/$(DRONE);
-+ $(INSTALL) -m 555 $(PS) $(BIN)/$(PS);
-+ $(INSTALL) -m 555 $(DRONE) $(BIN)/$(DRONE);
-
- mkdir -p $(MAN)/man1
-- $(INSTALL) -o $(INSTUSR) -g $(MANGRP) -m 644 man/kismet.1 $(MAN)/man1/kismet.1
-- $(INSTALL) -o $(INSTUSR) -g $(MANGRP) -m 644 man/kismet_drone.1 $(MAN)/man1/kismet_drone.1
-+ $(INSTALL) -m 644 man/kismet.1 $(MAN)/man1/kismet.1
-+ $(INSTALL) -m 644 man/kismet_drone.1 $(MAN)/man1/kismet_drone.1
-
- mkdir -p $(MAN)/man5
-- $(INSTALL) -o $(INSTUSR) -g $(MANGRP) -m 644 man/kismet.conf.5 $(MAN)/man5/kismet.conf.5
-- $(INSTALL) -o $(INSTUSR) -g $(MANGRP) -m 644 man/kismet_drone.conf.5 $(MAN)/man5/kismet_drone.conf.5
-+ $(INSTALL) -m 644 man/kismet.conf.5 $(MAN)/man5/kismet.conf.5
-+ $(INSTALL) -m 644 man/kismet_drone.conf.5 $(MAN)/man5/kismet_drone.conf.5
-
- mkdir -p $(WAV)
-- $(INSTALL) -o $(INSTUSR) -g $(INSTGRP) -m 644 wav/new.wav $(WAV)/new.wav
-- $(INSTALL) -o $(INSTUSR) -g $(INSTGRP) -m 644 wav/packet.wav $(WAV)/packet.wav
-- $(INSTALL) -o $(INSTUSR) -g $(INSTGRP) -m 644 wav/alert.wav $(WAV)/alert.wav
-- $(INSTALL) -o $(INSTUSR) -g $(INSTGRP) -m 644 wav/gpslost.wav $(WAV)/gpslost.wav
-- $(INSTALL) -o $(INSTUSR) -g $(INSTGRP) -m 644 wav/gpslock.wav $(WAV)/gpslock.wav
-+ $(INSTALL) -m 644 wav/new.wav $(WAV)/new.wav
-+ $(INSTALL) -m 644 wav/packet.wav $(WAV)/packet.wav
-+ $(INSTALL) -m 644 wav/alert.wav $(WAV)/alert.wav
-+ $(INSTALL) -m 644 wav/gpslost.wav $(WAV)/gpslost.wav
-+ $(INSTALL) -m 644 wav/gpslock.wav $(WAV)/gpslock.wav
-
- suidinstall: $(CS)
- -groupadd -f $(SUIDGROUP)
-@@ -174,7 +174,7 @@ install: $(INSTBINS)
- echo "if there have been any changes to the base config you will need"; \
- echo "to add them to your config file."; \
- else \
-- $(INSTALL) -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet.conf $(ETC)/kismet.conf; \
-+ $(INSTALL) -m 644 conf/kismet.conf $(ETC)/kismet.conf; \
- echo install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet.conf $(ETC)/kismet.conf; \
- echo "Installed config into $(ETC)/kismet.conf."; \
- fi
-@@ -183,7 +183,7 @@ install: $(INSTBINS)
- echo "if there have been any changes to the base config you will need"; \
- echo "to add them to your config file."; \
- else \
-- $(INSTALL) -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \
-+ $(INSTALL) -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \
- echo install -o $(INSTUSR) -g $(INSTGRP) -m 644 conf/kismet_drone.conf $(ETC)/kismet_drone.conf; \
- echo "Installed drone config into $(ETC)/kismet_drone.conf."; \
- fi
diff --git a/package/ldd/Makefile b/package/ldd/Makefile
new file mode 100644
index 000000000..587f27acb
--- /dev/null
+++ b/package/ldd/Makefile
@@ -0,0 +1,26 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+include $(ADK_TOPDIR)/toolchain/glibc/Makefile.inc
+
+PKG_NAME:= ldd
+PKG_DESCR:= Shared library dependency display tool
+PKG_SECTION:= dev/tools
+PKG_DEPENDS:= glibc bash
+PKG_BUILDDEP:= glibc
+NO_DISTFILES:= 1
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LDD,$(PKG_NAME),$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
+
+do-install:
+ $(INSTALL_DIR) $(IDIR_LDD)/usr/bin
+ ${INSTALL_BIN} ${STAGING_TARGET_DIR}/usr/bin/ldd ${IDIR_LDD}/usr/bin
+
+include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/libpcap/Makefile b/package/libpcap/Makefile
index d0b333e5e..618b04d21 100644
--- a/package/libpcap/Makefile
+++ b/package/libpcap/Makefile
@@ -4,12 +4,11 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libpcap
-PKG_VERSION:= 1.6.1
+PKG_VERSION:= 1.6.2
PKG_RELEASE:= 1
-PKG_HASH:= 116cbb3ac9e96d5dd7b39638a2f894a67fa3dcf06d794e6dae2b9a942ad13476
+PKG_HASH:= 5db3e2998f1eeba2c76da55da5d474248fe19c44f49e15cac8a796a2c7e19690
PKG_DESCR:= low-level packet capture library
PKG_SECTION:= libs/net
-PKG_BUILDDEP:= m4-host flex-host bison-host libnl
PKG_URL:= http://www.tcpdump.org/
PKG_SITES:= http://www.tcpdump.org/release/
PKG_OPTS:= dev
@@ -23,23 +22,19 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,LIBPCAP,libpcap,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
+XAKE_FLAGS+= GCC_HONOUR_COPTS=s
CONFIGURE_ENV+= ac_cv_linux_vers=26
CONFIGURE_ARGS+= --disable-yydebug \
- --with-build-cc=$(CC_FOR_BUILD) \
--disable-dbus \
--without-libnl \
--with-pcap=linux
-TARGET_CFLAGS+= ${TARGET_CPPFLAGS}
INSTALL_TARGET= install install-shared
-MAKE_FLAGS+= STAGING_TARGET_DIR=$(STAGING_TARGET_DIR)
-XAKE_FLAGS+= GCC_HONOUR_COPTS=s
ifneq (${ADK_PACKAGE_LIBPCAP_WITH_IPV6},)
CONFIGURE_ARGS+= --enable-ipv6
else
CONFIGURE_ARGS+= --disable-ipv6
endif
-#XAKE_FLAGS+= M4=m4
libpcap-install:
${INSTALL_DIR} ${IDIR_LIBPCAP}/usr/lib
diff --git a/package/libpcap/patch-Makefile_in b/package/libpcap/patch-Makefile_in
new file mode 100644
index 000000000..cd7bdc961
--- /dev/null
+++ b/package/libpcap/patch-Makefile_in
@@ -0,0 +1,14 @@
+ Use $(sort) here, which implicitly removes duplicates.
+ Otherwise our CFLAGS are passed in via CCOPT and CFLAGS leading
+ to duplicate -fhonour-copts passing.
+--- libpcap-1.6.2.orig/Makefile.in 2014-07-03 00:12:49.000000000 +0200
++++ libpcap-1.6.2/Makefile.in 2014-09-12 15:12:48.567519024 +0200
+@@ -61,7 +61,7 @@ DEPENDENCY_CFLAG = @DEPENDENCY_CFLAG@
+ PROG=libpcap
+
+ # Standard CFLAGS
+-FULL_CFLAGS = $(CCOPT) $(INCLS) $(DEFS) $(CFLAGS)
++FULL_CFLAGS = $(sort $(CCOPT) $(INCLS) $(DEFS) $(CFLAGS))
+
+ INSTALL = @INSTALL@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
diff --git a/package/libqmi/Makefile b/package/libqmi/Makefile
new file mode 100644
index 000000000..8f041d2ae
--- /dev/null
+++ b/package/libqmi/Makefile
@@ -0,0 +1,30 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libqmi
+PKG_VERSION:= 1.12.4
+PKG_RELEASE:= 1
+PKG_HASH:= 5527342bc869400d2a9c3038d66ec8ef87980aefb6c7aae593a13ebfee686a15
+PKG_DESCR:= qmi modem protocol helper library
+PKG_SECTION:= libs/net
+PKG_DEPENDS:= glib
+PKG_BUILDDEP:= glib
+PKG_URL:= http://cgit.freedesktop.org/libqmi/
+PKG_SITES:= http://cgit.freedesktop.org/libqmi/snapshot/
+PKG_OPTS:= dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBQMI,libqmi,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+AUTOTOOL_STYLE:= autogen
+
+libqmi-install:
+ $(INSTALL_DIR) $(IDIR_LIBQMI)/usr/{bin,lib}
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/qmi{-network,cli} \
+ $(IDIR_LIBQMI)/usr/bin
+ $(CP) $(WRKINST)/usr/lib/libqmi-glib.so* $(IDIR_LIBQMI)/usr/lib/
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libqmi/patches/patch-Makefile_am b/package/libqmi/patches/patch-Makefile_am
new file mode 100644
index 000000000..e064743aa
--- /dev/null
+++ b/package/libqmi/patches/patch-Makefile_am
@@ -0,0 +1,13 @@
+ do not enable gtk-doc
+--- libqmi-1.12.4.orig/Makefile.am 2015-02-10 17:31:06.000000000 +0100
++++ libqmi-1.12.4/Makefile.am 2015-02-20 18:20:29.213191733 +0100
+@@ -4,8 +4,7 @@ SUBDIRS = . data build-aux src utils doc
+ ACLOCAL_AMFLAGS = -I m4
+
+ DISTCHECK_CONFIGURE_FLAGS = \
+- --with-udev-base-dir="$$dc_install_base" \
+- --enable-gtk-doc
++ --with-udev-base-dir="$$dc_install_base"
+
+ EXTRA_DIST = \
+ gtester.make \
diff --git a/package/libqmi/patches/patch-autogen_sh b/package/libqmi/patches/patch-autogen_sh
new file mode 100644
index 000000000..cba4e8ea6
--- /dev/null
+++ b/package/libqmi/patches/patch-autogen_sh
@@ -0,0 +1,11 @@
+ - drop doc stuff which we don't have
+--- libqmi-1.12.4.orig/autogen.sh 2015-02-10 17:31:06.000000000 +0100
++++ libqmi-1.12.4/autogen.sh 2015-02-20 18:05:46.425974772 +0100
+@@ -14,7 +14,6 @@ PKG_NAME=libqmi
+ }
+
+ (cd $srcdir;
+- gtkdocize || exit 1
+ mkdir -p m4
+ touch README NEWS ChangeLog
+ autoreconf --force --install --verbose
diff --git a/package/libqmi/patches/patch-configure_ac b/package/libqmi/patches/patch-configure_ac
new file mode 100644
index 000000000..37f519c4e
--- /dev/null
+++ b/package/libqmi/patches/patch-configure_ac
@@ -0,0 +1,12 @@
+--- libqmi-1.12.4.orig/configure.ac 2015-02-10 17:31:06.000000000 +0100
++++ libqmi-1.12.4/configure.ac 2015-02-27 22:15:42.000000000 +0100
+@@ -76,9 +76,6 @@ AC_SUBST(GLIB_LIBS)
+ GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
+ AC_SUBST(GLIB_MKENUMS)
+
+-dnl Documentation
+-GTK_DOC_CHECK(1.0)
+-
+ # QMI username
+ QMI_USERNAME="root"
+ AC_ARG_ENABLE(qmi-username,
diff --git a/package/libqmi/patches/patch-docs_reference_libqmi-glib_Makefile_am b/package/libqmi/patches/patch-docs_reference_libqmi-glib_Makefile_am
new file mode 100644
index 000000000..39fa9c415
--- /dev/null
+++ b/package/libqmi/patches/patch-docs_reference_libqmi-glib_Makefile_am
@@ -0,0 +1,25 @@
+ - try to avoid having to have gtk-doc stuff
+ - and try to prevent the mess involved with it
+--- libqmi-1.12.4.orig/docs/reference/libqmi-glib/Makefile.am 2015-02-10 17:31:06.000000000 +0100
++++ libqmi-1.12.4/docs/reference/libqmi-glib/Makefile.am 2015-02-20 18:24:30.739430307 +0100
+@@ -73,9 +73,9 @@ expand_content_files =
+
+ extra_files =
+
+-include $(top_srcdir)/gtk-doc.make
++#include $(top_srcdir)/gtk-doc.make
+
+-EXTRA_DIST += \
++EXTRA_DIST = \
+ libqmi-glib-common.sections \
+ $(DOC_MODULE)-sections.txt \
+ $(DOC_MODULE)-sections.mstamp \
+@@ -83,7 +83,7 @@ EXTRA_DIST += \
+ $(DIAGRAMS) \
+ $(NULL)
+
+-CLEANFILES += \
++CLEANFILES = \
+ $(DOC_MODULE)-decl-list.txt \
+ $(DOC_MODULE)-decl.txt \
+ $(DOC_MODULE)-overrides.txt \
diff --git a/package/mISDN/Makefile b/package/mISDN/Makefile
new file mode 100644
index 000000000..348f1da0d
--- /dev/null
+++ b/package/mISDN/Makefile
@@ -0,0 +1,35 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= mISDN
+PKG_VERSION:= 1_1_9_2
+PKG_RELEASE:= 1
+PKG_HASH:= 9ff96d8361891b9a15cf6dbdb57214c36ca13702d5bf7c18ebe259ec5d876c09
+PKG_DESCR:= new isdn stack of the linux kernel
+PKG_SECTION:= net/voip
+PKG_URL:= http://www.misdn.org
+PKG_SITES:= http://www.misdn.org/downloads/releases/
+
+PKG_CFLINE_MISDN:= depends on ADK_BROKEN
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/kernel-ver.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,MISDN,misdn,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+XAKE_FLAGS+= LINUX=$(LINUX_DIR) KVERS=$(KERNEL_VERSION)
+FAKE_FLAGS+= INSTALL_PREFIX=$(WRKINST)
+
+misdn-install:
+ $(INSTALL_DIR) $(IDIR_MISDN)/usr/sbin
+ $(INSTALL_BIN) $(WRKINST)/usr/sbin/{mISDN,misdn-init} \
+ $(IDIR_MISDN)/usr/sbin
+ $(INSTALL_DIR) $(IDIR_MISDN)/lib/modules
+ $(CP) $(WRKINST)/lib/modules/* $(IDIR_MISDN)/lib/modules/
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/mISDN/patches/patch-Makefile b/package/mISDN/patches/patch-Makefile
new file mode 100644
index 000000000..e3a582632
--- /dev/null
+++ b/package/mISDN/patches/patch-Makefile
@@ -0,0 +1,53 @@
+ - do not use /lib for kernel source dir detection
+ - drop some non-compiling card drivers
+ - do not run depmod and stuff
+--- mISDN-1_1_9_2.orig/Makefile 2009-06-09 10:41:07.000000000 +0200
++++ mISDN-1_1_9_2/Makefile 2011-07-11 15:04:00.996001762 +0200
+@@ -14,9 +14,14 @@ ifndef KVERS
+ KVERS:=$(shell uname -r)
+ endif
+
++ifndef LINUX
+ MODS=/lib/modules/$(KVERS)
+ LINUX=$(MODS)/build
+ LINUX_SOURCE=$(MODS)/source
++else
++LINUX_SOURCE=${LINUX}
++endif
++
+ UPDATE_MODULES=$(shell which update-modules)
+ MODULES_UPDATE=$(shell which modules-update)
+ DEPMOD=$(shell which depmod)
+@@ -30,15 +35,15 @@ MISDN_SRC=$(MISDNDIR)/drivers/isdn/hardw
+
+ CONFIGS+=CONFIG_MISDN_DRV=m
+ CONFIGS+=CONFIG_MISDN_DSP=m
+-CONFIGS+=CONFIG_MISDN_HFCMULTI=m
+-CONFIGS+=CONFIG_MISDN_HFCPCI=m
++#CONFIGS+=CONFIG_MISDN_HFCMULTI=m
++#CONFIGS+=CONFIG_MISDN_HFCPCI=m
+ CONFIGS+=CONFIG_MISDN_HFCUSB=m
+ CONFIGS+=CONFIG_MISDN_XHFC=m
+-CONFIGS+=CONFIG_MISDN_HFCMINI=m
+-CONFIGS+=CONFIG_MISDN_W6692=m
+-CONFIGS+=CONFIG_MISDN_SPEEDFAX=m
+-CONFIGS+=CONFIG_MISDN_AVM_FRITZ=m
+-CONFIGS+=CONFIG_MISDN_NETJET=m
++#CONFIGS+=CONFIG_MISDN_HFCMINI=m
++#CONFIGS+=CONFIG_MISDN_W6692=m
++#CONFIGS+=CONFIG_MISDN_SPEEDFAX=m
++#CONFIGS+=CONFIG_MISDN_AVM_FRITZ=m
++#CONFIGS+=CONFIG_MISDN_NETJET=m
+ CONFIGS+=CONFIG_MISDN_DEBUGTOOL=m
+
+ #CONFIGS+=CONFIG_MISDN_NETDEV=y
+@@ -52,9 +57,6 @@ all: VERSION test_old_misdn test_new_mis
+ export MINCLUDES=$(MISDNDIR)/include ; export MISDNVERSION=$(MISDNVERSION); make -C $(LINUX) SUBDIRS=$(MISDN_SRC) modules $(CONFIGS)
+
+ install: all modules-install misdn-init
+- $(DEPMOD)
+- $(UPDATE_MODULES)
+- $(MODULES_UPDATE)
+ make -C config install
+
+ modules-install:
diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_contr_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_contr_c
new file mode 100644
index 000000000..e33bde4c5
--- /dev/null
+++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_contr_c
@@ -0,0 +1,65 @@
+ - capi_ctr_reseted has been renamed in linux kernel commit
+ 4e329972052c3649367b91de783f6293b8653cb2
+ - kernel now wants a struc file_operations for proc files
+--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/contr.c 2009-01-22 14:36:34.000000000 +0100
++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/contr.c 2011-07-15 18:33:55.765001537 +0200
+@@ -367,17 +367,12 @@ procinfo(struct capi_ctr *ctrl)
+ }
+
+ static int
+-read_proc(char *page, char **start, off_t off, int count, int *eof, struct capi_ctr *ctrl)
++proc_show(struct seq_file *file, void *data)
+ {
+- int len = 0;
++ struct capi_ctr *ctrl = file->private;
+
+- len += sprintf(page+len, "mISDN_read_proc\n");
+- if (off+count >= len)
+- *eof = 1;
+- if (len < off)
+- return 0;
+- *start = page + off;
+- return ((count < len-off) ? count : len-off);
++ seq_printf(file, "mISDN_proc_show\n");
++ return 0;
+ };
+
+
+@@ -399,7 +394,7 @@ ResetController(struct capi_ctr *ctrl)
+ #ifdef OLDCAPI_DRIVER_INTERFACE
+ contr->ctrl->reseted(contr->ctrl);
+ #else
+- capi_ctr_reseted(contr->ctrl);
++ capi_ctr_down(contr->ctrl);
+ #endif
+ }
+
+@@ -601,6 +596,19 @@ ControllerPutStatus(Controller_t *contr,
+ contrDebug(contr, CAPI_DBG_CONTR, "%s: %s", __FUNCTION__, msg);
+ }
+
++static int misdn_proc_open(struct inode *inode, struct file *file)
++{
++ return single_open(file, proc_show, PDE(inode)->data);
++}
++
++static const struct file_operations misdn_proc_fops = {
++ .owner = THIS_MODULE,
++ .open = misdn_proc_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = single_release,
++};
++
+ int
+ ControllerConstr(Controller_t **contr_p, mISDNstack_t *st, mISDN_pid_t *pid, mISDNobject_t *ocapi)
+ {
+@@ -719,7 +727,7 @@ ControllerConstr(Controller_t **contr_p,
+ contr->ctrl->load_firmware = LoadFirmware;
+ contr->ctrl->reset_ctr = ResetController;
+ contr->ctrl->procinfo = procinfo;
+- contr->ctrl->ctr_read_proc = read_proc;
++ contr->ctrl->proc_fops = &misdn_proc_fops;
+ retval = attach_capi_ctr(contr->ctrl);
+ #endif
+ if (!retval) {
diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_c
new file mode 100644
index 000000000..ab96e3189
--- /dev/null
+++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_c
@@ -0,0 +1,75 @@
+ - old lock initialisers got renamed
+ - init_MUTEX_LOCKED got dropped, use the real sema_init instead
+ - force sysfs-object creation
+--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/core.c 2009-06-09 10:08:45.000000000 +0200
++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/core.c 2011-07-20 16:42:18.342001559 +0200
+@@ -23,10 +23,10 @@ static char *mISDN_core_version = MISDN
+ static void (*dt_new_frame) (mISDNstack_t *stack, enum mISDN_dt_type type, struct sk_buff *skb, int duplicate_skb) = NULL;
+
+ LIST_HEAD(mISDN_objectlist);
+-static rwlock_t mISDN_objects_lock = RW_LOCK_UNLOCKED;
++static rwlock_t mISDN_objects_lock = __RW_LOCK_UNLOCKED(old_style_rw_init);
+
+ LIST_HEAD(mISDN_modulelist);
+-static rwlock_t mISDN_modules_lock = RW_LOCK_UNLOCKED;
++static rwlock_t mISDN_modules_lock = __RW_LOCK_UNLOCKED(old_style_rw_init);
+ struct modulelist {
+ struct list_head list;
+ struct module *module;
+@@ -35,7 +35,7 @@ struct modulelist {
+ int core_debug;
+
+ static u_char entityarray[MISDN_MAX_ENTITY/8];
+-static spinlock_t entity_lock = SPIN_LOCK_UNLOCKED;
++static spinlock_t entity_lock = __SPIN_LOCK_UNLOCKED(old_style_spin_init);
+
+ static uint debug;
+ static int obj_id;
+@@ -724,7 +724,7 @@ int mISDN_register(mISDNobject_t *obj) {
+ obj->id);
+ if (core_debug & DEBUG_CORE_FUNC)
+ printk(KERN_DEBUG "mISDN_register: obj(%p)\n", obj);
+-#ifndef SYSFS_SUPPORT_2_6_24
++//#ifndef SYSFS_SUPPORT_2_6_24
+ retval = mISDN_register_sysfs_obj(obj);
+ if (retval) {
+ printk(KERN_ERR "mISDN_register class_device_register return(%d)\n", retval);
+@@ -732,7 +732,7 @@ int mISDN_register(mISDNobject_t *obj) {
+ list_del(&obj->list);
+ write_unlock_irqrestore(&mISDN_objects_lock, flags);
+ }
+-#endif
++//#endif
+ return(retval);
+ }
+
+@@ -758,9 +758,10 @@ int mISDN_unregister(mISDNobject_t *obj)
+ if (core_debug & DEBUG_CORE_FUNC)
+ printk(KERN_DEBUG "mISDN_unregister: mISDN_objectlist(%p<-%p->%p)\n",
+ mISDN_objectlist.prev, &mISDN_objectlist, mISDN_objectlist.next);
++ mISDN_unregister_sysfs_obj(obj);
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+ #ifdef SYSFS_SUPPORT
+- device_unregister(&obj->class_dev);
++ //device_unregister(&obj->class_dev);
+ #endif
+ #else
+ class_device_unregister(&obj->class_dev);
+@@ -774,7 +775,7 @@ mISDNInit(void)
+ struct semaphore sem;
+ int err;
+
+- init_MUTEX_LOCKED(&sem);
++ sema_init(&sem, 0);
+
+ printk(KERN_INFO "Modular ISDN Stack core version (%s) revision (%s)\n", mISDN_core_version, mISDN_core_revision);
+ core_debug = debug;
+@@ -817,7 +818,7 @@ sysfs_fail:
+ void mISDN_cleanup(void) {
+ struct semaphore sem;
+
+- init_MUTEX_LOCKED(&sem);
++ sema_init(&sem, 0);
+
+ free_mISDNdev();
+ if (!list_empty(&mISDN_objectlist)) {
diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_h b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_h
new file mode 100644
index 000000000..bea80f3de
--- /dev/null
+++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_h
@@ -0,0 +1,19 @@
+ - daemonize is defined in linux/sched.h
+--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/core.h 2009-01-22 14:36:34.000000000 +0100
++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/core.h 2011-07-20 16:42:17.471001559 +0200
+@@ -4,6 +4,7 @@
+ *
+ */
+
++#include <linux/sched.h>
+ #include <linux/slab.h>
+ #include <linux/string.h>
+ #include <linux/mISDNif.h>
+@@ -61,6 +62,7 @@ extern mISDNinstance_t *get_instance(mIS
+
+ /* from sysfs_obj.c */
+ extern int mISDN_register_sysfs_obj(mISDNobject_t *);
++extern void mISDN_unregister_sysfs_obj(mISDNobject_t *);
+ extern int mISDN_sysfs_init(void);
+ extern void mISDN_sysfs_cleanup(void);
+
diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_debugtool_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_debugtool_c
new file mode 100644
index 000000000..78ffe69f4
--- /dev/null
+++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_debugtool_c
@@ -0,0 +1,49 @@
+ - big kernel lock unavailable
+ - CLASS_ATTR callbacks changed signature
+--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/debugtool.c 2009-01-22 14:36:34.000000000 +0100
++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/debugtool.c 2011-07-11 14:46:28.845001528 +0200
+@@ -121,11 +121,11 @@ static void dt_run (void)
+ struct socket *sock;
+ struct sockaddr_in addr;
+
+- lock_kernel();
++ //lock_kernel();
+ current->flags |= PF_NOFREEZE;
+ daemonize(MODULE_NAME);
+ allow_signal(SIGKILL);
+- unlock_kernel();
++ //unlock_kernel();
+
+ /* init socket */
+ ret = sock_create(AF_INET, SOCK_DGRAM, IPPROTO_UDP, &sock);
+@@ -181,12 +181,12 @@ static struct class dt_class = {
+ #endif
+ };
+
+-static ssize_t attr_show_enabled (struct class *class, char *buf)
++static ssize_t attr_show_enabled (struct class *class, struct class_attribute *attr, char *buf)
+ {
+ return sprintf(buf, "%d\n", dt_enabled);
+ }
+
+-static ssize_t attr_store_enabled (struct class *class, const char *buf, size_t count)
++static ssize_t attr_store_enabled (struct class *class, struct class_attribute *attr, const char *buf, size_t count)
+ {
+ if (count > 0 && *buf == '1') {
+ mISDN_dt_enable();
+@@ -241,13 +241,13 @@ void __exit dt_exit(void)
+ mISDN_module_unregister(THIS_MODULE);
+
+ if (thread) {
+- lock_kernel();
++ //lock_kernel();
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+ ret = kill_pid(find_pid_ns(thread->pid, &init_pid_ns), SIGKILL, 1);
+ #else
+ ret = kill_proc(thread->pid, SIGKILL, 1);
+ #endif
+- unlock_kernel();
++ //unlock_kernel();
+ if (ret < 0)
+ printk(KERN_INFO MODULE_NAME ": Unknown error (%d) while trying to terminate kernel thread!\n", -ret);
+ wake_up_interruptible(&skb_q_wait);
diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_hfcs_usb_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_hfcs_usb_c
new file mode 100644
index 000000000..f8501ef02
--- /dev/null
+++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_hfcs_usb_c
@@ -0,0 +1,17 @@
+ - add the viprinet ISDN USB device ID
+ - some debug output
+--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/hfcs_usb.c 2009-01-22 14:36:34.000000000 +0100
++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/hfcs_usb.c 2011-07-20 15:00:25.362001559 +0200
+@@ -208,6 +208,12 @@ static struct usb_device_id hfcsusb_idta
+ {LED_SCHEME1, {0x88, -64, -32, -16},
+ "ZyXEL OMNI.NET USB II"}),
+ },
++ {
++ USB_DEVICE(0x18d8, 0x1020),
++ .driver_info = (unsigned long) &((hfcsusb_vdata)
++ {LED_SCHEME1, {0, 1, 0, 0},
++ "Viprinet ISDN"}),
++ },
+ { }
+ };
+
diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_stack_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_stack_c
new file mode 100644
index 000000000..972660318
--- /dev/null
+++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_stack_c
@@ -0,0 +1,34 @@
+ - same as with core.c
+ - try forcing sysfs-object creation
+--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/stack.c 2009-01-22 14:36:34.000000000 +0100
++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/stack.c 2011-07-20 16:43:13.224001559 +0200
+@@ -9,9 +9,9 @@
+ #include "core.h"
+
+ static LIST_HEAD(mISDN_stacklist);
+-static rwlock_t stacklist_lock = RW_LOCK_UNLOCKED;
++static rwlock_t stacklist_lock = __RW_LOCK_UNLOCKED(old_style_rw_init);
+ static LIST_HEAD(mISDN_instlist);
+-static rwlock_t instlist_lock = RW_LOCK_UNLOCKED;
++static rwlock_t instlist_lock = __RW_LOCK_UNLOCKED(old_style_rw_init);
+
+ int
+ get_stack_cnt(void)
+@@ -793,7 +793,7 @@ delete_stack(mISDNstack_t *st)
+ struct semaphore sem;
+ u_long flags;
+
+- init_MUTEX_LOCKED(&sem);
++ sema_init(&sem, 0);
+
+ if (core_debug & DEBUG_CORE_FUNC)
+ printk(KERN_DEBUG "%s: st(%p:%08x)\n", __FUNCTION__, st, st->id);
+@@ -1216,7 +1216,7 @@ clear_stack(mISDNstack_t *st, int wait)
+
+ if (wait) {
+ struct semaphore sem;
+- init_MUTEX_LOCKED(&sem);
++ sema_init(&sem, 0);
+
+ hhe->data[0] = &sem;
+ _queue_message(st, skb);
diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_inst_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_inst_c
new file mode 100644
index 000000000..bdc1d1397
--- /dev/null
+++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_inst_c
@@ -0,0 +1,30 @@
+ - see core.c
+--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/sysfs_inst.c 2009-06-09 10:09:20.000000000 +0200
++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/sysfs_inst.c 2011-07-11 14:08:22.920000979 +0200
+@@ -82,7 +82,7 @@ static void release_mISDN_inst(struct de
+ #endif
+ if (core_debug & DEBUG_SYSFS)
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+- printk(KERN_INFO "release instance class dev %s\n", dev->bus_id);
++ printk(KERN_INFO "release instance class dev %s\n", kobject_name(&dev->kobj));
+ #else
+ printk(KERN_INFO "release instance class dev %s\n", dev->class_id);
+ #endif
+@@ -99,7 +99,7 @@ static void release_mISDN_inst(struct cl
+ #endif
+ if (core_debug & DEBUG_SYSFS)
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+- printk(KERN_INFO "release instance class dev %s\n", dev->bus_id);
++ printk(KERN_INFO "release instance class dev %s\n", kobject_name(&dev->kobj));
+ #else
+ printk(KERN_INFO "release instance class dev %s\n", dev->class_id);
+ #endif
+@@ -127,7 +127,7 @@ mISDN_register_sysfs_inst(mISDNinstance_
+
+ inst->class_dev.class = &inst_dev_class;
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+- snprintf(inst->class_dev.bus_id, BUS_ID_SIZE, "inst-%08x", inst->id);
++ dev_set_name(&inst->class_dev, "inst-%08x", inst->id);
+ err = device_register(&inst->class_dev);
+ #else
+ snprintf(inst->class_dev.class_id, BUS_ID_SIZE, "inst-%08x", inst->id);
diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_obj_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_obj_c
new file mode 100644
index 000000000..80434a1ba
--- /dev/null
+++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_obj_c
@@ -0,0 +1,33 @@
+ - bus_id field is gone from struct device now
+--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/sysfs_obj.c 2009-06-09 08:20:29.000000000 +0200
++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/sysfs_obj.c 2011-07-20 16:49:35.771001557 +0200
+@@ -136,7 +136,7 @@ mISDN_register_sysfs_obj(mISDNobject_t *
+
+ obj->class_dev.class = &obj_dev_class;
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+- snprintf(obj->class_dev.bus_id, BUS_ID_SIZE, "obj-%d", obj->id);
++ dev_set_name(&obj->class_dev, "obj-%d", obj->id);
+ err = device_register(&obj->class_dev);
+ #else
+ snprintf(obj->class_dev.class_id, BUS_ID_SIZE, "obj-%d", obj->id);
+@@ -181,6 +181,20 @@ out:
+ return(err);
+ }
+
++void
++mISDN_unregister_sysfs_obj(mISDNobject_t *obj) {
++#ifdef SYSFS_SUPPORT
++ if (obj->owner)
++ sysfs_remove_link(&obj->class_dev.kobj, "module");
++ sysfs_remove_group(&obj->class_dev.kobj, &DPROTO_group);
++ sysfs_remove_group(&obj->class_dev.kobj, &BPROTO_group);
++#endif
++ device_remove_file(&obj->class_dev, &dev_attr_refcnt);
++ device_remove_file(&obj->class_dev, &dev_attr_name);
++ device_remove_file(&obj->class_dev, &dev_attr_id);
++ device_unregister(&obj->class_dev);
++}
++
+ int
+ mISDN_sysfs_init(void) {
+ int err;
diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_st_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_st_c
new file mode 100644
index 000000000..61d88e3fc
--- /dev/null
+++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_st_c
@@ -0,0 +1,18 @@
+ yeah, same as always
+--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/sysfs_st.c 2009-06-09 10:10:16.000000000 +0200
++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/sysfs_st.c 2011-07-11 14:10:50.061001669 +0200
+@@ -260,11 +260,11 @@ mISDN_register_sysfs_stack(mISDNstack_t
+ st->class_dev.class = &stack_dev_class;
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+ if (st->id & FLG_CHILD_STACK)
+- snprintf(st->class_dev.bus_id, BUS_ID_SIZE, "chst-%08x", st->id);
++ dev_set_name(&st->class_dev, "chst-%08x", st->id);
+ else if (st->id & FLG_CLONE_STACK)
+- snprintf(st->class_dev.bus_id, BUS_ID_SIZE, "clst-%08x", st->id);
++ dev_set_name(&st->class_dev, "clst-%08x", st->id);
+ else
+- snprintf(st->class_dev.bus_id, BUS_ID_SIZE, "st-%08x", st->id);
++ dev_set_name(&st->class_dev, "st-%08x", st->id);
+ if (st->mgr)
+ st->class_dev.parent = st->mgr->class_dev.parent;
+ err = device_register(&st->class_dev);
diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_udevice_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_udevice_c
new file mode 100644
index 000000000..468bd0dcb
--- /dev/null
+++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_udevice_c
@@ -0,0 +1,36 @@
+ - same as with core.c
+--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/udevice.c 2009-01-22 14:36:34.000000000 +0100
++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/udevice.c 2011-07-11 13:54:44.650001546 +0200
+@@ -57,7 +57,7 @@ typedef struct entity_item {
+ } entity_item_t;
+
+ static LIST_HEAD(mISDN_devicelist);
+-static rwlock_t mISDN_device_lock = RW_LOCK_UNLOCKED;
++static rwlock_t mISDN_device_lock = __RW_LOCK_UNLOCKED(old_style_rw_init);
+
+ static mISDNobject_t udev_obj;
+ static char MName[] = "UserDevice";
+@@ -1458,7 +1458,7 @@ init_device(u_int minor) {
+ init_waitqueue_head(&dev->wport.procq);
+ skb_queue_head_init(&dev->rport.queue);
+ skb_queue_head_init(&dev->wport.queue);
+- init_MUTEX(&dev->io_sema);
++ sema_init(&dev->io_sema, 1);
+ INIT_LIST_HEAD(&dev->layerlist);
+ INIT_LIST_HEAD(&dev->stacklist);
+ INIT_LIST_HEAD(&dev->timerlist);
+@@ -1557,12 +1557,12 @@ mISDN_open(struct inode *ino, struct fil
+ return(-ENOMEM);
+ dev->open_mode |= filep->f_mode & (FMODE_READ | FMODE_WRITE);
+ if (dev->open_mode & FMODE_READ){
+- dev->rport.lock = SPIN_LOCK_UNLOCKED;
++ dev->rport.lock = __SPIN_LOCK_UNLOCKED(old_style_spin_init);
+ dev->rport.maxqlen = DEFAULT_PORT_QUEUELEN;
+ test_and_set_bit(FLG_mISDNPORT_OPEN, &dev->rport.Flag);
+ }
+ if (dev->open_mode & FMODE_WRITE) {
+- dev->wport.lock = SPIN_LOCK_UNLOCKED;
++ dev->wport.lock = __SPIN_LOCK_UNLOCKED(old_style_spin_init);
+ dev->wport.maxqlen = DEFAULT_PORT_QUEUELEN;
+ test_and_set_bit(FLG_mISDNPORT_OPEN, &dev->wport.Flag);
+ }
diff --git a/package/mISDNuser/Makefile b/package/mISDNuser/Makefile
new file mode 100644
index 000000000..d840e2f24
--- /dev/null
+++ b/package/mISDNuser/Makefile
@@ -0,0 +1,35 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= mISDNuser
+PKG_VERSION:= 1_1_9
+PKG_RELEASE:= 1
+PKG_MD5SUM:= e174a60e7040c88d1184364714e55c1b
+PKG_DESCR:= misdn kernel link library and includes, this is the out-of-tree version
+PKG_SECTION:= net/voip
+PKG_DEPENDS:= misdn
+PKG_BUILDDEP:= mISDN
+PKG_URL:= http://www.misdn.org
+PKG_SITES:= http://www.misdn.org/downloads/releases/
+PKG_NOPARALLEL:= 1
+
+PKG_CFLINE_MISDNUSER:= depends on ADK_BROKEN
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,MISDNUSER,misdnuser,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+XAKE_FLAGS+= MISDNDIR=$(STAGING_TARGET_DIR)/usr INSTALL_PREFIX=$(WRKINST)
+
+misdnuser-install:
+ $(INSTALL_DIR) $(IDIR_MISDNUSER)/usr/{bin,lib}
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/{loadfirm,mISDNdebugtool,misdnportinfo} \
+ $(IDIR_MISDNUSER)/usr/bin/
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/{sendhwctrl,testcon*,testlayer*} \
+ $(IDIR_MISDNUSER)/usr/bin/
+ $(CP) $(WRKINST)/usr/lib/*.so* $(IDIR_MISDNUSER)/usr/lib/
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/mISDNuser/patches/patch-Makefile b/package/mISDNuser/patches/patch-Makefile
new file mode 100644
index 000000000..77846228f
--- /dev/null
+++ b/package/mISDNuser/patches/patch-Makefile
@@ -0,0 +1,16 @@
+ allow CC override
+ allow CFLAGS enhancement
+--- mISDNuser-1_1_9.orig/Makefile 2009-01-21 18:06:34.000000000 +0100
++++ mISDNuser-1_1_9/Makefile 2011-07-11 17:14:13.425001831 +0200
+@@ -28,7 +28,10 @@ export INCLUDEDIR
+ LIBDIR=/usr/lib
+ export LIBDIR
+
+-CFLAGS:= -g -Wall -I $(INCLUDEDIR) -I $(MISDNINCLUDEDIR)
++CC ?= gcc
++export CC
++
++CFLAGS+= -g -Wall -I $(INCLUDEDIR) -I $(MISDNINCLUDEDIR)
+ CFLAGS+= -D CLOSE_REPORT=1
+
+ #disable this if your system does not support PIC (position independent code)
diff --git a/package/mISDNuser/patches/patch-debugtool_Makefile b/package/mISDNuser/patches/patch-debugtool_Makefile
new file mode 100644
index 000000000..c531dd074
--- /dev/null
+++ b/package/mISDNuser/patches/patch-debugtool_Makefile
@@ -0,0 +1,9 @@
+ allow CC override
+--- mISDNuser-1_1_9.orig/debugtool/Makefile 2008-11-18 12:35:09.000000000 +0100
++++ mISDNuser-1_1_9/debugtool/Makefile 2011-07-11 17:12:13.520001533 +0200
+@@ -1,4 +1,4 @@
+-CC = gcc
++CC ?= gcc
+
+ CFLAGS += -Wall
+
diff --git a/package/mISDNuser/patches/patch-i4lnet_Makefile b/package/mISDNuser/patches/patch-i4lnet_Makefile
new file mode 100644
index 000000000..3d4150b9a
--- /dev/null
+++ b/package/mISDNuser/patches/patch-i4lnet_Makefile
@@ -0,0 +1,9 @@
+ allow CC override
+--- mISDNuser-1_1_9.orig/i4lnet/Makefile 2008-11-18 12:35:09.000000000 +0100
++++ mISDNuser-1_1_9/i4lnet/Makefile 2011-07-11 17:12:22.313001562 +0200
+@@ -1,4 +1,4 @@
+-CC = gcc
++CC ?= gcc
+ AR = ar
+ RANLIB = ranlib
+
diff --git a/package/mISDNuser/patches/patch-lib_Makefile b/package/mISDNuser/patches/patch-lib_Makefile
new file mode 100644
index 000000000..db658881a
--- /dev/null
+++ b/package/mISDNuser/patches/patch-lib_Makefile
@@ -0,0 +1,9 @@
+ allow CC override
+--- mISDNuser-1_1_9.orig/lib/Makefile 2008-11-18 12:35:09.000000000 +0100
++++ mISDNuser-1_1_9/lib/Makefile 2011-07-11 17:12:25.341001554 +0200
+@@ -1,4 +1,4 @@
+-CC = gcc
++CC ?= gcc
+ AR = ar
+ RANLIB = ranlib
+
diff --git a/package/mISDNuser/patches/patch-suppserv_Makefile b/package/mISDNuser/patches/patch-suppserv_Makefile
new file mode 100644
index 000000000..c2600f499
--- /dev/null
+++ b/package/mISDNuser/patches/patch-suppserv_Makefile
@@ -0,0 +1,9 @@
+ allow CC override
+--- mISDNuser-1_1_9.orig/suppserv/Makefile 2008-11-18 12:35:09.000000000 +0100
++++ mISDNuser-1_1_9/suppserv/Makefile 2011-07-11 17:12:30.613001557 +0200
+@@ -1,4 +1,4 @@
+-CC = gcc
++CC ?= gcc
+ AR = ar
+ RANLIB = ranlib
+
diff --git a/package/nand/Makefile b/package/nand/Makefile
index 07be2c23e..668cb4e5c 100644
--- a/package/nand/Makefile
+++ b/package/nand/Makefile
@@ -5,7 +5,7 @@ include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= nand
PKG_VERSION:= 1.0
-PKG_RELEASE:= 3
+PKG_RELEASE:= 4
PKG_DESCR:= nand flash utility
PKG_SECTION:= sys/fs
diff --git a/package/nand/src/nand.c b/package/nand/src/nand.c
index 29b06e162..85df62677 100644
--- a/package/nand/src/nand.c
+++ b/package/nand/src/nand.c
@@ -94,7 +94,6 @@ int nand_info(const char *nand) {
int fd, ret;
mtd_info_t nandinfo;
- //struct nand_oobinfo oobinfo;
loff_t offset;
if ((fd = nand_open(nand, O_RDONLY)) < 0) {
@@ -131,17 +130,6 @@ int nand_info(const char *nand) {
}
}
}
-
- /*
- if (ioctl(fd, MEMGETOOBSEL, &oobinfo) != 0) {
- fprintf(stderr, "Unable to get NAND oobinfo\n");
- return 1;
- }
-
- if (oobinfo.useecc == MTD_NANDECC_AUTOPLACE) {
- fprintf(stdout, "NAND device/driver supports autoplacement of OOB\n");
- }
- */
return 0;
}
@@ -214,7 +202,6 @@ int nand_write(const char *img, const char *nand, int quiet) {
static bool pad = true;
static const char *standard_input = "-";
- static bool autoplace = true;
static bool markbad = true;
static int mtdoffset = 0;
int cnt = 0;
@@ -227,8 +214,6 @@ int nand_write(const char *img, const char *nand, int quiet) {
struct mtd_oob_buf oob;
loff_t offs;
int ret, readlen;
- int oobinfochanged = 0;
- struct nand_oobinfo old_oobinfo;
erase_buffer(oobbuf, sizeof(oobbuf));
@@ -255,28 +240,6 @@ int nand_write(const char *img, const char *nand, int quiet) {
exit (EXIT_FAILURE);
}
- if (autoplace) {
- /* Read the current oob info */
- if (ioctl (fd, MEMGETOOBSEL, &old_oobinfo) != 0) {
- perror ("MEMGETOOBSEL");
- close (fd);
- exit (EXIT_FAILURE);
- }
-
- // autoplace ECC ?
- /*
- if (autoplace && (old_oobinfo.useecc != MTD_NANDECC_AUTOPLACE)) {
-
- if (ioctl (fd, MEMSETOOBSEL, &autoplace_oobinfo) != 0) {
- perror ("MEMSETOOBSEL");
- close (fd);
- exit (EXIT_FAILURE);
- }
- oobinfochanged = 1;
- }
- */
- }
-
oob.length = meminfo.oobsize;
oob.ptr = oobbuf;
@@ -465,14 +428,6 @@ closeall:
close(ifd);
restoreoob:
- /*
- if (oobinfochanged == 1) {
- if (ioctl (fd, MEMSETOOBSEL, &old_oobinfo) != 0) {
- perror ("MEMSETOOBSEL");
- close (fd);
- exit (EXIT_FAILURE);
- }
- }
close(fd);
/*
diff --git a/package/newt/Makefile b/package/newt/Makefile
new file mode 100644
index 000000000..57521d1a2
--- /dev/null
+++ b/package/newt/Makefile
@@ -0,0 +1,34 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= newt
+PKG_VERSION:= 0.52.18
+PKG_RELEASE:= 1
+PKG_HASH:= 771b0e634ede56ae6a6acd910728bb5832ac13ddb0d1d27919d2498dab70c91e
+PKG_DESCR:= windowing toolkit
+PKG_SECTION:= libs/misc
+PKG_DEPENDS:= slang libpopt
+PKG_BUILDDEP:= slang popt
+PKG_URL:= https://fedorahosted.org/newt/
+PKG_SITES:= https://fedorahosted.org/releases/n/e/$(PKG_NAME)/
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,NEWT,newt,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIGURE_ARGS+= --without-python \
+ --without-tcl \
+ --without-gpm-support
+
+newt-install:
+ $(INSTALL_DIR) $(IDIR_NEWT)/usr/{bin,lib}
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/whiptail \
+ $(IDIR_NEWT)/usr/bin
+ $(CP) $(WRKINST)/usr/lib/libnewt.so* \
+ $(IDIR_NEWT)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/oprofile/Makefile b/package/oprofile/Makefile
index e217a2606..ee6286ea1 100644
--- a/package/oprofile/Makefile
+++ b/package/oprofile/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= oprofile
-PKG_VERSION:= 0.9.9
-PKG_RELEASE:= 4
-PKG_HASH:= 1e523400daaba7b8d0d15269e977a08b40edfea53970774b69ae130e25117597
+PKG_VERSION:= 1.0.0
+PKG_RELEASE:= 1
+PKG_HASH:= 847110b4ecdcf8c8353cd38f94c1b704aad4bfcd9453e38b88d112cfb7e3c45a
PKG_DESCR:= system-wide profiles
PKG_SECTION:= app/debug
PKG_DEPENDS:= libpopt libbfd libstdcxx
@@ -16,9 +16,6 @@ PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=oprofile/}
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-PKG_ARCH_DEPENDS:= !m68k
-PKG_LIBC_DEPENDS:= uclibc glibc
-
PKG_CFLINE_OPROFILE:= select BUSYBOX_EXPR
include $(ADK_TOPDIR)/mk/package.mk
@@ -30,11 +27,20 @@ CONFIGURE_ARGS+= --with-binutils-libname=binutils \
--with-binutils=${STAGING_TARGET_DIR}/usr/lib
oprofile-install:
- $(INSTALL_DIR) $(IDIR_OPROFILE)/usr/{bin,share}
- $(INSTALL_BIN) $(WRKINST)/usr/bin/opcontrol $(IDIR_OPROFILE)/usr/bin/
- $(INSTALL_BIN) $(WRKINST)/usr/bin/ophelp $(IDIR_OPROFILE)/usr/bin/
- $(INSTALL_BIN) $(WRKINST)/usr/bin/opreport $(IDIR_OPROFILE)/usr/bin/
- $(INSTALL_BIN) $(WRKINST)/usr/bin/oprofiled $(IDIR_OPROFILE)/usr/bin/
+ $(INSTALL_DIR) $(IDIR_OPROFILE)/usr/{bin,lib/oprofile,share}
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/ocount \
+ $(WRKINST)/usr/bin/opannotate \
+ $(WRKINST)/usr/bin/oparchive \
+ $(WRKINST)/usr/bin/op-check-perfevents \
+ $(WRKINST)/usr/bin/operf \
+ $(WRKINST)/usr/bin/opgprof \
+ $(WRKINST)/usr/bin/ophelp \
+ $(WRKINST)/usr/bin/opimport \
+ $(WRKINST)/usr/bin/opjitconv \
+ $(WRKINST)/usr/bin/opreport \
+ $(IDIR_OPROFILE)/usr/bin/
${CP} ${WRKINST}/usr/share/oprofile ${IDIR_OPROFILE}/usr/share/
+ ${CP} ${WRKINST}/usr/lib/oprofile/libopagent.so* \
+ ${IDIR_OPROFILE}/usr/lib/oprofile
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/oprofile/patches/patch-libop_op_cpu_type_c b/package/oprofile/patches/patch-libop_op_cpu_type_c
deleted file mode 100644
index 6064fc5e7..000000000
--- a/package/oprofile/patches/patch-libop_op_cpu_type_c
+++ /dev/null
@@ -1,42 +0,0 @@
---- oprofile-0.9.9.orig/libop/op_cpu_type.c 2013-07-29 17:55:07.000000000 +0200
-+++ oprofile-0.9.9/libop/op_cpu_type.c 2013-11-05 20:55:54.000000000 +0100
-@@ -23,9 +23,17 @@
- #include <elf.h>
- #include <link.h>
-
-+#include "config.h"
- #include "op_cpu_type.h"
- #include "op_hw_specific.h"
-
-+
-+/* A macro to be used for ppc64 architecture-specific code. The '__powerpc__' macro
-+ * is defined for both ppc64 and ppc32 architectures, so we must further qualify by
-+ * including the 'HAVE_LIBPFM' macro, since that macro will be defined only for ppc64.
-+ */
-+#define PPC64_ARCH (HAVE_LIBPFM) && ((defined(__powerpc__) || defined(__powerpc64__)))
-+
- struct cpu_descr {
- char const * pretty;
- char const * name;
-@@ -176,6 +184,7 @@ static char * _get_cpuinfo_cpu_type(char
- return _get_cpuinfo_cpu_type_line(buf, len, prefix, 1);
- }
-
-+#if PPC64_ARCH
- // The aux vector stuff below is currently only used by ppc64 arch
- static ElfW(auxv_t) * auxv_buf = NULL;
-
-@@ -313,6 +322,13 @@ static op_cpu _get_ppc64_cpu_type(void)
- return cpu_type;
- }
-
-+#else
-+static op_cpu _get_ppc64_cpu_type(void)
-+{
-+ return CPU_NO_GOOD;
-+}
-+#endif
-+
- static op_cpu _get_arm_cpu_type(void)
- {
- unsigned long cpuid, vendorid;
diff --git a/package/pdnsd/Makefile b/package/pdnsd/Makefile
index bd3ebebe8..e71dd4307 100644
--- a/package/pdnsd/Makefile
+++ b/package/pdnsd/Makefile
@@ -4,14 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= pdnsd
-PKG_VERSION:= 1.2.7
-PKG_RELEASE:= 3
-PKG_HASH:= 2777d7317509df7c75c90bcfd7f9ceaec9ea2db164bf00eb797fa54e0b476a00
+PKG_VERSION:= 1.2.9a
+PKG_RELEASE:= 1
+PKG_HASH:= bb5835d0caa8c4b31679d6fd6a1a090b71bdf70950db3b1d0cea9cf9cb7e2a7b
PKG_DESCR:= proxy dns server
PKG_SECTION:= net/dns
PKG_DEPENDS:= libpthread
-PKG_URL:= http://www.phys.uu.nl/~rombouts/pdnsd.html
-PKG_SITES:= http://www.phys.uu.nl/~rombouts/pdnsd/releases/
+PKG_URL:= http://members.home.nl/p.a.rombouts/pdnsd/index.html
+PKG_SITES:= http://members.home.nl/p.a.rombouts/pdnsd/releases/
PKG_FLAVOURS_PDNSD:= WITH_IPV6
PKGFD_WITH_IPV6:= enable IPv6 support
diff --git a/package/pdnsd/patches/patch-src_Makefile_in b/package/pdnsd/patches/patch-src_Makefile_in
deleted file mode 100644
index 6ab8de4e1..000000000
--- a/package/pdnsd/patches/patch-src_Makefile_in
+++ /dev/null
@@ -1,11 +0,0 @@
---- pdnsd-1.2.7.orig/src/Makefile.in 2008-09-04 18:20:37.000000000 +0200
-+++ pdnsd-1.2.7/src/Makefile.in 2010-05-29 17:45:45.937500000 +0200
-@@ -171,7 +171,7 @@ pdnsd_SOURCES = conf-parser.c conff.c co
- rr_types.h servers.h status.h thread.h cache.h hash.h pdnsd_assert.h \
- freebsd_netinet_ip_icmp.h
-
--SUBDIRS = pdnsd-ctl rc test
-+SUBDIRS = pdnsd-ctl rc
- all: all-recursive
-
- .SUFFIXES:
diff --git a/package/pdnsd/patches/patch-src_dns_query_c b/package/pdnsd/patches/patch-src_dns_query_c
deleted file mode 100644
index f16c3d497..000000000
--- a/package/pdnsd/patches/patch-src_dns_query_c
+++ /dev/null
@@ -1,12 +0,0 @@
-use the temporary port, not always the global one over and over again
---- pdnsd-1.2.7.orig/src/dns_query.c 2008-09-01 15:56:51.000000000 +0200
-+++ pdnsd-1.2.7/src/dns_query.c 2010-03-19 21:44:38.837858828 +0100
-@@ -650,7 +650,7 @@ static int bind_socket(int s)
- ELSE_IPV6 {
- memset(&sin.sin6,0,sizeof(struct sockaddr_in6));
- sin.sin6.sin6_family=AF_INET6;
-- sin.sin6.sin6_port=htons(global.port);
-+ sin.sin6.sin6_port=htons(prt);
- sin.sin6.sin6_flowinfo=IPV6_FLOWINFO;
- SET_SOCKA_LEN6(sin.sin6);
- sinl=sizeof(struct sockaddr_in6);
diff --git a/package/perf/Makefile b/package/perf/Makefile
new file mode 100644
index 000000000..75bd8efe4
--- /dev/null
+++ b/package/perf/Makefile
@@ -0,0 +1,43 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+include $(ADK_TOPDIR)/mk/kernel-ver.mk
+
+PKG_NAME:= perf
+PKG_VERSION:= $(KERNEL_VERSION)
+PKG_RELEASE:= 1
+PKG_DESCR:= userland tools for linux performance counters
+PKG_SECTION:= app/debug
+PKG_DEPENDS:= elfutils newt
+PKG_BUILDDEP:= elfutils newt
+PKG_URL:= https://perf.wiki.kernel.org/index.php/Main_Page
+
+# elfutils require argp()
+PKG_LIBC_DEPENDS:= glibc
+
+NO_DISTFILES:= 1
+
+include $(ADK_TOPDIR)/mk/package.mk
+include $(ADK_TOPDIR)/mk/kernel-vars.mk
+
+$(eval $(call PKG_template,PERF,perf,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
+
+do-build:
+ $(KERNEL_MAKE_ENV) GCC_HONOUR_COPTS=0 $(MAKE) \
+ $(KERNEL_MAKE_OPTS) WERROR=0 -C "$(LINUX_DIR)/tools/perf" all
+
+do-install:
+ $(KERNEL_MAKE_ENV) GCC_HONOUR_COPTS=0 $(MAKE) \
+ $(KERNEL_MAKE_OPTS) WERROR=0 -C "$(LINUX_DIR)/tools/perf" \
+ prefix="$(WRKINST)" install
+
+perf-install:
+ $(INSTALL_DIR) $(IDIR_PERF)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/bin/perf $(IDIR_PERF)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/slang/Makefile b/package/slang/Makefile
new file mode 100644
index 000000000..1f0e4ee4f
--- /dev/null
+++ b/package/slang/Makefile
@@ -0,0 +1,43 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= slang
+PKG_VERSION:= 2.3.0
+PKG_RELEASE:= 1
+PKG_HASH:= f95224060f45e0d8212a5039b339afa5f1a94a1bb0298e796104e5b12e926129
+PKG_DESCR:= multi-platform programmer\'s library designed to allow a developer to create robust software
+PKG_SECTION:= libs/misc
+PKG_URL:= http://www.jedsoft.org/slang/
+PKG_SITES:= http://www.jedsoft.org/releases/slang/
+PKG_NOPARALLEL:= 1
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,SLANG,slang,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIGURE_ARGS+= --without-pcre \
+ --without-onig \
+ --without-png \
+ --without-z
+
+slang-install:
+ $(INSTALL_DIR) $(IDIR_SLANG)/usr/{bin,lib/slang/v2/modules}
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/slsh \
+ $(IDIR_SLANG)/usr/bin
+ $(CP) $(WRKINST)/usr/lib/libslang.so* \
+ $(IDIR_SLANG)/usr/lib
+ $(INSTALL_DATA) $(WRKINST)/usr/lib/slang/v2/modules/*.so \
+ $(IDIR_SLANG)/usr/lib/slang/v2/modules
+ $(INSTALL_DIR) $(IDIR_SLANG)/usr/share/slsh/{cmaps,rline}
+ $(INSTALL_DATA) $(WRKINST)/usr/share/slsh/*.sl \
+ $(IDIR_SLANG)/usr/share/slsh
+ $(INSTALL_DATA) $(WRKINST)/usr/share/slsh/cmaps/*.map \
+ $(IDIR_SLANG)/usr/share/slsh/cmaps
+ $(INSTALL_DATA) $(WRKINST)/usr/share/slsh/rline/*.sl \
+ $(IDIR_SLANG)/usr/share/slsh/rline
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/stats/Makefile b/package/stats/Makefile
new file mode 100644
index 000000000..7d52788e6
--- /dev/null
+++ b/package/stats/Makefile
@@ -0,0 +1,23 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= stats
+PKG_VERSION:= 82bd4977b607b8714f361467e37a9d801ff911b6
+PKG_RELEASE:= 1
+PKG_DESCR:= stats utility
+PKG_SECTION:= sys/utils
+PKG_URL:= https://github.com/rustyrussell/stats
+PKG_SITES:= git://github.com/rustyrussell/stats.git
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,STATS,$(PKG_NAME),$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+stats-install:
+ $(INSTALL_DIR) $(IDIR_STATS)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/stats \
+ $(IDIR_STATS)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/stats/patches/patch-Makefile b/package/stats/patches/patch-Makefile
new file mode 100644
index 000000000..0650a3adf
--- /dev/null
+++ b/package/stats/patches/patch-Makefile
@@ -0,0 +1,35 @@
+ - allow for passing custom compiler FLAGS
+ - use host CC and CFLAGS for tools/configurator build
+--- stats-82bd4977b607b8714f361467e37a9d801ff911b6.orig/Makefile 2015-02-27 18:30:06.000000000 +0100
++++ stats-82bd4977b607b8714f361467e37a9d801ff911b6/Makefile 2015-02-27 18:37:14.000000000 +0100
+@@ -1,14 +1,15 @@
+ # Destination directory for installation (intended for packagers)
+ DESTDIR =
+-PREFIX = /usr/local
++PREFIX = /usr
+
++CC ?=
+ OPTFLAGS=-O3 -flto
+ #OPTFLAGS=-g
+ WARNFLAGS=-Wall -Wstrict-prototypes -Wundef
+-CPPFLAGS=-I.
+-CFLAGS=$(OPTFLAGS) $(WARNFLAGS)
+-LDFLAGS=$(OPTFLAGS)
+-LDLIBS=-lm
++CPPFLAGS+=-I.
++CFLAGS+=$(WARNFLAGS)
++LDFLAGS+=
++LDLIBS+=-lm
+
+ # Comment this out (or use "VALGRIND=" on cmdline) if you don't have valgrind.
+ VALGRIND=valgrind --quiet --leak-check=full --error-exitcode=5
+@@ -41,6 +42,9 @@ $(OFILES): config.h
+ config.h: tools/configurator
+ if $< > $@.tmp; then mv $@.tmp $@; else rm -f $@.tmp; fi
+
++tools/configurator: CC=${CC_FOR_BUILD}
++tools/configurator: CFLAGS=${CFLAGS_FOR_BUILD}
++tools/configurator: LDFLAGS=${LDFLAGS_FOR_BUILD}
+ stats: $(OFILES)
+
+ distclean: clean
diff --git a/package/supl/Makefile b/package/supl/Makefile
new file mode 100644
index 000000000..13e58560f
--- /dev/null
+++ b/package/supl/Makefile
@@ -0,0 +1,34 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= supl
+PKG_VERSION:= 1.0.6
+PKG_RELEASE:= 1
+PKG_HASH:= 068dc47ce818ce5634f09a88159df85a6ce3456e2467b11b8c5f8543a99bb347
+PKG_DESCR:= tools for accessing sup/rrlp server
+PKG_SECTION:= net/misc
+PKG_BUILDDEP:= openssl
+PKG_DEPENDS:= libopenssl
+PKG_URL:= http://www.tajuma.com/supl/
+PKG_SITES:= $(MASTER_SITE_SOURCEFORGE:=supl/)
+
+DISTFILES:= $(PKG_NAME)_$(PKG_VERSION).tar.gz
+WRKDIST= $(WRKDIR)/trunk
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,SUPL,supl,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= minimal
+CONFIGURE_ARGS+= --precompiled-asn1=yes --prefix="$(WRKINST)/usr"
+
+supl-install:
+ $(INSTALL_DIR) $(IDIR_SUPL)/usr/{bin,lib}
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/supl-{cert,client,proxy} \
+ $(IDIR_SUPL)/usr/bin
+ $(CP) $(WRKINST)/usr/lib/lib{asnrrlp,asnsupl,supl}.so* \
+ $(IDIR_SUPL)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/supl/patches/patch-configure b/package/supl/patches/patch-configure
new file mode 100644
index 000000000..1c8f24d49
--- /dev/null
+++ b/package/supl/patches/patch-configure
@@ -0,0 +1,11 @@
+--- trunk.orig/configure 2011-10-25 21:41:03.000000000 +0200
++++ trunk/configure 2015-02-27 19:33:11.000000000 +0100
+@@ -91,7 +91,7 @@ cat <<EOF > config.mk
+ # Modifications to this file are lost if ./configure is ran again.
+
+ CONF_VERSION = 1.0.5
+-CONF_CFLAGS = -Wall -O2 $var_debug
++CONF_CFLAGS = -Wall $var_debug
+ CONF_ASN_CFLAGS = $var_asn1_debug
+ CONF_PREFIX = $var_prefix
+ CONF_PRECOMPILED_ASN = $var_precompiled_asn
diff --git a/package/supl/patches/patch-src_Makefile b/package/supl/patches/patch-src_Makefile
new file mode 100644
index 000000000..cec5a4771
--- /dev/null
+++ b/package/supl/patches/patch-src_Makefile
@@ -0,0 +1,16 @@
+ - use pkg-config everywhere, otherwise libs are not found
+--- trunk.orig/src/Makefile 2011-10-17 20:09:22.000000000 +0200
++++ trunk/src/Makefile 2015-02-09 16:48:37.244935714 +0100
+@@ -21,10 +21,10 @@ DIST = Makefile $(PROGRAM_SOURCE) $(SUPL
+ all: supl-client supl-proxy supl-cert
+
+ supl-client: libsupl.so supl-client.o
+- $(CC) -o $@ supl-client.o -L. -lsupl -lssl -lm
++ $(CC) -o $@ supl-client.o -L. -lsupl $(shell pkg-config --libs openssl) -lm
+
+ supl-proxy: libsupl.so supl-proxy.o
+- $(CC) -o $@ supl-proxy.o -L. -lsupl -lssl -lm
++ $(CC) -o $@ supl-proxy.o -L. -lsupl $(shell pkg-config --libs openssl) -lm
+
+ supl-cert: supl-cert.o
+ $(CC) -o $@ supl-cert.o $(shell pkg-config --libs openssl) -lm
diff --git a/package/supl/patches/patch-src_supl-client_c b/package/supl/patches/patch-src_supl-client_c
new file mode 100644
index 000000000..15e2fa727
--- /dev/null
+++ b/package/supl/patches/patch-src_supl-client_c
@@ -0,0 +1,40 @@
+ - implement bind to device functionality
+--- trunk.orig/src/supl-client.c 2011-10-21 20:51:38.000000000 +0200
++++ trunk/src/supl-client.c 2013-04-24 18:55:01.937252375 +0200
+@@ -252,6 +252,7 @@ static char *usage_str =
+ " --cell gsm:mcc,mns:lac,ci|wcdma:mcc,msn,uc set current gsm/wcdma cell id\n"
+ " --cell gsm:mcc,mns:lac,ci:lat,lon,uncert set known gsm cell id with position\n"
+ " --format|-f human machine parseable output\n"
++" --interface|-i iface bind to this interface\n"
+ " --debug|-d <n> 1 == RRLP, 2 == SUPL, 4 == DEBUG\n"
+ " --debug-file file write debug to file\n"
+ " --help|-h show this help\n"
+@@ -267,6 +268,7 @@ static struct option long_opts[] = {
+ { "cell", 1, 0, 0 },
+ { "debug", 1, 0, 'd' },
+ { "format", 1, 0, 'f' },
++ { "interface", 1, 0, 0},
+ { "test", 1, 0, 't' },
+ { "set-pos", 1, 0, 0 },
+ { "pos-helper", 1, 0, 0 },
+@@ -310,7 +312,7 @@ int main(int argc, char *argv[]) {
+ int opt_index;
+ int c;
+
+- c = getopt_long(argc, argv, "ad:f:t:", long_opts, &opt_index);
++ c = getopt_long(argc, argv, "ad:f:i:t:", long_opts, &opt_index);
+ if (c == -1) break;
+ switch (c) {
+ case 0:
+@@ -374,6 +376,11 @@ int main(int argc, char *argv[]) {
+ }
+ break;
+
++ case 'i':
++ strncpy(ctx.iface, optarg, IFNAMSIZ);
++ ctx.iface[IFNAMSIZ] = 0;
++ break;
++
+ case 'd':
+ {
+ int debug = atoi(optarg);
diff --git a/package/supl/patches/patch-src_supl_c b/package/supl/patches/patch-src_supl_c
new file mode 100644
index 000000000..26ab45b18
--- /dev/null
+++ b/package/supl/patches/patch-src_supl_c
@@ -0,0 +1,46 @@
+ - implement bind to device functionality
+--- trunk.orig/src/supl.c 2011-10-27 20:41:19.000000000 +0200
++++ trunk/src/supl.c 2013-04-24 18:56:17.742529773 +0200
+@@ -41,7 +41,7 @@ static struct supl_debug_s {
+ } debug;
+ #endif
+
+-static int server_connect(char *server);
++static int server_connect(char *server, char *iface);
+ static int pdu_make_ulp_start(supl_ctx_t *ctx, supl_ulp_t *pdu);
+ static int pdu_make_ulp_pos_init(supl_ctx_t *ctx, supl_ulp_t *pdu);
+ static int pdu_make_ulp_rrlp_ack(supl_ctx_t *ctx, supl_ulp_t *pdu, PDU_t *rrlp);
+@@ -236,7 +236,7 @@ int EXPORT supl_server_connect(supl_ctx_
+ if (!ctx->ssl) return E_SUPL_CONNECT;
+
+ if (server) {
+- ctx->fd = server_connect(server);
++ ctx->fd = server_connect(server, ctx->iface);
+ if (ctx->fd == -1) return E_SUPL_CONNECT;
+ }
+
+@@ -266,7 +266,7 @@ void EXPORT supl_close(supl_ctx_t *ctx)
+ }
+
+
+-static int server_connect(char *server) {
++static int server_connect(char *server, char *iface) {
+ int fd = -1;
+ struct addrinfo *ailist, *aip;
+ struct addrinfo hint;
+@@ -283,6 +283,15 @@ static int server_connect(char *server)
+ if ((fd = socket(aip->ai_family, SOCK_STREAM, 0)) < 0) {
+ err = errno;
+ }
++
++ if (strlen(iface)) {
++ struct ifreq ifr;
++ strncpy(ifr.ifr_name, iface, IFNAMSIZ);
++ ifr.ifr_name[IFNAMSIZ - 1] = 0;
++ if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr)))
++ fprintf(stderr, "Error: binding to device %s failed\n", iface);
++ }
++
+ if (connect(fd, aip->ai_addr, aip->ai_addrlen) != 0) {
+ return -1;
+ }
diff --git a/package/supl/patches/patch-src_supl_h b/package/supl/patches/patch-src_supl_h
new file mode 100644
index 000000000..c2e9e8da4
--- /dev/null
+++ b/package/supl/patches/patch-src_supl_h
@@ -0,0 +1,19 @@
+ - implement bind to device functionality
+--- trunk.orig/src/supl.h 2011-10-21 20:08:29.000000000 +0200
++++ trunk/src/supl.h 2013-04-24 18:52:14.916232733 +0200
+@@ -19,6 +19,7 @@
+ #include <openssl/ssl.h>
+ #include <PDU.h>
+ #include <ULP-PDU.h>
++#include <net/if.h>
+
+ #define SUPL_PORT "7275"
+
+@@ -204,6 +205,7 @@ typedef struct supl_ctx_s {
+ size_t size;
+ } slp_session_id;
+
++ char iface[IFNAMSIZ + 1];
+ } supl_ctx_t;
+
+ int supl_ctx_new(supl_ctx_t *ctx);
diff --git a/package/tcpdump/Makefile b/package/tcpdump/Makefile
index 83909d6eb..4ee28cf8d 100644
--- a/package/tcpdump/Makefile
+++ b/package/tcpdump/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= tcpdump
-PKG_VERSION:= 4.6.1
-PKG_RELEASE:= 2
-PKG_HASH:= 4c88c2a9aeb4047074f344fc9b2b6577b219972d359e192f6d12ccf983a13fd7
+PKG_VERSION:= 4.6.2
+PKG_RELEASE:= 1
+PKG_HASH:= 524ee4d8e83a6c663f6879004216a9a5bcb1c68b11920d653eb87b79d008e0b8
PKG_DESCR:= tool for network monitoring and data acquisition
PKG_SECTION:= net/debug
PKG_DEPENDS:= libpcap
diff --git a/package/tcptrace/Makefile b/package/tcptrace/Makefile
new file mode 100644
index 000000000..b780a8f84
--- /dev/null
+++ b/package/tcptrace/Makefile
@@ -0,0 +1,31 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= tcptrace
+PKG_VERSION:= 6.6.7
+PKG_RELEASE:= 1
+PKG_HASH:= 63380a4051933ca08979476a9dfc6f959308bc9f60d45255202e388eb56910bd
+PKG_DESCR:= tool for analyzing network packet dumps
+PKG_SECTION:= net/debug
+PKG_DEPENDS:= libpcap
+PKG_BUILDDEP:= libpcap
+PKG_URL:= http://www.tcptrace.org
+PKG_SITES:= http://www.tcptrace.org/download/
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,TCPTRACE,tcptrace,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+FAKE_FLAGS:= BINDIR="$(WRKINST)/usr/bin" MANDIR="$(WRKINST)/usr/man" INSTALL="install -D"
+TARGET_CPPFLAGS+= -D_BSD_SOURCE
+
+tcptrace-install:
+ $(INSTALL_DIR) $(IDIR_TCPTRACE)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/tcptrace \
+ $(IDIR_TCPTRACE)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/tcptrace/patches/patch-Makefile_in b/package/tcptrace/patches/patch-Makefile_in
new file mode 100644
index 000000000..abd55f44d
--- /dev/null
+++ b/package/tcptrace/patches/patch-Makefile_in
@@ -0,0 +1,13 @@
+--- tcptrace-6.6.7.orig/Makefile.in 2004-03-04 21:33:56.000000000 +0100
++++ tcptrace-6.6.7/Makefile.in 2015-02-27 19:17:39.000000000 +0100
+@@ -34,8 +34,8 @@ DEFINES += -DBUNZIP2="\"bunzip2\""
+ #
+ ##################################################################
+ PCAP_LDLIBS = @V_PCAP_LDLIBS@
+-PCAP_INCS = -I/usr/local/include -I. -I../pcap -I/usr/include/pcap
+-PCAP_LDFLAGS = -L/usr/local/lib -Llib -Lpcap -L../pcap -L./cygwin-libs
++PCAP_INCS = -I. -I../pcap
++PCAP_LDFLAGS = -Llib -Lpcap -L../pcap -L./cygwin-libs
+
+
+
diff --git a/package/tcptrace/patches/patch-configure b/package/tcptrace/patches/patch-configure
new file mode 100644
index 000000000..53ee6ce74
--- /dev/null
+++ b/package/tcptrace/patches/patch-configure
@@ -0,0 +1,18 @@
+ do not bail on cross-compiling, simply assume useful values instead
+--- tcptrace-6.6.7.orig/configure 2002-06-21 11:56:26.000000000 +0200
++++ tcptrace-6.6.7/configure 2012-10-18 18:52:35.154444758 +0200
+@@ -5086,9 +5086,11 @@ echo "$as_me:5085: checking how to print
+ echo $ECHO_N "checking how to print unsigned long long... $ECHO_C" >&6
+
+ if test "$cross_compiling" = yes; then
+- { { echo "$as_me:5089: error: can not run test program while cross compiling" >&5
+-echo "$as_me: error: can not run test program while cross compiling" >&2;}
+- { (exit 1); exit 1; }; }
++ { echo "$as_me: cross_compiling, simply assuming '%llu'"
++ cat >>confdefs.h <<\EOF
++#define USE_LLU 1
++EOF
++}
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+ #line 5094 "configure"
diff --git a/package/wget/Makefile b/package/wget/Makefile
index e6ebb6ccb..ad2ab61c1 100644
--- a/package/wget/Makefile
+++ b/package/wget/Makefile
@@ -32,7 +32,9 @@ ifeq (${ADK_PACKAGE_WGET_WITHOUT_SSL},y)
CONFIGURE_ARGS+= --with-ssl=no
endif
ifeq (${ADK_PACKAGE_WGET_WITH_OPENSSL},y)
-CONFIGURE_ARGS+= --with-ssl=openssl
+CONFIGURE_ARGS+= --with-ssl=openssl \
+ --with-openssl=yes \
+ --with-libssl-prefix=${STAGING_TARGET_DIR}
endif
ifeq (${ADK_PACKAGE_WGET_WITH_GNUTLS},y)
CONFIGURE_ARGS+= --with-ssl=gnutls \
diff --git a/package/wireless-regdb/Makefile b/package/wireless-regdb/Makefile
new file mode 100644
index 000000000..4bded919f
--- /dev/null
+++ b/package/wireless-regdb/Makefile
@@ -0,0 +1,28 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= wireless-regdb
+PKG_VERSION:= 2015.01.30
+PKG_RELEASE:= 1
+PKG_HASH:= 438d7f3d62686bc997098d17fe1aff95c6f6ec061aaab90ab7c2c17e8451ce85
+PKG_DESCR:= binary regulatory database for crda
+PKG_SECTION:= libs/net
+PKG_URL:= http://wireless.kernel.org/en/developers/Regulatory
+PKG_SITES:= https://www.kernel.org/pub/software/network/wireless-regdb/
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,WIRELESS_REGDB,$(PKG_NAME),$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
+
+do-install:
+ $(INSTALL_DIR) $(IDIR_WIRELESS_REGDB)/usr/lib/crda
+ $(INSTALL_DATA) $(WRKDIST)/regulatory.bin \
+ $(IDIR_WIRELESS_REGDB)/usr/lib/crda
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/scripts/install b/scripts/install
index 0fe925d0f..174d27d5a 100755
--- a/scripts/install
+++ b/scripts/install
@@ -2,9 +2,26 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
+# eliminate unwanted install flags:
+# -o and -g require root as caller which we don't want
+# -s is unwanted as we strip ourselfs if debugging is turned off
+declare -a opts
+while [[ "$1" ]]; do
+ case "$1" in
+ -o|--owner) shift ;;
+ -g|--group) shift ;;
+ -s|--strip) ;;
+ *) opts+=("$1") ;;
+ esac
+ shift
+done
+
+# prefer ginstall if available
if [ -z "$(which ginstall 2>/dev/null)" ];then
- /usr/bin/install "$@"
+ install=/usr/bin/install
else
- ginstall "$@"
+ install=ginstall
fi
+# do the actual call
+exec $install "${opts[@]}"
diff --git a/target/Makefile b/target/Makefile
index 3291862ba..ddb395b55 100644
--- a/target/Makefile
+++ b/target/Makefile
@@ -106,6 +106,8 @@ config-prepare: $(ADK_TOPDIR)/.config
echo "no miniconfig found for target system"; \
exit 1; \
fi
+ @cd $(BUILD_DIR) && cmp -s .kernelconfig.board .kernelconfig || \
+ cp .kernelconfig.board .kernelconfig
endif
prepare: $(ADK_TARGET_ARCH)-prepare
diff --git a/target/arm/Makefile b/target/arm/Makefile
index 9efddfac9..634bee924 100644
--- a/target/arm/Makefile
+++ b/target/arm/Makefile
@@ -108,11 +108,10 @@ kernel-install: kernel-strip
dtb-install:
ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKE_OPTS) \
- dtbs $(MAKE_TRACE)
+ env $(KERNEL_MAKE_ENV) $(MAKE) $(KERNEL_MAKE_OPTS) dtbs $(MAKE_TRACE)
endif
ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_IMX6),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKE_OPTS) \
+ env $(KERNEL_MAKE_ENV) $(MAKE) $(KERNEL_MAKE_OPTS) \
imx6q-cubox-i.dtb imx6dl-cubox-i.dtb imx6dl-hummingboard.dtb imx6q-hummingboard.dtb $(MAKE_TRACE)
endif
for x in $(LINUX_DIR)/arch/arm/boot/dts/*.dtb; do \
diff --git a/target/config/Config.in.adk b/target/config/Config.in.adk
index 86f38c2dd..90759cea2 100644
--- a/target/config/Config.in.adk
+++ b/target/config/Config.in.adk
@@ -110,4 +110,16 @@ config ADK_HOST_CYGWIN
bool "Cygwin"
endchoice
+
+config ADK_PRELINK
+ prompt "Prelink binaries and libraries in Image"
+ boolean
+ help
+ Do prelinking for faster loading of binaries.
+
+config ADK_PRELINK_OPTS
+ string "additional options to pass to prelink"
+ default "-mR"
+ depends on ADK_PRELINK
+
endmenu
diff --git a/target/ppc/Makefile b/target/ppc/Makefile
index e1df1ef29..9a5529642 100644
--- a/target/ppc/Makefile
+++ b/target/ppc/Makefile
@@ -71,7 +71,7 @@ kernel-install: kernel-strip
@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL}
dtb-install:
- env $(KERNEL_MAKE_ENV) $(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKE_OPTS) \
+ env $(KERNEL_MAKE_ENV) $(MAKE) $(KERNEL_MAKE_OPTS) \
-j${ADK_MAKE_JOBS} virtex440-ml507.dtb $(MAKE_TRACE)
$(CP) $(LINUX_DIR)/arch/powerpc/boot/virtex440-ml507.dtb \
$(FW_DIR)/ppc.dtb
diff --git a/toolchain/Makefile b/toolchain/Makefile
index 23f206ee7..e06e58de9 100644
--- a/toolchain/Makefile
+++ b/toolchain/Makefile
@@ -44,6 +44,9 @@ ifeq ($(ADK_TARGET_ARCH_ARC),)
TARGETS+=gdb
GDB:=gdb-install
endif
+ifeq (${ADK_PRELINK},y)
+TARGETS+=prelink-cross
+endif
DOWNLOAD:=kernel-headers-download $(patsubst %,%-download,$(TARGETS))
TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS))
diff --git a/toolchain/glibc/Makefile b/toolchain/glibc/Makefile
index 1faf1e639..75d2e70e9 100644
--- a/toolchain/glibc/Makefile
+++ b/toolchain/glibc/Makefile
@@ -18,6 +18,7 @@ ifeq (${ADK_MAKE_PARALLEL},y)
GLIBC_MAKEOPTS+= PARALLELMFLAGS="-j$(ADK_MAKE_JOBS)"
endif
+
GLIBC_BUILD_DIR_INITIAL:= ${WRKDIR}/$(PKG_NAME)-$(PKG_VERSION)-headers
GLIBC_BUILD_DIR_FINAL:= ${WRKDIR}/$(PKG_NAME)-$(PKG_VERSION)-final
@@ -54,7 +55,7 @@ $(WRKBUILD)/.configured:
touch $@
$(WRKBUILD)/.compiled:
- ${GLIBC_ENV} $(MAKE) ${GLIBC_MAKEOPTS} -C $(GLIBC_BUILD_DIR_FINAL) all
+ ${GLIBC_ENV} $(MAKE) ${GLIBC_MAKEOPTS} asm-CPPFLAGS='$${CFLAGS}' -C $(GLIBC_BUILD_DIR_FINAL) all
touch $@
$(WRKBUILD)/.installed:
diff --git a/toolchain/kernel-headers/Makefile b/toolchain/kernel-headers/Makefile
index 1b28c151a..1d24d3853 100644
--- a/toolchain/kernel-headers/Makefile
+++ b/toolchain/kernel-headers/Makefile
@@ -5,9 +5,14 @@ include $(ADK_TOPDIR)/rules.mk
include ../rules.mk
include $(ADK_TOPDIR)/mk/kernel-ver.mk
include $(ADK_TOPDIR)/mk/linux.mk
-include $(ADK_TOPDIR)/mk/kernel-vars.mk
include $(ADK_TOPDIR)/mk/buildhlp.mk
+# override linux dir here, as build_bla_bla/linux does not exist yet
+LINUX_DIR=${WRKBUILD}
+
+include $(ADK_TOPDIR)/mk/kernel-vars.mk
+
+
$(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/linux-$(KERNEL_VERSION)/.patched:
ifeq ($(ADK_TARGET_SYSTEM_PCENGINES_APU),y)
ifeq ($(ADK_KERNEL_ROOT_NFS),y)
@@ -60,8 +65,8 @@ endif
touch $@
$(WRKBUILD)/.headers: $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/linux-$(KERNEL_VERSION)/.patched
- $(KERNEL_MAKE_ENV) $(MAKE) -C $(WRKBUILD) $(KERNEL_MAKE_OPTS) headers_check
- $(KERNEL_MAKE_ENV) $(MAKE) -C $(WRKBUILD) $(KERNEL_MAKE_OPTS) \
+ $(KERNEL_MAKE_ENV) $(MAKE) $(KERNEL_MAKE_OPTS) headers_check
+ $(KERNEL_MAKE_ENV) $(MAKE) $(KERNEL_MAKE_OPTS) \
INSTALL_HDR_PATH=$(STAGING_TARGET_DIR)/usr \
headers_install
ifeq ($(ADK_TARGET_ARCH_CRIS),y)
diff --git a/toolchain/prelink-cross/Config.in b/toolchain/prelink-cross/Config.in
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/toolchain/prelink-cross/Config.in
@@ -0,0 +1 @@
+
diff --git a/toolchain/prelink-cross/Makefile b/toolchain/prelink-cross/Makefile
new file mode 100644
index 000000000..d1cc58c07
--- /dev/null
+++ b/toolchain/prelink-cross/Makefile
@@ -0,0 +1,34 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+include ../rules.mk
+include Makefile.inc
+include ${ADK_TOPDIR}/mk/buildhlp.mk
+
+$(WRKBUILD)/.headers:
+$(WRKBUILD)/.configured:
+ (cd $(WRKBUILD)/trunk; \
+ ./configure \
+ --prefix=$(STAGING_HOST_DIR) \
+ --build=$(GNU_HOST_NAME) \
+ --host=$(GNU_HOST_NAME) \
+ --target=$(REAL_GNU_TARGET_NAME) \
+ --disable-dependency-tracking \
+ --disable-libtool-lock \
+ --with-gnu-ld \
+ );
+ touch $@
+
+$(WRKBUILD)/.compiled:
+ $(MAKE) -C $(WRKBUILD)/trunk CFLAGS="-fPIC ${CFLAGS_FOR_BUILD}"
+ touch $@
+
+$(WRKBUILD)/.installed:
+ install -c ${WRKBUILD}/trunk/src/prelink \
+ ${TARGET_CROSS}prelink
+ install -c ${WRKBUILD}/trunk/src/prelink-rtld \
+ ${TARGET_CROSS}prelink-rtld
+ touch $@
+
+include ${ADK_TOPDIR}/mk/toolchain.mk
diff --git a/toolchain/prelink-cross/Makefile.inc b/toolchain/prelink-cross/Makefile.inc
new file mode 100644
index 000000000..634a18b84
--- /dev/null
+++ b/toolchain/prelink-cross/Makefile.inc
@@ -0,0 +1,8 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+# this is branch cross_prelink_r185 in git
+PKG_NAME:= prelink-cross
+PKG_VERSION:= 909470ee441237563d6236c505cb2d02ddc48704
+PKG_RELEASE:= 1
+PKG_SITES:= git://git.yoctoproject.org/prelink-cross