import CS perl-DBD-MySQL-4.053-1.el9

This commit is contained in:
eabdullin 2025-09-15 12:31:34 +00:00
parent b4baa75e49
commit f19b26733e
7 changed files with 143 additions and 14 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/DBD-mysql-4.050.tar.gz
SOURCES/DBD-mysql-4.053.tar.gz

View File

@ -1 +1 @@
ff19efb5c5a9add075eafa1ad082cc74c2214f2a SOURCES/DBD-mysql-4.050.tar.gz
8ea3528d29a4cc306639fedc3da3f58f37a9f1cc SOURCES/DBD-mysql-4.053.tar.gz

16
SOURCES/test-clean.t Executable file
View File

@ -0,0 +1,16 @@
#!/usr/bin/perl
use strict;
use warnings;
use File::Path;
use Test::More tests => 2;
my $MYSQL_DIR = $ENV{'MYSQL_DIR'};
my $MYSQL_UNIX_PORT = $ENV{'MYSQL_UNIX_PORT'};
my $MYSQL_PIDFILE = $ENV{'MYSQL_PIDFILE'};
ok(system("/usr/bin/mysqladmin --user=root --socket=$MYSQL_UNIX_PORT shutdown 2>&1 || [ ! -s \"$MYSQL_PIDFILE\" ] || /bin/kill `cat \"$MYSQL_PIDFILE\"`") == 0);
my $removed_count = rmtree($MYSQL_DIR, 1, 1);
ok($removed_count > 0);

14
SOURCES/test-env.sh Executable file
View File

@ -0,0 +1,14 @@
#!/usr/bin/bash
# MariaDB setup
export MYSQL_DIR=$PWD/t/testdb
export MYSQL_UNIX_PORT=$MYSQL_DIR/mysql.sock
export MYSQL_PIDFILE=$MYSQL_DIR/mysql.pid
# DBD::mysql test setup
export DBD_MYSQL_TESTDB=test
export DBD_MYSQL_TESTHOST=localhost
export DBD_MYSQL_TESTSOCKET=$MYSQL_UNIX_PORT
export DBD_MYSQL_TESTUSER=testuserdbd
export DBD_MYSQL_TESTPASSWORD=testpasswordDBD

51
SOURCES/test-setup.t Executable file
View File

@ -0,0 +1,51 @@
#!/usr/bin/perl
use strict;
use warnings;
use Test::More tests => 7;
# MySQL setup
my $MYSQL_DIR = $ENV{'MYSQL_DIR'};
my $MYSQL_UNIX_PORT = $ENV{'MYSQL_UNIX_PORT'};
my $MYSQL_PIDFILE = $ENV{'MYSQL_PIDFILE'};
# DBD::MariaDB test setup
my $DBD_MYSQL_TESTDB = $ENV{'DBD_MYSQL_TESTDB'};
my $DBD_MYSQL_TESTHOST = $ENV{'DBD_MYSQL_TESTHOST'};
my $DBD_MYSQL_TESTSOCKET = $ENV{'DBD_MYSQL_TESTSOCKET'};
my $DBD_MYSQL_TESTUSER = $ENV{'DBD_MYSQL_TESTUSER'};
my $DBD_MYSQL_TESTPASSWORD = $ENV{'DBD_MYSQL_TESTPASSWORD'};
my $MYSQLD = '/usr/sbin/mysqld';
# Initialize MySQL data directory
system("$MYSQLD --no-defaults --initialize-insecure --user=mysql --datadir=$MYSQL_DIR >/dev/null 2>&1");
is($?, 0);
# Starting the server
my $cmd = "$MYSQLD --no-defaults --socket=$MYSQL_UNIX_PORT --datadir=$MYSQL_DIR --pid-file=$MYSQL_PIDFILE --explicit_defaults_for_timestamp --skip-networking >/dev/null 2>&1 &";
system($cmd);
is($?, 0);
my $attempts = 0;
while (system("/usr/bin/mysqladmin --socket=$MYSQL_UNIX_PORT ping >/dev/null 2>&1") != 0) {
sleep 3;
$attempts++;
if ($attempts > 10) {
fail("skipping test, mysql server could not be contacted after 30 seconds\n");
}
}
ok(1);
# Create database
system("mysql -u root --skip-password --execute \"CREATE DATABASE IF NOT EXISTS $DBD_MYSQL_TESTDB CHARACTER SET='utf8mb4';\" 2>&1");
is($?, 0);
# The test user has to have the proper privileges that these tests require
system("mysql -u root --skip-password --execute \"CREATE USER '$DBD_MYSQL_TESTUSER'\@'localhost' IDENTIFIED BY '$DBD_MYSQL_TESTPASSWORD'; \" 2>&1");
is($?, 0);
system("mysql -u root --skip-password --execute \"GRANT ALL PRIVILEGES ON $DBD_MYSQL_TESTDB.* TO '$DBD_MYSQL_TESTUSER'\@'localhost';\" 2>&1");
is($?, 0);
system("/usr/bin/mysqladmin --user=$DBD_MYSQL_TESTUSER --password=$DBD_MYSQL_TESTPASSWORD --socket=$DBD_MYSQL_TESTSOCKET ping >/dev/null 2>&1");
is($?, 0);

