Mail archive
alpine-aports

[alpine-aports] [PATCH] testing/s-nail: update to v14.9.10, 2nd attempt..

From: Steffen Nurpmeso <steffen_at_sdaoden.eu>
Date: Mon, 26 Mar 2018 21:02:14 +0200

The 40th birthday of BSD Mail, first mentioned 1978-03-25.
Second attempt because:

  Well yes, i have messed up the jubilee version.
  While waiting for test results of the OpenCSW cluster (external)
  and the OpenBSD VM (locally), i have quickly added support for
  64-bit IMAP UIDs, which are currently in the process of being
  standardized. I should have listened to my evil subconsciousness,
  but no, i have not.

  As a result S-nail has a problem on 32-bit hosts, where "unsigned
  long" is not of the same size as "ui64_t".
---
 testing/s-nail/APKBUILD         |  5 ++-
 testing/s-nail/imap-32bit.patch | 69 ++++++++++++++++++++++++++++++
 2 files changed, 72 insertions(+), 2 deletions(-)
 create mode 100644 testing/s-nail/imap-32bit.patch
diff --git a/testing/s-nail/APKBUILD b/testing/s-nail/APKBUILD
index 9d4e3b1..eee5001 100644
--- a/testing/s-nail/APKBUILD
+++ b/testing/s-nail/APKBUILD
_at_@ -12,7 +12,7 @@ makedepends="libressl-dev libidn-dev ncurses-dev krb5-dev"
 options="suid"
 replaces="mailx"
 subpackages="$pkgname-doc"
-source="https://ftp.sdaoden.eu/s-nail-$pkgver.tar.xz"
+source="https://ftp.sdaoden.eu/s-nail-$pkgver.tar.xz imap-32bit.patch"
 builddir="$srcdir/"$pkgname-$pkgver
 
 # LD_LIBRARY_PATH is included via -rpath, so use system defaults only.
_at_@ -51,4 +51,5 @@ package() {
 	install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
 }
 
-sha512sums="d649f66d6b8543ce626b99b871e1d96ccf8754b55684e9f1b66d6e9cf81f79261f47b9efdadd4a4dbeff9dce19f8bbdee6c8ee503dd6aef8b4c4e1d2221d3ff3  s-nail-14.9.10.tar.xz"
+sha512sums="d649f66d6b8543ce626b99b871e1d96ccf8754b55684e9f1b66d6e9cf81f79261f47b9efdadd4a4dbeff9dce19f8bbdee6c8ee503dd6aef8b4c4e1d2221d3ff3  s-nail-14.9.10.tar.xz
+c0c4a7915c1943e7a4644aec0e57f63020ca57c1c60ba4a242bf5806ac35a2488e498ae623dced39ef6e0b66229168a450e2ba8be704831ba31d7b0927ebd8d6  imap-32bit.patch"
diff --git a/testing/s-nail/imap-32bit.patch b/testing/s-nail/imap-32bit.patch
new file mode 100644
index 0000000..027088f
--- /dev/null
+++ b/testing/s-nail/imap-32bit.patch
_at_@ -0,0 +1,69 @@
+    FIX hasty [ab7aab0e] (Account for drafted 64-bit IMAP UIDs..)..
+    
+    Unfortunately this has not adjusted all functions correctly,
+    which is a problem on 32-bit hosts where "unsigned long" is
+    not of equal size as ui64_t
+---
+ obs-imap.c | 26 ++++++++++++--------------
+ 1 file changed, 12 insertions(+), 14 deletions(-)
+
+diff --git a/obs-imap.c b/obs-imap.c
+index 95692bd2..d403078b 100644
+--- a/obs-imap.c
++++ b/obs-imap.c
+_at_@ -246,10 +246,9 @@ static enum okay  imap_list(struct mailbox *mp, const char *base, int strip,
+ static enum okay  imap_copy1(struct mailbox *mp, struct message *m, int n,
+                      const char *name);
+ static enum okay  imap_copyuid_parse(const char *cp,
+-                     unsigned long *uidvalidity, unsigned long *olduid,
+-                     unsigned long *newuid);
++                     ui64_t *uidvalidity, ui64_t *olduid, ui64_t *newuid);
+ static enum okay  imap_appenduid_parse(const char *cp,
+-                     unsigned long *uidvalidity, unsigned long *uid);
++                     ui64_t *uidvalidity, ui64_t *uid);
+ static enum okay  imap_copyuid(struct mailbox *mp, struct message *m,
+                      const char *name);
+ static enum okay  imap_appenduid(struct mailbox *mp, FILE *fp, time_t t,
+_at_@ -3465,16 +3464,16 @@ imap_copy(struct message *m, int n, const char *name)
+ }
+ 
+ static enum okay
+-imap_copyuid_parse(const char *cp, unsigned long *uidvalidity,
+-   unsigned long *olduid, unsigned long *newuid)
++imap_copyuid_parse(const char *cp, ui64_t *uidvalidity, ui64_t *olduid,
++   ui64_t *newuid)
+ {
+-   char *xp, *yp, *zp;
++   char const *xp, *yp, *zp;
+    enum okay rv;
+    NYD_ENTER;
+ 
+-   *uidvalidity = strtoul(cp, &xp, 10);
+-   *olduid = strtoul(xp, &yp, 10);
+-   *newuid = strtoul(yp, &zp, 10);
++   n_idec_ui64_cp(uidvalidity, cp, 10, &xp); /* TODO errors */
++   n_idec_ui64_cp(olduid, xp, 10, &yp); /* TODO errors */
++   n_idec_ui64_cp(newuid, yp, 10, &zp); /* TODO errors */
+    rv = (*uidvalidity && *olduid && *newuid && xp > cp && *xp == ' ' &&
+       yp > xp && *yp == ' ' && zp > yp && *zp == ']');
+    NYD_LEAVE;
+_at_@ -3482,15 +3481,14 @@ imap_copyuid_parse(const char *cp, unsigned long *uidvalidity,
+ }
+ 
+ static enum okay
+-imap_appenduid_parse(const char *cp, unsigned long *uidvalidity,
+-   unsigned long *uid)
++imap_appenduid_parse(const char *cp, ui64_t *uidvalidity, ui64_t *uid)
+ {
+-   char *xp, *yp;
++   char const *xp, *yp;
+    enum okay rv;
+    NYD_ENTER;
+ 
+-   *uidvalidity = strtoul(cp, &xp, 10);
+-   *uid = strtoul(xp, &yp, 10);
++   n_idec_ui64_cp(uidvalidity, cp, 10, &xp); /* TODO errors */
++   n_idec_ui64_cp(uid, xp, 10, &yp); /* TODO errors */
+    rv = (*uidvalidity && *uid && xp > cp && *xp == ' ' && yp > xp &&
+       *yp == ']');
+    NYD_LEAVE;
-- 
2.16.2
--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)
---
Unsubscribe:  alpine-aports+unsubscribe_at_lists.alpinelinux.org
Help:         alpine-aports+help_at_lists.alpinelinux.org
---
Received on Mon Mar 26 2018 - 21:06:43 GMT