pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/pkgsrc-2012Q1]: pkgsrc/mail/oe2mbx Pullup ticket #3777 - requested by...
details: https://anonhg.NetBSD.org/pkgsrc/rev/c332c5c1ed8c
branches: pkgsrc-2012Q1
changeset: 602089:c332c5c1ed8c
user: tron <tron%pkgsrc.org@localhost>
date: Wed May 09 06:26:08 2012 +0000
description:
Pullup ticket #3777 - requested by dholland
mail/oe2mbx: build fix
Revisions pulled up:
- mail/oe2mbx/Makefile 1.13
- mail/oe2mbx/distinfo 1.5
- mail/oe2mbx/patches/patch-src_liboe_c 1.1
---
Module Name: pkgsrc
Committed By: dholland
Date: Mon May 7 19:21:57 UTC 2012
Modified Files:
pkgsrc/mail/oe2mbx: Makefile distinfo
Added Files:
pkgsrc/mail/oe2mbx/patches: patch-src_liboe_c
Log Message:
Hack around misuse of fpos_t. Fix some code that assumed fpos_t is a
4-byte integer type. If this code ever worked on NetBSD, it was only
by accident. PKGREVISION++ for the fixes.
diffstat:
mail/oe2mbx/Makefile | 3 +-
mail/oe2mbx/distinfo | 3 +-
mail/oe2mbx/patches/patch-src_liboe_c | 105 ++++++++++++++++++++++++++++++++++
3 files changed, 109 insertions(+), 2 deletions(-)
diffs (134 lines):
diff -r 9c024eb3dffe -r c332c5c1ed8c mail/oe2mbx/Makefile
--- a/mail/oe2mbx/Makefile Wed May 09 06:23:13 2012 +0000
+++ b/mail/oe2mbx/Makefile Wed May 09 06:26:08 2012 +0000
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.12 2010/02/26 10:28:32 wiz Exp $
+# $NetBSD: Makefile,v 1.12.18.1 2012/05/09 06:26:08 tron Exp $
#
DISTNAME= oe2mbx-1.21
+PKGREVISION= 1
CATEGORIES= mail
MASTER_SITES= # none
diff -r 9c024eb3dffe -r c332c5c1ed8c mail/oe2mbx/distinfo
--- a/mail/oe2mbx/distinfo Wed May 09 06:23:13 2012 +0000
+++ b/mail/oe2mbx/distinfo Wed May 09 06:26:08 2012 +0000
@@ -1,6 +1,7 @@
-$NetBSD: distinfo,v 1.4 2009/02/16 18:25:20 joerg Exp $
+$NetBSD: distinfo,v 1.4.26.1 2012/05/09 06:26:08 tron Exp $
SHA1 (oe2mbx-1.21.tar.gz) = e3931f0eb8c27c4ba0f1118e6d3bb7342ec172e2
RMD160 (oe2mbx-1.21.tar.gz) = 147b02fac16d2d5124ee069f2b11c236baf00235
Size (oe2mbx-1.21.tar.gz) = 22817 bytes
SHA1 (patch-aa) = b43592c823057f57ac091449c8365995c3027440
+SHA1 (patch-src_liboe_c) = 2a2c90d94403b96e069ee1f2c0d8ff787d6dffb1
diff -r 9c024eb3dffe -r c332c5c1ed8c mail/oe2mbx/patches/patch-src_liboe_c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/oe2mbx/patches/patch-src_liboe_c Wed May 09 06:26:08 2012 +0000
@@ -0,0 +1,105 @@
+$NetBSD: patch-src_liboe_c,v 1.1.2.2 2012/05/09 06:26:08 tron Exp $
+
+Hack around misuse of fpos_t. Fix some places where the code assumes
+fpos_t is a 4-byte integer (it has always been an 8-byte integer on
+NetBSD...) Cannot fix the core assumption that fpos_t is an integer,
+though, so work around it.
+
+--- src/liboe.c~ 2000-06-18 22:16:55.000000000 +0000
++++ src/liboe.c
+@@ -24,6 +24,15 @@
+ #endif
+ #include <sys/stat.h>
+
++#ifdef __NetBSD__
++/*
++ * NetBSD 6 and up has a non-integer fpos_t. This code requires an
++ * integer type, so we'll have to use fseeko instead.
++ */
++#define fpos_t off_t
++#define fsetpos(f, offp) fseeko(f, *(offp), SEEK_SET)
++#endif
++
+ #define OE_CANNOTREAD 1
+ #define OE_NOTOEBOX 2
+ #define OE_POSITION 3
+@@ -69,10 +78,13 @@ typedef struct oe_list oe_list;
+ anywhere in the mailbox file, some times far from each other. */
+
+ struct oe_msg_segmentheader {
+- int self, /* Pointer to self (filepos) */
++ fpos_t self; /* Pointer to self (filepos) */
++ int
+ increase, /* Increase to next segment header (not in msg, in file!) */
+- include, /* Number of bytes to include from this segment */
+- next, /* Pointer to next message segment (in msg) (filepos) */
++ include; /* Number of bytes to include from this segment */
++ fpos_t
++ next; /* Pointer to next message segment (in msg) (filepos) */
++ int
+ usenet; /* Only used with usenet posts */
+ };
+ typedef struct oe_msg_segmentheader oe_msg_segmentheader;
+@@ -125,7 +137,8 @@ int oe_readmessage(oe_data *data,
+ int segheadsize = sizeof(oe_msg_segmentheader)-4; /*+(newsarticle<<2);*/
+ oe_msg_segmentheader *sgm = malloc(sizeof(oe_msg_segmentheader));
+ char buff[16], *ss = malloc(2048), *s = ss;
+- int nextsegment, endofsegment, i, headerwritten = 0;
++ fpos_t nextsegment, endofsegment;
++ int i, headerwritten = 0;
+ fsetpos(data->oe,&pos);
+ while (1) {
+ fread(sgm,segheadsize,1,data->oe);
+@@ -156,7 +169,7 @@ int oe_readmessage(oe_data *data,
+ if (buff[i]==0x0a) { *s='\0'; data->oput(ss); s=ss; }
+ }
+ }
+- fsetpos(data->oe,(fpos_t *) &sgm->next);
++ fsetpos(data->oe, &sgm->next);
+ pos = sgm->next;
+ if (pos==0) break;
+ }
+@@ -252,12 +265,14 @@ void oe_readdamaged(oe_data *data) {
+ that even OE couldn't read to work. Should generally not
+ be needed, but is nice to have in here */
+ fpos_t pos = 0x7C;
++ int tmp;
+ int i,check, lastID;
+ #ifdef DEBUG
+ printf(" Trying to construct internal mailbox structure\n");
+ #endif
+ fsetpos(data->oe,&pos);
+- fread(&pos,sizeof(int),1,data->oe);
++ fread(&tmp,sizeof(int),1,data->oe);
++ pos = tmp;
+ if (pos==0) return; /* No, sorry, didn't work */
+ fsetpos(data->oe,&pos);
+ fread(&i,sizeof(int),1,data->oe);
+@@ -286,7 +301,8 @@ void oe_readdamaged(oe_data *data) {
+ }
+
+ void oe_readbox_oe4(oe_data *data) {
+- fpos_t pos = 0x54, endpos=0, i;
++ fpos_t pos = 0x54, endpos=0;
++ int i;
+ oe_msg_segmentheader *header=malloc(sizeof(oe_msg_segmentheader));
+ char *cb = malloc(4), *sfull = malloc(65536), *s = sfull;
+ fsetpos(data->oe,&pos);
+@@ -323,6 +339,7 @@ void oe_readbox_oe4(oe_data *data) {
+
+ oe_data* oe_readbox(char* filename,void (*oput)(char*)) {
+ int signature[4], i;
++ fpos_t tmp;
+ oe_data *data = malloc(sizeof(oe_data));
+ data->success=data->failure=data->justheaders=data->errcode=0;
+ data->used = NULL;
+@@ -359,7 +376,8 @@ oe_data* oe_readbox(char* filename,void
+
+ /* ACTUAL WORK */
+ i = 0x30;
+- fsetpos(data->oe,(fpos_t *) &i);
++ tmp = i;
++ fsetpos(data->oe, &tmp);
+ fread(&i,4,1,data->oe);
+ if (!i) i=0x1e254;
+ i = oe_readtable(data,i); /* Reads the box */
Home |
Main Index |
Thread Index |
Old Index