For as rare as such an event could be, I was affected by this: more
than once GNU tar couldn't extract it's own files while fortunately
pax could. I had to back up some big directories with GNU tar on
Solaris 10 and sometimes it happened that tar exited with exit status
0 doing nothing. Archives were created with the E flag. This was truss
output:
2827: execve("/usr/sbin/tar", 0x080472BC, 0x080472CC) argc = 3
2827: mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEFB0000
2827: resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
2827: resolvepath("/usr/sbin/tar", "/usr/sbin/tar", 1023) = 13
2827: sysconfig(_CONFIG_PAGESIZE) = 4096
2827: xstat(2, "/usr/sbin/tar", 0x08047078) = 0
2827: open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
2827: xstat(2, "/lib/libsec.so.1", 0x08046838) = 0
2827: resolvepath("/lib/libsec.so.1", "/lib/libsec.so.1", 1023) = 16
2827: open("/lib/libsec.so.1", O_RDONLY) = 3
2827: mmap(0x00010000, 4096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFEFA0000
2827: mmap(0x00010000, 147456, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEF70000
2827: mmap(0xFEF70000, 55015, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEF70000
2827: mmap(0xFEF8E000, 12157, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 57344) = 0xFEF8E000
2827: mmap(0xFEF91000, 8520, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEF91000
2827: munmap(0xFEF7E000, 65536) = 0
2827: memcntl(0xFEF70000, 12448, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
2827: close(3) = 0
2827: xstat(2, "/lib/libc.so.1", 0x08046838) = 0
2827: resolvepath("/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
2827: open("/lib/libc.so.1", O_RDONLY) = 3
2827: mmap(0xFEFA0000, 4096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFEFA0000
2827: mmap(0x00010000, 1040384, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEE70000
2827: mmap(0xFEE70000, 936601, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEE70000
2827: mmap(0xFEF65000, 27822, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 937984) = 0xFEF65000
2827: mmap(0xFEF6C000, 6104, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEF6C000
2827: munmap(0xFEF55000, 65536) = 0
2827: memcntl(0xFEE70000, 203456, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
2827: close(3) = 0
2827: xstat(2, "/lib/libavl.so.1", 0x08046838) = 0
2827: resolvepath("/lib/libavl.so.1", "/lib/libavl.so.1", 1023) = 16
2827: open("/lib/libavl.so.1", O_RDONLY) = 3
2827: mmap(0xFEFA0000, 4096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFEFA0000
2827: mmap(0x00010000, 73728, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEE50000
2827: mmap(0xFEE50000, 3820, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEE50000
2827: mmap(0xFEE61000, 332, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 4096) = 0xFEE61000
2827: munmap(0xFEE51000, 65536) = 0
2827: memcntl(0xFEE50000, 1848, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
2827: close(3) = 0
2827: mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEE40000
2827: munmap(0xFEFA0000, 4096) = 0
2827: mmap(0x00010000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEFA0000
2827: getcontext(0x08046E30)
2827: getrlimit(RLIMIT_STACK, 0x08046E28) = 0
2827: getpid() = 2827 [2826]
2827: lwp_private(0, 1, 0xFEFA2000) = 0x000001C3
2827: setustack(0xFEFA2060)
2827: sysi86(SI86FPSTART, 0xFEF6CE08, 0x0000133F, 0x00001F80) = 0x00000001
2827: sysconfig(_CONFIG_PAGESIZE) = 4096
2827: brk(0x0807C808) = 0
2827: brk(0x0807E808) = 0
2827: xstat(2, "/usr/lib/locale/en_US.UTF-8/en_US.UTF-8.so.3", 0x080462E8) = 0
2827: resolvepath("/usr/lib/locale/en_US.UTF-8/en_US.UTF-8.so.3",
"/usr/lib/locale/en_US.UTF-8/en_US.UTF-8.so.3", 1023) = 44
2827: open("/usr/lib/locale/en_US.UTF-8/en_US.UTF-8.so.3", O_RDONLY) = 3
2827: mmap(0x00010000, 4096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFEE30000
2827: mmap(0x00010000, 2297856, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEA00000
2827: mmap(0xFEA00000, 2225262, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEA00000
2827: mmap(0xFEC2F000, 4218, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 2224128) = 0xFEC2F000
2827: munmap(0xFEC20000, 61440) = 0
2827: memcntl(0xFEA00000, 7168, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
2827: close(3) = 0
2827: xstat(2,
"/usr/lib/locale/en_US.UTF-8/methods_en_US.UTF-8.so.3", 0x080461F8) =
0
2827: resolvepath("/usr/lib/locale/en_US.UTF-8/methods_en_US.UTF-8.so.3",
"/usr/lib/locale/common/methods_unicode.so.3", 1023) = 43
2827: open("/usr/lib/locale/en_US.UTF-8/methods_en_US.UTF-8.so.3",
O_RDONLY) = 3
2827: mmap(0xFEE30000, 4096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFEE30000
2827: mmap(0x00010000, 122880, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEE10000
2827: mmap(0xFEE10000, 55693, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEE10000
2827: mmap(0xFEE2D000, 2780, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 53248) = 0xFEE2D000
2827: munmap(0xFEE1E000, 61440) = 0
2827: memcntl(0xFEE10000, 2532, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
2827: close(3) = 0
2827: xstat(2, "/usr/lib/locale/en_US.UTF-8/libc.so.1", 0x080461F8)
Err#2 ENOENT
2827: munmap(0xFEE30000, 4096) = 0
2827: open("/usr/lib/locale/en_US.UTF-8/LC_MESSAGES/SUNW_OST_OSCMD.mo",
O_RDONLY) Err#2 ENOENT
2827: brk(0x0807E808) = 0
2827: brk(0x08080808) = 0
2827: brk(0x08080808) = 0
2827: brk(0x08082808) = 0
2827: getpid() = 2827 [2826]
2827: open64("backup.tar", O_RDONLY) = 3
2827: read(3, "\0\0\0\0\0\0\0\0\0\0\0\0".., 10240) = 10240
2827: unlink("/tmp/tarXXXXXX") Err#2 ENOENT
2827: close(3) = 0
2827: close(1) = 0
2827: _exit(0)
r...@suncarol:/tank/backup$ tar tf backup.tar
r...@suncarol:/tank/backup$ truss -f tar tf backup.tar
2830: execve("/usr/sbin/tar", 0x080472BC, 0x080472CC) argc = 3
2830: mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEFB0000
2830: resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
2830: resolvepath("/usr/sbin/tar", "/usr/sbin/tar", 1023) = 13
2830: sysconfig(_CONFIG_PAGESIZE) = 4096
2830: xstat(2, "/usr/sbin/tar", 0x08047078) = 0
2830: open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
2830: xstat(2, "/lib/libsec.so.1", 0x08046838) = 0
2830: resolvepath("/lib/libsec.so.1", "/lib/libsec.so.1", 1023) = 16
2830: open("/lib/libsec.so.1", O_RDONLY) = 3
2830: mmap(0x00010000, 4096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFEFA0000
2830: mmap(0x00010000, 147456, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEF70000
2830: mmap(0xFEF70000, 55015, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEF70000
2830: mmap(0xFEF8E000, 12157, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 57344) = 0xFEF8E000
2830: mmap(0xFEF91000, 8520, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEF91000
2830: munmap(0xFEF7E000, 65536) = 0
2830: memcntl(0xFEF70000, 12448, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
2830: close(3) = 0
2830: xstat(2, "/lib/libc.so.1", 0x08046838) = 0
2830: resolvepath("/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
2830: open("/lib/libc.so.1", O_RDONLY) = 3
2830: mmap(0xFEFA0000, 4096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFEFA0000
2830: mmap(0x00010000, 1040384, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEE70000
2830: mmap(0xFEE70000, 936601, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEE70000
2830: mmap(0xFEF65000, 27822, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 937984) = 0xFEF65000
2830: mmap(0xFEF6C000, 6104, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEF6C000
2830: munmap(0xFEF55000, 65536) = 0
2830: memcntl(0xFEE70000, 203456, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
2830: close(3) = 0
2830: xstat(2, "/lib/libavl.so.1", 0x08046838) = 0
2830: resolvepath("/lib/libavl.so.1", "/lib/libavl.so.1", 1023) = 16
2830: open("/lib/libavl.so.1", O_RDONLY) = 3
2830: mmap(0xFEFA0000, 4096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFEFA0000
2830: mmap(0x00010000, 73728, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEE50000
2830: mmap(0xFEE50000, 3820, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEE50000
2830: mmap(0xFEE61000, 332, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 4096) = 0xFEE61000
2830: munmap(0xFEE51000, 65536) = 0
2830: memcntl(0xFEE50000, 1848, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
2830: close(3) = 0
2830: mmap(0x00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEE40000
2830: munmap(0xFEFA0000, 4096) = 0
2830: mmap(0x00010000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEFA0000
2830: getcontext(0x08046E30)
2830: getrlimit(RLIMIT_STACK, 0x08046E28) = 0
2830: getpid() = 2830 [2829]
2830: lwp_private(0, 1, 0xFEFA2000) = 0x000001C3
2830: setustack(0xFEFA2060)
2830: sysi86(SI86FPSTART, 0xFEF6CE08, 0x0000133F, 0x00001F80) = 0x00000001
2830: sysconfig(_CONFIG_PAGESIZE) = 4096
2830: brk(0x0807C808) = 0
2830: brk(0x0807E808) = 0
2830: xstat(2, "/usr/lib/locale/en_US.UTF-8/en_US.UTF-8.so.3", 0x080462E8) = 0
2830: resolvepath("/usr/lib/locale/en_US.UTF-8/en_US.UTF-8.so.3",
"/usr/lib/locale/en_US.UTF-8/en_US.UTF-8.so.3", 1023) = 44
2830: open("/usr/lib/locale/en_US.UTF-8/en_US.UTF-8.so.3", O_RDONLY) = 3
2830: mmap(0x00010000, 4096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFEE30000
2830: mmap(0x00010000, 2297856, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEA00000
2830: mmap(0xFEA00000, 2225262, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEA00000
2830: mmap(0xFEC2F000, 4218, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 2224128) = 0xFEC2F000
2830: munmap(0xFEC20000, 61440) = 0
2830: memcntl(0xFEA00000, 7168, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
2830: close(3) = 0
2830: xstat(2,
"/usr/lib/locale/en_US.UTF-8/methods_en_US.UTF-8.so.3", 0x080461F8) =
0
2830: resolvepath("/usr/lib/locale/en_US.UTF-8/methods_en_US.UTF-8.so.3",
"/usr/lib/locale/common/methods_unicode.so.3", 1023) = 43
2830: open("/usr/lib/locale/en_US.UTF-8/methods_en_US.UTF-8.so.3",
O_RDONLY) = 3
2830: mmap(0xFEE30000, 4096, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFEE30000
2830: mmap(0x00010000, 122880, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEE10000
2830: mmap(0xFEE10000, 55693, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEE10000
2830: mmap(0xFEE2D000, 2780, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 53248) = 0xFEE2D000
2830: munmap(0xFEE1E000, 61440) = 0
2830: memcntl(0xFEE10000, 2532, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
2830: close(3) = 0
2830: xstat(2, "/usr/lib/locale/en_US.UTF-8/libc.so.1", 0x080461F8)
Err#2 ENOENT
2830: munmap(0xFEE30000, 4096) = 0
2830: open("/usr/lib/locale/en_US.UTF-8/LC_MESSAGES/SUNW_OST_OSCMD.mo",
O_RDONLY) Err#2 ENOENT
2830: brk(0x0807E808) = 0
2830: brk(0x08080808) = 0
2830: brk(0x08080808) = 0
2830: brk(0x08082808) = 0
2830: getpid() = 2830 [2829]
2830: open64("backup.tar", O_RDONLY) = 3
2830: read(3, "\0\0\0\0\0\0\0\0\0\0\0\0".., 10240) = 10240
2830: unlink("/tmp/tarXXXXXX") Err#2 ENOENT
2830: close(3) = 0
2830: close(1) = 0
2830: _exit(0)
and this was od -c output:
0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0000140 \0 \0 \0 \0 0 0 0 0 7 5 5 \0 0 0 0 0
0000160 0 0 0 \0 0 0 0 0 0 0 3 \0 0 0 0 0
0000200 0 0 0 0 0 3 6 \0 1 0 6 6 3 6 7 2
0000220 5 5 1 \0 0 0 1 4 2 5 0 \0 X \0 \0 \0
0000240 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0000400 \0 u s t a r \0 0 0 r o o t \0 \0 \0
0000420 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0000440 \0 \0 \0 \0 \0 \0 \0 \0 \0 s y s \0 \0 \0 \0
0000460 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0000500 \0 \0 \0 \0 \0 \0 \0 \0 \0 0 0 0 0 2 6 6
0000520 \0 0 2 0 0 0 0 3 \0 / t m p / P a
0000540 x H e a d e r s . 2 1 8 7 \0 \0 \0
0000560 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0001000 3 0 m t i m e = 1 1 8 8 0 0 1
0001020 1 2 9 . 0 5 5 1 2 0 8 2 5 \n \0 \0
0001040 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0002000 / t a n k / b a c k u p / \0 \0 \0
0002020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0002140 \0 \0 \0 \0 0 0 0 0 7 5 5 \0 0 0 0 0
0002160 0 0 0 \0 0 0 0 0 0 0 3 \0 0 0 0 0
0002200 0 0 0 0 0 0 0 \0 1 0 6 6 3 6 7 2
0002220 5 5 1 \0 0 0 1 3 2 3 1 \0 5 \0 \0 \0
0002240 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0002400 \0 u s t a r \0 0 0 r o o t \0 \0 \0
0002420 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0002440 \0 \0 \0 \0 \0 \0 \0 \0 \0 s y s \0 \0 \0 \0
0002460 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0002500 \0 \0 \0 \0 \0 \0 \0 \0 \0 0 0 0 0 2 6 6
0002520 \0 0 2 0 0 0 0 3 \0 \0 \0 \0 \0 \0 \0 \0
0002540 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0003000 a d m i n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
Clearly there was a problem that pax could solve. Never digged more
into it but I assure that never had such a terrific problem with Sun's
shipped tar.
On Sat, Jan 17, 2009 at 11:17 PM, Joerg Schilling
<[email protected]> wrote:
> Tim Bray <[email protected]> wrote:
>
>> I've been using tar on linux since about 1996 and I've never had such
>> a failure, nor have I ever heard of anyone having one. I'm not saying
>> that it can't happen, I'm just saying that the experience of the
>> community is that's an extremely reliable tool.
>
> Whether your personal experiences include problems or not depends on what you
> are doing.
>
> GNU tar did until very recently have problems with larger sparse files
> and it still rejects the read back 1-5% of all continuation volumes from a
> multi volume archive. Every time, I planned to reimplement an idea from
> GNU tar in star, I collected possible implementation problems and always
> found a related bug in GNU tar.
>
>> > Roughly at the same time as GNU tar introduced -z, star introduced
>> > auto-decompression. Why do you like to know about this detail if the
>> > tar
>> > implementation could to this for you automagically based on the
>> > compression
>> > header magic numbers?
>>
>> My fingers are used to typing "tar -xzf" and as long as I don't get
>> any stupid error messages and the data is unpacked, I'm happy. -T
>
> -z is related to the outdated gzip compression.
>
> If your archive was compressed using bzip2 or 7z, your command line fails.
>
> Star on the other side recognizes the compression method and automagically
> calls the right matching decompress program.
>
> Jörg
>
> --
> EMail:[email protected] (home) Jörg Schilling D-13353 Berlin
> [email protected] (uni)
> [email protected] (work) Blog:
> http://schily.blogspot.com/
> URL: http://cdrecord.berlios.de/private/ ftp://ftp.berlios.de/pub/schily
> _______________________________________________
> indiana-discuss mailing list
> [email protected]
> http://mail.opensolaris.org/mailman/listinfo/indiana-discuss
>
--
Ελευθερία ή θάνατος
"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs, and the Universe trying
to produce bigger and better idiots. So far, the Universe is winning."
GPG key: 1024D/FD2229AF
fpr: 9E07 D40E 33A5 5993 6FC5 09A8 5BCF B1F2 FD22 29AF
_______________________________________________
opensolaris-discuss mailing list
[email protected]