* Re: [PATCH] xfbbd: Run the same data files on 64-bit
2013-07-06 21:24 ` Pidoux
2013-07-07 0:15 ` Cathryn Mataga
@ 2013-07-16 3:09 ` Cathryn Mataga
1 sibling, 0 replies; 5+ messages in thread
From: Cathryn Mataga @ 2013-07-16 3:09 UTC (permalink / raw)
To: Pidoux; +Cc: linux-hams
[-- Attachment #1: Type: text/plain, Size: 1992 bytes --]
On 7/6/2013 2:24 PM, Pidoux wrote:
Alright, let's try this again. This is in -pruN format. if
THIRTYTWOBITDATA is defined then the data will be created in a way
that's compatible with the 32-bit versions of the program, and
compatible with the documentation on the f6fbb.org website. I also fixed
some compile warnings that were created by the last patch. The default
is set to 64-bit data.
Note: That the 64-bit data and 32-bit data are not compatible with each
other, so back up your data files first before you experiment with this.
> Hi Cathryn,
>
> Thank you for your message.
> I have been using FBB 7.05e on a 64 bits machine for a while with Mandriva and somce lat year with Mageia Linux distro without problem.
> However I never tried to import any data from a previous 32 bits install for I do not see any necessity to do that.
> What kind of data do you want to import ?
>
> However, would you mind providing a patch created with diff -pruN options. This is the one I am used to read.
>
> I will consider it and let you know the results of my tests.
>
> 73 de Bernard Pidoux f6bvp
>
> Sent from my iPhone
>
> Le 5 juil. 2013 à 23:20, Cathryn Mataga <cathryn@junglevision.com> a écrit :
>
>> I'm moving my ham radio server up to 64-bit Fedora 18. So I'm fixing issues as I hit them.
>>
>> This is against fbbsrc.705e. When compiled for 64 bits, the code was corrupting all my 32-bit data files.
>> I think this is right, that the binary data files should be the same between 32 and 64 bit compiles.
>>
>> After applying this patch, I see my user names and messages correctly after copying data from my old 32-bit install to a new 64-bit install.
>>
>> I haven't made any patches in awhile so if anything is wrong let me know.
>>
>> <fbbsrc.705e.sixtyfour.patch>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-hams" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
[-- Attachment #2: patch.fbbsrc.705e.32data --]
[-- Type: text/plain, Size: 8855 bytes --]
diff -pruN /home/cathryn/fbbsrc.705e/include/diff.txt /home/cathryn/fbbsrc.705e.sixtyfour/include/diff.txt
--- /home/cathryn/fbbsrc.705e/include/diff.txt 1969-12-31 19:00:00.000000000 -0500
+++ /home/cathryn/fbbsrc.705e.sixtyfour/include/diff.txt 2013-07-05 17:09:12.111823509 -0400
@@ -0,0 +1,127 @@
+--- /home/cathryn/fbb_serv.h 2013-07-05 17:03:09.150055265 -0400
++++ fbb_serv.h 2013-07-05 16:26:01.814157699 -0400
+@@ -31,7 +31,7 @@
+
+ #ifndef _fbb_serv
+ #define _fbb_serv
+-
++#define fbb_long int
+ /* #define FORTIFY */
+
+ #ifdef __LINUX__
+@@ -655,8 +655,8 @@
+ uchar free;
+ uchar changed;
+ ushort seen;
+- long last_modif __a2__;
+- long last_seen __a2__;
++ fbb_long last_modif __a2__;
++ fbb_long last_seen __a2__;
+ char first_homebbs[41];
+ char secnd_homebbs[41];
+ char first_zip[9];
+@@ -669,7 +669,6 @@
+ /*
+ * Structures et blocs de messages
+ */
+-
+ typedef struct
+ {
+ long nmess;
+@@ -733,7 +732,7 @@
+ char indcnx[6];
+ uchar port;
+ uchar voie;
+- long datcnx __a2__;
++ fbb_long datcnx __a2__;
+ short tpscnx;
+ }
+ statis;
+@@ -767,17 +766,17 @@
+
+ indicat indic; /* 8 Callsign */
+ indicat relai[8]; /* 64 Digis path */
+- long lastmes __a2__; /* 4 Last L number */
+- long nbcon __a2__; /* 4 Number of connexions */
+- long hcon __a2__; /* 4 Last connexion date */
+- long lastyap __a2__; /* 4 Last YN date */
++ fbb_long lastmes __a2__; /* 4 Last L number */
++ fbb_long nbcon __a2__; /* 4 Number of connexions */
++ fbb_long hcon __a2__; /* 4 Last connexion date */
++ fbb_long lastyap __a2__; /* 4 Last YN date */
+ ushort flags; /* 2 Flags */
+ ushort on_base; /* 2 ON Base number */
+
+ uchar nbl; /* 1 Lines paging */
+ uchar lang; /* 1 Language */
+
+- long newbanner __a2__; /* 4 Last Banner date */
++ fbb_long newbanner __a2__; /* 4 Last Banner date */
+ ushort download; /* 2 download size (KB) = 100 */
+ char free[20]; /* 20 Reserved */
+ char theme; /* 1 Current topic */
+@@ -802,7 +801,7 @@
+ {
+ char mode;
+ char fbid[13];
+- long numero __a2__;
++ fbb_long numero __a2__;
+ }
+ bidfwd;
+
+@@ -850,9 +849,9 @@
+ { /* Longueur = 194 octets */
+ char type;
+ char status;
+- long numero __a2__;
+- long taille __a2__;
+- long date __a2__;
++ fbb_long numero __a2__;
++ fbb_long taille __a2__;
++ fbb_long date __a2__;
+ char bbsf[7];
+ char bbsv[41];
+ char exped[7];
+@@ -861,11 +860,11 @@
+ char titre[61];
+ char bin;
+ char free[5];
+- long grpnum __a2__;
++ fbb_long grpnum __a2__;
+ ushort nblu;
+- long theme __a2__;
+- long datesd __a2__;
+- long datech __a2__;
++ fbb_long theme __a2__;
++ fbb_long datesd __a2__;
++ fbb_long datech __a2__;
+ char fbbs[NBMASK];
+ char forw[NBMASK];
+ }
+@@ -921,12 +920,12 @@
+ double a0 __a2__;
+ double n0 __a2__;
+ double q3 __a2__;
+- long k0 __a2__;
++ fbb_long k0 __a2__;
+ double f1 __a2__;
+ double v1 __a2__;
+ short pas;
+- long maj __a2__;
+- long cat __a2__; /* Catalog Number - anciennement vide */
++ fbb_long maj __a2__;
++ fbb_long cat __a2__; /* Catalog Number - anciennement vide */
+ short libre[4];
+ }
+ satel;
+@@ -1230,8 +1229,8 @@
+ char nomfic[LABEL_FIC];
+ char label[LABEL_NOM];
+ char owner[LABEL_OWN];
+- long index;
+- long date_creation;
++ fbb_long index;
++ fbb_long date_creation;
+ char free[24];
+ }
+ Rlabel; /* 160 bytes */
diff -pruN /home/cathryn/fbbsrc.705e/include/fbb_serv.h /home/cathryn/fbbsrc.705e.sixtyfour/include/fbb_serv.h
--- /home/cathryn/fbbsrc.705e/include/fbb_serv.h 2013-03-16 10:00:56.000000000 -0400
+++ /home/cathryn/fbbsrc.705e.sixtyfour/include/fbb_serv.h 2013-07-15 23:00:33.975359320 -0400
@@ -32,6 +32,15 @@
#ifndef _fbb_serv
#define _fbb_serv
+/* Define THIRTYTWOBITDATA if you are bringing in data from 32-bit versions.
+ This creates datafiles that match the origin documentation for FBB.
+ They are not compatible with files created with 64-bit versions. */
+/* #define THIRTYTWOBITDATA 1 */
+#ifdef THIRTYTWOBITDATA
+#define fbb_long int
+#else
+#define fbb_long long
+#endif
/* #define FORTIFY */
#ifdef __LINUX__
@@ -655,8 +664,8 @@ typedef struct
uchar free;
uchar changed;
ushort seen;
- long last_modif __a2__;
- long last_seen __a2__;
+ fbb_long last_modif __a2__;
+ fbb_long last_seen __a2__;
char first_homebbs[41];
char secnd_homebbs[41];
char first_zip[9];
@@ -669,7 +678,6 @@ Wps;
/*
* Structures et blocs de messages
*/
-
typedef struct
{
long nmess;
@@ -733,7 +741,7 @@ typedef struct typstat
char indcnx[6];
uchar port;
uchar voie;
- long datcnx __a2__;
+ fbb_long datcnx __a2__;
short tpscnx;
}
statis;
@@ -767,17 +775,17 @@ typedef struct
indicat indic; /* 8 Callsign */
indicat relai[8]; /* 64 Digis path */
- long lastmes __a2__; /* 4 Last L number */
- long nbcon __a2__; /* 4 Number of connexions */
- long hcon __a2__; /* 4 Last connexion date */
- long lastyap __a2__; /* 4 Last YN date */
+ fbb_long lastmes __a2__; /* 4 Last L number */
+ fbb_long nbcon __a2__; /* 4 Number of connexions */
+ fbb_long hcon __a2__; /* 4 Last connexion date */
+ fbb_long lastyap __a2__; /* 4 Last YN date */
ushort flags; /* 2 Flags */
ushort on_base; /* 2 ON Base number */
uchar nbl; /* 1 Lines paging */
uchar lang; /* 1 Language */
- long newbanner __a2__; /* 4 Last Banner date */
+ fbb_long newbanner __a2__; /* 4 Last Banner date */
ushort download; /* 2 download size (KB) = 100 */
char free[20]; /* 20 Reserved */
char theme; /* 1 Current topic */
@@ -802,7 +810,7 @@ typedef struct
{
char mode;
char fbid[13];
- long numero __a2__;
+ fbb_long numero __a2__;
}
bidfwd;
@@ -850,9 +858,9 @@ typedef struct
{ /* Longueur = 194 octets */
char type;
char status;
- long numero __a2__;
- long taille __a2__;
- long date __a2__;
+ fbb_long numero __a2__;
+ fbb_long taille __a2__;
+ fbb_long date __a2__;
char bbsf[7];
char bbsv[41];
char exped[7];
@@ -861,11 +869,11 @@ typedef struct
char titre[61];
char bin;
char free[5];
- long grpnum __a2__;
+ fbb_long grpnum __a2__;
ushort nblu;
- long theme __a2__;
- long datesd __a2__;
- long datech __a2__;
+ fbb_long theme __a2__;
+ fbb_long datesd __a2__;
+ fbb_long datech __a2__;
char fbbs[NBMASK];
char forw[NBMASK];
}
@@ -921,12 +929,12 @@ typedef struct typ_satel
double a0 __a2__;
double n0 __a2__;
double q3 __a2__;
- long k0 __a2__;
+ fbb_long k0 __a2__;
double f1 __a2__;
double v1 __a2__;
short pas;
- long maj __a2__;
- long cat __a2__; /* Catalog Number - anciennement vide */
+ fbb_long maj __a2__;
+ fbb_long cat __a2__; /* Catalog Number - anciennement vide */
short libre[4];
}
satel;
@@ -1230,8 +1238,8 @@ typedef struct
char nomfic[LABEL_FIC];
char label[LABEL_NOM];
char owner[LABEL_OWN];
- long index;
- long date_creation;
+ fbb_long index;
+ fbb_long date_creation;
char free[24];
}
Rlabel; /* 160 bytes */
diff -pruN /home/cathryn/fbbsrc.705e/src/ERROR.SYS /home/cathryn/fbbsrc.705e.sixtyfour/src/ERROR.SYS
--- /home/cathryn/fbbsrc.705e/src/ERROR.SYS 1969-12-31 19:00:00.000000000 -0500
+++ /home/cathryn/fbbsrc.705e.sixtyfour/src/ERROR.SYS 2013-07-05 01:46:14.970761411 -0400
@@ -0,0 +1,4 @@
+> EXCEPTION : Station , Ch:0 (0-0-0) 04/07/13 22:46
+ Version 7.05e (Jul 5 2013)
+ /usr/local/var/ax25/fbb/sat/satel.dat 0, errno 13=Permission denied Cannot create file
+
diff -pruN /home/cathryn/fbbsrc.705e/src/statis.c /home/cathryn/fbbsrc.705e.sixtyfour/src/statis.c
--- /home/cathryn/fbbsrc.705e/src/statis.c 2013-03-16 10:00:56.000000000 -0400
+++ /home/cathryn/fbbsrc.705e.sixtyfour/src/statis.c 2013-07-15 22:57:43.488768628 -0400
@@ -30,6 +30,20 @@
#include <serv.h>
+#ifdef THIRTYTWOBITDATA
+
+static struct tm *fbb_localtime(int *time)
+{
+long ltime = *time;
+return localtime(<ime);
+}
+
+
+#else
+#define fbb_localtime localtime
+#endif
+
+
static void menu_statistiques (void);
static void histo_jour (void)
@@ -72,7 +86,7 @@ static void histo_jour (void)
n_cpy (6, cal, buffstat.indcnx);
if (strmatch (cal, pvoie->ch_temp))
{
- sdate = localtime (&buffstat.datcnx);
+ sdate = fbb_localtime (&buffstat.datcnx);
hist[(sdate->tm_wday + 6) % 7] += buffstat.tpscnx;
}
}
@@ -145,7 +159,7 @@ static void histo_heure (void)
n_cpy (6, cal, buffstat.indcnx);
if (strmatch (cal, pvoie->ch_temp))
{
- sdate = localtime (&buffstat.datcnx);
+ sdate = fbb_localtime (&buffstat.datcnx);
hist[sdate->tm_hour] += buffstat.tpscnx;
}
}
@@ -212,7 +226,7 @@ static void generalites (void)
depart = time (NULL) - (long) nbjour *86400L;
}
- sdate = localtime (&buffstat.datcnx);
+ sdate = fbb_localtime (&buffstat.datcnx);
if (buffstat.datcnx > depart)
{
hist[sdate->tm_hour] += (long) buffstat.tpscnx;
^ permalink raw reply [flat|nested] 5+ messages in thread