浏览代码

Merge branch 'master' of git+ssh://openadk.org/git/openadk

Waldemar Brodkorb 13 年之前
父节点
当前提交
3dc180799c

+ 18 - 0
Config.in

@@ -45,9 +45,26 @@ endmenu
 menu "Package selection"
 depends on !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_KERNEL && !ADK_CHOOSE_TARGET_SYSTEM
 
+config ADK_LEAVE_ETC_ALONE
+	boolean "do not install anything into /etc"
+	default n
+	help
+	  Enabling this option will prevent the ADK from installing anything
+	  into /etc. This is useful for highly customised setups with custom
+	  base-files packages.
+
+	  Package Makefiles can override this setting by passing "force_etc" to
+	  the package-template.  to a non-empty value. This is useful for
+	  packages traditionally installing non-config stuff into /etc, like
+	  e.g. ca-certificates.
+
+	  Note that without further customisation, turning this option
+	  on will almost certainly render the resulting system unusable.
+
 config ADK_INSTALL_PACKAGE_INIT_SCRIPTS
 	boolean "ship custom init-scripts along with packages"
 	default y
+	depends on !ADK_LEAVE_ETC_ALONE
 	help
 	  Turning this option to false will prevent the ADK from
 	  installing init-scripts (i.e. files in /etc/init.d) for
@@ -59,6 +76,7 @@ config ADK_INSTALL_PACKAGE_INIT_SCRIPTS
 config ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS
 	boolean "ship custom network-scripts along with packages"
 	default y
+	depends on !ADK_LEAVE_ETC_ALONE
 	help
 	  Turning this option to false will prevent the ADK from
 	  installing network-scripts (i.e. files in /etc/network/) for

+ 25 - 18
mk/image.mk

