diff --git a/security/p5-openxpki-i18n/Makefile b/security/p5-openxpki-i18n/Makefile index 0f620efd844d..24f03f248f13 100644 --- a/security/p5-openxpki-i18n/Makefile +++ b/security/p5-openxpki-i18n/Makefile @@ -1,27 +1,27 @@ PORTNAME= openxpki DISTVERSIONPREFIX= v -DISTVERSION= 3.24.1 +DISTVERSION= 3.24.2 CATEGORIES= security perl5 PKGNAMEPREFIX= p5- PKGNAMESUFFIX= -i18n MAINTAINER= svysh.fbsd@gmail.com COMMENT= Perl based trustcenter software for PKI: i18n tools WWW= https://www.openxpki.org/ LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/../../LICENSE # We cannot go without NLS. Internationalization is needed even for English. USES= gettext-runtime gettext-tools gmake perl5 USE_GITHUB= yes ALL_TARGET= scan default NO_ARCH= yes # stay with stable versions only: PORTSCOUT= limitw:1,even WRKSRC_SUBDIR= core/i18n .include diff --git a/security/p5-openxpki-i18n/distinfo b/security/p5-openxpki-i18n/distinfo index 7770de8e9db3..fb5ef8c8f9f9 100644 --- a/security/p5-openxpki-i18n/distinfo +++ b/security/p5-openxpki-i18n/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1675078305 -SHA256 (openxpki-openxpki-v3.24.1_GH0.tar.gz) = 70ca49bb8cf4e7ae71362227fd397adfade2462b045331911e72320888872ea1 -SIZE (openxpki-openxpki-v3.24.1_GH0.tar.gz) = 34969532 +TIMESTAMP = 1687880023 +SHA256 (openxpki-openxpki-v3.24.2_GH0.tar.gz) = b7528d3dde96c33c56a5e99a44fb2896190625bf9abc9a8597d25ceabbba8531 +SIZE (openxpki-openxpki-v3.24.2_GH0.tar.gz) = 34969529 diff --git a/security/p5-openxpki/Makefile b/security/p5-openxpki/Makefile index 34249ae7a85f..3bdd1c3aa161 100644 --- a/security/p5-openxpki/Makefile +++ b/security/p5-openxpki/Makefile @@ -1,156 +1,156 @@ PORTNAME= openxpki DISTVERSIONPREFIX= v -DISTVERSION= 3.24.1 +DISTVERSION= 3.24.2 CATEGORIES= security perl5 PKGNAMEPREFIX= p5- MAINTAINER= svysh.fbsd@gmail.com COMMENT= Perl based trustcenter for PKI: universal server building block WWW= https://www.openxpki.org/ LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE -BROKEN_SSL= openssl30 openssl31 -BROKEN_SSL_REASON= Fails to detect OpenSSL 3.0.0 and later - MY_DEPENDS= bash:shells/bash \ p5-Archive-Zip>=0:archivers/p5-Archive-Zip \ p5-Cache-LRU>=0:devel/p5-Cache-LRU \ p5-CGI-Fast>=2.10:www/p5-CGI-Fast \ p5-CGI-Session>=3.95:www/p5-CGI-Session \ p5-CGI>=4.21:www/p5-CGI \ p5-Class-Accessor-Chained>=0:devel/p5-Class-Accessor-Chained \ p5-Class-Std>=0.0.8:devel/p5-Class-Std \ p5-Config-GitLike>=0:devel/p5-Config-GitLike \ p5-Config-Merge>=1:devel/p5-Config-Merge \ p5-Config-Std>=0:devel/p5-Config-Std \ p5-Connector>=1.43:devel/p5-Connector \ p5-Crypt-Argon2>=0.007:security/p5-Crypt-Argon2 \ p5-Crypt-CBC>=2.29:security/p5-Crypt-CBC \ p5-Crypt-JWT>=0.032:security/p5-Crypt-JWT \ p5-Crypt-OpenSSL-AES>=0.02:security/p5-Crypt-OpenSSL-AES \ p5-Crypt-PKCS10>=2.005:security/p5-Crypt-PKCS10 \ p5-Crypt-Rijndael>=1.13:security/p5-Crypt-Rijndael \ p5-Crypt-SMIME>=0:security/p5-Crypt-SMIME \ p5-Crypt-SSLeay>=0:security/p5-Crypt-SSLeay \ p5-Crypt-X509-CRL>=0.1:security/p5-Crypt-X509-CRL \ p5-Crypt-X509>=0.53:security/p5-Crypt-X509 \ p5-CryptX>=0.068:security/p5-CryptX \ p5-Data-Password>=0:security/p5-Data-Password \ p5-Data-Serializer>=0.44:devel/p5-Data-Serializer \ p5-Data-UUID>=0:devel/p5-Data-UUID \ p5-DateTime-Format-DateParse>=0.04:devel/p5-DateTime-Format-DateParse \ p5-DBD-Mock>=1.45:databases/p5-DBD-Mock \ + p5-DBD-SQLite>=1.52:databases/p5-DBD-SQLite \ p5-DBIx-Handler>=0.14:databases/p5-DBIx-Handler \ p5-Devel-NYTProf>=0:devel/p5-Devel-NYTProf \ p5-Feature-Compat-Try>=0.05:devel/p5-Feature-Compat-Try \ p5-IO-Prompt>=0.099004:devel/p5-IO-Prompt \ p5-IPC-ShareLite>=0:devel/p5-IPC-ShareLite \ p5-Import-Into>=1.002005:devel/p5-Import-Into \ p5-JSON>=0:converters/p5-JSON \ p5-Locale-libintl>=0:devel/p5-Locale-libintl \ p5-Log-Log4perl-Layout-JSON>=0:devel/p5-Log-Log4perl-Layout-JSON \ p5-LWP-Protocol-connect>=0:www/p5-LWP-Protocol-connect \ p5-LWP-Protocol-https>=0:www/p5-LWP-Protocol-https \ p5-Mail-RFC822-Address>=0:mail/p5-Mail-RFC822-Address \ p5-Moose>=0:devel/p5-Moose \ p5-MooseX-InsideOut>=0.106:devel/p5-MooseX-InsideOut \ p5-MooseX-NonMoose>=0:devel/p5-MooseX-NonMoose \ p5-MooseX-Params-Validate>=0.21:devel/p5-MooseX-Params-Validate \ p5-MooseX-StrictConstructor>=0.21:devel/p5-MooseX-StrictConstructor \ p5-Net-DNS>0.83:dns/p5-Net-DNS \ p5-Net-IP>=0:net-mgmt/p5-Net-IP \ p5-Net-Server>=0.94:net/p5-Net-Server \ p5-NetAddr-IP>=0:net-mgmt/p5-NetAddr-IP \ p5-openxpki-i18n>=2.0.3:security/p5-openxpki-i18n \ p5-Path-Class>=0:devel/p5-Path-Class \ p5-perl-ldap>=0.32:net/p5-perl-ldap \ p5-PPI>=0:textproc/p5-PPI \ p5-Pod-POM>=2.01:textproc/p5-Pod-POM \ p5-Proc-Daemon>=0.23:devel/p5-Proc-Daemon \ p5-Proc-ProcessTable>=0.43:devel/p5-Proc-ProcessTable \ p5-Proc-SafeExec>=1.4:devel/p5-Proc-SafeExec \ p5-Regexp-Common>=2:textproc/p5-Regexp-Common \ p5-RT-Client-REST>=0:www/p5-RT-Client-REST \ p5-SOAP-Lite>=0:net/p5-SOAP-Lite \ p5-SQL-Abstract-More>=1.38:databases/p5-SQL-Abstract-More \ p5-Switch>=0:lang/p5-Switch \ p5-Sys-SigAction>=0.06:devel/p5-Sys-SigAction \ p5-Template-Toolkit>=2.15:www/p5-Template-Toolkit \ + p5-Test-Pod-Coverage>=1.00:devel/p5-Test-Pod-Coverage \ + p5-Test-Pod>=1.00:devel/p5-Test-Pod \ p5-Text-CSV_XS>=0.23:textproc/p5-Text-CSV_XS \ p5-TimeDate>=0:devel/p5-TimeDate \ p5-Workflow>=1.60:devel/p5-Workflow \ p5-XML-Filter-XInclude>=0:textproc/p5-XML-Filter-XInclude \ p5-XML-SAX-Writer>=0:textproc/p5-XML-SAX-Writer \ p5-XML-Validator-Schema>=0:textproc/p5-XML-Validator-Schema BUILD_DEPENDS= ${MY_DEPENDS} RUN_DEPENDS= ${MY_DEPENDS} -TEST_DEPENDS= p5-DBD-SQLite>=1.52:databases/p5-DBD-SQLite \ - p5-Test-Pod-Coverage>=1.00:devel/p5-Test-Pod-Coverage \ - p5-Test-Pod>=1.00:devel/p5-Test-Pod \ - p5-Test-Prereq>=0:devel/p5-Test-Prereq +TEST_DEPENDS= p5-Test-Prereq>=0:devel/p5-Test-Prereq USES= gmake perl5 shebangfix ssl USE_GITHUB= yes GH_PROJECT= openxpki-config:conf GH_TAGNAME= ${DISTVERSIONPREFIX}${_conf_VERSION}:conf _conf_VERSION= ${DISTVERSION:R} USE_PERL5= configure USE_RC_SUBR= openxpki -SHEBANG_FILES= bin/* -SHEBANG_GLOB= *.fcgi *.pl *.pm *.t* +SHEBANG_FILES= ../../* NO_ARCH= yes -# stay with stable versions only: -PORTSCOUT= limitw:1,even +PORTSCOUT= limitw:1,even # stay with stable versions only SUB_FILES= pkg-message WRKSRC_SUBDIR= core/server/ USERS= openxpki GROUPS= openxpki -PORTDOCS= * -PORTEXAMPLES= * OPTIONS_DEFINE= DOCS EXAMPLES GRAPHVIZ GRAPHVIZ_DESC= With graphical visualization of workflows? GRAPHVIZ_RUN_DEPENDS= dot:graphics/graphviz \ imgsize:graphics/p5-Image-Size post-extract: - @${MV} ${WRKSRC_conf}/* ${WRKSRC}/../../config/ + @${MKDIR} ${WRKSRC}/config + @${MV} ${WRKSRC_conf}/* ${WRKSRC}/config/ post-patch: @${REINPLACE_CMD} -e 's|..ENV{PERL} .vergen --format version.|"${PORTVERSION}"|g' ${WRKSRC}/Makefile.PL @${REINPLACE_CMD} -e 's|..vergen --format version.|"${PORTVERSION}"|g' ${WRKSRC}/Makefile.PL + @${REINPLACE_CMD} -e 's|OPENSSLINC|${OPENSSLINC}|g' ${WRKSRC}/Makefile.PL + @${REINPLACE_CMD} -e 's|OPENSSLLIB|${OPENSSLLIB}|g' ${WRKSRC}/Makefile.PL + @${REINPLACE_CMD} -e 's|OPENSSLBINARY|${OPENSSLBASE}/bin/openssl|g' ${WRKSRC}/Makefile.PL @( \ cd ${WRKSRC}/../..; \ ${ECHO} "Patching dir names..."; \ - ${GREP} -RIFl -e "/etc/openxpki" config core/server doc qatest tools >filelist; \ + ${GREP} -RIFl -e "/etc/openxpki" core/server doc qatest tools >filelist; \ ${CAT} filelist | ${XARGS} -I % ${REINPLACE_CMD} -e 's|/etc/openxpki|${PREFIX}/etc/openxpki|g' "%"; \ ${CAT} filelist | ${XARGS} -I % ${RM} "%.bak"; \ - ${GREP} -RIFl -e "/run/openxpkid.pid" config core/server doc qatest tools >filelist; \ - ${CAT} filelist | ${XARGS} -I % ${REINPLACE_CMD} -e 's|/var/run/openxpkid.pid|/var/openxpki/openxpkid.pid|g' "%"; \ + ${GREP} -RIFl -e "/run/openxpkid.pid" core/server doc qatest tools >filelist; \ + ${CAT} filelist | ${XARGS} -I % ${REINPLACE_CMD} -e 's|/run/openxpkid.pid|/var/openxpki/openxpkid.pid|g' "%"; \ + ${CAT} filelist | ${XARGS} -I % ${RM} "%.bak"; \ + ${GREP} -RIFl -e "www-data" core/server doc qatest tools >filelist; \ + ${CAT} filelist | ${XARGS} -I % ${REINPLACE_CMD} -e 's|www-data|www|g' "%"; \ ${CAT} filelist | ${XARGS} -I % ${RM} "%.bak"; \ ${RM} filelist; \ ) + @${FIND} ${WRKSRC} -name "*.orig" -delete @${MKDIR} ${WRKSRC}/t/var/log/openxpki post-install: @${MKDIR} ${STAGEDIR}/var/openxpki/session @${MKDIR} ${STAGEDIR}/var/log/openxpki - @${MKDIR} ${STAGEDIR}${PREFIX}/etc/openxpki + @${MKDIR} ${STAGEDIR}${PREFIX}/etc/openxpki/local/keys post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} (cd ${WRKSRC}/../../doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) post-install-EXAMPLES-on: ${MKDIR} ${STAGEDIR}${EXAMPLESDIR} - (cd ${WRKSRC}/../.. && ${COPYTREE_SHARE} config ${STAGEDIR}${EXAMPLESDIR}) - (cd ${WRKSRC} && ${COPYTREE_SHARE} "htdocs cgi-bin" ${STAGEDIR}${EXAMPLESDIR}) + (cd ${WRKSRC} && ${COPYTREE_SHARE} "config htdocs cgi-bin" ${STAGEDIR}${EXAMPLESDIR} "! -name *\.orig") .include diff --git a/security/p5-openxpki/distinfo b/security/p5-openxpki/distinfo index 029d02b9d69d..dcb3dda4ccdd 100644 --- a/security/p5-openxpki/distinfo +++ b/security/p5-openxpki/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1675078273 -SHA256 (openxpki-openxpki-v3.24.1_GH0.tar.gz) = 70ca49bb8cf4e7ae71362227fd397adfade2462b045331911e72320888872ea1 -SIZE (openxpki-openxpki-v3.24.1_GH0.tar.gz) = 34969532 +TIMESTAMP = 1677275136 +SHA256 (openxpki-openxpki-v3.24.2_GH0.tar.gz) = b7528d3dde96c33c56a5e99a44fb2896190625bf9abc9a8597d25ceabbba8531 +SIZE (openxpki-openxpki-v3.24.2_GH0.tar.gz) = 34969529 SHA256 (openxpki-openxpki-config-v3.24_GH0.tar.gz) = 677adc87fa8ccbf85ca7c0b42b61c3a628acc18fa57d091df9bfaf5a3ee86704 SIZE (openxpki-openxpki-config-v3.24_GH0.tar.gz) = 153657 diff --git a/security/p5-openxpki/files/openxpki.in b/security/p5-openxpki/files/openxpki.in index c226189de9a7..154acc6028e5 100644 --- a/security/p5-openxpki/files/openxpki.in +++ b/security/p5-openxpki/files/openxpki.in @@ -1,61 +1,61 @@ #!/bin/sh # PROVIDE: openxpki # REQUIRE: LOGIN # REQUIRE: postgresql # REQUIRE: mysql # KEYWORD: shutdown # # Define this variable in file /etc/rc.conf: # openxpki_enable="YES" # to ensure that openxpki starts at boot time. # Define and edit this variable in file /etc/rc.conf: -# openxpki_conf="%%PREFIX%%/etc/openxpki/config.git" +# openxpki_conf="%%PREFIX%%/etc/openxpki/config.d" # if your configuration is in different place. # # DO NOT CHANGE THESE DEFAULT VALUES HERE # SET THEM IN THE /etc/rc.conf FILE # . /etc/rc.subr name=openxpki desc="OpenXPKI daemon" rcvar=openxpki_enable load_rc_config ${name} : ${openxpki_enable:=no} : ${openxpki_conf=%%ETCDIR%%/config.d} command=%%PREFIX%%/bin/openxpkictl start_precmd="${name}_prestart" restart_precmd="${name}_prestart" reload_precmd="${name}_prestart" procname=openxpkid openxpki_user=${name} pidfile=/var/openxpki/openxpkid.pid extra_commands=reload start_cmd=control stop_cmd=control restart_cmd=control status_cmd=control reload_cmd=control openxpki_prestart() { chown -R ${openxpki_user}:${openxpki_user} %%ETCDIR%% chmod -R 754 %%ETCDIR%% mkdir -p -m 751 /var/log/${name} chown -R ${openxpki_user}:${openxpki_user} /var/log/${name} mkdir -p -m 750 /var/${name} mkdir -p -m 750 /var/${name}/session chown -R ${openxpki_user}:${openxpki_user} /var/${name} echo "Service dirs recreated..." } control() { echo "Executing: USER=${openxpki_user} ${command} --config ${openxpki_conf} ${rc_arg}" USER=${openxpki_user} ${command} --config ${openxpki_conf} ${rc_arg} } run_rc_command "$1" diff --git a/security/p5-openxpki/files/patch-Makefile.PL b/security/p5-openxpki/files/patch-Makefile.PL new file mode 100644 index 000000000000..3518cb069e74 --- /dev/null +++ b/security/p5-openxpki/files/patch-Makefile.PL @@ -0,0 +1,126 @@ +--- Makefile.PL.orig 2023-06-21 23:40:24 UTC ++++ Makefile.PL +@@ -9,59 +9,11 @@ my $vergen = '../../tools/vergen'; + + ########################################################################### + # determine OpenSSL version +-## first we have to find a working OpenSSL + +-# OPENSSL_LIB +-# OPENSSL_INC +-# OPENSSL_PREFIX set +-# /usr/local/ssl +-# /usr/local +-# /usr +-# / +-# ... ++my $openssl_inc_dir = "OPENSSLINC"; ++my $openssl_lib_dir = "OPENSSLLIB"; ++my $openssl_binary = "OPENSSLBINARY"; + +-my $openssl_inc_dir = ''; +-my $openssl_lib_dir = ''; +-my $openssl_binary = ''; +- +-my @paths = qw( /usr/local/ssl +- /opt/local/ssl +- /usr/local +- /opt/local +- /usr +- /opt +- ); +- +-unshift @paths, $ENV{OPENSSL_PREFIX} +- if (exists $ENV{OPENSSL_PREFIX} and $ENV{OPENSSL_PREFIX} ne ''); +- +-my $tmp_ver; +- +-foreach my $path (@paths) { +- my $tmp_inc = File::Spec->catfile($path, 'include'); +- $tmp_ver = File::Spec->catfile($tmp_inc, 'openssl', 'opensslv.h'); +- my $tmp_lib = File::Spec->catfile($path, 'lib'); +- my $tmp_bin = File::Spec->catfile($path, 'bin', 'openssl'); +- +- if (-d $tmp_inc && +- -d $tmp_lib && +- -r $tmp_ver && +- -r $tmp_bin && -x $tmp_bin) { +- $openssl_inc_dir = $tmp_inc; +- $openssl_lib_dir = $tmp_lib; +- $openssl_binary = $tmp_bin; +- last; +- } +-} +- +-# accept settings from OPENSSL_INC and OPENSSL_LIB if BOTH exist +-if (exists $ENV{OPENSSL_INC} && $ENV{OPENSSL_INC} != "" && +- exists $ENV{OPENSSL_LIB} && $ENV{OPENSSL_LIB} != "" +-) { +- $openssl_inc_dir = $ENV{OPENSSL_INC}; +- $openssl_lib_dir = $ENV{OPENSSL_LIB}; +-} +- + die "Could not find usable OpenSSL installation. Stopped" + unless defined $openssl_inc_dir; + +@@ -72,60 +24,10 @@ print STDERR "OpenSSL library: $openssl_lib_dir\n"; + print STDERR "OpenSSL headers: $openssl_inc_dir\n"; + print STDERR "OpenSSL binary: $openssl_binary\n"; + +-# ask the binary for it's version +-# openssl version should produce output like this: +-# OpenSSL 0.9.7l 28 Sep 2006 +-# OpenSSL 1.0.0a 1 Jun 2010 +-my $openssl_version_string = `$openssl_binary version`; +-my ($openssl_version_major, $openssl_version_minor, $openssl_version_fix, $openssl_version_patch, $openssl_version_flavour); +-if ($openssl_version_string =~ m/\s*OpenSSL\s+(\d+)\.(\d+)\.(\d+)([a-zA-Z]+)/i) { +- # OpenSSL 0.9 +- $openssl_version_flavour = 'OpenSSL'; +- $openssl_version_major = $1; +- $openssl_version_minor = $2; +- $openssl_version_fix = $3; +- $openssl_version_patch = $4; +- print "$openssl_version_flavour version: major=$openssl_version_major, minor=$openssl_version_minor, fix=$openssl_version_fix, patch=$openssl_version_patch\n"; +- +-} elsif ($openssl_version_string =~ m/\s*(OpenSSL|LibreSSL)\s+(\d+)\.(\d+)\.(\d+)\s+/) { +- # OpenSSL 1.0 +- $openssl_version_flavour = $1; +- $openssl_version_major = $2; +- $openssl_version_minor = $3; +- $openssl_version_fix = $4; +- print "OpenSSL version: major=$openssl_version_major, minor=$openssl_version_minor, fix=$openssl_version_fix\n"; +-} else { +- print "Problem: malformed openssl version string!\n"; +- print STDERR "Consider setting OPENSSL_PREFIX correctly.\n\n"; +- exit 1; +-} +- +-# Warn on old openssl - should work but lacks support for some features +-if ($openssl_version_major == 0 && +- $openssl_version_minor == 9 && +- $openssl_version_fix == 8 +-) { +- print STDERR "Warning: openssl 0.9.8 found - this will work but lacks some features, e.g. server side key generation!"; +- +-} elsif ( $openssl_version_flavour =~ m/LibreSSL/i ) { +- print STDERR "Warning: LibreSSL found, support for LibreSSL is experimental!"; +- +-} elsif (not +- ($openssl_version_flavour =~ m/OpenSSL/i && +- $openssl_version_major == 1 && +- (($openssl_version_minor == 0) || ($openssl_version_minor == 1) )) +-) { +- print STDERR "\n"; +- print STDERR "ERROR: OpenSSL 0.9.8, 1.0 or 1.1 is required.\n"; +- print STDERR "Consider setting OPENSSL_PREFIX correctly.\n\n"; +- exit 1; +-} +- + # make OpenSSL binary location available to tests + open my $fh, ">", File::Spec->catfile("t", "cfg.binary.openssl"); + print $fh $openssl_binary; + close $fh; +- + + ########################################################################### + # determine OpenXPKI version diff --git a/security/p5-openxpki/files/pkg-message.in b/security/p5-openxpki/files/pkg-message.in index 9fe7e67ba963..5fb3c1370b08 100644 --- a/security/p5-openxpki/files/pkg-message.in +++ b/security/p5-openxpki/files/pkg-message.in @@ -1,65 +1,90 @@ [ { type: install message: <