# SPDX-License-Identifier: GPL-2.0-only # # Copyright (C) 2022-2023 Enéas Ulir de Queiroz ENGINES_DIR=engines-3 define Package/openssl/module/Default SECTION:=libs CATEGORY:=Libraries SUBMENU:=SSL DEPENDS:=libopenssl +libopenssl-conf endef define Package/openssl/engine/Default $(Package/openssl/module/Default) DEPENDS+=@OPENSSL_ENGINE endef # 1 = moudule type (engine|provider) # 2 = module name # 3 = directory to save .so file # 4 = [ package name, defaults to libopenssl-$(2) ] define Package/openssl/add-module $(eval MOD_TYPE:=$(1)) $(eval MOD_NAME:=$(2)) $(eval MOD_DIR:=$(3)) $(eval OSSL_PKG:=$(if $(4),$(4),libopenssl-$(MOD_NAME))) $(info Package/openssl/add-module 1='$(1)'; 2='$(2)'; 3='$(3)' 4='$(4)') $(info MOD_TYPE='$(MOD_TYPE)'; MOD_NAME='$(MOD_NAME)'; MOD_DIR='$(MOD_DIR)' OSSL_PKG='$(OSSL_PKG)') Package/$(OSSL_PKG)/conffiles:=/etc/ssl/modules.cnf.d/$(MOD_NAME).cnf define Package/$(OSSL_PKG)/install $$(INSTALL_DIR) $$(1)/$(MOD_DIR) $$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/$(MOD_DIR)/$(MOD_NAME).so \ $$(1)/$(MOD_DIR) $$(INSTALL_DIR) $$(1)/etc/ssl/modules.cnf.d $$(INSTALL_DATA) ./files/$(MOD_NAME).cnf $$(1)/etc/ssl/modules.cnf.d/ endef define Package/$(OSSL_PKG)/postinst #!/bin/sh OPENSSL_UCI="$$$${IPKG_INSTROOT}/etc/config/openssl" [ -z "$$$${IPKG_INSTROOT}" ] \ && uci -q get openssl.$(MOD_NAME) >/dev/null \ && exit 0 cat << EOF >> "$$$${OPENSSL_UCI}" config $(MOD_TYPE) '$(MOD_NAME)' option enabled '1' EOF [ -n "$$$${IPKG_INSTROOT}" ] || /etc/init.d/openssl reload exit 0 endef define Package/$(OSSL_PKG)/postrm #!/bin/sh [ -n "$$$${IPKG_INSTROOT}" ] && exit 0 uci -q delete openssl.$(MOD_NAME) && uci commit openssl /etc/init.d/openssl reload exit 0 endef endef # 1 = engine name # 2 - package name, defaults to libopenssl-$(1) define Package/openssl/add-engine $(call Package/openssl/add-module,engine,$(1),/usr/lib/$(ENGINES_DIR),$(2)) endef # 1 = provider name # 2 = [ package name, defaults to libopenssl-$(1) ] define Package/openssl/add-provider $(call Package/openssl/add-module,provider,$(1),/usr/lib/ossl-modules,$(2)) endef