From a206f07dd3220927158c8e90a854666419472661 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Tue, 3 Jun 2014 18:17:20 +0200 Subject: [PATCH] Added gnutls library --- libs/gnutls/Config.in | 34 +++++++ libs/gnutls/Makefile | 231 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 265 insertions(+) create mode 100644 libs/gnutls/Config.in create mode 100644 libs/gnutls/Makefile diff --git a/libs/gnutls/Config.in b/libs/gnutls/Config.in new file mode 100644 index 0000000000..d55743f5a6 --- /dev/null +++ b/libs/gnutls/Config.in @@ -0,0 +1,34 @@ +# gnutls avanced configuration + +menu "Configuration" + depends on PACKAGE_libgnutls + +config GNUTLS_DTLS_SRTP + bool "enable DTLS SRTP support" + +config GNUTLS_ALPN + bool "enable ALPN support" + +config GNUTLS_OCSP + bool "enable ocsp support" + +config GNUTLS_CRYPTODEV + bool "enable /dev/crypto support" + depends on BROKEN + +config GNUTLS_HEARTBEAT + bool "enable DTLS heartbeat support" + +config GNUTLS_OPENPGP + bool "enable OPENPGP authentication support" + +config GNUTLS_SRP + bool "enable SRP authentication support" + +config GNUTLS_PSK + bool "enable PSK authentication support" + +config GNUTLS_ANON + bool "enable anonymous authentication support" + +endmenu diff --git a/libs/gnutls/Makefile b/libs/gnutls/Makefile new file mode 100644 index 0000000000..d1f8919d5c --- /dev/null +++ b/libs/gnutls/Makefile @@ -0,0 +1,231 @@ +# +# Copyright (C) 2005-2010 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:=gnutls +PKG_VERSION:=3.2.15 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE_URL:=ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2 +PKG_MD5SUM:=ec3b06f80e312137386c5d322183ca5a +PKG_MAINTAINER:=Nikos Mavrogiannopoulos + +PKG_INSTALL:=1 +PKG_LIBTOOL_PATHS:=. lib + +include $(INCLUDE_DIR)/package.mk + + +define Package/gnutls/Default + SUBMENU:=SSL + SECTION:=libs + CATEGORY:=Libraries + TITLE:=GNU TLS + URL:=http://www.gnutls.org/ +endef + +define Package/gnutls/Default/description + GnuTLS is a secure communications library implementing the SSL, TLS + and DTLS protocols and technologies around them. It provides a simple + C language application programming interface (API) to access the secure + communications protocols as well as APIs to parse and write X.509, PKCS12, + OpenPGP and other required structures. It is aimed to be portable and + efficient with focus on security and interoperability. +endef + + +define Package/certtool +$(call Package/gnutls/Default) + SECTION:=utils + CATEGORY:=Utilities + TITLE+= (certool utility) + DEPENDS+= +libgnutls +endef + +define Package/certtool/description +$(call Package/gnutls/Default/description) + This package contains the GnuTLS certtool utility. +endef + + +define Package/gnutls-utils +$(call Package/gnutls/Default) + SECTION:=utils + CATEGORY:=Utilities + TITLE+= (utilities) + DEPENDS+= +libgnutls +endef + +define Package/gnutls-utils/description +$(call Package/gnutls/Default/description) + This package contains the GnuTLS gnutls-cli, gnutls-serv, psktool, + and srptool utilities. +endef + +define Package/libgnutls/config + source "$(SOURCE)/Config.in" +endef + +define Package/libgnutls +$(call Package/gnutls/Default) + TITLE+= (library) + DEPENDS+= +libnettle +!LIBNETTLE_MINI:libgmp +endef + +define Package/libgnutls/description +$(call Package/gnutls/Default/description) + This package contains the GnuTLS shared library, needed by other programs. +endef + + +define Package/libgnutls-openssl +$(call Package/gnutls/Default) + TITLE+= (OpenSSL compat library) + DEPENDS+= +libgnutls +endef + +define Package/libgnutls-openssl/description +$(call Package/gnutls/Default/description) + This package contains the GnuTLS OpenSSL compatibility layer shared library. +endef + +CONFIGURE_ARGS+= \ + --enable-shared \ + --enable-static \ + --disable-libdane \ + --disable-guile \ + --disable-nls \ + --without-zlib \ + --with-included-libtasn1 \ + --enable-local-libopts \ + --disable-doc \ + --disable-tests \ + --disable-rsa-export \ + --disable-crywrap \ + --without-p11-kit + +ifeq ($(CONFIG_LIBNETTLE_MINI),y) +CONFIGURE_ARGS += --with-nettle-mini +endif + +ifneq ($(CONFIG_GNUTLS_DTLS_SRTP),y) +CONFIGURE_ARGS += --disable-dtls-srtp-support +endif + +ifneq ($(CONFIG_GNUTLS_ALPN),y) +CONFIGURE_ARGS += --disable-alpn-support +endif + +ifneq ($(CONFIG_GNUTLS_HEARTBEAT),y) +CONFIGURE_ARGS += --disable-heartbeat-support +endif + +ifneq ($(CONFIG_GNUTLS_SRP),y) +CONFIGURE_ARGS += --disable-srp-authentication +endif + +ifneq ($(CONFIG_GNUTLS_PSK),y) +CONFIGURE_ARGS += --disable-psk-authentication +endif + +ifneq ($(CONFIG_GNUTLS_OPENPGP),y) +CONFIGURE_ARGS += --disable-openpgp-authentication +endif + +ifneq ($(CONFIG_GNUTLS_ANON),y) +CONFIGURE_ARGS += --disable-anon-authentication +endif + +ifneq ($(CONFIG_GNUTLS_OCSP),y) +CONFIGURE_ARGS += --disable-ocsp +endif + +ifeq ($(CONFIG_GNUTLS_CRYPTODEV),y) +CONFIGURE_ARGS += --enable-cryptodev +endif + +# XXX: AM_CFLAGS duplicates with CFLAGS +MAKE_FLAGS:= \ + AM_CFLAGS="" \ + +TARGET_CFLAGS += $(FPIC) +TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib + +define Build/Configure + $(SED) 's,-I$$$${includedir},,g' $(PKG_BUILD_DIR)/configure + $(SED) 's,-L$$$${libdir},,g' $(PKG_BUILD_DIR)/configure + $(call Build/Configure/Default) +endef + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/include $(1)/usr/lib/pkgconfig + $(CP) \ + $(PKG_INSTALL_DIR)/usr/include/gnutls \ + $(1)/usr/include/ + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libgnutls{,-openssl}.{a,so*} \ + $(1)/usr/lib/ + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/gnutls.pc \ + $(1)/usr/lib/pkgconfig/ +endef + +define Package/certtool/conffiles +/etc/gnutls/certtool.cfg +endef + +define Package/certtool/install + $(INSTALL_DIR) $(1)/etc/gnutls + $(INSTALL_CONF) $(PKG_BUILD_DIR)/doc/certtool.cfg $(1)/etc/gnutls/ + $(INSTALL_DIR) $(1)/usr/bin + $(CP) $(PKG_INSTALL_DIR)/usr/bin/certtool $(1)/usr/bin/ +endef + + +define Package/gnutls-utils/install + $(INSTALL_DIR) $(1)/usr/bin +ifeq ($(CONFIG_GNUTLS_OCSP),y) +ifeq ($(CONFIG_GNUTLS_ANON),y) + $(CP) \ + $(PKG_INSTALL_DIR)/usr/bin/gnutls-{cli,serv} \ + $(1)/usr/bin/ +endif + $(CP) \ + $(PKG_INSTALL_DIR)/usr/bin/ocsptool \ + $(1)/usr/bin/ +endif +ifeq ($(CONFIG_GNUTLS_SRP),y) + $(CP) \ + $(PKG_INSTALL_DIR)/usr/bin/srptool \ + $(1)/usr/bin/ +endif +ifeq ($(CONFIG_GNUTLS_PSK),y) + $(CP) \ + $(PKG_INSTALL_DIR)/usr/bin/psktool \ + $(1)/usr/bin/ +endif +endef + + +define Package/libgnutls/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgnutls.so.* $(1)/usr/lib/ +endef + + +define Package/libgnutls-openssl/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgnutls-openssl.so.* $(1)/usr/lib/ +endef + + +$(eval $(call BuildPackage,certtool)) +$(eval $(call BuildPackage,gnutls-utils)) +$(eval $(call BuildPackage,libgnutls)) +$(eval $(call BuildPackage,libgnutls-openssl))