Browse Source

[dev-perl/DBD-mysql] sync with whissi's PR

master
Robert Förster 3 years ago
parent
commit
e178297de2
  1. 6
      dev-perl/DBD-mysql/DBD-mysql-4.50.0.ebuild
  2. 42
      dev-perl/DBD-mysql/files/DBD-mysql-4.050-fix-float-type-conversion.patch
  3. 36
      dev-perl/DBD-mysql/files/DBD-mysql-4.050-fix-for-MariaDB-10.3.13-with-zerofil.patch

6
dev-perl/DBD-mysql/DBD-mysql-4.50.0.ebuild

@ -15,7 +15,8 @@ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~spa
IUSE="test +ssl"
RDEPEND=">=dev-perl/DBI-1.609.0
virtual/libmysqlclient:=
>=dev-perl/Devel-CheckLib-1.109.0
dev-db/mysql-connector-c:=
"
DEPEND="${RDEPEND}
virtual/perl-ExtUtils-MakeMaker
@ -28,7 +29,8 @@ DEPEND="${RDEPEND}
)
"
PATCHES=(
"${FILESDIR}/${PN}-4.050-amavis-type-conversions.patch"
"${FILESDIR}"/DBD-mysql-4.050-fix-float-type-conversion.patch
"${FILESDIR}"/DBD-mysql-4.050-fix-for-MariaDB-10.3.13-with-zerofil.patch
)
src_configure() {

42
dev-perl/DBD-mysql/files/DBD-mysql-4.050-amavis-type-conversions.patch → dev-perl/DBD-mysql/files/DBD-mysql-4.050-fix-float-type-conversion.patch

@ -1,31 +1,26 @@
From eb7eddaa2341b853df045ad4a3690c60fc38c6c8 Mon Sep 17 00:00:00 2001
From: Pali <pali@cpan.org>
Date: Fri, 24 Feb 2017 19:51:36 +0100
Subject: Fix type conversions
Calling SvNV() for magical scalar is not enough for float type conversion.
It caused problem for Amavis in tainted mode -- all float values were zero.
On the other hand SvIV() and SvUV() seems to work fine. To be sure that
correct value of float is in scalar use sv_setnv() with explicit NV float
value. Similar code is changed also for integers IV/UV.
This patch should fix reported Amavis bug:
https://github.com/perl5-dbi/DBD-mysql/issues/78
See also reported perl bug about SvNV():
https://rt.perl.org/Public/Bug/Display.html?id=130801
Subject: [PATCH] Fix type conversions
Calling SvNV() for magical scalar is not enough for float type conversion.
It caused problem for Amavis in tainted mode -- all float values were zero.
On the other hand SvIV() and SvUV() seems to work fine. To be sure that
correct value of float is in scalar use sv_setnv() with explicit NV float
value. Similar code is changed also for integers IV/UV.
.
This patch should fix reported Amavis bug:
https://github.com/perl5-dbi/DBD-mysql/issues/78
.
See also reported perl bug about SvNV():
https://rt.perl.org/Public/Bug/Display.html?id=130801
Bugs: https://github.com/perl5-dbi/DBD-mysql/issues/78
Bugs-Debian: https://bugs.debian.org/856064
---
dbdimp.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
Last-Update: 2019-01-09
Reviewed-By: Xavier Guimard <x.guimard@free.fr>,
gregor herrmann <gregoa@debian.org>
diff --git a/dbdimp.c b/dbdimp.c
index 9c33994..7fdfba1 100644
--- a/dbdimp.c
+++ b/dbdimp.c
@@ -4380,8 +4380,7 @@ process:
@@ -4447,8 +4447,7 @@
if (!(fields[i].flags & ZEROFILL_FLAG))
{
/* Coerce to double and set scalar as NV */
@ -35,7 +30,7 @@ index 9c33994..7fdfba1 100644
}
break;
@@ -4392,13 +4391,11 @@ process:
@@ -4459,13 +4458,11 @@
/* Coerce to integer and set scalar as UV resp. IV */
if (fields[i].flags & UNSIGNED_FLAG)
{
@ -51,6 +46,3 @@ index 9c33994..7fdfba1 100644
}
}
break;
--
2.15.1

36
dev-perl/DBD-mysql/files/DBD-mysql-4.050-fix-for-MariaDB-10.3.13-with-zerofil.patch

@ -0,0 +1,36 @@
From 8b5ba5f9c8d239328ecbc862aba203d44819e2f5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dani=C3=ABl=20van=20Eeden?= <git@myname.nl>
Date: Tue, 5 Mar 2019 16:24:17 +0100
Subject: [PATCH] Fix for MariaDB 10.3.13 with zerofil
Issue: #304
Bug: https://github.com/perl5-dbi/DBD-mysql/issues/304
Bug-Debian: https://bugs.debian.org/923541
---
dbdimp.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/dbdimp.c b/dbdimp.c
index a9c37cf..82c96d2 100644
--- a/dbdimp.c
+++ b/dbdimp.c
@@ -4055,9 +4055,13 @@ int dbd_describe(SV* sth, imp_sth_t* imp_sth)
break;
default:
-#if MYSQL_VERSION_ID > 100300
+#if (MYSQL_VERSION_ID > 100300) && (MYSQL_VERSION_ID < 100313)
// https://jira.mariadb.org/browse/MDEV-18143
buffer->buffer_length= fields[i].max_length ? fields[i].max_length : 2;
+#elif MYSQL_VERSION_ID > 100312
+ // https://jira.mariadb.org/browse/MDEV-18823
+ buffer->buffer_length= fields[i].max_length ? fields[i].max_length + 1 : 2;
+ buffer->buffer_length= fields[i].length > fields[i].max_length ? fields[i].length + 1 : 2;
#else
buffer->buffer_length= fields[i].max_length ? fields[i].max_length : 1;
#endif
--
2.20.1
Loading…
Cancel
Save