openssl-module.mk 2.1 KB

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