@@ -71,14 +71,12 @@ INITRAMFS=		${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}
 ROOTFSSQUASHFS=		${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.img
 ROOTFSTARBALL=		${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.gz
 ROOTFSUSERTARBALL=	${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.gz
-INITRAMFS_PIGGYBACK=	${ADK_TARGET_SYSTEM}-$(CPU_ARCH)-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.cpio
 else
 TARGET_KERNEL=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_FS}-kernel
 INITRAMFS=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}
 ROOTFSSQUASHFS=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.img
 ROOTFSTARBALL=		${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.gz
 ROOTFSUSERTARBALL=	${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.gz
-INITRAMFS_PIGGYBACK=	${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.cpio
 endif
 
 ${BIN_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR} kernel-package
@@ -91,29 +89,38 @@ ${BIN_DIR}/${ROOTFSUSERTARBALL}: ${TARGET_DIR}
 		sed "s#\(.*\)#:0:0::::::\1#" | sort | \
 		${TOOLS_DIR}/cpio -o -Hustar -P | gzip -n9 >$@
 
-${BIN_DIR}/${INITRAMFS}: ${TARGET_DIR}
-	cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | \
-		sed "s#\(.*\)#:0:0::::::\1#" | sort | \
-	    ${TOOLS_DIR}/cpio -o -C512 -Hnewc -P | \
-		xz -C crc32 >$@ 2>/dev/null
+${BIN_DIR}/${INITRAMFS}_list: ${TARGET_DIR}
+	sh ${LINUX_DIR}/scripts/gen_initramfs_list.sh -u squash -g squash \
+		${TARGET_DIR}/ >$@
+	( \
+		echo "nod /dev/console 0644 0 0 c 5 1"; \
+		echo "nod /dev/tty 0644 0 0 c 5 0"; \
+		for i in 0 1 2 3 4; do \
+			echo "nod /dev/tty$$i 0644 0 0 c 4 $i"; \
+		done \
+		echo "nod /dev/systty 0644 0 0 c 4 0"; \
+		echo "nod /dev/null 0644 0 0 c 1 3"; \
+		echo "nod /dev/ram 0655 0 0 b 1 1"; \
+	) >>$@
 
-${BUILD_DIR}/${INITRAMFS_PIGGYBACK}: ${TARGET_DIR}
-	${SED} 's/.*CONFIG_(BLK_DEV_INITRD|INITRAMFS_SOURCE).*//' \
-		${LINUX_DIR}/.config
-	echo "CONFIG_BLK_DEV_INITRD=y" >> ${LINUX_DIR}/.config
-	echo 'CONFIG_INITRAMFS_SOURCE="${BUILD_DIR}/${INITRAMFS_PIGGYBACK}"' >> \
-		${LINUX_DIR}/.config
-	cp $(TOPDIR)/scripts/dev.cpio $@
-	cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | \
-		sed "s#\(.*\)#:0:0::::::\1#" | sort | \
-	    ${TOOLS_DIR}/cpio -o -C512 -Hnewc -A -P -O $@ 2>/dev/null
+${BIN_DIR}/${INITRAMFS}: ${BIN_DIR}/${INITRAMFS}_list
+	sh ${LINUX_DIR}/usr/gen_init_cpio ${BIN_DIR}/${INITRAMFS}_list | \
+		gzip -9 -c >$@
 
 ${BUILD_DIR}/root.squashfs: ${TARGET_DIR}
 	${STAGING_HOST_DIR}/bin/mksquashfs ${TARGET_DIR} \
 		${BUILD_DIR}/root.squashfs \
 		-nopad -noappend -root-owned $(MAKE_TRACE)
 
-createinitramfs:
+createinitramfs: ${BIN_DIR}/${INITRAMFS}_list
+	${SED} 's/.*CONFIG_(BLK_DEV_INITRD|INITRAMFS_SOURCE).*//' \
+		${LINUX_DIR}/.config
+	( \
+		echo "CONFIG_BLK_DEV_INITRD=y"; \
+		echo 'CONFIG_INITRAMFS_SOURCE="${BIN_DIR}/${INITRAMFS}_list"'; \
+		echo "CONFIG_INITRAMFS_COMPRESSION_GZIP=y"; \
+	) >> ${LINUX_DIR}/.config
+
 	@-rm $(LINUX_DIR)/usr/initramfs_data.cpio* $(MAKE_TRACE)
 	echo N | \
 	$(MAKE) -C $(LINUX_DIR) V=1 CROSS_COMPILE="$(TARGET_CROSS)" \

+ 7 - 0
mk/package.mk

@@ -159,6 +159,9 @@ endif
 ifeq ($(ADK_DEBUG_STRIP),y)
 	$${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE)
 endif
+ifeq (${ADK_LEAVE_ETC_ALONE}$(filter force_etc,$(7)),y)
+	-rm -rf $${IDIR_$(1)}/etc
+else
 ifeq (${ADK_INSTALL_PACKAGE_INIT_SCRIPTS},y)
 	@for file in $$$$(ls ./files/*.init 2>/dev/null); do \
 		fname=$$$$(echo $$$$file| sed -e "s#.*/##" -e "s#.init##"); \
@@ -171,6 +174,10 @@ ifeq (${ADK_INSTALL_PACKAGE_INIT_SCRIPTS},y)
 		[[ -e $$$$script ]] || continue; \
 		chmod 0755 "$$$$script"; \
 	done
+endif
+ifneq (${ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS},y)
+	-rm -rf $${IDIR_$(1)}/etc/network
+endif
 endif
 	@mkdir -p $${PACKAGE_DIR} '$${STAGING_PKG_DIR}' \
 	    '$${STAGING_DIR}/scripts'

+ 3 - 1
package/aircrack-ng/Makefile

@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=		aircrack-ng
 PKG_VERSION:=		1.1
-PKG_RELEASE:=		1
+PKG_RELEASE:=		2
 PKG_MD5SUM:=		f7a24ed8fad122c4187d06bfd6f998b4
 PKG_DESCR:=		set of tools for auditing wireless networks
 PKG_SECTION:=		wifi
@@ -13,6 +13,8 @@ PKG_DEPENDS:=		libpthread libopenssl libpcap
 PKG_BUILDDEP:=		openssl libpcap
 PKG_URL:=		http://www.aircrack-ng.org/
 PKG_SITES:=		http://download.aircrack-ng.org/
+# do not build parallel, otherwise libosdep.a may not be ready when compiling airtun-ng
+PKG_NOPARALLEL:=	1
 
 include $(TOPDIR)/mk/package.mk
 

+ 26 - 0
package/aircrack-ng/patches/patch-src_osdep_linux_c

@@ -0,0 +1,26 @@
+	When search for wireless-tools, also check $PATH
+--- aircrack-ng-1.1.orig/src/osdep/linux.c	2009-07-25 03:48:40.000000000 +0200
++++ aircrack-ng-1.1/src/osdep/linux.c	2012-01-12 16:22:05.772390762 +0100
+@@ -244,6 +244,7 @@ static char * wiToolsPath(const char * t
+                 "/usr/local/bin",
+                 "/tmp"
+         };
++	char *envpath, *token;
+ 
+         nbelems = sizeof(paths) / sizeof(char *);
+ 
+@@ -254,6 +255,14 @@ static char * wiToolsPath(const char * t
+                         return path;
+         }
+ 
++	/* search again in $PATH */
++	for (envpath = getenv("PATH"); ; envpath = NULL) {
++		if ((token = strtok(envpath, ":")) == NULL)
++			break;
++		if ((path = searchInside(token, tool)) != NULL)
++			return path;
++	}
++
+         return NULL;
+ }
+ 

+ 1 - 3
package/base-files/Makefile

@@ -15,7 +15,7 @@ NO_DISTFILES:=		1
 
 include $(TOPDIR)/mk/package.mk
 
-$(eval $(call PKG_template,BASE_FILES,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,BASE_FILES,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},force_etc))
 
 CONFIG_STYLE:=		manual
 BUILD_STYLE:=		manual
@@ -45,9 +45,7 @@ endif
 	mkdir -p $(IDIR_BASE_FILES)/usr/lib/ipkg/lists
 	mkdir -p $(IDIR_BASE_FILES)/etc/crontabs
 	mkdir -p $(IDIR_BASE_FILES)/{dev,boot,root,sys,proc,tmp,mnt}
-ifeq (${ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS},y)
 	mkdir -p $(IDIR_BASE_FILES)/etc/network/{if-pre-up.d,if-up.d,if-down.d,if-post-down.d}
-endif
 	mkdir -p $(IDIR_BASE_FILES)/usr/{lib,bin}
 	chmod 755 $(IDIR_BASE_FILES)/lib/mdev/init
 	chmod 600 $(IDIR_BASE_FILES)/etc/shadow

+ 0 - 1
package/base-files/src/init

@@ -14,7 +14,6 @@ mount -o remount,nosuid,size=128k,mode=0755 -t tmpfs mdev /dev
 [ -d /dev/shm ] || mkdir /dev/shm
 mount -o nosuid,noexec -t tmpfs tmpfs /dev/shm
 mount -o nosuid,noexec -t devpts devpts /dev/pts
-exec 0<>/dev/console >&0 2>&0
 echo >/dev/mdev.seq
 echo "/sbin/mdev" >/proc/sys/kernel/hotplug
 mdev -s

+ 10 - 1
package/bash/Makefile

@@ -5,13 +5,19 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=		bash
 PKG_VERSION:=		4.2
-PKG_RELEASE:=		1
+PKG_RELEASE:=		2
 PKG_MD5SUM:=		3fb927c7c33022f1c327f14a81c0d4b0
 PKG_DESCR:=		Bourne-Again SHell
 PKG_SECTION:=		shells
 PKG_URL:=		http://www.gnu.org/software/bash/
 PKG_SITES:=		http://ftp.gnu.org/gnu/bash/
 
+PKG_CHOICES_BASH:=	WITH_CURSES WITH_TERMCAP
+PKGCD_WITH_CURSES:=	use curses library instead of termcap
+PKGCS_WITH_CURSES:=	libncurses
+PKGCB_WITH_CURSES:=	ncurses
+PKGCD_WITH_TERMCAP:=	use termcap library instead of curses
+
 include $(TOPDIR)/mk/package.mk
 
 $(eval $(call PKG_template,BASH,bash,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
@@ -22,6 +28,9 @@ CONFIGURE_ARGS+=	--disable-rpath \
 			--cache-file=/dev/null \
 			--enable-job-control \
 			--enable-history
+ifneq (${ADK_PACKAGE_BASH_WITH_CURSES},)
+CONFIGURE_ARGS+=	--with-curses
+endif
 XAKE_FLAGS+=		LIBS_FOR_BUILD=''
 
 bash-install:

+ 11 - 11
package/ca-certificates/Makefile

@@ -20,22 +20,22 @@ PKGFD_SMALL:=		Minimal set of CA certificates
 
 include $(TOPDIR)/mk/package.mk
 
-$(eval $(call PKG_template,CA_CERTS,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,CA_CERTIFICATES,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},force_etc))
 
 CONFIG_STYLE:=		manual
 
 post-install:
-ifeq (${ADK_PACKAGE_CA_CERTS_SMALL},n)
-	$(INSTALL_DIR) $(IDIR_CA_CERTS)/{etc/ssl/certs,usr/share,usr/sbin}
-	$(CP) $(WRKINST)/usr/share/ca-certificates $(IDIR_CA_CERTS)/usr/share/
-	( cd ${IDIR_CA_CERTS}/usr/share/ca-certificates && \
-		ls */*.crt >${IDIR_CA_CERTS}/etc/ca-certificates.conf \
-	)
-	${INSTALL_BIN} ./extra/update-ca-certificates ${IDIR_CA_CERTS}/usr/sbin/
-	-DESTDIR=${IDIR_CA_CERTS} ${BASH} ./extra/update-ca-certificates
+ifeq (${ADK_PACKAGE_CA_CERTIFICATES_SMALL},y)
+	${INSTALL_DIR} ${IDIR_CA_CERTIFICATES}/etc/ssl
+	${INSTALL_DATA} ./extra/cert.pem ${IDIR_CA_CERTIFICATES}/etc/ssl/
 else
-	${INSTALL_DIR} ${IDIR_CA_CERTS}/etc/ssl
-	${INSTALL_DATA} ./cert.pem ${IDIR_CA_CERTS}/etc/ssl/
+	$(INSTALL_DIR) $(IDIR_CA_CERTIFICATES)/{etc/ssl/certs,usr/share,usr/sbin}
+	$(CP) $(WRKINST)/usr/share/ca-certificates $(IDIR_CA_CERTIFICATES)/usr/share/
+	( cd ${IDIR_CA_CERTIFICATES}/usr/share/ca-certificates && \
+		ls */*.crt >${IDIR_CA_CERTIFICATES}/etc/ca-certificates.conf \
+	)
+	${INSTALL_BIN} ./extra/update-ca-certificates ${IDIR_CA_CERTIFICATES}/usr/sbin/
+	-DESTDIR=${IDIR_CA_CERTIFICATES} ${BASH} ./extra/update-ca-certificates
 endif
 
 include ${TOPDIR}/mk/pkg-bottom.mk

+ 0 - 0
package/ca-certificates/cert.pem → package/ca-certificates/extra/cert.pem


+ 0 - 0
package/ca-certificates/src/update-ca-certificates → package/ca-certificates/extra/update-ca-certificates


+ 9 - 3
package/dropbear/Makefile

@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=		dropbear
 PKG_VERSION:=		0.53.1
-PKG_RELEASE:=		1
+PKG_RELEASE:=		2
 PKG_MD5SUM:=		6b8d901859d9b8a18e2f6bfe0a892a03
 PKG_DESCR:=		SSH 2 server/client designed for embedded systems
 PKG_SECTION:=		net/security
@@ -16,6 +16,9 @@ PKG_DFLT_DROPBEAR:=	y if !ADK_TOOLCHAIN_ONLY
 PKG_SUBPKGS:=		DROPBEAR DBCONVERT
 PKGSD_DBCONVERT:=	Utility for converting SSH private keys
 
+PKG_FLAVOURS_DROPBEAR:=	WITH_UTMP
+PKGFD_WITH_UTMP:=	support writing /var/run/utmp
+
 include $(TOPDIR)/mk/package.mk
 
 $(eval $(call PKG_template,DROPBEAR,$(PKG_NAME),$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
@@ -28,14 +31,17 @@ CONFIGURE_ARGS+=	--disable-pam \
 			--enable-syslog \
 			--enable-shadow \
 			--disable-lastlog \
-			--disable-utmp \
 			--disable-utmpx \
 			--disable-wtmp \
 			--disable-wtmpx \
 			--disable-loginfunc \
-			--disable-pututline \
 			--disable-pututxline \
 			--disable-zlib
+ifeq (${ADK_PACKAGE_DROPBEAR_WITH_UTMP},)
+CONFIGURE_ARGS+=	--disable-utmp --disable-pututline
+else
+CONFIGURE_ENV+=		conf_utmp_location=/var/run/utmp
+endif
 
 pre-configure:
 	$(SED) 's,^/\* #define PKG_MULTI.*,#define PKG_MULTI,g' $(WRKBUILD)/options.h

+ 2 - 2
package/ethtool/Makefile

@@ -4,9 +4,9 @@
 include ${TOPDIR}/rules.mk
 
 PKG_NAME:=		ethtool
-PKG_VERSION:=		6
+PKG_VERSION:=		2.6.36
 PKG_RELEASE:=		1
-PKG_MD5SUM:=		3b721ec27f17ebf320ba8c505cf66d9c
+PKG_MD5SUM:=		3b2322695e9ee7bf447ebcdb85f93e83
 PKG_DESCR:=		Display or change ethernet card settings
 PKG_SECTION:=		net
 PKG_SITES:=		${MASTER_SITE_SOURCEFORGE:=gkernel/}

+ 2 - 1
package/findutils/Makefile

@@ -21,7 +21,8 @@ include $(TOPDIR)/mk/package.mk
 $(eval $(call PKG_template,FINDUTILS,$(PKG_NAME),$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
 $(eval $(call PKG_template,LOCATE,locate,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LOCATE},${PKG_SECTION}))
 
-CONFIGURE_ENV+=		gl_cv_func_wcwidth_works=yes
+CONFIGURE_ENV+=		gl_cv_func_wcwidth_works=yes \
+			ac_cv_func_working_mktime=yes
 
 post-install:
 	$(INSTALL_DIR) $(IDIR_FINDUTILS)/usr/bin

+ 2 - 0
package/gdb/Makefile

@@ -33,5 +33,7 @@ pre-build:
 post-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 ${TOPDIR}/mk/pkg-bottom.mk

+ 141 - 0
package/hostapd/patches/001-fix-bssid-generation.patch

@@ -0,0 +1,141 @@
+Modified algorithm for generating BSSIDs. Always set locally
+administered bit. Calculate the mask after calculating the
+BSSIDs. This eliminates the "Invalid BSSID mask" caused when
+addr & mask != addr.
+
+Signed-off-by: Bill Jordan <bjordan <at> rajant.com>
+---
+Taken from http://permalink.gmane.org/gmane.linux.drivers.hostap/22207
+---
+ src/ap/hostapd.c |   74 ++++++------------------------------------------------
+ 1 files changed, 8 insertions(+), 66 deletions(-)
+
+diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
+index f4517f8..1dc6b66 100644
+--- a/src/ap/hostapd.c
++++ b/src/ap/hostapd.c
+@@ -360,70 +360,26 @@ static int hostapd_validate_bssid_configuration(struct hostapd_iface *iface)
+ {
+ 	u8 mask[ETH_ALEN] = { 0 };
+ 	struct hostapd_data *hapd = iface->bss[0];
+-	unsigned int i = iface->conf->num_bss, bits = 0, j;
++	unsigned int i, j;
+ 	int res;
+-	int auto_addr = 0;
+
+ 	if (hostapd_drv_none(hapd))
+ 		return 0;
+
+ 	/* Generate BSSID mask that is large enough to cover the BSSIDs. */
+
+-	/* Determine the bits necessary to cover the number of BSSIDs. */
+-	for (i--; i; i >>= 1)
+-		bits++;
+-
+ 	/* Determine the bits necessary to any configured BSSIDs,
+ 	   if they are higher than the number of BSSIDs. */
+ 	for (j = 0; j < iface->conf->num_bss; j++) {
+-		if (hostapd_mac_comp_empty(iface->conf->bss[j].bssid) == 0) {
+-			if (j)
+-				auto_addr++;
+-			continue;
+-		}
+-
+ 		for (i = 0; i < ETH_ALEN; i++) {
+ 			mask[i] |=
+-				iface->conf->bss[j].bssid[i] ^
++				iface->bss[j]->conf->bssid[i] ^
+ 				hapd->own_addr[i];
+ 		}
+ 	}
+
+-	if (!auto_addr)
+-		goto skip_mask_ext;
+-
+-	for (i = 0; i < ETH_ALEN && mask[i] == 0; i++)
+-		;
+-	j = 0;
+-	if (i < ETH_ALEN) {
+-		j = (5 - i) * 8;
+-
+-		while (mask[i] != 0) {
+-			mask[i] >>= 1;
+-			j++;
+-		}
+-	}
+-
+-	if (bits < j)
+-		bits = j;
+-
+-	if (bits > 40) {
+-		wpa_printf(MSG_ERROR, "Too many bits in the BSSID mask (%u)",
+-			   bits);
+-		return -1;
+-	}
+-
+-	os_memset(mask, 0xff, ETH_ALEN);
+-	j = bits / 8;
+-	for (i = 5; i > 5 - j; i--)
+-		mask[i] = 0;
+-	j = bits % 8;
+-	while (j--)
+-		mask[i] <<= 1;
+-
+-skip_mask_ext:
+-	wpa_printf(MSG_DEBUG, "BSS count %lu, BSSID mask " MACSTR " (%d bits)",
+-		   (unsigned long) iface->conf->num_bss, MAC2STR(mask), bits);
++	wpa_printf(MSG_DEBUG, "BSS count %lu, BSSID mask " MACSTR ,
++		   (unsigned long) iface->conf->num_bss, MAC2STR(mask));
+
+ 	res = hostapd_valid_bss_mask(hapd, hapd->own_addr, mask);
+ 	if (res == 0)
+@@ -436,21 +392,6 @@ skip_mask_ext:
+ 		return -1;
+ 	}
+
+-	if (!auto_addr)
+-		return 0;
+-
+-	for (i = 0; i < ETH_ALEN; i++) {
+-		if ((hapd->own_addr[i] & mask[i]) != hapd->own_addr[i]) {
+-			wpa_printf(MSG_ERROR, "Invalid BSSID mask " MACSTR
+-				   " for start address " MACSTR ".",
+-				   MAC2STR(mask), MAC2STR(hapd->own_addr));
+-			wpa_printf(MSG_ERROR, "Start address must be the "
+-				   "first address in the block (i.e., addr "
+-				   "AND mask == addr).");
+-			return -1;
+-		}
+-	}
+-
+ 	return 0;
+ }
+
+@@ -492,6 +433,7 @@ static int hostapd_setup_bss(struct hostapd_data *hapd, int first)
+ 	if (!first) {
+ 		if (hostapd_mac_comp_empty(hapd->conf->bssid) == 0) {
+ 			/* Allocate the next available BSSID. */
++			hapd->own_addr[0] |= 2; /* locally administered address */
+ 			do {
+ 				inc_byte_array(hapd->own_addr, ETH_ALEN);
+ 			} while (mac_in_conf(hapd->iconf, hapd->own_addr));
+@@ -672,9 +614,6 @@ static int setup_interface(struct hostapd_iface *iface)
+ 		iface->bss[i]->drv_priv = hapd->drv_priv;
+ 	}
+
+-	if (hostapd_validate_bssid_configuration(iface))
+-		return -1;
+-
+ 	if (hapd->iconf->country[0] && hapd->iconf->country[1]) {
+ 		os_memcpy(country, hapd->iconf->country, 3);
+ 		country[3] = '\0';
+@@ -774,6 +713,9 @@ int hostapd_setup_interface_complete(struct hostapd_iface *iface, int err)
+ 			prev_addr = hapd->own_addr;
+ 	}
+
++	if (hostapd_validate_bssid_configuration(iface))
++		return -1;
++
+ 	hostapd_tx_queue_params(iface);
+
+ 	ap_list_init(iface);

+ 2 - 1
package/oprofile/Makefile

@@ -25,10 +25,11 @@ $(eval $(call PKG_template,OPROFILE,${PKG_NAME},$(PKG_VERSION)-${PKG_RELEASE},${
 CONFIGURE_ARGS+=	--with-kernel-support
 
 post-install:
-	$(INSTALL_DIR) $(IDIR_OPROFILE)/usr/bin
+	$(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/
+	${CP} ${WRKINST}/usr/share/oprofile ${IDIR_OPROFILE}/usr/share/
 
 include ${TOPDIR}/mk/pkg-bottom.mk

+ 1 - 5
package/ppp/Makefile

@@ -32,7 +32,7 @@ $(eval $(call PKG_template,PPP_MOD_PPPSTATS,ppp-mod-pppstats,${PKG_VERSION}-${PK
 $(eval $(call PKG_template,PPP_MOD_PPPUMTS,ppp-mod-pppumts,${PKG_VERSION}-${PKG_RELEASE},${PKGSS_PPP_MOD_PPPUMTS},${PKG_DESCR},${PKG_SECTION}))
 
 CONFIG_STYLE:=		minimal
-CONFIGURE_ARGS+=	--system=Linux
+CONFIGURE_ARGS+=	--system=Linux --prefix="/usr"
 CONFIGURE_ENV+=		UNAME_S="Linux"
 TARGET_LDFLAGS+=	-lcrypt
 XAKE_FLAGS+=		STAGING_TARGET_DIR=${STAGING_TARGET_DIR} \
@@ -57,11 +57,9 @@ post-install:
 	${INSTALL_BIN} ./files/pon ${IDIR_PPP}/usr/sbin/
 	${INSTALL_BIN} ./files/poff ${IDIR_PPP}/usr/sbin/
 	${INSTALL_DIR} ${IDIR_PPP}/etc/ppp/peers
-ifeq (${ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS},y)
 	$(INSTALL_DIR) ${IDIR_PPP}/etc/network/if-pre-up.d
 	$(INSTALL_BIN) ./files/ppp.pre-up \
 		${IDIR_PPP}/etc/network/if-pre-up.d/05-ppp
-endif
 
 ppp-mod-radius-install:
 	${INSTALL_DIR} ${IDIR_PPP_MOD_RADIUS}/etc/radiusclient
@@ -104,13 +102,11 @@ ppp-mod-pppumts-install:
 	${INSTALL_DIR} ${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/templates
 	${INSTALL_DATA} ./files/etc/ppp/templates/umts \
 		${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/templates/
-ifeq (${ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS},y)
 	$(INSTALL_DIR) ${IDIR_PPP_MOD_PPPUMTS}/etc/network/if-pre-up.d
 	$(INSTALL_DIR) ${IDIR_PPP_MOD_PPPUMTS}/etc/network/if-post-down.d
 	$(INSTALL_BIN) ./files/hso.if-up \
 		${IDIR_PPP_MOD_PPPUMTS}/etc/network/if-pre-up.d/06-hso
 	$(INSTALL_BIN) ./files/hso.if-down \
 		${IDIR_PPP_MOD_PPPUMTS}/etc/network/if-post-down.d/06-hso
-endif
 
 include ${TOPDIR}/mk/pkg-bottom.mk

+ 1 - 1
target/arm/Makefile

@@ -74,7 +74,7 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
-imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+imageinstall: createinitramfs
 	@cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
 	@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)

+ 1 - 1
target/avr32/Makefile

@@ -22,7 +22,7 @@ imageinstall: $(BIN_DIR)/$(INITRAMFS)
 	@echo 'The initramfs image is: ${BIN_DIR}/${INITRAMFS}'
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
-imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+imageinstall: createinitramfs
 	@cp $(KERNEL) $(BIN_DIR)/${TARGET_KERNEL}
 	@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
 endif

+ 1 - 1
target/cris/Makefile

@@ -66,7 +66,7 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_CRIS),y)
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
-imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+imageinstall: createinitramfs
 	@cp $(KERNEL) $(BIN_DIR)/${TARGET_KERNEL}
 	@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_CRIS),y)

+ 1 - 1
target/mips/Makefile

@@ -131,7 +131,7 @@ ifneq ($(ADK_HARDWARE_QEMU),)
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
-imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+imageinstall: createinitramfs
 	@cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
 	@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
 ifneq ($(ADK_HARDWARE_QEMU),)

+ 1 - 1
target/native/Makefile

@@ -21,7 +21,7 @@ imageinstall: $(BIN_DIR)/$(INITRAMFS)
 	@echo 'The initramfs image is: ${BIN_DIR}/${INITRAMFS}'
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
-imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+imageinstall: createinitramfs
 	@cp $(KERNEL) $(BIN_DIR)/${TARGET_KERNEL}
 	@echo 'The kernel+initramfs file is: ${BIN_DIR}/${TARGET_KERNEL}'
 endif

+ 1 - 1
target/ppc/Makefile

@@ -33,7 +33,7 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC),y)
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
-imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+imageinstall: createinitramfs
 	@cp $(KERNEL) $(BIN_DIR)/${TARGET_KERNEL}
 	@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC),y)

+ 1 - 1
target/ppc64/Makefile

@@ -26,7 +26,7 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC64),y)
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
-imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+imageinstall: createinitramfs
 	@cp $(KERNEL) $(BIN_DIR)/${TARGET_KERNEL}
 	@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC64),y)

+ 1 - 1
target/sh/Makefile

@@ -26,7 +26,7 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_SH),y)
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
-imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+imageinstall: createinitramfs
 	@cp $(KERNEL) $(BIN_DIR)/${TARGET_KERNEL}
 	@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_SH),y)

