From: Daniel Golle Date: Sat, 14 Jan 2023 01:03:10 +0000 (+0000) Subject: libcurl-gnutls: add package, replaces gnURL X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=03098233ef43df1b6a40b0fc9cce6823a65e6da2;p=feed%2Fpackages.git libcurl-gnutls: add package, replaces gnURL The gnURL-fork of cURL is no longer maintained as cURL finally supports probing and selecting the TLS implementation at run-time. Hence just build a gnuTLS-backed variant of libcurl, use patchelf to change the shared object name, call the result libcurl-gnutls and be done. Other distributions have opted for similar solutions. In future we could convert the curl package to provide build-variants for each TLS implementation; however, this is out of the scope of the needs of GNUnet which used to be only user of libgnurl. Signed-off-by: Daniel Golle --- diff --git a/net/gnurl/Makefile b/net/gnurl/Makefile deleted file mode 100644 index dd1714309c..0000000000 --- a/net/gnurl/Makefile +++ /dev/null @@ -1,118 +0,0 @@ -# -# Copyright (C) 2007-2015 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:=gnurl -PKG_VERSION:=7.72.0 -PKG_RELEASE:=2 - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=@GNU/gnunet -PKG_HASH:=b1e72be03fcf9b3fdaf01ae0702c686e9de10f67ef538918447c9e81555694f8 - -PKG_MAINTAINER:=Daniel Golle -PKG_LICENSE:=MIT -PKG_LICENSE_FILES:=COPYING - -PKG_FIXUP:=autoreconf -PKG_INSTALL:=1 -PKG_BUILD_PARALLEL:=1 - -include $(INCLUDE_DIR)/package.mk - -define Package/gnurl/Default - SECTION:=net - CATEGORY:=Network - URL:=https://gnunet.org/en/gnurl.html -endef - -define Package/gnurl - $(call Package/gnurl/Default) - SUBMENU:=File Transfer - DEPENDS:=+libgnurl - TITLE:=A client-side HTTP/HTTPS transfer utility -endef - -define Package/libgnurl - $(call Package/gnurl/Default) - SECTION:=libs - CATEGORY:=Libraries - DEPENDS:=+libgnutls +libidn2 +zlib - TITLE:=A client-side HTTP/HTTPS transfer library -endef - -TARGET_CFLAGS += $(FPIC) - -CONFIGURE_ARGS += \ - $(call autoconf_bool,CONFIG_IPV6,ipv6) \ - --with-gnutls="$(STAGING_DIR)/usr" \ - --with-libidn="$(STAGING_DIR)/usr" \ - --with-zlib="$(STAGING_DIR)/usr" \ - --with-ca-path="/etc/ssl/certs/" \ - --enable-shared \ - --enable-static \ - --without-axtls \ - --without-brotli \ - --without-libssh2 \ - --without-libmetalink \ - --without-winidn \ - --without-librtmp \ - --without-nghttp2 \ - --without-nss \ - --without-cyassl \ - --without-libpsl \ - --without-polarssl \ - --without-ssl \ - --without-winssl \ - --without-darwinssl \ - --without-zstd \ - --disable-ares \ - --disable-sspi \ - --disable-crypto-auth \ - --disable-ntlm-wb \ - --disable-tls-srp \ - --disable-ldap \ - --disable-ldaps \ - --disable-rtsp \ - --disable-dict \ - --disable-telnet \ - --disable-tftp \ - --disable-pop3 \ - --disable-imap \ - --disable-smtp \ - --disable-gopher \ - --disable-file \ - --disable-ftp \ - --disable-smb \ - --disable-debug \ - --disable-manual \ - --disable-verbose - -define Build/InstallDev - $(INSTALL_DIR) $(2)/bin $(1)/usr/bin $(1)/usr/include/gnurl $(1)/usr/lib $(1)/usr/lib/pkgconfig - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gnurl-config $(1)/usr/bin/ - $(CP) $(PKG_INSTALL_DIR)/usr/include/gnurl/*.h $(1)/usr/include/gnurl - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgnurl.{a,so*} $(1)/usr/lib/ - $(CP) $(PKG_BUILD_DIR)/libgnurl.pc $(1)/usr/lib/pkgconfig/ - $(SED) 's,^\(prefix\|exec_prefix\)=.*,\1=$(STAGING_DIR)/usr,g' $(1)/usr/bin/gnurl-config - [ -n "$(TARGET_LDFLAGS)" ] && $(SED) 's#$(TARGET_LDFLAGS)##g' $(1)/usr/lib/pkgconfig/libgnurl.pc || true - $(LN) $(STAGING_DIR)/usr/bin/gnurl-config $(2)/bin/ -endef - -define Package/gnurl/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gnurl $(1)/usr/bin/ -endef - -define Package/libgnurl/install - $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgnurl.so.* $(1)/usr/lib/ -endef - -$(eval $(call BuildPackage,gnurl)) -$(eval $(call BuildPackage,libgnurl)) diff --git a/net/libcurl-gnutls/Makefile b/net/libcurl-gnutls/Makefile new file mode 100644 index 0000000000..55801dc5de --- /dev/null +++ b/net/libcurl-gnutls/Makefile @@ -0,0 +1,112 @@ +# +# Copyright (C) 2007-2023 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:=libcurl-gnutls + +PKG_SOURCE_NAME:=curl +PKG_VERSION:=7.86.0 +PKG_RELEASE:=1 +PKG_SOURCE:=$(PKG_SOURCE_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE_URL:=https://github.com/curl/curl/releases/download/curl-$(subst .,_,$(PKG_VERSION))/ \ + https://dl.uxnr.de/mirror/curl/ \ + https://curl.askapache.com/download/ \ + https://curl.se/download/ +PKG_HASH:=2d61116e5f485581f6d59865377df4463f2e788677ac43222b496d4e49fb627b + +PKG_MAINTAINER:=Daniel Golle +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=COPYING +PKG_CPE_ID:=cpe:/a:haxx:libcurl +PKG_ABI_VERSION:=4 + +PKG_FIXUP:=autoreconf +PKG_INSTALL:=1 +PKG_BUILD_PARALLEL:=1 +PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)/$(PKG_SOURCE_NAME)-$(PKG_VERSION) + +# Make sure headers are present for packages using libcurl-gnutls +PKG_BUILD_DEPENDS:=curl + +include $(INCLUDE_DIR)/package.mk + +define Package/libcurl-gnutls + SECTION:=libs + CATEGORY:=Libraries + URL:=https://gnunet.org/en/gnurl.html + SECTION:=libs + CATEGORY:=Libraries + DEPENDS:=+libgnutls +libidn2 +zlib + TITLE:=A client-side HTTP/HTTPS transfer library (build against gnuTLS) + ABI_VERSION:=$(PKG_ABI_VERSION) +endef + +TARGET_CFLAGS += $(FPIC) + +CONFIGURE_ARGS += \ + $(call autoconf_bool,CONFIG_IPV6,ipv6) \ + --with-gnutls="$(STAGING_DIR)/usr" \ + --with-libidn="$(STAGING_DIR)/usr" \ + --with-zlib="$(STAGING_DIR)/usr" \ + --with-ca-path="/etc/ssl/certs/" \ + --enable-shared \ + --enable-static \ + --without-axtls \ + --without-brotli \ + --without-libssh2 \ + --without-winidn \ + --without-librtmp \ + --without-nghttp2 \ + --without-nss \ + --without-cyassl \ + --without-libpsl \ + --without-polarssl \ + --without-openssl \ + --without-winssl \ + --without-zstd \ + --disable-ares \ + --disable-sspi \ + --disable-crypto-auth \ + --disable-ntlm-wb \ + --disable-tls-srp \ + --disable-ldap \ + --disable-ldaps \ + --disable-mqtt \ + --disable-rtsp \ + --disable-dict \ + --disable-telnet \ + --disable-tftp \ + --disable-pop3 \ + --disable-imap \ + --disable-smtp \ + --disable-gopher \ + --disable-file \ + --disable-ftp \ + --disable-smb \ + --disable-debug \ + --disable-manual \ + --disable-verbose + +define Build/Compile + $(call Build/Compile/Default) + patchelf --set-soname 'libcurl-gnutls.so.$(PKG_ABI_VERSION)' $(PKG_BUILD_DIR)/lib/.libs/libcurl.so.$(PKG_ABI_VERSION).* +endef + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcurl.so.$(PKG_ABI_VERSION).* $(1)/usr/lib/libcurl-gnutls.so.$(PKG_ABI_VERSION) + $(LN) libcurl-gnutls.so.$(PKG_ABI_VERSION) $(1)/usr/lib/libcurl-gnutls.so +endef + +define Package/libcurl-gnutls/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcurl.so.$(PKG_ABI_VERSION).* $(1)/usr/lib/libcurl-gnutls.so.$(PKG_ABI_VERSION) + $(LN) libcurl-gnutls.so.$(PKG_ABI_VERSION) $(1)/usr/lib/libcurl-gnutls.so +endef + +$(eval $(call BuildPackage,libcurl-gnutls))