ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/package/libs/keyutils/Makefile b/package/libs/keyutils/Makefile
new file mode 100644
index 0000000..888b70f
--- /dev/null
+++ b/package/libs/keyutils/Makefile
@@ -0,0 +1,92 @@
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=keyutils
+PKG_VERSION:=1.6.3
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/snapshot/
+PKG_HASH:=a61d5706136ae4c05bd48f86186bcfdbd88dd8bd5107e3e195c924cfc1b39bb4
+PKG_CPE_ID:=cpe:/a:keyutils_project:keyutils
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libkeyutils
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=Key utilities library
+ URL:=https://people.redhat.com/dhowells/keyutils/
+ LICENSE:=LGPL-2.1-or-later
+ LICENSE_FILES:=LICENSE.LGPL
+ ABI_VERSION:=1
+endef
+
+define Package/keyctl
+ SECTION:=utils
+ CATEGORY:=Utilities
+ SUBMENU:=Encryption
+ TITLE:=keyctl
+ DEPENDS:=+libkeyutils
+ LICENSE:=GPL-2.0-or-later
+ LICENSE_FILES:=LICENSE.GPL
+endef
+
+define Package/keyutils
+ SECTION:=utils
+ CATEGORY:=Utilities
+ SUBMENU:=Encryption
+ TITLE:=keyutils (request-key and key.dns_resolver)
+ DEPENDS:=+libkeyutils
+ LICENSE:=GPL-2.0-or-later
+ LICENSE_FILES:=LICENSE.GPL
+endef
+
+define Package/keyutils/description
+ Key utilities
+endef
+
+MAKE_FLAGS += \
+ BINDIR=/bin \
+ LIBDIR=/usr/lib \
+ SBINDIR=/sbin \
+ CFLAGS="$(TARGET_CFLAGS) $(FPIC)"
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
+
+ $(INSTALL_DIR) $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libkeyutils.a $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libkeyutils.so.$(ABI_VERSION)* $(1)/usr/lib/
+endef
+
+define Package/libkeyutils/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libkeyutils.so.$(ABI_VERSION)* $(1)/usr/lib/
+endef
+
+define Package/keyutils/install
+ $(INSTALL_DIR) $(1)/sbin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/request-key $(1)/sbin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/key.dns_resolver $(1)/sbin/
+
+ $(INSTALL_DIR) $(1)/etc/keyutils $(1)/etc/request-key.d
+ $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/request-key.conf $(1)/etc/
+endef
+
+define Package/keyctl/install
+ $(INSTALL_DIR) $(1)/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/bin/keyctl $(1)/bin
+endef
+
+$(eval $(call BuildPackage,libkeyutils))
+$(eval $(call BuildPackage,keyutils))
+$(eval $(call BuildPackage,keyctl))
diff --git a/package/libs/keyutils/patches/010-reproducible-build.patch b/package/libs/keyutils/patches/010-reproducible-build.patch
new file mode 100644
index 0000000..0507f91
--- /dev/null
+++ b/package/libs/keyutils/patches/010-reproducible-build.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -109,7 +109,7 @@ all: keyctl request-key key.dns_resolver
+ ###############################################################################
+ #RPATH = -Wl,-rpath,$(LIBDIR)
+
+-VCPPFLAGS := -DPKGBUILD="\"$(shell date -u +%F)\""
++VCPPFLAGS := -DPKGBUILD="\"for OpenWrt"\"
+ VCPPFLAGS += -DPKGVERSION="\"keyutils-$(VERSION)\""
+ VCPPFLAGS += -DAPIVERSION="\"libkeyutils-$(APIVERSION)\""
+
diff --git a/package/libs/keyutils/patches/020-rindex.patch b/package/libs/keyutils/patches/020-rindex.patch
new file mode 100644
index 0000000..5137518
--- /dev/null
+++ b/package/libs/keyutils/patches/020-rindex.patch
@@ -0,0 +1,17 @@
+--- a/key.dns_resolver.c
++++ b/key.dns_resolver.c
+@@ -717,12 +717,12 @@ int main(int argc, char *argv[])
+ keyend = buf + ktlen + 1;
+
+ /* the actual key description follows the last semicolon */
+- keyend = rindex(keyend, ';');
++ keyend = strrchr(keyend, ';');
+ if (!keyend)
+ error("Invalid key description: %s", buf);
+ keyend++;
+
+- name = index(keyend, ':');
++ name = strchr(keyend, ':');
+ if (!name)
+ dns_query_a_or_aaaa(keyend, callout_info);
+