Bug#907348: fixed in dateutils 0.4.5-1

2019-07-10 Thread Thorsten Alteholz




On Wed, 10 Jul 2019, Gianfranco Costamagna wrote:

I'm uploading this fix in deferred/10, please Thorsten let me know if I can 
speed it up!


yes, please do as fast as you want to.


I also rebased the patch and forwarded it upstream, since nobody did it so far.


Thanks a lot.

  Thorsten



Bug#907348: fixed in dateutils 0.4.5-1

2019-07-10 Thread Gianfranco Costamagna
control: forwarded -1 https://github.com/hroptatyr/dateutils/pull/103
On Wed, 8 May 2019 01:01:24 +0200 =?UTF-8?Q?Bernhard_=c3=9cbelacker?= 
 wrote:
> Control: tags 907348 + patch upstream
> 
> 
> Dear Maintainer,
> I tried to have a look and tracked it down into the file
> lib/leap-seconds.def which is generated by ltrcc.
> 
> Unfortunately this generator seems not prepared for at least i386.
> 
> With attached patch the generated file is equal to one
> generated at amd64, and the tests pass on both architectures.
> 
> Could not find an matching upstream bug.
> 
I'm uploading this fix in deferred/10, please Thorsten let me know if I can 
speed it up!

I also rebased the patch and forwarded it upstream, since nobody did it so far.

patch attached

