aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs/libnl
diff options
context:
space:
mode:
Diffstat (limited to 'package/libs/libnl')
-rw-r--r--package/libs/libnl/Makefile56
-rw-r--r--package/libs/libnl/patches/110-offsetof.patch12
-rw-r--r--package/libs/libnl/patches/160-update_includes_for_iw.patch34
3 files changed, 102 insertions, 0 deletions
diff --git a/package/libs/libnl/Makefile b/package/libs/libnl/Makefile
new file mode 100644
index 0000000000..13756995fd
--- /dev/null
+++ b/package/libs/libnl/Makefile
@@ -0,0 +1,56 @@
+#
+# Copyright (C) 2006-2009 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libnl
+PKG_VERSION:=2.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.infradead.org/~tgr/libnl/files/
+PKG_MD5SUM:=6aaf1e9802a17a7d702bb0638044ffa7
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libnl
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=netlink socket library
+ URL:=http://people.suug.ch/~tgr/libnl/
+endef
+
+define Package/libnl/description
+ This package contains a library for applications dealing with netlink sockets
+endef
+
+TARGET_CFLAGS += -ffunction-sections $(FPIC)
+
+define Build/Compile
+ $(call Build/Compile/Default)
+ make -C $(PKG_BUILD_DIR) \
+ DESTDIR="$(PKG_INSTALL_DIR)" \
+ install
+endef
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)
+ $(CP) $(PKG_INSTALL_DIR)/* $(1)/
+ mkdir -p $(1)/usr/include/libnl
+ $(CP) $(PKG_BUILD_DIR)/include/linux $(1)/usr/include/libnl/
+endef
+
+define Package/libnl/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-route.so.* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-genl.so.* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-nf.so.* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-route.so.* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl.so.* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libnl))
diff --git a/package/libs/libnl/patches/110-offsetof.patch b/package/libs/libnl/patches/110-offsetof.patch
new file mode 100644
index 0000000000..fa944a9c4b
--- /dev/null
+++ b/package/libs/libnl/patches/110-offsetof.patch
@@ -0,0 +1,12 @@
+--- a/include/netlink-local.h
++++ b/include/netlink-local.h
+@@ -337,7 +337,9 @@ static inline int nl_cb_call(struct nl_c
+ }
+
+ #define ARRAY_SIZE(X) (sizeof(X) / sizeof((X)[0]))
++#ifndef offsetof
+ #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
++#endif
+
+ #define __init __attribute__ ((constructor))
+ #define __exit __attribute__ ((destructor))
diff --git a/package/libs/libnl/patches/160-update_includes_for_iw.patch b/package/libs/libnl/patches/160-update_includes_for_iw.patch
new file mode 100644
index 0000000000..ad36dab4ba
--- /dev/null
+++ b/package/libs/libnl/patches/160-update_includes_for_iw.patch
@@ -0,0 +1,34 @@
+--- a/include/linux/genetlink.h
++++ b/include/linux/genetlink.h
+@@ -39,6 +39,9 @@ enum {
+ CTRL_CMD_NEWOPS,
+ CTRL_CMD_DELOPS,
+ CTRL_CMD_GETOPS,
++ CTRL_CMD_NEWMCAST_GRP,
++ CTRL_CMD_DELMCAST_GRP,
++ CTRL_CMD_GETMCAST_GRP, /* unused */
+ __CTRL_CMD_MAX,
+ };
+
+@@ -52,6 +55,7 @@ enum {
+ CTRL_ATTR_HDRSIZE,
+ CTRL_ATTR_MAXATTR,
+ CTRL_ATTR_OPS,
++ CTRL_ATTR_MCAST_GROUPS,
+ __CTRL_ATTR_MAX,
+ };
+
+@@ -66,4 +70,13 @@ enum {
+
+ #define CTRL_ATTR_OP_MAX (__CTRL_ATTR_OP_MAX - 1)
+
++enum {
++ CTRL_ATTR_MCAST_GRP_UNSPEC,
++ CTRL_ATTR_MCAST_GRP_NAME,
++ CTRL_ATTR_MCAST_GRP_ID,
++ __CTRL_ATTR_MCAST_GRP_MAX,
++};
++
++#define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1)
++
+ #endif /* __LINUX_GENERIC_NETLINK_H */