+ 1 - 1
target/sparc/Makefile

@@ -32,7 +32,7 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_SPARC),y)
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
-imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+imageinstall: createinitramfs
 	@cp $(KERNEL) $(BIN_DIR)/${TARGET_KERNEL}
 	@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_SPARC),y)

+ 1 - 1
target/sparc64/Makefile

@@ -32,7 +32,7 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_SPARC64),y)
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
-imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+imageinstall: createinitramfs
 	@cp $(KERNEL) $(BIN_DIR)/${TARGET_KERNEL}
 	@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_SPARC64),y)

+ 1 - 1
target/x86/Makefile

@@ -47,7 +47,7 @@ ifeq ($(ADK_HARDWARE_QEMU),y)
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
-imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+imageinstall: createinitramfs
 	@cp $(KERNEL) $(BIN_DIR)/${TARGET_KERNEL}
 	@echo 'The kernel+initramfs file is: $(BIN_DIR)/${TARGET_KERNEL}'
 ifeq ($(ADK_HARDWARE_QEMU),y)

+ 2 - 2
target/x86_64/Makefile

@@ -28,7 +28,7 @@ endif
 ifeq ($(ADK_TARGET_FS),initramfs)
 imageinstall: $(BIN_DIR)/$(INITRAMFS)
 	@cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
-	@echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}
+	@echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
 	@echo 'The initramfs image is: ${BIN_DIR}/${INITRAMFS}'
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86_64),y)
 	@echo "Start qemu with following command line:"
@@ -36,7 +36,7 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86_64),y)
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
-imageinstall: ${BUILD_DIR}/${INITRAMFS_PIGGYBACK} createinitramfs
+imageinstall: createinitramfs
 	@cp $(KERNEL) $(BIN_DIR)/$(TARGET_KERNEL)
 	@echo 'The kernel file is: $(BIN_DIR)/${TARGET_KERNEL}'
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86_64),y)