G.
diff -Nru dateutils-0.4.5/debian/changelog dateutils-0.4.5/debian/changelog
--- dateutils-0.4.5/debian/changelog2018-10-17 19:59:01.0 +0200
+++ dateutils-0.4.5/debian/changelog2019-07-10 09:12:59.0 +0200
@@ -1,3 +1,14 @@
+dateutils (0.4.5-1.1) unstable; urgency=medium
+
+  [ Gianfranco Costamagna ]
+  * Non-maintainer upload
+
+  [ Bernhard Übelacker ]
+  * debian/patches/0001-Use-unsigned-type-for-leap-second-
+conversion.patch: Fix 32bit builds (Closes: #907348)
+
+ -- Gianfranco Costamagna   Wed, 10 Jul 2019 
09:12:59 +0200
+
 dateutils (0.4.5-1) unstable; urgency=medium
 
   * New upstream release (Closes: #907348, #909031)
diff -Nru 
dateutils-0.4.5/debian/patches/0001-Use-unsigned-type-for-leap-second-conversion.patch
 
dateutils-0.4.5/debian/patches/0001-Use-unsigned-type-for-leap-second-conversion.patch
--- 
dateutils-0.4.5/debian/patches/0001-Use-unsigned-type-for-leap-second-conversion.patch
  1970-01-01 01:00:00.0 +0100
+++ 
dateutils-0.4.5/debian/patches/0001-Use-unsigned-type-for-leap-second-conversion.patch
  2019-07-10 09:12:59.0 +0200
@@ -0,0 +1,154 @@
+From 6f653805ee528e9068d3108af7227dea685f88ed Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bernhard=20=C3=9Cbelacker?= 
+Date: Tue, 7 May 2019 19:13:21 +0200
+Subject: [PATCH] Use unsigned type for leap second conversion.
+
+https://bugs.debian.org/907348
+---
+ lib/ltrcc.c | 40 
+ 1 file changed, 20 insertions(+), 20 deletions(-)
+
+diff --git a/lib/ltrcc.c b/lib/ltrcc.c
+index 20c0e38..11c8a74 100644
+--- a/lib/ltrcc.c
 b/lib/ltrcc.c
+@@ -55,10 +55,10 @@
+ #include "version.c"
+ 
+ 
+-static __attribute__((pure, const)) long int
+-ntp_to_unix_epoch(long int x)
++static __attribute__((pure, const)) unsigned long int
++ntp_to_unix_epoch(unsigned long int x)
+ {
+-  return x - 25567L * 86400L;
++  return x - 25567U * 86400U;
+ }
+ 
+ 
+@@ -68,7 +68,7 @@ ntp_to_unix_epoch(long int x)
+ static int
+ pr_line_corr(const char *line, size_t llen, va_list UNUSED(vap))
+ {
+-  static long int cor;
++  static unsigned long int cor;
+   char *sp, *ep;
+ 
+   if (llen == PROLOGUE) {
+@@ -96,7 +96,7 @@ const int32_t %s[] = {\n\
+   /* otherwise process */
+   if ((sp = memchr(line, '\t', llen)) == NULL) {
+   return -1;
+-  } else if ((ep = NULL, cor = strtol(++sp, &ep, 10), ep == NULL)) {
++  } else if ((ep = NULL, cor = strtoul(++sp, &ep, 10), ep == NULL || cor 
== ULONG_MAX)) {
+   return -1;
+   }
+ 
+@@ -108,10 +108,10 @@ const int32_t %s[] = {\n\
+ static int
+ pr_line_d(const char *line, size_t llen, va_list vap)
+ {
+-  static long int cor;
++  static unsigned long int cor;
+   struct dt_d_s d;
+   dt_dtyp_t typ;
+-  long int val;
++  unsigned long int val;
+   int colp;
+   char *ep;
+ 
+@@ -155,7 +155,7 @@ const uint32_t %s[] = {\n\
+   return 0;
+   }
+   /* otherwise process */
+-  if ((ep = NULL, val = strtol(line, &ep, 10), ep == NULL)) {
++  if ((ep = NULL, val = strtoul(line, &ep, 10), ep == NULL || val == 
ULONG_MAX)) {
+   return -1;
+   }
+ 
+@@ -164,7 +164,7 @@ const uint32_t %s[] = {\n\
+   d = dt_dconv(typ, d);
+ 
+   if (!colp) {
+-  if ((cor = strtol(ep, &ep, 10), ep == NULL)) {
++  if ((cor = strtoul(ep, &ep, 10), ep == NULL || val == 
ULONG_MAX)) {
+   return -1;
+   }
+   /* just output the line then */
+@@ -179,9 +179,9 @@ const uint32_t %s[] = {\n\
+ static int
+ pr_line_dt(const char *line, size_t llen, va_list vap)
+ {
+-  static long int cor;
++  static unsigned long int cor;
+   dt_dtyp_t __attribute__((unused)) typ;
+-  long int val;
++  unsigned long int val;
+   int colp;
+   char *ep;
+ 
+@@ -225,7 +225,7 @@ const int32_t %s[] = {\n\
+   return 0;
+   }
+   /* otherwise process */
+-  if ((ep = NULL, val = strtol(line, &ep, 10), ep == NULL)) {
++  if ((ep = NULL, val = strtoul(line, &ep, 10), ep == NULL || val == 
ULONG_MAX)) {
+   return -1;
+   }
+ 
+@@ -234,15 +234,15 @@ const int32_t %s[]

Bug#907348: fixed in dateutils 0.4.5-1

2019-05-07 Thread Bernhard Übelacker
Control: tags 907348 + patch upstream


Dear Maintainer,
I tried to have a look and tracked it down into the file
lib/leap-seconds.def which is generated by ltrcc.

Unfortunately this generator seems not prepared for at least i386.

With attached patch the generated file is equal to one
generated at amd64, and the tests pass on both architectures.

Could not find an matching upstream bug.

Kind regards,
Bernhard
>From 6f653805ee528e9068d3108af7227dea685f88ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bernhard=20=C3=9Cbelacker?= 
Date: Tue, 7 May 2019 19:13:21 +0200
Subject: [PATCH] Use unsigned type for leap second conversion.

https://bugs.debian.org/907348
---
 lib/ltrcc.c | 40 
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/lib/ltrcc.c b/lib/ltrcc.c
index 20c0e38..11c8a74 100644
--- a/lib/ltrcc.c
+++ b/lib/ltrcc.c
@@ -55,10 +55,10 @@
 #include "version.c"
 
 
-static __attribute__((pure, const)) long int
-ntp_to_unix_epoch(long int x)
+static __attribute__((pure, const)) unsigned long int
+ntp_to_unix_epoch(unsigned long int x)
 {
-	return x - 25567L * 86400L;
+	return x - 25567U * 86400U;
 }
 
 
@@ -68,7 +68,7 @@ ntp_to_unix_epoch(long int x)
 static int
 pr_line_corr(const char *line, size_t llen, va_list UNUSED(vap))
 {
-	static long int cor;
+	static unsigned long int cor;
 	char *sp, *ep;
 
 	if (llen == PROLOGUE) {
@@ -96,7 +96,7 @@ const int32_t %s[] = {\n\
 	/* otherwise process */
 	if ((sp = memchr(line, '\t', llen)) == NULL) {
 		return -1;
-	} else if ((ep = NULL, cor = strtol(++sp, &ep, 10), ep == NULL)) {
+	} else if ((ep = NULL, cor = strtoul(++sp, &ep, 10), ep == NULL || cor == ULONG_MAX)) {
 		return -1;
 	}
 
@@ -108,10 +108,10 @@ const int32_t %s[] = {\n\
 static int
 pr_line_d(const char *line, size_t llen, va_list vap)
 {
-	static long int cor;
+	static unsigned long int cor;
 	struct dt_d_s d;
 	dt_dtyp_t typ;
-	long int val;
+	unsigned long int val;
 	int colp;
 	char *ep;
 
@@ -155,7 +155,7 @@ const uint32_t %s[] = {\n\
 		return 0;
 	}
 	/* otherwise process */
-	if ((ep = NULL, val = strtol(line, &ep, 10), ep == NULL)) {
+	if ((ep = NULL, val = strtoul(line, &ep, 10), ep == NULL || val == ULONG_MAX)) {
 		return -1;
 	}
 
@@ -164,7 +164,7 @@ const uint32_t %s[] = {\n\
 	d = dt_dconv(typ, d);
 
 	if (!colp) {
-		if ((cor = strtol(ep, &ep, 10), ep == NULL)) {
+		if ((cor = strtoul(ep, &ep, 10), ep == NULL || val == ULONG_MAX)) {
 			return -1;
 		}
 		/* just output the line then */
@@ -179,9 +179,9 @@ const uint32_t %s[] = {\n\
 static int
 pr_line_dt(const char *line, size_t llen, va_list vap)
 {
-	static long int cor;
+	static unsigned long int cor;
 	dt_dtyp_t __attribute__((unused)) typ;
-	long int val;
+	unsigned long int val;
 	int colp;
 	char *ep;
 
@@ -225,7 +225,7 @@ const int32_t %s[] = {\n\
 		return 0;
 	}
 	/* otherwise process */
-	if ((ep = NULL, val = strtol(line, &ep, 10), ep == NULL)) {
+	if ((ep = NULL, val = strtoul(line, &ep, 10), ep == NULL || val == ULONG_MAX)) {
 		return -1;
 	}
 
@@ -234,15 +234,15 @@ const int32_t %s[] = {\n\
 	val = ntp_to_unix_epoch(val);
 
 	if (!colp) {
-		if ((cor = strtol(ep, &ep, 10), ep == NULL)) {
+		if ((cor = strtoul(ep, &ep, 10), ep == NULL || cor == ULONG_MAX)) {
 			return -1;
 		}
 		/* just output the line then */
-		fprintf(stdout, "\t{0x%xU/* %li */, %li},\n",
-			(uint32_t)val, val, cor);
+		fprintf(stdout, "\t{0x%lxU/* %li */, %li},\n",
+			val, val, cor);
 	} else {
 		/* column-oriented mode */
-		fprintf(stdout, "\t0x%xU/* %li */,\n", (uint32_t)val, val);
+		fprintf(stdout, "\t0x%lxU/* %li */,\n", val, val);
 	}
 	return 0;
 }
@@ -250,12 +250,12 @@ const int32_t %s[] = {\n\
 static int
 pr_line_t(const char *line, size_t llen, va_list vap)
 {
-	static long int cor;
+	static unsigned long int cor;
 	struct dt_t_s t = dt_t_initialiser();
 	dt_dtyp_t typ;
 	int colp;
 	char *ep;
-	long int val;
+	unsigned long int val;
 
 	/* extract type from inner list */
 	typ = va_arg(vap, dt_dtyp_t);
@@ -292,7 +292,7 @@ const uint32_t %s[] = {\n\
 		return 0;
 	}
 	/* otherwise process */
-	if ((ep = NULL, val = strtol(line, &ep, 10), ep == NULL)) {
+	if ((ep = NULL, val = strtoul(line, &ep, 10), ep == NULL || val == ULONG_MAX)) {
 		return -1;
 	}
 	val--;
@@ -303,7 +303,7 @@ const uint32_t %s[] = {\n\
 	t.hms.h = val % 24L;
 
 	/* read correction */
-	if ((val = strtol(ep, &ep, 10), ep == NULL)) {
+	if ((val = strtoul(ep, &ep, 10), ep == NULL || val == ULONG_MAX)) {
 		return -1;
 	}
 
-- 
2.20.1



# Unstable i386 qemu VM 2019-05-07
# Unstable amd64 qemu VM 2019-05-07


apt update
apt dist-upgrade


apt install systemd-coredump fakeroot gdb git strace
apt build-dep dateutils


mkdir /home/benutzer/source/dateutils/orig -p
cd/home/benutzer/source/dateutils/orig
apt source dateutils
cd


cd /home/benutzer/source/dateutils
cp orig try1 -a
cd try1/dateutils-0.4.5
dpkg-buildpackage


i386:
# TOTAL: 855
# PASS:  841
# SKIP:  0
# XFAIL: 0

Bug#907348: closed by Thorsten Alteholz (Bug#907348: fixed in dateutils 0.4.5-1)

2018-10-26 Thread Adrian Bunk
Control: reopen -1

On Wed, Oct 17, 2018 at 09:33:03PM +, Debian Bug Tracking System wrote:
>...
>  dateutils (0.4.5-1) unstable; urgency=medium
>  .
>* New upstream release (Closes: #907348, #909031)
>...

Still FTBFS:
https://buildd.debian.org/status/package.php?p=dateutils&suite=sid

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed