Skip to content
Snippets Groups Projects
openssl-module.mk 2.08 KiB
Newer Older
  • Learn to ignore specific revisions
  • # 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