=========================================================================== = GNUTar Amiga Port of V1.11.2 (originally from 25 Mar 1993) = = ----------------------------------------------------------------------- = = Amiga Port release version: V1.2 = = Release Date: 11.03.1996 = =========================================================================== 1995-96 rework, SAS/C V6.56 recompilation, GNUTar V1.11+ adaption, and 68030/040 version by Andreas R. Kleinert (email below) Original port of GNUTar V1.09 done by Ed Berger (email below) *** Why ? *** When extracting TAR archives on the AMIGA there always had been a problem: the only available GNUTar port was hard to find and if you got it finally, it was quite old and just unoptimized for higher 68k CPUs. On the other hand, a simple recompilation wasn't easy for most people, since the GNU-C (GCC) Compiler isn't very widely used and adaptions for other compilers aren't that easy (as I finally found out ;-) *** How ? *** My first step to solve this problem was porting the nice, small and handy "DeTar" utility from MS-DOS to Amiga. The usage was really simple and easy, since you'd just had to call "DeTar [archive]" and the whole archive would have been unpacked. While searching for Bugs within DeTar (thus using the available GNUTar port) I decided to port GNUTar directly (since there actually appeared some effects I thought of as bugs of DeTar, but as well possibly could have been bugs of the Amiga version of GNUTar ;-) So there suddenly was a new SAS/C V6.55 port of GNUTar for the Amiga, which wasn't perfect at all, but was thought as a base for further actions by other people (or me :-) People greatly reacted on this new GNUTar port and reported bugs as well as request for also creating updates, which make use of features of newer GNUTar versions. So I dropped the old V1.09 sources ported by Ed Berger and began re-porting V1.11.2 (a beta test release) to the Amiga, still using some of the old port stubs (but GCC stuff became useless now). *** Next ? *** Since V1.11.2 was a beta test release and still isn't the newest available version of GNUTar, you may expect newer versions soon. *** Details ? *** Before I add the original "documentation" of Ed Berger, please take a look at these notes: - some of the defines and/or functions, which hadn't be present for the GCC are actually available for SAS/C and vice versa. So there are still some dummy-functions or (hopefully) equivalent replacements for such things. See the files "sas_amiga.c" and "sas_amiga2.c" for code-replacements and the headers within "sasinclude/" and "sasinclude/sys/" for additional defines. I went this way, since this prevented me from changing _anything_ within the orginal source. The only thing to be done was setting definitions and compiler options in the best way and then fill in the missing parts (sounds easier, than it was %-) - ahm...well: while compiling there occured several problems (warnings, missing functions, which had to be substituted by dummies, etc.). So remember: it works, but there's really no guarantee for anything ! *** Who ? *** Andreas R. Kleinert, Fido 2:2457/435.10 UseNet Andreas_Kleinert@superview.ftn.sub.org Andreas_Kleinert@t-online.de *** History ? *** Revisions: V1.2 (11.03.1996): - fully recompiled with SAS/C V6.56 - added Osma Ahvenlampi's fix for the 1.0.2 protection bit problem (archive appeared at "util/shell" on AmiNet). I adapted it to the new 1.11.2 source and changed the way binding it into the source (fully via REDEFINES.WTH, no changes to tar.h, thus had to call lstat() from sas_amiga.c instead of stat() to avoid recursion). Here's what Osma originally said: 'This patch makes an attempt to translate Amiga protection bits to the closest UNIX equivalents. When extracting UNIX archives, it also sets the group and world bits as specified in the archive, for those with multiuser filesystems. When creating an archive, these bits are unfortunately not retained, since SAS/C's stat() function ignores them.' (-> Osma.Ahvenlampi@hut.fi) V1.1 (16.09.1995): - did change version counting: it's too confusing the old way. The original version number of the GNUTar we base on, still is mentioned at the top of this documentation - completely redid the port: we now do use the original GNUTar 1.11.2 (a so-called beta test release) instead of the AMIGA/GCC-adapted GNUTar 1.09. Kind of an update: I simply copied the new source over the old one, changed the compiler settings, added some more include files and resolved all inconsistencies - of course *without directly changing any piece* of the original GNU C-Sources! (-> Regis Rampnoux, ...) - README and GNU-License (COPYING) also have been updated - old GNU license replaced by newer one. There was no update to Tar.man - sorry (but I added a specific note to it, to cover this). - removed some GCC-addon's, which Ed Berger had designed for V1.09, but which won't work with V1.11.2 any longer. You may take them from Amiga release V1.0.2 (23.07.1995) and adapt them - if you like or need them for GCC. - again did change chmod() - there was a mysterious effect, which caused it to be restored to the old, wrong way - replaced 68030 and 68040 versions by a combined 68030/040 version, since SAS/C does not actually make any differences for our code. V1.0.2 (23.07.1995): - hey, found out that the base version actually had been released as V1.09. Added note to this readme. - two people complained, that my GNUTar port did not set correct flags out of "hsparwed" for the amiga files when extracting from archives, as the old GNUTar did. Well, foudn out, that the old one just _did_ _not_ _change_ the default flags (always "rwed") and we're now just doing the same, since the mode field of unix TARs is either broken ("hpw" always after conversion Unix->Amiga) or SAS/C's definition for the S_IREAD (and so on) flags aren't compatible. Now "rwed" will be set always. You may change this behaviour within "sas_chmod()" in "sas_amiga.c". (-> bussjaeg@informatik.tu-muenchen.de; Christian Bauernfeind, crisbf@theorie3.physik.uni-erlangen.de) - mkdir(), which needs only one argument with SAS/C had been called with two (got warnings). Now we're doing this: #define mkdir(x, y) mkdir(x) Well, it works ;-) V1.0.1 (07.07.1995): - re-compiled with SAS/C V6.55 - added 68040 version - removed object files from archive due to size - fixed bug note in documentation; was not a bug (-> David Balazic, david.balazic@uni-mb.si) V1.00 (23.03.1995): - first release, compiled with SAS/C V6.51 **************************************************************************** Following is, what Ed Berger originally wrote in "readme.1st" for V1.09. As with Amiga release V1.1 (GNUTar V1.11.2, first port release) I re-switched to the original GNU-sources in combination with some of the old code-workarounds: ---------------------------------------------------------------------------- I was looking for a tar program for the Amiga, since the gcc distribution, and minix distribution files are often in this format. Tarsplit from an old fish disk was not sufficient. I kept hearing about gnu-tar, but never saw it archived anywhere, until now. Since I was not able to find gnu-tar, under any separate archive on the fish disks, or on my favorite ftp-sites, I pulled this out of the UUCP distribution from uunet. The binary and man page were on disk 2, and the source files were on disk 3. I hope that I didn't miss anything important. I apologize for any inconvenience this may cause. If in doubt go back to the UUCP distribution. -Ed Berger eb15@andrew.cmu.edu ****************************************************************************