git: 0709491b5307 - main - security/p5-Authen-Passphrase: un-deprecate

From: Mathieu Arnold <mat_at_FreeBSD.org>
Date: Sun, 15 Jun 2025 08:51:39 UTC
The branch main has been updated by mat:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0709491b5307efd1e8a10178759c34b3ba247829

commit 0709491b5307efd1e8a10178759c34b3ba247829
Author:     Mathieu Arnold <mat@FreeBSD.org>
AuthorDate: 2025-06-15 07:32:56 +0000
Commit:     Mathieu Arnold <mat@FreeBSD.org>
CommitDate: 2025-06-15 08:49:43 +0000

    security/p5-Authen-Passphrase: un-deprecate
    
    By switching from Data::Entropy to Crypt::PRNG from CryptX
---
 .../Makefile                                       |   3 -
 databases/p5-Interchange6-Schema/Makefile          |   3 -
 security/p5-Authen-Passphrase/Makefile             |   7 +-
 .../p5-Authen-Passphrase/files/patch-Crypt-PRNG    | 215 +++++++++++++++++++++
 www/ikiwiki/Makefile                               |   3 -
 5 files changed, 217 insertions(+), 14 deletions(-)

diff --git a/databases/p5-DBIx-Class-InflateColumn-Authen-Passphrase/Makefile b/databases/p5-DBIx-Class-InflateColumn-Authen-Passphrase/Makefile
index b1f84226bdfa..b77431dec6d1 100644
--- a/databases/p5-DBIx-Class-InflateColumn-Authen-Passphrase/Makefile
+++ b/databases/p5-DBIx-Class-InflateColumn-Authen-Passphrase/Makefile
@@ -9,9 +9,6 @@ MAINTAINER=	fw@moov.de
 COMMENT=	Inflate/deflate columns to Authen::Passphrase instances
 WWW=		https://metacpan.org/release/DBIx-Class-InflateColumn-Authen-Passphrase
 
-DEPRECATED=	Depends on expired security/p5-Data-Entropy via security/p5-Authen-Passphrase
-EXPIRATION_DATE=2025-09-01
-
 BUILD_DEPENDS=	${RUN_DEPENDS}
 RUN_DEPENDS=	p5-DBIx-Class-DynamicDefault>=0.03:databases/p5-DBIx-Class-DynamicDefault \
 		p5-DBIx-Class>=0.08009:databases/p5-DBIx-Class \
diff --git a/databases/p5-Interchange6-Schema/Makefile b/databases/p5-Interchange6-Schema/Makefile
index 4542265444b0..f2dda9b0c89d 100644
--- a/databases/p5-Interchange6-Schema/Makefile
+++ b/databases/p5-Interchange6-Schema/Makefile
@@ -12,9 +12,6 @@ WWW=		https://metacpan.org/release/Interchange6-Schema
 LICENSE=	ART10 GPLv1+
 LICENSE_COMB=	dual
 
-DEPRECATED=	Depends on expired security/p5-Data-Entropy via databases/p5-DBIx-Class-InflateColumn-Authen-Passphrase
-EXPIRATION_DATE=2025-09-01
-
 BUILD_DEPENDS=	${RUN_DEPENDS}
 RUN_DEPENDS=	p5-DBIx-Class>=0:databases/p5-DBIx-Class\
 		p5-DBIx-Class-Schema-Config>=0:databases/p5-DBIx-Class-Schema-Config\
diff --git a/security/p5-Authen-Passphrase/Makefile b/security/p5-Authen-Passphrase/Makefile
index 0ba72e653ee5..f9a45ad919e4 100644
--- a/security/p5-Authen-Passphrase/Makefile
+++ b/security/p5-Authen-Passphrase/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	Authen-Passphrase
 PORTVERSION=	0.008
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	security perl5
 MASTER_SITES=	CPAN
 PKGNAMEPREFIX=	p5-
@@ -12,9 +12,6 @@ WWW=		https://metacpan.org/release/Authen-Passphrase
 LICENSE=	ART10 GPLv1+
 LICENSE_COMB=	dual
 
-DEPRECATED=	Depends on expired security/p5-Data-Entropy
-EXPIRATION_DATE=2025-09-01
-
 BUILD_DEPENDS=	${RUN_DEPENDS}
 RUN_DEPENDS=	p5-Authen-DecHpwd>=0:security/p5-Authen-DecHpwd \
 		p5-Crypt-Blowfish>=0:security/p5-Crypt-Blowfish \