11
SOURCES/testrules.yml Normal file
View File

@ -0,0 +1,11 @@
seq:
- seq: t/test-setup.t
- seq: t/00base.t
- seq: t/05dbcreate.t
- seq: t/10connect.t
- seq: t/87async.t
- seq: t/rt75353-innodb-lock-timeout.t
- seq: t/rt85919-fetch-lost-connection.t
- par:
- par: **
- seq: t/test-clean.t

View File

@ -1,30 +1,33 @@
# mysql is not available on ix86
ExcludeArch: %{ix86}
Name: perl-DBD-MySQL
Version: 4.050
Release: 13%{?dist}
Version: 4.053
Release: 1%{?dist}
Summary: A MySQL interface for Perl
License: GPL+ or Artistic
URL: https://metacpan.org/release/DBD-mysql
Source0: https://cpan.metacpan.org/authors/id/D/DV/DVEEDEN/DBD-mysql-%{version}.tar.gz
Source1: test-setup.t
Source2: test-clean.t
Source3: testrules.yml
Source4: test-env.sh
# Remove a useless shebang, bug #1813195,
# <https://github.com/perl5-dbi/DBD-mysql/pull/321>
Patch0: DBD-mysql-4.050-Remove-a-useless-shebang-from-DBD-mysql.patch
BuildRequires: make
BuildRequires: coreutils
BuildRequires: findutils
BuildRequires: gcc
BuildRequires: mariadb-connector-c
BuildRequires: mariadb-connector-c-devel
BuildRequires: make
BuildRequires: mysql-devel
BuildRequires: openssl-devel
BuildRequires: perl-devel
BuildRequires: perl-generators
BuildRequires: perl-interpreter
BuildRequires: perl(Carp)
BuildRequires: perl(Config)
BuildRequires: perl(Data::Dumper)
BuildRequires: perl(DBI) >= 1.609
BuildRequires: perl(DBI::DBD)
BuildRequires: perl(Devel::CheckLib) >= 1.09
BuildRequires: perl(DynaLoader)
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76
BuildRequires: perl(File::Basename)
BuildRequires: perl(File::Copy)
@ -35,6 +38,24 @@ BuildRequires: perl(strict)
BuildRequires: perl(utf8)
BuildRequires: perl(warnings)
BuildRequires: zlib-devel
# Run-time
BuildRequires: perl(Carp)
BuildRequires: perl(DBI) >= 1.609
BuildRequires: perl(DBI::Const::GetInfoType)
BuildRequires: perl(DynaLoader)
# Tests
BuildRequires: mysql
BuildRequires: mysql-server
BuildRequires: perl(B)
BuildRequires: perl(bigint)
# Required to process t/testrules.yml
BuildRequires: perl(CPAN::Meta::YAML)
BuildRequires: perl(Encode)
BuildRequires: perl(lib)
BuildRequires: perl(Test::Deep)
BuildRequires: perl(Test::More)
BuildRequires: perl(Time::HiRes)
BuildRequires: perl(vars)
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
Provides: perl-DBD-mysql = %{version}-%{release}
@ -48,14 +69,23 @@ management system.
%prep
%setup -q -n DBD-mysql-%{version}
%patch0 -p1
%patch -P0 -p1
# Correct file permissions
find . -type f | xargs chmod -x
cp %{SOURCE1} %{SOURCE2} %{SOURCE3} t/
cp %{SOURCE4} .
%build
. %{SOURCE4}
perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}" \
NO_PACKLIST=1 NO_PERLLOCAL=1
NO_PACKLIST=1 NO_PERLLOCAL=1 \
--testdb=$DBD_MYSQL_TESTDB \
--testuser=$DBD_MYSQL_TESTUSER \
--testpassword=$DBD_MYSQL_TESTPASSWORD \
--testhost=$DBD_MYSQL_TESTHOST \
--testsocket=$DBD_MYSQL_TESTSOCKET
%{make_build}
%install
@ -64,8 +94,10 @@ find %{buildroot} -type f -name '*.bs' -empty -delete
%{_fixperms} %{buildroot}/*
%check
# Full test coverage requires a live MySQL database
#make test
# Set MySQL and DBD::mysql test environment
. %{SOURCE4}
unset RELEASE_TESTING
make test %{?with_perl_DBD_MySQL_enables_leak_test:EXTENDED_TESTING=1}
%files
%license LICENSE
@ -76,6 +108,11 @@ find %{buildroot} -type f -name '*.bs' -empty -delete
%{_mandir}/man3/*.3*
%changelog
* Thu Mar 13 2025 Jitka Plesnikova <jplesnik@redhat.com> - 4.053-1
- Resolves: RHEL-53861, RHEL-77083
- Update check for SSL connection
- Enable testing
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 4.050-13
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688