Index: head/security/dehydrated/Makefile =================================================================== --- head/security/dehydrated/Makefile (revision 422343) +++ head/security/dehydrated/Makefile (revision 422344) @@ -1,82 +1,83 @@ # $FreeBSD$ PORTNAME= dehydrated PORTVERSION= 0.3.1 DISTVERSIONPREFIX= v +PORTREVISION= 1 CATEGORIES= security MAINTAINER= sascha@root-login.org COMMENT= Pure BASH/ZSH Lets Encrypt client LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE RUN_DEPENDS= curl:ftp/curl USE_GITHUB= yes GH_ACCOUNT= lukas2511 OPTIONS_SINGLE= SHELL OPTIONS_SINGLE_SHELL= BASH ZSH BASH_DESC= Use the Bourne Again shell (BASH) ZSH_DESC= Use the Z shell (ZSH) OPTIONS_DEFAULT= BASH NO_ARCH= yes NO_BUILD= yes USES= shebangfix BASH_RUN_DEPENDS= bash:shells/bash ZSH_RUN_DEPENDS= zsh:shells/zsh PERIODIC_DIRS= etc/periodic/weekly PERIODIC_FILES= 000.dehydrated PLIST_DIRS= %%ETCDIR%%/.acme-challenges \ www/dehydrated PLIST_FILES= bin/dehydrated \ %%ETCDIR%%/config.example \ %%ETCDIR%%/hook.sh.example \ %%ETCDIR%%/domains.txt.example \ ${PERIODIC_DIRS}/000.dehydrated PORTDOCS_PLIST_FILES= %%PORTDOCS%%%%DOCSDIR%%/README.md SUB_FILES= 000.dehydrated pkg-message SUB_LIST= PORTNAME=${PORTNAME} PORTDOCS= README.md dns-verification.md domains_txt.md ecc.md hook_chain.md \ import-from-official-client.md per-certificate-config.md staging.md \ troubleshooting.md wellknown.md SHEBANG_FILES= docs/examples/hook.sh dehydrated post-patch: . for f in docs/examples/config dehydrated ${REINPLACE_CMD} 's|/var/www/dehydrated|${PREFIX}/www/dehydrated|' \ ${WRKSRC}/${f} . endfor post-patch-ZSH-on: . for p in docs/examples/config docs/examples/hook.sh dehydrated ${REINPLACE_CMD} '1 s/bash/zsh/' ${WRKSRC}/${p} . endfor do-install: @${MKDIR} ${STAGEDIR}${ETCDIR}/.acme-challenges ${STAGEDIR}${PREFIX}/${PERIODIC_DIRS} ${INSTALL_DATA} ${WRKSRC}/docs/examples/config ${STAGEDIR}${ETCDIR}/config.example ${INSTALL_DATA} ${WRKSRC}/docs/examples/hook.sh ${STAGEDIR}${ETCDIR}/hook.sh.example ${INSTALL_DATA} ${WRKSRC}/docs/examples/domains.txt ${STAGEDIR}${ETCDIR}/domains.txt.example ${INSTALL_SCRIPT} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME} ${INSTALL_SCRIPT} ${WRKDIR}/${PERIODIC_FILES} ${STAGEDIR}${PREFIX}/${PERIODIC_DIRS}/${PERIODIC_FILES} ${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_MAN} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR} . for d in dns-verification domains_txt ecc hook_chain import-from-official-client \ per-certificate-config staging troubleshooting wellknown ${INSTALL_MAN} ${WRKSRC}/docs/${d}.md ${STAGEDIR}${DOCSDIR} . endfor post-stage: ${MKDIR} ${STAGEDIR}${PREFIX}/www/dehydrated .include Index: head/security/dehydrated/files/000.dehydrated.in =================================================================== --- head/security/dehydrated/files/000.dehydrated.in (revision 422343) +++ head/security/dehydrated/files/000.dehydrated.in (revision 422344) @@ -1,53 +1,53 @@ #!/bin/sh if [ -r /etc/defaults/periodic.conf ] then . /etc/defaults/periodic.conf source_periodic_confs fi PATH=$PATH:%%LOCALBASE%%/bin:%%LOCALBASE%%/sbin export PATH case "$weekly_letsencrypt_enable" in [Yy][Ee][Ss]) echo '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' echo '!! WARNING: letsencrypt.sh has been renamed to dehydrated !!' echo '!! rename all weekly_letsencrypt_* periodic variables !!' echo '!! to weekly_dehydrated_* in your periodic.conf !!' - echo '|| and mv /usr/local/etc/{letsencrypt,dehydrated} ||' + echo '|| and mv /usr/local/etc/{letsencrypt.sh,dehydrated} ||' echo '|| default challenge path has been renamed as well ||' echo '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' : ${weekly_dehydrated_enable:=$weekly_letsencrypt_enable} : ${weekly_dehydrated_user:=$weekly_letsencrypt_user} : ${weekly_dehydrated_flags:=$weekly_letsencrypt_flags} : ${weekly_dehydrated_deployscript:=$weekly_letsencrypt_deployscript} ;; *) ;; esac case "$weekly_dehydrated_enable" in [Yy][Ee][Ss]) echo echo "Checking Let's Encrypt certificate status:" if [ -z "$weekly_dehydrated_user" ] then %%PREFIX%%/bin/dehydrated -c $weekly_dehydrated_flags else - su -m "$weekly_dehydrated_user" -c "%%PREFIX%%/bin/dehydrated" -c $weekly_dehydrated_flags + su -m "$weekly_dehydrated_user" -c "%%PREFIX%%/bin/dehydrated -c $weekly_dehydrated_flags" fi echo "Deploying Let's Encrypt certificates:" if [ -x "$weekly_dehydrated_deployscript" ] then $weekly_dehydrated_deployscript else echo 'Skipped, deploy script not set or not executable.' fi ;; *) ;; esac Index: head/security/dehydrated/files/pkg-message.in =================================================================== --- head/security/dehydrated/files/pkg-message.in (revision 422343) +++ head/security/dehydrated/files/pkg-message.in (revision 422344) @@ -1,29 +1,29 @@ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! WARNING: letsencrypt.sh has been renamed to dehydrated !! !! rename all weekly_letsencrypt_* periodic variables !! !! to weekly_dehydrated_* in your periodic.conf !! -|| and mv /usr/local/etc/{letsencrypt,dehydrated} || +|| and mv /usr/local/etc/{letsencrypt.sh,dehydrated} || || default challenge path has been renamed as well || !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! To use this script you should copy the examples in %%PREFIX%%/etc/%%PORTNAME%%/ and at least add a domain and a contact mail address. In order to run the script regularly to update the certificates add this line to /etc/periodic.conf weekly_dehydrated_enable="YES" Additionally the following parameters can be added to /etc/periodic.conf To run the certification renenewal as a different user weekly_dehydrated_user="_letsencrypt" To run a script after the renewal (as root) weekly_dehydrated_deployscript="%%PREFIX%%/etc/%%PORTNAME%%/deploy.sh" Additional flags for the periodic run go into weekly_dehydrated_flags="-g"