Annotation of coherent/d/usr/bin/pax/shipping/pax.cnv, revision 1.1.1.1

1.1       root        1: pax.cnv.log - Log of PAX conversion to Coherent.
                      2: 
                      3: 90/05/25  hws   Initial version
                      4: 90/06/04  vlad
                      5: 
                      6: o build gwin-dir-lib from usenet - but since Coherent already has a
                      7:   header called dirent.h in /usr/include, change the new header to the other
                      8:   common name for it, ndir.h;  also add a new header called dirent.h to
                      9:   /usr/include/sys.  The new routines were put in /usr/lib/libdir.a so LDFLAGS
                     10:   in Makefile got defined to -ldir and LDFLAGS was added to the compilation
                     11:   rule.
                     12: 
                     13: o change  #include <dirent.h>  to  #include <ndir.h> (pax.h)
                     14: 
                     15: o change #include <fcntl.h> to #include <sys/fcntl.h> (pax.h)
                     16: 
                     17: o remove #include <memory.h> from port.h
                     18: 
                     19: o remove ioctl.h
                     20: 
                     21: o change  #ifdef __STDC__  to  #if __STDC__ (#ifndef __STDC__  and 
                     22:   #if defined __STDC__)
                     23:   because argument lists are checked when this conditional succeeds but
                     24:   __STDC__ is defined to be 0 by mwc cc;  similarly for #ifndef __STDC__
                     25: 
                     26: o config.h - various mods that get rid of double comments
                     27:   changes:     not define TTY (l. 81);
                     28:                not define PAXDIR (l. 91);
                     29:                not define BSD;
                     30:                define DIRENT = -ldir (l. 102);
                     31:                define OFFSET off_t (l. 111);
                     32:                not define void (l. 122);
                     33:                define SIG_T int (l. 131);
                     34:                not define STRCSPN (l. 141);
                     35:                was removed extra /* (l. 154);
                     36:                was included in '/*' ' */' (l. 162);
                     37: o *.c header names were changed or includes were commented out, e.g.:
                     38:     <sys/errno.h> -> <errno.h>
                     39:     <memory.h> was not included; the needed declarations are in <string.h>
                     40: 
                     41: o printf format strings referring to asb->sb_size in tar_entry() in list.c
                     42:   had format changed from %d to %ld
                     43: 
                     44: o Because COHERNT "open" is V7 "open" were made changes in the files
                     45:   buffer.c, fileio.c, paxdir.c, ttyio.c, & opendir.
                     46: 
                     47: o pax.c - added message TAR(v7) for old tapes archive.
                     48: 
                     49: o In append.c was added lseek(archivefd, -((OFFSET) blocksize), 1). It was
                     50:   done because ustar started write in the file one block later than 
                     51:   had to started in the append case.
                     52: 
                     53: o ustar does not work with 'u' option. According to this was deleted all
                     54:   stuff that had any relation to 'u'. From "pax.c" - "short    newer",
                     55:   from "tar.c" - "case u", 'u' from taropt's option string, f_newer from
                     56:   check command line, and prompt from "usage()".
                     57: 
                     58: o ustar.c
                     59:   ustar had default blocking factor for extract 20 bl. This number was
                     60:   in "#define DEF_BLOCKING 20". Now it is "define DEF_BLOCKING 1".
                     61:  
                     62: o ustar, pax, & cpio want have a big stack for working with directory
                     63:   tree. I think that "fixstack +2000 ustar" could help them. 
                     64: 
                     65: o for distinguish between COHERENT "tar" and new "tar" the name for new
                     66:   was changed to "ustar". For this was replacemented "tar" to "ustar"
                     67:   in:
                     68: pax.c:     if (strcmp(myname, "ustar")==0) {
                     69: pax.c:             if (strcmp(optarg, "ustar") == 0) {
                     70: pax.c:     } else if (strncmp(&bufstart[257], "ustar", 5) == 0) {
                     71: 
                     72: pax.h: #define TMAGIC          "ustar"         /* ustar and a null */
                     73: pax.h:  * Exit codes from the "ustar" program 
                     74: 
                     75: ustar.c:  * ustar.c - tar specific functions for archive handling
                     76: ustar.c: /* do_tar - main routine for ustar. 
                     77: ustar.c: /* taropt -  ustar specific getopt
                     78: 
                     79:        Makefile
                     80: # BINDIR - points to the directory in which you want the final pax, ustar and
                     81: MISC   = Makefile pax.1 ustar.5 cpio.5 README PATCHLEVEL
                     82:        port.c regexp.c replace.c ustar.c ttyio.c warn.c wildmat.c
                     83:        port.o regexp.o replace.o ustar.o ttyio.o warn.o wildmat.o $(DIROBJ)
                     84: PROGS = pax ustar cpio
                     85: PMAN1 = pax.1 ustar.1
                     86: PMAN5 = pax.5 ustar.5
                     87: ustar: pax
                     88:        rm -f ustar
                     89:        ln pax ustar
                     90: 
                     91: o Because 'r' cannot work with tape were added the code for 
                     92:   checking major number in the case of append (file fileio.c)
                     93: 
                     94: #define TAPE_DEV 12    /* Tape's major number */
                     95:        if (stat(ar_file, &ap_stat) == -1)
                     96:                fatal("cannot define the attributes of a file\n");
                     97:        if (major(ap_stat.st_rdev) == TAPE_DEV)
                     98:                fatal("option 'r' does not work with tape\n");
                     99: 
                    100: o      The was bug in ttyio.c. cpio takes input from stdin and redirect
                    101:        it to stdout. The result is that original cpio can not creat
                    102:        multiple volume backups. Some code were added to funcition 
                    103:        void next() to allow to do multiple volume backups
                    104: 
                    105: BUGS
                    106: ====
                    107: 
                    108: o The problem is when we try to use ustar(pax or cpio) on big directories.
                    109:   This program keeps file's names in the data segment. When total number of 
                    110:   names is big enough, it cannot allocate memory for new directory's entries.
                    111:   Problem is similar to trouble with "unmkfs". 
                    112:   "ustar" (pax, cpio) could create archives about 1.7 - 2 Mb.
                    113: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.