Subject: pkg/25043: pkgsrc/archivers/arc does not compile on Linux
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <geos@epost.de>
List: pkgsrc-bugs
Date: 04/03/2004 21:47:49
>Number:         25043
>Category:       pkg
>Synopsis:       pkgsrc/archivers/arc does not compile on Linux
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Apr 03 21:48:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Georg Schwarz
>Release:        current pkgsrc
>Organization:
>Environment:
Linux localhost.localdomain 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 i686 i686 i386 GNU/Linux
(actually  a stock RedHat 9)
>Description:
Compiling pkgsrc/archivers/arc stops with:
arcdos.c: In function `setstamp':
arcdos.c:173: storage size of `tm' isn't known

The reason behind is that pkgsrc defines the system as BSD, which in arcdos.c prevents the inclusion of <time.h>  needed on Linux.
>How-To-Repeat:

>Fix:
in arcdos.c, patch in something like
#ifdef __linux__
#include <time.h>
#endif

once you are at it, expand patches/patch-ab by && !defined(__linux__) && !defined(__sgi)  to prevent the use of tmclock, which does not exist on Linux and IRIX.
IRIX then still has some other problems (multiple definition of makefnam and others), and Linux finishes but complains:

arcmisc.o(.text+0x294): In function `gcdir':
: the `getwd' function is dangerous and should not be used.
arc.o(.text+0x1c5): In function `main':
: the use of `mktemp' is dangerous, better use `mkstemp'
gcc -O2 -DBSD=1 -c marc.c
gcc -o marc marc.o arcdata.o arcdos.o arcio.o arcmatch.o arcmisc.o  
arcmisc.o(.text+0x294): In function `gcdir':
: the `getwd' function is dangerous and should not be used.
marc.o(.text+0xd0): In function `main':
: the use of `mktemp' is dangerous, better use `mkstemp'


>Release-Note:
>Audit-Trail:
>Unformatted: