mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 06:33:41 +00:00
83 lines
2.5 KiB
Makefile
83 lines
2.5 KiB
Makefile
|
ENGINES_DIR=engines-1.1
|
||
|
|
||
|
define Package/openssl/engine/Default
|
||
|
SECTION:=libs
|
||
|
CATEGORY:=Libraries
|
||
|
SUBMENU:=SSL
|
||
|
DEPENDS:=libopenssl @OPENSSL_ENGINE +libopenssl-conf
|
||
|
endef
|
||
|
|
||
|
# 1 = engine name
|
||
|
# 2 - package name, defaults to libopenssl-$(1)
|
||
|
define Package/openssl/add-engine
|
||
|
OSSL_ENG_PKG:=$(if $(2),$(2),libopenssl-$(1))
|
||
|
Package/$$(OSSL_ENG_PKG)/conffiles:=/etc/ssl/engines.cnf.d/$(1).cnf
|
||
|
|
||
|
define Package/$$(OSSL_ENG_PKG)/install
|
||
|
$$(INSTALL_DIR) $$(1)/usr/lib/$(ENGINES_DIR)
|
||
|
$$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/usr/lib/$(ENGINES_DIR)/$(1).so \
|
||
|
$$(1)/usr/lib/$(ENGINES_DIR)
|
||
|
$$(INSTALL_DIR) $$(1)/etc/ssl/engines.cnf.d
|
||
|
$$(INSTALL_DATA) ./files/$(1).cnf $$(1)/etc/ssl/engines.cnf.d/
|
||
|
endef
|
||
|
|
||
|
define Package/$$(OSSL_ENG_PKG)/postinst :=
|
||
|
#!/bin/sh
|
||
|
# $$$$1 == non-empty: suggest reinstall
|
||
|
error_out() {
|
||
|
[ "$1" ] && cat <<- EOF
|
||
|
Reinstalling the libopenssl-conf package may fix this:
|
||
|
|
||
|
opkg install --force-reinstall libopenssl-conf
|
||
|
EOF
|
||
|
cat <<- EOF
|
||
|
|
||
|
Then, you will have to reinstall this package, and any other engine package you have
|
||
|
you have previously installed to ensure they are enabled:
|
||
|
|
||
|
opkg install --force-reinstall $$(OSSL_ENG_PKG) [OTHER_ENGINE_PKG]...
|
||
|
|
||
|
EOF
|
||
|
exit 1
|
||
|
}
|
||
|
ENGINES_CNF="$$$${IPKG_INSTROOT}/etc/ssl/engines.cnf.d/engines.cnf"
|
||
|
OPENSSL_CNF="$$$${IPKG_INSTROOT}/etc/ssl/openssl.cnf"
|
||
|
if [ ! -f "$$$${OPENSSL_CNF}" ]; then
|
||
|
echo -e "ERROR: File $$$${OPENSSL_CNF} not found."
|
||
|
error_out reinstall
|
||
|
fi
|
||
|
if ! grep -q "^.include /etc/ssl/engines.cnf.d" "$$$${OPENSSL_CNF}"; then
|
||
|
cat <<- EOF
|
||
|
Your /etc/ssl/openssl.cnf file is not loading engine configuration files from
|
||
|
/etc/ssl/engines.cnf.d. You should consider start with a fresh, updated OpenSSL config by
|
||
|
running:
|
||
|
|
||
|
opkg install --force-reinstall --force-maintainer libopenssl-conf
|
||
|
|
||
|
The above command will overwrite any changes you may have made to both /etc/ssl/openssl.cnf
|
||
|
and /etc/ssl/engines.cnf.d/engines.cnf files, so back them up first!
|
||
|
EOF
|
||
|
error_out
|
||
|
fi
|
||
|
if [ ! -f "$$$${ENGINES_CNF}" ]; then
|
||
|
echo "Can't configure $$(OSSL_ENG_PKG): File $$$${ENGINES_CNF} not found."
|
||
|
error_out reinstall
|
||
|
fi
|
||
|
if grep -q "$(1)=$(1)" "$$$${ENGINES_CNF}"; then
|
||
|
echo "$$(OSSL_ENG_PKG): $(1) engine was already configured. Nothing to be done."
|
||
|
else
|
||
|
echo "$(1)=$(1)" >> "$$$${ENGINES_CNF}"
|
||
|
echo "$$(OSSL_ENG_PKG): $(1) engine enabled. All done!"
|
||
|
fi
|
||
|
endef
|
||
|
|
||
|
define Package/$$(OSSL_ENG_PKG)/prerm :=
|
||
|
#!/bin/sh
|
||
|
ENGINES_CNF="$$$${IPKG_INSTROOT}/etc/ssl/engines.cnf.d/engines.cnf"
|
||
|
[ -f "$$$${ENGINES_CNF}" ] || exit 0
|
||
|
sed -e '/$(1)=$(1)/d' -i "$$$${ENGINES_CNF}"
|
||
|
endef
|
||
|
endef
|
||
|
|
||
|
|