"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