aboutsummaryrefslogtreecommitdiff
path: root/net/uacme/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'net/uacme/Makefile')
-rw-r--r--net/uacme/Makefile93
1 files changed, 93 insertions, 0 deletions
diff --git a/net/uacme/Makefile b/net/uacme/Makefile
new file mode 100644
index 000000000..60fbd561b
--- /dev/null
+++ b/net/uacme/Makefile
@@ -0,0 +1,93 @@
+#
+# Copyright (C) 2019 Lucian Cristian <lucian.cristian@gmail.com>
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=uacme
+PKG_VERSION:=1.0.20
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/ndilieto/uacme/tar.gz/upstream/$(PKG_VERSION)?
+PKG_HASH:=c9106e166156685fcf9f164f0b2935cf680251a653f460b04da26a290e946bf9
+
+PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
+PKG_LICENSE:=GPL-3.0-or-later
+PKG_LICENSE_FILES:=COPYING
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-upstream-$(PKG_VERSION)
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+PKG_CONFIG_DEPENDS:= \
+ CONFIG_LIBCURL_GNUTLS \
+ CONFIG_LIBCURL_MBEDTLS \
+ CONFIG_LIBCURL_OPENSSL \
+ CONFIG_LIBCURL_WOLFSSL \
+ CONFIG_LIBCURL_NOSSL
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/uacme
+ SECTION:=net
+ CATEGORY:=Network
+ DEPENDS:=+libcurl +LIBCURL_WOLFSSL:libmbedtls
+ TITLE:=lightweight client for ACMEv2
+ URL:=https://github.com/ndilieto/uacme
+endef
+
+define Package/uacme/Default/description
+ lightweight client for the RFC8555 ACMEv2 protocol, written in plain C code
+ with minimal dependencies (libcurl and one of GnuTLS, OpenSSL or mbedTLS).
+ The ACMEv2 protocol allows a Certificate Authority (https://letsencrypt.org
+ is a popular one) and an applicant to automate the process of verification
+ and certificate issuance. The protocol also provides facilities for other
+ certificate management functions, such as certificate revocation.
+endef
+
+define Package/uacme/config
+if PACKAGE_uacme && LIBCURL_WOLFSSL
+ comment "libcurl uses WolfSSL; uacme will install mbedtls"
+ comment "Choose another SSL lib in libcurl to avoid this"
+endif
+if PACKAGE_uacme && LIBCURL_NOSSL
+ comment "libcurl is built without ssl; uacme needs ssl support"
+ comment "Choose another SSL lib in libcurl to avoid this"
+endif
+endef
+TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
+
+CONFIGURE_ARGS+= \
+ --disable-maintainer-mode \
+ --disable-docs \
+ $(if $(CONFIG_LIBCURL_GNUTLS),--with-gnutls --without-mbedtls --without-openssl,) \
+ $(if $(CONFIG_LIBCURL_MBEDTLS),--without-gnutls --with-mbedtls --without-openssl,) \
+ $(if $(CONFIG_LIBCURL_OPENSSL),--without-gnutls --without-mbedtls --with-openssl,) \
+ $(if $(CONFIG_LIBCURL_WOLFSSL),--without-gnutls --with-mbedtls --without-openssl,)
+
+define Package/uacme/conffiles
+/etc/config/acme
+/etc/acme
+endef
+
+define Package/uacme/install
+ $(INSTALL_DIR) \
+ $(1)/usr/sbin \
+ $(1)/etc/acme \
+ $(1)/etc/config \
+ $(1)/etc/init.d \
+ $(1)/usr/share/uacme
+
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/uacme $(1)/usr/sbin/uacme
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/uacme/uacme.sh $(1)/usr/share/uacme/
+ $(SED) '/^CHALLENGE_PATH=/d' $(1)/usr/share/uacme/uacme.sh
+ $(INSTALL_CONF) ./files/acme.config $(1)/etc/config/acme
+ $(INSTALL_BIN) ./files/run.sh $(1)/usr/share/uacme/run-uacme
+ $(INSTALL_BIN) ./files/acme.init $(1)/etc/init.d/acme
+endef
+
+$(eval $(call BuildPackage,uacme))