@@ -23,7 +20,7 @@ RUN_DEPENDS=	p5-Authen-DecHpwd>=0:security/p5-Authen-DecHpwd \
 		p5-Crypt-MySQL>=0:security/p5-Crypt-MySQL \
 		p5-Crypt-PasswdMD5>=0:security/p5-Crypt-PasswdMD5 \
 		p5-Crypt-UnixCrypt_XS>=0:security/p5-Crypt-UnixCrypt_XS \
-		p5-Data-Entropy>=0:security/p5-Data-Entropy \
+		p5-CryptX>=0:security/p5-CryptX \
 		p5-Digest-MD4>=0:security/p5-Digest-MD4 \
 		p5-Module-Runtime>=0:devel/p5-Module-Runtime \
 		p5-Params-Classify>=0:devel/p5-Params-Classify
diff --git a/security/p5-Authen-Passphrase/files/patch-Crypt-PRNG b/security/p5-Authen-Passphrase/files/patch-Crypt-PRNG
new file mode 100644
index 000000000000..ff7d24ccf93d
--- /dev/null
+++ b/security/p5-Authen-Passphrase/files/patch-Crypt-PRNG
@@ -0,0 +1,215 @@
+Switch from deprecated Data::Entropy::Algorithms to Crypt::PRNG
+
+--- Build.PL.orig	2025-06-15 06:51:13 UTC
++++ Build.PL
+@@ -30,7 +30,7 @@ Module::Build->new(
+ 		"Crypt::MySQL" => "0.03",
+ 		"Crypt::PasswdMD5" => "1.0",
+ 		"Crypt::UnixCrypt_XS" => "0.08",
+-		"Data::Entropy::Algorithms" => 0,
++		"Crypt::PRNG" => 0,
+ 		"Digest" => "1.00",
+ 		"Digest::MD4" => "1.2",
+ 		"Digest::MD5" => "1.9953",
+--- META.json.orig	2025-06-15 06:51:13 UTC
++++ META.json
+@@ -42,7 +42,7 @@
+             "Crypt::MySQL" : "0.03",
+             "Crypt::PasswdMD5" : "1.0",
+             "Crypt::UnixCrypt_XS" : "0.08",
+-            "Data::Entropy::Algorithms" : 0,
++            "Crypt::PRNG" : 0,
+             "Digest" : "1.00",
+             "Digest::MD4" : "1.2",
+             "Digest::MD5" : "1.9953",
+--- META.yml.orig	2025-06-15 06:51:13 UTC
++++ META.yml
+@@ -88,7 +88,7 @@ requires:
+   Crypt::MySQL: 0.03
+   Crypt::PasswdMD5: 1.0
+   Crypt::UnixCrypt_XS: 0.08
+-  Data::Entropy::Algorithms: 0
++  Crypt::PRNG: 0
+   Digest: 1.00
+   Digest::MD4: 1.2
+   Digest::MD5: 1.9953
+--- lib/Authen/Passphrase/BigCrypt.pm.orig	2025-06-15 06:51:13 UTC
++++ lib/Authen/Passphrase/BigCrypt.pm
+@@ -73,7 +73,7 @@ use Crypt::UnixCrypt_XS 0.08 qw(base64_to_block base64
+ use Authen::Passphrase::DESCrypt;
+ use Carp qw(croak);
+ use Crypt::UnixCrypt_XS 0.08 qw(base64_to_block base64_to_int12);
+-use Data::Entropy::Algorithms 0.000 qw(rand_int);
++use Crypt::PRNG 0.000 qw(irand);
+ 
+ our $VERSION = "0.008";
+ 
+@@ -150,7 +150,7 @@ sub new {
+ 				if defined $salt;
+ 			croak "\"$value\" is not a valid salt size"
+ 				unless $value == 12;
+-			$salt = rand_int(1 << $value);
++			$salt = irand() % (1 << $value);
+ 		} elsif($attr eq "hash") {
+ 			croak "hash specified redundantly"
+ 				if @hashes || defined($passphrase);
+--- lib/Authen/Passphrase/BlowfishCrypt.pm.orig	2025-06-15 06:51:13 UTC
++++ lib/Authen/Passphrase/BlowfishCrypt.pm
+@@ -98,7 +98,7 @@ use Crypt::Eksblowfish::Bcrypt 0.008 qw(bcrypt_hash en
+ use Authen::Passphrase 0.003;
+ use Carp qw(croak);
+ use Crypt::Eksblowfish::Bcrypt 0.008 qw(bcrypt_hash en_base64 de_base64);
+-use Data::Entropy::Algorithms 0.000 qw(rand_bits);
++use Crypt::PRNG 0.000 qw(random_bytes);
+ 
+ our $VERSION = "0.008";
+ 
+@@ -194,7 +194,7 @@ sub new {
+ 		} elsif($attr eq "salt_random") {
+ 			croak "salt specified redundantly"
+ 				if exists $self->{salt};
+-			$self->{salt} = rand_bits(128);
++			$self->{salt} = random_bytes(16);
+ 		} elsif($attr eq "hash") {
+ 			croak "hash specified redundantly"
+ 				if exists($self->{hash}) ||
+--- lib/Authen/Passphrase/Crypt16.pm.orig	2025-06-15 06:51:13 UTC
++++ lib/Authen/Passphrase/Crypt16.pm
+@@ -70,7 +70,7 @@ use Crypt::UnixCrypt_XS 0.08 qw(base64_to_block base64
+ use Authen::Passphrase::DESCrypt;
+ use Carp qw(croak);
+ use Crypt::UnixCrypt_XS 0.08 qw(base64_to_block base64_to_int12);
+-use Data::Entropy::Algorithms 0.000 qw(rand_int);
++use Crypt::PRNG 0.000 qw(irand);
+ 
+ our $VERSION = "0.008";
+ 
+@@ -147,7 +147,7 @@ sub new {
+ 				if defined $salt;
+ 			croak "\"$value\" is not a valid salt size"
+ 				unless $value == 12;
+-			$salt = rand_int(1 << $value);
++			$salt = irand() % (1 << $value);
+ 		} elsif($attr eq "hash") {
+ 			croak "hash specified redundantly"
+ 				if defined($hash) || defined($passphrase);
+--- lib/Authen/Passphrase/DESCrypt.pm.orig	2025-06-15 06:51:13 UTC
++++ lib/Authen/Passphrase/DESCrypt.pm
+@@ -127,7 +127,7 @@ use Crypt::UnixCrypt_XS 0.08 qw(
+ 	base64_to_int24 int24_to_base64
+ 	base64_to_int12 int12_to_base64
+ );
+-use Data::Entropy::Algorithms 0.000 qw(rand_int);
++use Crypt::PRNG 0.000 qw(irand);
+ 
+ our $VERSION = "0.008";
+ 
+@@ -260,7 +260,7 @@ sub new {
+ 				if exists $self->{salt};
+ 			croak "\"$value\" is not a valid salt size"
+ 				unless $value == 12 || $value == 24;
+-			$self->{salt} = rand_int(1 << $value);
++			$self->{salt} = irand() % (1 << $value);
+ 		} elsif($attr eq "hash") {
+ 			croak "hash specified redundantly"
+ 				if exists($self->{hash}) ||
+--- lib/Authen/Passphrase/MD5Crypt.pm.orig	2025-06-15 06:51:13 UTC
++++ lib/Authen/Passphrase/MD5Crypt.pm
+@@ -85,7 +85,7 @@ use Crypt::PasswdMD5 1.0 qw(unix_md5_crypt);
+ use Authen::Passphrase 0.003;
+ use Carp qw(croak);
+ use Crypt::PasswdMD5 1.0 qw(unix_md5_crypt);
+-use Data::Entropy::Algorithms 0.000 qw(rand_int);
++use Crypt::PRNG 0.000 qw(irand);
+ 
+ our $VERSION = "0.008";
+ 
+@@ -147,7 +147,7 @@ sub new {
+ 				if exists $self->{salt};
+ 			$self->{salt} = "";
+ 			for(my $i = 8; $i--; ) {
+-				$self->{salt} .= chr(rand_int(64));
++				$self->{salt} .= chr(irand() % (64));
+ 			}
+ 			$self->{salt} =~ tr#\x00-\x3f#./0-9A-Za-z#;
+ 		} elsif($attr eq "hash_base64") {
+--- lib/Authen/Passphrase/NetscapeMail.pm.orig	2025-06-15 06:51:13 UTC
++++ lib/Authen/Passphrase/NetscapeMail.pm
+@@ -52,7 +52,7 @@ use Carp qw(croak);
+ 
+ use Authen::Passphrase 0.003;
+ use Carp qw(croak);
+-use Data::Entropy::Algorithms 0.000 qw(rand_bits);
++use Crypt::PRNG 0.000 qw(random_bytes);
+ use Digest::MD5 1.99_53 ();
+ 
+ our $VERSION = "0.008";
+@@ -116,7 +116,7 @@ sub new {
+ 		} elsif($attr eq "salt_random") {
+ 			croak "salt specified redundantly"
+ 				if exists $self->{salt};
+-			$self->{salt} = unpack("H*", rand_bits(128));
++			$self->{salt} = unpack("H*", random_bytes(16));
+ 		} elsif($attr eq "hash") {
+ 			croak "hash specified redundantly"
+ 				if exists($self->{hash}) ||
+--- lib/Authen/Passphrase/PHPass.pm.orig	2025-06-15 06:51:13 UTC
++++ lib/Authen/Passphrase/PHPass.pm
+@@ -66,7 +66,7 @@ use Carp qw(croak);
+ 
+ use Authen::Passphrase 0.003;
+ use Carp qw(croak);
+-use Data::Entropy::Algorithms 0.000 qw(rand_bits);
++use Crypt::PRNG 0.000 qw(random_bytes);
+ use Digest::MD5 1.99_53 ();
+ 
+ our $VERSION = "0.008";
+@@ -201,7 +201,7 @@ sub new {
+ 		} elsif($attr eq "salt_random") {
+ 			croak "salt specified redundantly"
+ 				if exists $self->{salt};
+-			$self->{salt} = _en_base64(rand_bits(48));
++			$self->{salt} = _en_base64(random_bytes(6));
+ 		} elsif($attr eq "hash") {
+ 			croak "hash specified redundantly"
+ 				if exists($self->{hash}) ||
+--- lib/Authen/Passphrase/SaltedDigest.pm.orig	2025-06-15 06:51:13 UTC
++++ lib/Authen/Passphrase/SaltedDigest.pm
+@@ -75,7 +75,7 @@ use Carp qw(croak);
+ 
+ use Authen::Passphrase 0.003;
+ use Carp qw(croak);
+-use Data::Entropy::Algorithms 0.000 qw(rand_bits);
++use Crypt::PRNG 0.000 qw(random_bytes);
+ use Digest 1.00;
+ use MIME::Base64 2.21 qw(encode_base64 decode_base64);
+ use Module::Runtime 0.011 qw(is_valid_module_name use_module);
+@@ -186,7 +186,7 @@ sub new {
+ 				if exists $self->{salt};
+ 			croak "\"$value\" is not a valid salt length"
+ 				unless $value == int($value) && $value >= 0;
+-			$self->{salt} = rand_bits($value * 8);
++			$self->{salt} = random_bytes($value);
+ 		} elsif($attr eq "hash") {
+ 			croak "hash specified redundantly"
+ 				if exists($self->{hash}) ||
+--- lib/Authen/Passphrase/VMSPurdy.pm.orig	2025-06-15 06:51:13 UTC
++++ lib/Authen/Passphrase/VMSPurdy.pm
+@@ -81,7 +81,7 @@ use Carp qw(croak);
+ use Authen::DecHpwd 2.003 qw(lgi_hpwd UAI_C_PURDY UAI_C_PURDY_V UAI_C_PURDY_S);
+ use Authen::Passphrase 0.003;
+ use Carp qw(croak);
+-use Data::Entropy::Algorithms 0.000 qw(rand_int);
++use Crypt::PRNG 0.000 qw(irand);
+ 
+ our $VERSION = "0.008";
+ 
+@@ -181,7 +181,7 @@ sub new {
+ 		} elsif($attr eq "salt_random") {
+ 			croak "salt specified redundantly"
+ 				if exists $self->{salt};
+-			$self->{salt} = rand_int(65536);
++			$self->{salt} = irand() % (65536);
+ 		} elsif($attr eq "hash") {
+ 			croak "hash specified redundantly"
+ 				if exists($self->{hash}) ||
diff --git a/www/ikiwiki/Makefile b/www/ikiwiki/Makefile
index d7f53ec0a111..c8cf75a586d4 100644
--- a/www/ikiwiki/Makefile
+++ b/www/ikiwiki/Makefile
@@ -12,9 +12,6 @@ WWW=		https://ikiwiki.info/
 
 LICENSE=	GPLv2
 
-DEPRECATED=	Depends on expired security/p5-Data-Entropy via security/p5-Authen-Passphrase
-EXPIRATION_DATE=2025-09-01
-
 BUILD_DEPENDS=	p5-CGI-FormBuilder>=0:www/p5-CGI-FormBuilder \
 		p5-CGI-Session>=0:www/p5-CGI-Session \
 		p5-HTML-Parser>=0:www/p5-HTML-Parser \