b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | # SPDX-License-Identifier: GPL-2.0-only |
| 2 | # |
| 3 | # Copyright (C) 2022-2023 Enéas Ulir de Queiroz |
| 4 | |
| 5 | ENGINES_DIR=engines-3 |
| 6 | |
| 7 | define Package/openssl/module/Default |
| 8 | SECTION:=libs |
| 9 | CATEGORY:=Libraries |
| 10 | SUBMENU:=SSL |
| 11 | DEPENDS:=libopenssl +libopenssl-conf |
| 12 | endef |
| 13 | |
| 14 | define Package/openssl/engine/Default |
| 15 | $(Package/openssl/module/Default) |
| 16 | DEPENDS+=@OPENSSL_ENGINE |
| 17 | endef |
| 18 | |
| 19 | |
| 20 | # 1 = moudule type (engine|provider) |
| 21 | # 2 = module name |
| 22 | # 3 = directory to save .so file |
| 23 | # 4 = [ package name, defaults to libopenssl-$(2) ] |
| 24 | define Package/openssl/add-module |
| 25 | $(eval MOD_TYPE:=$(1)) |
| 26 | $(eval MOD_NAME:=$(2)) |
| 27 | $(eval MOD_DIR:=$(3)) |
| 28 | $(eval OSSL_PKG:=$(if $(4),$(4),libopenssl-$(MOD_NAME))) |
| 29 | $(info Package/openssl/add-module 1='$(1)'; 2='$(2)'; 3='$(3)' 4='$(4)') |
| 30 | $(info MOD_TYPE='$(MOD_TYPE)'; MOD_NAME='$(MOD_NAME)'; MOD_DIR='$(MOD_DIR)' OSSL_PKG='$(OSSL_PKG)') |
| 31 | Package/$(OSSL_PKG)/conffiles:=/etc/ssl/modules.cnf.d/$(MOD_NAME).cnf |
| 32 | |
| 33 | define Package/$(OSSL_PKG)/install |
| 34 | $$(INSTALL_DIR) $$(1)/$(MOD_DIR) |
| 35 | $$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/$(MOD_DIR)/$(MOD_NAME).so \ |
| 36 | $$(1)/$(MOD_DIR) |
| 37 | $$(INSTALL_DIR) $$(1)/etc/ssl/modules.cnf.d |
| 38 | $$(INSTALL_DATA) ./files/$(MOD_NAME).cnf $$(1)/etc/ssl/modules.cnf.d/ |
| 39 | endef |
| 40 | |
| 41 | define Package/$(OSSL_PKG)/postinst |
| 42 | #!/bin/sh |
| 43 | OPENSSL_UCI="$$$${IPKG_INSTROOT}/etc/config/openssl" |
| 44 | |
| 45 | [ -z "$$$${IPKG_INSTROOT}" ] \ |
| 46 | && uci -q get openssl.$(MOD_NAME) >/dev/null \ |
| 47 | && exit 0 |
| 48 | |
| 49 | cat << EOF >> "$$$${OPENSSL_UCI}" |
| 50 | |
| 51 | config $(MOD_TYPE) '$(MOD_NAME)' |
| 52 | option enabled '1' |
| 53 | EOF |
| 54 | |
| 55 | [ -n "$$$${IPKG_INSTROOT}" ] || /etc/init.d/openssl reload |
| 56 | exit 0 |
| 57 | endef |
| 58 | |
| 59 | define Package/$(OSSL_PKG)/postrm |
| 60 | #!/bin/sh |
| 61 | [ -n "$$$${IPKG_INSTROOT}" ] && exit 0 |
| 62 | uci -q delete openssl.$(MOD_NAME) && uci commit openssl |
| 63 | /etc/init.d/openssl reload |
| 64 | exit 0 |
| 65 | endef |
| 66 | endef |
| 67 | |
| 68 | # 1 = engine name |
| 69 | # 2 - package name, defaults to libopenssl-$(1) |
| 70 | define Package/openssl/add-engine |
| 71 | $(call Package/openssl/add-module,engine,$(1),/usr/lib/$(ENGINES_DIR),$(2)) |
| 72 | endef |
| 73 | |
| 74 | # 1 = provider name |
| 75 | # 2 = [ package name, defaults to libopenssl-$(1) ] |
| 76 | define Package/openssl/add-provider |
| 77 | $(call Package/openssl/add-module,provider,$(1),/usr/lib/ossl-modules,$(2)) |
| 78 | endef |
| 79 | |