crda: new package (thanks to Hauke Mehrtens <hauke@hauke-m.de>)

SVN-Revision: 14249
This commit is contained in:
Gabor Juhos 2009-01-28 20:03:04 +00:00
parent ec34d908c7
commit 11456c324d
3 changed files with 137 additions and 0 deletions

73
package/crda/Makefile Normal file
View file

@ -0,0 +1,73 @@
#
# Copyright (C) 2009 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# $Id$
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=crda
PKG_RELEASE:=1
PKG_VERSION:=1.0.1
PKG_SOURCE_URL:=http://wireless.kernel.org/download/crda
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_MD5SUM:=03554b71eef2626795befa17eb1d8b9e
PKG_BUILD_DEPENDS:=mac80211 libnl openssl
PKG_REGULATORY_NAME:=regulatory
PKG_REGULATORY_VERSION:=2009.01.15
PKG_REGULATORY_SOURCE_URL:=http://wireless.kernel.org/download/wireless-regdb/regulatory.bins
PKG_REGULATORY_SOURCE:=$(PKG_REGULATORY_VERSION)-$(PKG_REGULATORY_NAME).bin
PKG_REGULATORY_MD5SUM:=a0db99e5385c876b6da7e2869546f6e2
include $(INCLUDE_DIR)/package.mk
define Package/crda
SECTION:=net
CATEGORY:=Network
TITLE:=Central Regulatory Domain Agent (CRDA)
DEPENDS:=@LINUX_2_6 +hotplug2 +kmod-mac80211
URL:=http://wireless.kernel.org/en/developers/Regulatory/CRDA
endef
define Download/wireless-regdb
FILE:=$(PKG_REGULATORY_SOURCE)
URL:=$(PKG_REGULATORY_SOURCE_URL)
VERSION:=$(PKG_REGULATORY_VERSION)
MD5SUM:=$(PKG_REGULATORY_MD5SUM)
endef
$(eval $(call Download,wireless-regdb))
define Package/crda/description
This is the Central Regulatory Domain Agent for Linux. It serves one
purpose: tell Linux kernel what to enforce. In essence it is a udev
helper for communication between the kernel and userspace. You only
need to run this manually for debugging purposes. For manual changing
of regulatory domains use iw (iw reg set) or wpa_supplicant (feature
yet to be added).
endef
define Build/Compile
$(MAKE_VARS) \
$(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
$(MAKE_FLAGS) \
USE_OPENSSL=1 \
REG_BIN="$(DL_DIR)/$(PKG_REGULATORY_SOURCE)" \
$(1)
endef
define Package/crda/install
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_DIR) $(1)/etc/hotplug.d
$(INSTALL_DIR) $(1)/etc/hotplug.d/platform
$(INSTALL_DIR) $(1)/usr/lib/crda
$(INSTALL_BIN) $(PKG_BUILD_DIR)/crda $(1)/sbin/
$(INSTALL_DATA) ./files/hotplug.rule $(1)/etc/hotplug.d/platform/10-regulatory
$(INSTALL_DATA) $(DL_DIR)/$(PKG_REGULATORY_SOURCE) $(1)/usr/lib/crda/regulatory.bin
endef
$(eval $(call BuildPackage,crda))

View file

@ -0,0 +1,6 @@
#!/bin/sh
# Copyright (C) 2009 OpenWrt.org
[ change = "$ACTION" -a regulatory.0 = "$DEVICENAME" ] && {
/sbin/crda
}

View file

@ -0,0 +1,58 @@
Normally the keys-ssl.c will be auto generated in utils/key2pub.py, but for that the python-m2crypto package must be installed.
To not add an other dependencies to the buildroot this patch adds the result.
If the key in pubkeys/linville.key.pub.pem changes this patch has to be changed with the new keys-ssl.c included.
--- a/keys-ssl.c 1970-01-01 01:00:00.000000000 +0100
+++ b/keys-ssl.c 2009-01-20 22:35:10.000000000 +0100
@@ -0,0 +1,38 @@
+static BN_ULONG e_0[1] = {
+ 0x00010001,
+};
+
+static BN_ULONG n_0[64] = {
+ 0x16a0d8e1, 0x63a27054, 0xc8ba757b, 0xdc9fca11,
+ 0xcbcb35e3, 0xb9c06510, 0xba941433, 0x39e3dfeb,
+ 0x6c1fce9d, 0x7bbae38a, 0xfefabba7, 0x205a5a73,
+ 0x97839a2e, 0x53ea3e5a, 0x61dc0170, 0xfec8f5b6,
+ 0xd29a1004, 0xefe311d8, 0xa5156bb8, 0x8c6a92d0,
+ 0x7a6eb5cc, 0x9067cc76, 0x0bd5b1ff, 0xd103580b,
+ 0x8f3a2daf, 0x4a563e84, 0x46b0943e, 0xacd7cadb,
+ 0xebd1e198, 0x5fabb688, 0x5916f173, 0x7e70c1d3,
+ 0x5d6ca84e, 0xaaa8acc8, 0xe20fd4dc, 0x1685c157,
+ 0xad933f64, 0xf9e9c9c7, 0xc5f59824, 0xbe6272ed,
+ 0x53447bd1, 0x585d9a7d, 0x5b3bc30d, 0x011a5b3f,
+ 0xffbbf0e9, 0xf312b966, 0x482c131b, 0x2203fb37,
+ 0x0dc38eab, 0x3e7c157d, 0xb39fcc8d, 0xb04de1d6,
+ 0x07fc0d84, 0x4d9f0137, 0xe13b5ac5, 0xb075a241,
+ 0x8e56e153, 0x0a9a9d48, 0xf97054eb, 0xf2cff393,
+ 0x376024f2, 0x2a2ead68, 0x88d35dce, 0xd6579971,
+};
+
+
+struct pubkey {
+ struct bignum_st e, n;
+};
+
+#define KEY(data) { \
+ .d = data, \
+ .top = sizeof(data)/sizeof(data[0]), \
+}
+
+#define KEYS(e,n) { KEY(e), KEY(n), }
+
+static struct pubkey keys[] = {
+ KEYS(e_0, n_0),
+};
--- a/Makefile 2009-01-20 22:38:48.000000000 +0100
+++ b/Makefile 2009-01-20 22:38:56.000000000 +0100
@@ -75,10 +75,6 @@
$(NQ)
$(Q) exit 1
-keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
- $(NQ) ' GEN ' $@
- $(Q)./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@
-
%.o: %.c regdb.h
$(NQ) ' CC ' $@
$(Q)$(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<