"Fossies" - the Fresh Open Source Software Archive 
Member "afio-2.5.2/PORTING" (30 Nov 2018, 7196 Bytes) of package /linux/misc/afio-2.5.2.tgz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1
2 This afio version is based on a Linux port of afio 2.3. Since the
3 original port, significant functionality has been added and some bugs
4 were removed. While primarily intended for use under Linux, this code
5 should be portable to other UNIX versions. As far as I know, there
6 has been no afio development beyond 2.3 outside the Linux community,
7 except for non-Linux patches that people mail back to me.
8
9 --------------------------------------------------------------------------
10
11 The code in this archive compiles under Linux.
12
13 You may have to tweak the makefile to compile it on other platforms.
14
15 If you make a `clean' port of this code, meaning that you add ifdefs
16 to the source files and `uncomment this for %s' lines to the makefile,
17 you may want to send diffs to me (see README file for maintainer
18 e-mail address) so that I can merge them with the next afio version.
19 If you encounter any POSIX compatibility problems, please report them.
20
21 --------------------------------------------------------------------------
22
23 UNSIGNED LONG LONG USE
24
25 New potential porting problems introduced since version 2.4.7.9beta1.
26
27 Since 2.4.7.9beta1, afio supports >2GB files, and this support depends
28 on the compiler having `unsigned long long' support, and also on
29 having `unsigned long long' format support in the printf and scanf
30 functions. Any non-ancient version of gcc and glibc will have this
31 support.
32
33 In theory, it is not a huge job to add some ifdefs for platforms
34 without compiler support for long long, ifdefs which drop the 2GB
35 support but otherwise leave a functional afio that can be compiled
36 with old compilers. However I (=the current maintainer) am not doing
37 this yet until I get real problem reports or patches -- I suspect that
38 in practice nobody is using such old compilers anymore.
39
40 See comments in the afio 2.4.7 afio.h file for the story behind the
41 typedef unsigned long long ulonglong;
42
43 --------------------------------------------------------------------------
44
45 SOME POTENTIAL PORTING PROBLEMS
46
47 1) Availability of fnmatch(), see the makefile.
48
49 2) Changing the makefile to work with your make and C compiler.
50
51 3) Making floppy verify work on your unix flavor.
52
53 The code in afio.c should be highly portable. However I can not
54 guarantee it to keep working if changes are made to the defines in the
55 makefile. The code in the other .c files was written on a Linux
56 machine for gcc, and assumes a posixy environment. I have not tried
57 it on other machines but on most modern unixes it should compile. I
58 would like to hear about (un)successful ports to other machines.
59
60 Some of the afio code is a horrible mess, making incremental changes
61 very difficult. A complete rewrite of the floppy disk interfacing
62 code is probably needed if extensions are to be added. At the moment
63 afio is (afaik) the only fault tolerant compressing archiver program
64 available, but it probably has some bugs lurking in it. Because of
65 this afio is not an optimal solution. I hope that afio will be
66 replaced by a compressing version of gnu cpio or by cpio combined with
67 with a fault tolerant compression backend (probably based on a gzip
68 library) in the future.
69
70 ------------------------------------------------------------------
71
72 REGTESSION TEST SCRIPT PORTING
73
74 The regtession test scripts mentioned in the INSTALL file may fail to
75 work on non-GNU platforms that have very old versions of tools like
76 bash, awk, find, and diff.
77
78 -----------------
79
80 Some notes about regression testing on (some versions of) FreeBSD
81
82 - FreeBSD has a `bash' exectutable that does not implement full GNU
83 bash. The test scripts have been written to avoid any
84 incompatibilities.
85
86 -----------------
87
88 Some notes about regression testing on (some versions of) sun
89
90 - if the default awk command is very old, it cannot parse the awk
91 scripts. Change it to `nawk' or `gawk' -- see the comments in
92 the regtest/regtest script.
93
94 - if the default find command does not support the -print0 option,
95 one test will fail. You can try to subsiture GNU find if it
96 is installed
97
98 - if some tests fail, then `diff -u' is used to print the differences.
99 The default diff on some sun platforms does not recognise the -u
100 option, You can try to subsiture GNU diff if it is installed.
101
102 - On at least some version of sun, the default tar command incorrectly
103 restores directory permissions. This will show up as failure of one
104 regression test, but here actually tar is at fault. Example output
105 where this happens:
106
107 * compare unpacked tar archive with newly unpacked test archive
108 drwxr-xr-x 7 kholtman zh 2048 Dec 1 2002 t2/afiot
109 drwxrwxrwx 7 kholtman zh 2048 Dec 1 2002 t4/afiot
110 cmpstat t4/afiot t2/afiot: mode difference
111 drwxr-xr-x 2 kholtman zh 2048 Dec 2 2002 t2/afiot/ztest
112 drwxrwxrwx 2 kholtman zh 2048 Dec 2 2002 t4/afiot/ztest
113 cmpstat t4/afiot/ztest t2/afiot/ztest: mode difference
114 drwxr-xr-x 3 kholtman zh 2048 Dec 1 2002 t2/afiot/special
115 drwxrwxrwx 3 kholtman zh 2048 Dec 1 2002 t4/afiot/special
116
117 - The sun kernel (on at least some versions of sun) handles
118 permission bits on symlinks different from the Linux way. This
119 results in a failure of at least one regression test. Example
120 output where this happens:
121
122 * compare table-of-contents file made by new afio with archived toc
123 t2.arch t2.new differ: char 2048, line 44
124 --- t2.arch 2003-12-19 22:02:53.000001000 +0100
125 +++ t2.new 2003-12-19 22:02:53.000001000 +0100
126 @@ -44,9 +44,6 @@
127 -lrwxrwxrwx 1 x x DATE afiot/link with spaces S-> name with spaces
128 -lrwxrwxrwx 1 x x DATE afiot/link1 S-> y2k
129 -lrwxrwxrwx 1 x x DATE afiot/linkx S-> /etc/sysconfig/ipchains
130 +lrwxr-xr-x 1 x x DATE afiot/link with spaces S-> name with spaces
131 +lrwxr-xr-x 1 x x DATE afiot/link1 S-> y2k
132 +lrwxr-xr-x 1 x x DATE afiot/linkx S-> /etc/sysconfig/ipchains
133 FAILURE in: compare table-of-contents file made by new afio
134 with archived toc
135
136 ------------------------------------------------------------------
137
138 HISTORICAL PORTING NOTES
139
140 Historical note: The porting hints below were all written before 1996
141 as far as I can tell -- they are probably not relevant to recent
142 systems.
143
144 Note for SCO porters from Karel Kubat, karel@icce.rug.nl:
145
146 Please read the makefile about the changes needed for fnmatch().
147
148 You may want to change the -DDEFFMTCMD value in the makefile.
149
150 If you encounter any other options which may need changing, please mail me
151 at karel@icce.rug.nl. I'm not the maintainer of afio for SCO platforms, but
152 I'd like to know if you come across anything spectacular.
153
154
155 Note for IRIX porters using the SGI native C compiler (cc):
156
157 Modify the Makefile to use CC=cc, comment out the CFLAGS1 line,
158 and add
159 -Dirix_cc_compatibility
160 to the CFLAGS line.
161
162 Note for HPUX porters using gcc (maybe some (older?) gcc versions
163 only):
164
165 These steps seem to be needed to get afio to compile, but I
166 cannot guarantee that they are sufficient to make it work on HPUX:
167 - Comment out '8 = -DHAVEFCNTL' in the Makefile
168 - Remove the '-g' from the CFLAGS1 line in the Makefile.
169
170