packages/net/acme/Makefile
Toke Høiland-Jørgensen 983cc995a3 acme: Correctly handle domain state dir for ECC certificates
When issuing an ECC certificate, acme.sh for some reason changes the name
of the directory used for the certificate state. Handle this correctly when
moving directories and updating config files.

Fixes #7941.

Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
2020-01-12 19:59:01 +01:00

118 lines
2.9 KiB
Makefile

#
# Copyright (C) 2016 Toke Høiland-Jørgensen
#
# This is free software, licensed under the GNU General Public License v3 or
# later.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=acme
PKG_VERSION:=2.8.3
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/Neilpang/acme.sh/tar.gz/$(PKG_VERSION)?
PKG_HASH:=bdec71377a764919ac277e26d71ef7e24087f7f05171921888b70de6ab6e2cbc
PKG_BUILD_DIR:=$(BUILD_DIR)/acme.sh-$(PKG_VERSION)
PKG_MAINTAINER:=Toke Høiland-Jørgensen <toke@toke.dk>
PKG_LICENSE:=GPL-3.0-only
PKG_LICENSE_FILES:=LICENSE.md
LUCI_DIR:=/usr/lib/lua/luci
include $(INCLUDE_DIR)/package.mk
define Package/acme
SECTION:=net
CATEGORY:=Network
DEPENDS:=+gnu-wget +ca-bundle +openssl-util +socat
TITLE:=ACME (Letsencrypt) client
URL:=https://acme.sh
PKGARCH:=all
endef
define Package/acme/description
A client for issuing Letsencrypt certificates.
endef
define Package/acme/conffiles
/etc/config/acme
/etc/acme
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/acme/install
$(INSTALL_DIR) $(1)/etc/acme
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/acme.config $(1)/etc/config/acme
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/acme.init $(1)/etc/init.d/acme
$(INSTALL_DIR) $(1)/usr/lib/acme
$(INSTALL_BIN) ./files/run.sh $(1)/usr/lib/acme/run-acme
$(INSTALL_BIN) $(PKG_BUILD_DIR)/acme.sh $(1)/usr/lib/acme/acme.sh
endef
define Package/acme-dnsapi
SECTION:=net
CATEGORY:=Network
DEPENDS:=+acme
TITLE:=DNS API integration for ACME (Letsencrypt) client
PKGARCH:=all
endef
define Package/acme-dnsapi/description
This package provides DNS API integration for ACME (Letsencrypt) client.
endef
define Package/acme-dnsapi/install
$(INSTALL_DIR) $(1)/usr/lib/acme/dnsapi
$(INSTALL_DATA) $(PKG_BUILD_DIR)/dnsapi/*.sh $(1)/usr/lib/acme/dnsapi
endef
define Package/luci-app-acme
SECTION:=luci
CATEGORY:=LuCI
TITLE:=ACME package - LuCI interface
DEPENDS:= lua luci-base luci-compat +acme
SUBMENU:=3. Applications
PKGARCH:=all
endef
define Package/luci-app-acme/description
Control the ACME Letsencrypt certificate interface
endef
define Package/luci-app-acme/install
$(INSTALL_DIR) $(1)$(LUCI_DIR)/controller $(1)$(LUCI_DIR)/model/cbi
$(INSTALL_DATA) ./files/acme-controller.lua $(1)$(LUCI_DIR)/controller/acme.lua
$(INSTALL_DATA) ./files/acme-cbi.lua $(1)$(LUCI_DIR)/model/cbi/acme.lua
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/uci-defaults-acme $(1)/etc/uci-defaults/luci-acme
endef
define Package/luci-app-acme/postinst
#!/bin/sh
[ -x /etc/uci-defaults/luci-acme ] && /etc/uci-defaults/luci-acme || exit 0
endef
define Package/luci-app-acme/postrm
#!/bin/sh
which uci > /dev/null || exit 0
uci -q get ucitrack.@acme[0] > /dev/null && {
uci delete ucitrack.@acme[0]
uci commit
}
exit 0
endef
$(eval $(call BuildPackage,acme))
$(eval $(call BuildPackage,acme-dnsapi))
$(eval $(call BuildPackage,luci-app-acme))