aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Druzenko <vvd@FreeBSD.org>2025-06-15 13:32:19 +0000
committerVladimir Druzenko <vvd@FreeBSD.org>2025-06-15 13:47:24 +0000
commitdb438743e3d8013cb2b3f735d476ccccaf75502c (patch)
tree54087012a985d680a0c8e022d736bb278b6496f1
parent78632a404045cc094797741c38807ca74bc18555 (diff)
multimedia/zoneminder: Replace usage of Data::Entropy (security/p5-Data-Entropy) for undeprecate
Aadd adopted upstream patch "Use Bytes::Random::Secure instead of deprecated Data-Entropy. Fall back to Data-Entropy. Fixes #4333": https://github.com/ZoneMinder/zoneminder/issues/4333 https://github.com/ZoneMinder/zoneminder/commit/38c0f743c1c4c97a8ac35f829bf236ddd8006ce8 PR: 287222 Approved by: Ivan <bsd@abinet.ru>
-rw-r--r--multimedia/zoneminder/Makefile6
-rw-r--r--multimedia/zoneminder/files/patch-scripts_zmupdate.pl.in39
2 files changed, 41 insertions, 4 deletions
diff --git a/multimedia/zoneminder/Makefile b/multimedia/zoneminder/Makefile
index 5059d270d9b5..47ba2e280d88 100644
--- a/multimedia/zoneminder/Makefile
+++ b/multimedia/zoneminder/Makefile
@@ -1,5 +1,6 @@
PORTNAME= zoneminder
DISTVERSION= 1.36.35
+PORTREVISION= 1
CATEGORIES= multimedia
PKGNAMESUFFIX= ${PHP_PKGNAMESUFFIX}
@@ -12,9 +13,6 @@ WWW= https://www.zoneminder.com/
LICENSE= GPLv2
-DEPRECATED= Depends on expired security/p5-Data-Entropy
-EXPIRATION_DATE=2025-09-01
-
ZM_DEPENDS= p5-DBI>=0:databases/p5-DBI \
${DBD_MYSQL} \
p5-Date-Manip>=0:devel/p5-Date-Manip \
@@ -38,7 +36,7 @@ RUN_DEPENDS= ${ZM_DEPENDS} \
sudo:security/sudo \
p5-Device-SerialPort>=0:comms/p5-Device-SerialPort \
p5-Crypt-Eksblowfish>=0:security/p5-Crypt-Eksblowfish \
- p5-Data-Entropy>=0:security/p5-Data-Entropy \
+ p5-Bytes-Random-Secure>=0:security/p5-Bytes-Random-Secure \
p5-XML-LibXML>=0:textproc/p5-XML-LibXML \
zip:archivers/zip
diff --git a/multimedia/zoneminder/files/patch-scripts_zmupdate.pl.in b/multimedia/zoneminder/files/patch-scripts_zmupdate.pl.in
new file mode 100644
index 000000000000..8bd3db5ac6ec
--- /dev/null
+++ b/multimedia/zoneminder/files/patch-scripts_zmupdate.pl.in
@@ -0,0 +1,39 @@
+--- scripts/zmupdate.pl.in.orig 2025-06-13 23:01:03 UTC
++++ scripts/zmupdate.pl.in
+@@ -52,8 +52,6 @@ use version;
+ use strict;
+ use bytes;
+ use version;
+-use Crypt::Eksblowfish::Bcrypt;
+-use Data::Entropy::Algorithms qw(rand_bits);
+
+ # ==========================================================================
+ #
+@@ -1035,6 +1033,18 @@ sub migratePasswords {
+ } # end sub patchDB
+
+ sub migratePasswords {
++ use Crypt::Eksblowfish::Bcrypt;
++ my $random;
++ eval {
++ require Bytes::Random::Secure;
++ $random = Bytes::Random::Secure->new( Bits => 16*8);
++ };
++ if ($@ or !$random) {
++ eval {
++ require Data::Entropy::Algorithms;
++ $random = Data::Entropy::Algorithms::rand_bits(16*8);
++ };
++ }
+ print ("Migratings passwords, if any...\n");
+ my $sql = 'SELECT * FROM `Users`';
+ my $sth = $dbh->prepare_cached($sql) or die( "Can't prepare '$sql': ".$dbh->errstr() );
+@@ -1043,7 +1053,7 @@ sub migratePasswords {
+ my $scheme = substr($user->{Password}, 0, 1);
+ if ($scheme eq '*') {
+ print ('-->'.$user->{Username}." password will be migrated\n");
+- my $salt = Crypt::Eksblowfish::Bcrypt::en_base64(rand_bits(16*8));
++ my $salt = Crypt::Eksblowfish::Bcrypt::en_base64($random);
+ my $settings = '$2a$10$'.$salt;
+ my $pass_hash = Crypt::Eksblowfish::Bcrypt::bcrypt($user->{Password},$settings);
+ my $new_pass_hash = '-ZM-'.$pass_hash;