|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.