diff options
-rw-r--r-- | archivers/star-devel/Makefile | 13 | ||||
-rw-r--r-- | archivers/star-devel/files/patch-aa | 50 | ||||
-rw-r--r-- | archivers/star-devel/files/patch-ab | 248 | ||||
-rw-r--r-- | archivers/star-devel/files/patch-ac | 11 | ||||
-rw-r--r-- | archivers/star-devel/pkg-comment | 2 | ||||
-rw-r--r-- | archivers/star-devel/pkg-descr | 24 | ||||
-rw-r--r-- | archivers/star-devel/pkg-plist | 1 | ||||
-rw-r--r-- | archivers/star/Makefile | 13 | ||||
-rw-r--r-- | archivers/star/files/patch-aa | 50 | ||||
-rw-r--r-- | archivers/star/files/patch-ab | 248 | ||||
-rw-r--r-- | archivers/star/files/patch-ac | 11 | ||||
-rw-r--r-- | archivers/star/pkg-comment | 2 | ||||
-rw-r--r-- | archivers/star/pkg-descr | 24 | ||||
-rw-r--r-- | archivers/star/pkg-plist | 1 | ||||
-rw-r--r-- | sysutils/star/Makefile | 13 | ||||
-rw-r--r-- | sysutils/star/files/patch-aa | 50 | ||||
-rw-r--r-- | sysutils/star/files/patch-ab | 248 | ||||
-rw-r--r-- | sysutils/star/files/patch-ac | 11 | ||||
-rw-r--r-- | sysutils/star/pkg-comment | 2 | ||||
-rw-r--r-- | sysutils/star/pkg-descr | 24 | ||||
-rw-r--r-- | sysutils/star/pkg-plist | 1 |
21 files changed, 954 insertions, 93 deletions
diff --git a/archivers/star-devel/Makefile b/archivers/star-devel/Makefile index 645b02590344..01e8cbcabd60 100644 --- a/archivers/star-devel/Makefile +++ b/archivers/star-devel/Makefile @@ -3,7 +3,7 @@ # Date created: Thu May 1 20:28:44 CEST 1997 # Whom: Andreas Klemm <andreas@klemm.gtn.com> # -# $Id: Makefile,v 1.8 1999/05/31 05:08:06 steve Exp $ +# $Id: Makefile,v 1.9 1999/06/05 15:31:30 andreas Exp $ # DISTNAME= star-1.2 @@ -14,19 +14,20 @@ MASTER_SITE_SUBDIR= utils/compress MAINTAINER= andreas@FreeBSD.ORG -NO_PACKAGE= ignores cflags +#NO_PACKAGE= ignores cflags USE_GMAKE= yes -MAKE_ENV= MAKEPROG=gmake +MAKE_ENV= MAKEPROG=gmake CCOM=${CC} MAN1= star.1 .if ${MACHINE_ARCH} != "i386" post-extract: - @${LN} -sf i386-freebsd-cc.rul ${WRKSRC}/RULES/${MACHINE_ARCH}-freebsd-cc.rul + @${LN} -sf i386-freebsd-cc.rul \ + ${WRKSRC}/RULES/${MACHINE_ARCH}-freebsd-cc.rul .endif do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/star/OBJ/${MACHINE_ARCH}-freebsd-cc/star ${PREFIX}/bin - ${LN} -sf ${PREFIX}/bin/star ${PREFIX}/bin/ustar + ${INSTALL_PROGRAM} ${WRKSRC}/star/OBJ/${MACHINE_ARCH}-freebsd-cc/star \ + ${PREFIX}/bin ${INSTALL_MAN} ${WRKSRC}/star/star.1 ${PREFIX}/man/man1 .include <bsd.port.mk> diff --git a/archivers/star-devel/files/patch-aa b/archivers/star-devel/files/patch-aa index 8d4d7feffcbb..febfef64b732 100644 --- a/archivers/star-devel/files/patch-aa +++ b/archivers/star-devel/files/patch-aa @@ -1,11 +1,39 @@ ---- include/standard.h.orig Sun May 30 23:20:26 1999 -+++ include/standard.h Sun May 30 23:21:25 1999 -@@ -182,7 +182,7 @@ - extern int wait_chld __PR((int)); - extern int geterrno __PR((void)); - extern void raisecond __PR((const char *, long)); --extern int snprintf __PR((char *, unsigned, const char *, ...)); -+/*extern int snprintf __PR((char *, unsigned, const char *, ...)); */ - /*extern int sprintf __PR((char *, const char *, ...)); ist woanders falsch deklariert !!!*/ - extern char *strcatl __PR((char *, ...)); - extern int streql __PR((const char *, const char *)); +--- RULES/i386-freebsd-cc.rul.orig Thu May 6 02:48:51 1999 ++++ RULES/i386-freebsd-cc.rul Thu May 6 02:50:11 1999 +@@ -24,7 +24,7 @@ + ########################################################################### + + CPPFLAGS= $(CPPOPTS) $(CPPOPTX) +-CFLAGS= $(COPTS) $(CWARNOPTS) $(COPTOPT) $(COPTX) ++CFLAGS+= $(COPTS) $(CWARNOPTS) $(COPTX) + + CPPOPTS= -I. -I$(ARCHDIR) -I$(OINCSDIR) $(INCDIRS:%=-I%) $(OSDEFS) + COPTS= +@@ -47,7 +47,7 @@ + + LIBS_PATH= -L$(OLIBSDIR) + +-LDFLAGS= $(LDOPTS) $(LDOPTX) ++LDFLAGS+= $(LDOPTS) $(LDOPTX) + LDLIBS= $(LIBS) $(LIBX) + + #LDOPTS= $(LIBS_PATH) $(LDPATH) $(RUNPATH) +@@ -57,14 +57,14 @@ + + FLOAT_OPTIONS= + +-CC= @echo " ==> COMPILING \"$@\""; gcc +-LDCC= @echo " ==> LINKING \"$@\""; gcc +-DYNLD= @echo " ==> LINKING dynamic library \"$@\""; gcc ++CC= @echo " ==> COMPILING \"$@\""; ${CCOM} ++LDCC= @echo " ==> LINKING \"$@\""; ${CCOM} ++DYNLD= @echo " ==> LINKING dynamic library \"$@\""; ${CCOM} + RANLIB= @echo " ==> RANDOMIZING ARCHIVE \"$@\""; ranlib + ARFLAGS= cr + LORDER= lorder + TSORT= tsort + + RMDEP= : +-MKDEP= @echo " ==> MAKE DEPENDENCIES \"$@\""; $(RMDEP); gcc -M ++MKDEP= @echo " ==> MAKE DEPENDENCIES \"$@\""; $(RMDEP); ${CCOM} -M + MKDEP_OUT= diff --git a/archivers/star-devel/files/patch-ab b/archivers/star-devel/files/patch-ab new file mode 100644 index 000000000000..1bb6a51328ed --- /dev/null +++ b/archivers/star-devel/files/patch-ab @@ -0,0 +1,248 @@ +--- star/star.c.orig Thu May 6 17:09:19 1999 ++++ star/star.c Thu May 6 17:14:00 1999 +@@ -403,44 +403,46 @@ + usage(ret) + int ret; + { +- error("Usage:\tstar cmd [options] file1 ... filen\n"); +- error("Cmd:\n"); +- error("\t-c/-u/-r\tcreate/update/replace named files to tape\n"); +- error("\t-x/-t/-n\textract/list/trace named files from tape\n"); +- error("\t-diff\t\tdiff archive against file system (see -xhelp)\n"); +- error("Options:\n"); +- error("\t-help,-h\tprint this help\n"); +- error("\t-xhelp\t\tprint extended help\n"); +- error("\tblocks=#,b=#\tset blocking factor to #x512 Bytes (default 20)\n"); +- error("\tfile=nm,f=nm\tuse 'nm' as tape instead of stdin/stdout\n"); +- error("\t-T\t\tuse $TAPE as tape instead of stdin/stdout\n"); ++ FILE *fp = ret ? stderr : stdout; ++ ++ fprintf(fp, "Usage:\tstar cmd [options] file1 ... filen\n"); ++ fprintf(fp, "Cmd:\n"); ++ fprintf(fp, "\t-c/-u/-r\tcreate/update/replace named files to tape\n"); ++ fprintf(fp, "\t-x/-t/-n\textract/list/trace named files from tape\n"); ++ fprintf(fp, "\t-diff\t\tdiff archive against file system (see -xhelp)\n"); ++ fprintf(fp, "Options:\n"); ++ fprintf(fp, "\t-help,-h\tprint this help\n"); ++ fprintf(fp, "\t-xhelp\t\tprint extended help\n"); ++ fprintf(fp, "\tblocks=#,b=#\tset blocking factor to #x512 Bytes (default 20)\n"); ++ fprintf(fp, "\tfile=nm,f=nm\tuse 'nm' as tape instead of stdin/stdout\n"); ++ fprintf(fp, "\t-T\t\tuse $TAPE as tape instead of stdin/stdout\n"); + #ifdef FIFO +- error("\t-fifo/-no_fifo\tuse/don't use a fifo to optimize data flow from/to tape\n"); ++ fprintf(fp, "\t-fifo/-no_fifo\tuse/don't use a fifo to optimize data flow from/to tape\n"); + #if defined(USE_MMAP) && defined(USE_SHM) +- error("\t-shm\t\tuse SysV shared memory for fifo\n"); ++ fprintf(fp, "\t-shm\t\tuse SysV shared memory for fifo\n"); + #endif + #endif +- error("\t-v\t\tbe verbose\n"); +- error("\t-tpath\t\tuse with -t to list path names only\n"); +- error("\tH=header\tgenerate 'header' type archive (see H=help)\n"); +- error("\tC=dir\t\tperform a chdir to 'dir' before storing next file\n"); +- error("\t-z\t\tpipe input/output through gzip, does not work on tapes\n"); +- error("\t-B\t\tperform multiple reads (needed on pipes)\n"); +- error("\t-i\t\tignore checksum errors\n"); +- error("\t-d\t\tdo not store/create directories\n"); +- error("\t-m\t\tdo not restore access and modification time\n"); +- error("\t-nochown\tdo not restore owner and group\n"); +- error("\t-a,-atime\treset access time after storing file\n"); +- error("\t-p\t\trestore filemodes of directories\n"); +- error("\t-l\t\tdo not print a message if not all links are dumped\n"); +- error("\t-L\t\tfollow symbolic links as if they were files\n"); +- error("\t-D\t\tdo not descend directories\n"); +- error("\t-M\t\tdo not descend mounting points\n"); +- error("\t-I\t\tdo interactive creation/extraction/renaming\n"); +- error("\t-O\t\tbe compatible to old tar (except for checksum bug)\n"); +- error("\t-P\t\tlast record may be partial (useful on cartridge tapes)\n"); +- error("\t-S\t\tdo not store/create special files\n"); +- error("\t-U\t\trestore files unconditionally\n"); ++ fprintf(fp, "\t-v\t\tbe verbose\n"); ++ fprintf(fp, "\t-tpath\t\tuse with -t to list path names only\n"); ++ fprintf(fp, "\tH=header\tgenerate 'header' type archive (see H=help)\n"); ++ fprintf(fp, "\tC=dir\t\tperform a chdir to 'dir' before storing next file\n"); ++ fprintf(fp, "\t-z\t\tpipe input/output through gzip, does not work on tapes\n"); ++ fprintf(fp, "\t-B\t\tperform multiple reads (needed on pipes)\n"); ++ fprintf(fp, "\t-i\t\tignore checksum errors\n"); ++ fprintf(fp, "\t-d\t\tdo not store/create directories\n"); ++ fprintf(fp, "\t-m\t\tdo not restore access and modification time\n"); ++ fprintf(fp, "\t-nochown\tdo not restore owner and group\n"); ++ fprintf(fp, "\t-a,-atime\treset access time after storing file\n"); ++ fprintf(fp, "\t-p\t\trestore filemodes of directories\n"); ++ fprintf(fp, "\t-l\t\tdo not print a message if not all links are dumped\n"); ++ fprintf(fp, "\t-L\t\tfollow symbolic links as if they were files\n"); ++ fprintf(fp, "\t-D\t\tdo not descend directories\n"); ++ fprintf(fp, "\t-M\t\tdo not descend mounting points\n"); ++ fprintf(fp, "\t-I\t\tdo interactive creation/extraction/renaming\n"); ++ fprintf(fp, "\t-O\t\tbe compatible to old tar (except for checksum bug)\n"); ++ fprintf(fp, "\t-P\t\tlast record may be partial (useful on cartridge tapes)\n"); ++ fprintf(fp, "\t-S\t\tdo not store/create special files\n"); ++ fprintf(fp, "\t-U\t\trestore files unconditionally\n"); + exit(ret); + /* NOTREACHED */ + } +@@ -449,52 +451,54 @@ + xusage(ret) + int ret; + { +- error("Usage:\tstar cmd [options] file1 ... filen\n"); +- error("Extended options:\n"); +- error("\tdiffopts=optlst\tcomma separated list of diffopts (see diffopts=help)\n"); +- error("\t-not,-V\t\tuse those files which do not match pattern\n"); +- error("\tVOLHDR=name\tuse name to generate a volume header\n"); +- error("\t-xdir\t\textract dir even if the current is never\n"); +- error("\t-keep_old_files,-k\tkeep existing files\n"); +- error("\t-/\t\tdon't strip leading '/'s from file names\n"); +- error("\tlist=name\tread filenames from named file\n"); +- error("\t-dodesc\t\tdo descend directories found in a list= file\n"); +- error("\tpattern=p,pat=p\tset matching pattern\n"); +- error("\tmaxsize=#\tdo not store file if it is bigger than # kBytes\n"); +- error("\tnewer=name\tstore only files which are newer than 'name'\n"); +- error("\t-ctime\t\tuse ctime for newer= option\n"); +- error("\tbs=#\t\tset (output) block size to #\n"); ++ FILE *fp = ret ? stderr : stdout; ++ ++ fprintf(fp, "Usage:\tstar cmd [options] file1 ... filen\n"); ++ fprintf(fp, "Extended options:\n"); ++ fprintf(fp, "\tdiffopts=optlst\tcomma separated list of diffopts (see diffopts=help)\n"); ++ fprintf(fp, "\t-not,-V\t\tuse those files which do not match pattern\n"); ++ fprintf(fp, "\tVOLHDR=name\tuse name to generate a volume header\n"); ++ fprintf(fp, "\t-xdir\t\textract dir even if the current is never\n"); ++ fprintf(fp, "\t-keep_old_files,-k\tkeep existing files\n"); ++ fprintf(fp, "\t-/\t\tdon't strip leading '/'s from file names\n"); ++ fprintf(fp, "\tlist=name\tread filenames from named file\n"); ++ fprintf(fp, "\t-dodesc\t\tdo descend directories found in a list= file\n"); ++ fprintf(fp, "\tpattern=p,pat=p\tset matching pattern\n"); ++ fprintf(fp, "\tmaxsize=#\tdo not store file if it is bigger than # kBytes\n"); ++ fprintf(fp, "\tnewer=name\tstore only files which are newer than 'name'\n"); ++ fprintf(fp, "\t-ctime\t\tuse ctime for newer= option\n"); ++ fprintf(fp, "\tbs=#\t\tset (output) block size to #\n"); + #ifdef FIFO +- error("\tfs=#\t\tset fifo size to #\n"); ++ fprintf(fp, "\tfs=#\t\tset fifo size to #\n"); + #endif +- error("\ttsize=#\t\tset tape volume size to # 512 byte blocks\n"); +- error("\t-qic24\t\tset tape volume size to %d kBytes\n", ++ fprintf(fp, "\ttsize=#\t\tset tape volume size to # 512 byte blocks\n"); ++ fprintf(fp, "\t-qic24\t\tset tape volume size to %d kBytes\n", + TSIZE(QIC_24_TSIZE)/1024); +- error("\t-qic120\t\tset tape volume size to %d kBytes\n", ++ fprintf(fp, "\t-qic120\t\tset tape volume size to %d kBytes\n", + TSIZE(QIC_120_TSIZE)/1024); +- error("\t-qic150\t\tset tape volume size to %d kBytes\n", ++ fprintf(fp, "\t-qic150\t\tset tape volume size to %d kBytes\n", + TSIZE(QIC_150_TSIZE)/1024); +- error("\t-qic250\t\tset tape volume size to %d kBytes\n", ++ fprintf(fp, "\t-qic250\t\tset tape volume size to %d kBytes\n", + TSIZE(QIC_250_TSIZE)/1024); +- error("\t-nowarn\t\tdo not print warning messages\n"); +- error("\t-time\t\tprint timing info\n"); +- error("\t-no_statistics\tdo not print statistics\n"); ++ fprintf(fp, "\t-nowarn\t\tdo not print warning messages\n"); ++ fprintf(fp, "\t-time\t\tprint timing info\n"); ++ fprintf(fp, "\t-no_statistics\tdo not print statistics\n"); + #ifdef FIFO +- error("\t-fifostats\tprint fifo statistics\n"); ++ fprintf(fp, "\t-fifostats\tprint fifo statistics\n"); + #endif +- error("\t-numeric\tdon't use user/group name from tape\n"); +- error("\t-newest\t\tfind newest file on tape\n"); +- error("\t-newest_file\tfind newest regular file on tape\n"); +- error("\t-signed_checksum\tuse signed chars to calculate checksum\n"); +- error("\t-sparse\t\thandle file with holes effectively on store/create\n"); +- error("\t-force_hole\ttry to extract all files with holes\n"); +- error("\t-to_stdout\textract files to stdout\n"); +- error("\t-wready\t\twait for tape drive to become ready\n"); +- error("\t-force_remove\tforce to remove non writable files on extraction\n"); +- error("\t-ask_remove\task to remove non writable files on extraction\n"); +- error("\t-remove_first\tremove files before extraction\n"); +- error("\t-remove_recursive\tremove files recursive\n"); +- error("\t-nullout\tsimulate creating an achive to compute the size\n"); ++ fprintf(fp, "\t-numeric\tdon't use user/group name from tape\n"); ++ fprintf(fp, "\t-newest\t\tfind newest file on tape\n"); ++ fprintf(fp, "\t-newest_file\tfind newest regular file on tape\n"); ++ fprintf(fp, "\t-signed_checksum\tuse signed chars to calculate checksum\n"); ++ fprintf(fp, "\t-sparse\t\thandle file with holes effectively on store/create\n"); ++ fprintf(fp, "\t-force_hole\ttry to extract all files with holes\n"); ++ fprintf(fp, "\t-to_stdout\textract files to stdout\n"); ++ fprintf(fp, "\t-wready\t\twait for tape drive to become ready\n"); ++ fprintf(fp, "\t-force_remove\tforce to remove non writable files on extraction\n"); ++ fprintf(fp, "\t-ask_remove\task to remove non writable files on extraction\n"); ++ fprintf(fp, "\t-remove_first\tremove files before extraction\n"); ++ fprintf(fp, "\t-remove_recursive\tremove files recursive\n"); ++ fprintf(fp, "\t-nullout\tsimulate creating an achive to compute the size\n"); + exit(ret); + /* NOTREACHED */ + } +@@ -503,27 +507,29 @@ + dusage(ret) + int ret; + { +- error("Diff options:\n"); +- error("\tnot\t\tif this option is present, exclude listed options\n"); +- error("\tperm\t\tcompare file permissions\n"); +- error("\tmode\t\tcompare file permissions\n"); +- error("\ttype\t\tcompare file type\n"); +- error("\tnlink\t\tcompare linkcount (not supported)\n"); +- error("\tuid\t\tcompare owner of file\n"); +- error("\tgid\t\tcompare group of file\n"); +- error("\tuname\t\tcompare name of owner of file\n"); +- error("\tgname\t\tcompare name of group of file\n"); +- error("\tid\t\tcompare owner, group, ownername and groupname of file\n"); +- error("\tsize\t\tcompare file size\n"); +- error("\tdata\t\tcompare content of file\n"); +- error("\tcont\t\tcompare content of file\n"); +- error("\trdev\t\tcompare rdev of device node\n"); +- error("\thardlink\tcompare target of hardlink\n"); +- error("\tsymlink\t\tcompare target of symlink\n"); +- error("\tatime\t\tcompare access time of file (only star)\n"); +- error("\tmtime\t\tcompare modification time of file\n"); +- error("\tctime\t\tcompare creation time of file (only star)\n"); +- error("\ttimes\t\tcompare all times of file\n"); ++ FILE *fp = ret ? stderr : stdout; ++ ++ fprintf(fp, "Diff options:\n"); ++ fprintf(fp, "\tnot\t\tif this option is present, exclude listed options\n"); ++ fprintf(fp, "\tperm\t\tcompare file permissions\n"); ++ fprintf(fp, "\tmode\t\tcompare file permissions\n"); ++ fprintf(fp, "\ttype\t\tcompare file type\n"); ++ fprintf(fp, "\tnlink\t\tcompare linkcount (not supported)\n"); ++ fprintf(fp, "\tuid\t\tcompare owner of file\n"); ++ fprintf(fp, "\tgid\t\tcompare group of file\n"); ++ fprintf(fp, "\tuname\t\tcompare name of owner of file\n"); ++ fprintf(fp, "\tgname\t\tcompare name of group of file\n"); ++ fprintf(fp, "\tid\t\tcompare owner, group, ownername and groupname of file\n"); ++ fprintf(fp, "\tsize\t\tcompare file size\n"); ++ fprintf(fp, "\tdata\t\tcompare content of file\n"); ++ fprintf(fp, "\tcont\t\tcompare content of file\n"); ++ fprintf(fp, "\trdev\t\tcompare rdev of device node\n"); ++ fprintf(fp, "\thardlink\tcompare target of hardlink\n"); ++ fprintf(fp, "\tsymlink\t\tcompare target of symlink\n"); ++ fprintf(fp, "\tatime\t\tcompare access time of file (only star)\n"); ++ fprintf(fp, "\tmtime\t\tcompare modification time of file\n"); ++ fprintf(fp, "\tctime\t\tcompare creation time of file (only star)\n"); ++ fprintf(fp, "\ttimes\t\tcompare all times of file\n"); + exit(ret); + /* NOTREACHED */ + } +@@ -532,12 +538,14 @@ + husage(ret) + int ret; + { +- error("Header types:\n"); +- error("\ttar\t\told tar format\n"); +- error("\tstar\t\tstar format\n"); +- error("\tgnutar\t\tgnu tar format\n"); +- error("\tustar\t\tstandard tar (ieee 1003.1) format\n"); +- error("\txstar\t\textended standard tar format\n"); ++ FILE *fp = ret ? stderr : stdout; ++ ++ fprintf(fp, "Header types:\n"); ++ fprintf(fp, "\ttar\t\told tar format\n"); ++ fprintf(fp, "\tstar\t\tstar format\n"); ++ fprintf(fp, "\tgnutar\t\tgnu tar format\n"); ++ fprintf(fp, "\tustar\t\tstandard tar (ieee 1003.1) format\n"); ++ fprintf(fp, "\txstar\t\textended standard tar format\n"); + exit(ret); + /* NOTREACHED */ + } diff --git a/archivers/star-devel/files/patch-ac b/archivers/star-devel/files/patch-ac new file mode 100644 index 000000000000..8d4d7feffcbb --- /dev/null +++ b/archivers/star-devel/files/patch-ac @@ -0,0 +1,11 @@ +--- include/standard.h.orig Sun May 30 23:20:26 1999 ++++ include/standard.h Sun May 30 23:21:25 1999 +@@ -182,7 +182,7 @@ + extern int wait_chld __PR((int)); + extern int geterrno __PR((void)); + extern void raisecond __PR((const char *, long)); +-extern int snprintf __PR((char *, unsigned, const char *, ...)); ++/*extern int snprintf __PR((char *, unsigned, const char *, ...)); */ + /*extern int sprintf __PR((char *, const char *, ...)); ist woanders falsch deklariert !!!*/ + extern char *strcatl __PR((char *, ...)); + extern int streql __PR((const char *, const char *)); diff --git a/archivers/star-devel/pkg-comment b/archivers/star-devel/pkg-comment index b0332b514fb1..6457b83bfa6b 100644 --- a/archivers/star-devel/pkg-comment +++ b/archivers/star-devel/pkg-comment @@ -1 +1 @@ -Unique standard tape archiver with many enhancements +Unique standard tape archiver with many enhancements. diff --git a/archivers/star-devel/pkg-descr b/archivers/star-devel/pkg-descr index 8694c6e5508a..2af715f36ddb 100644 --- a/archivers/star-devel/pkg-descr +++ b/archivers/star-devel/pkg-descr @@ -1,20 +1,20 @@ -Star is the fastest known implementation of a tar archiver. Star +star is the fastest known implementation of a tar archiver. star development started 1982, development is still in progress. The current version is stable. Main advantages over other tar implementations: - fifo - keeps the tape streaming. - pattern matcher - for a convenient user interface - sophisticated diff - user tailorable interface for comparing tar - archives against file trees + fifo - Keeps the tape streaming. + pattern matcher - For a convenient user interface. + sophisticated diff - User tailorable interface for comparing tar + archives against file trees. no namelen limitation - Pathnames up to 1024 Bytes may be archived. - deals with all 3 times - stores/restores all 3 times of a file - does not clobber files - more recent copies on disk will not be - clobbered from tape - automatic byte swap - star automatically detects swapped archives - automatic format detect - automatically detects archive formats: - Old tar, gnu tar, ansi tar, star. - fully ansi compatible - Star is fully ANSI/Posix 1003.1 compatible. + deals with all 3 times - Stores/restores all 3 times of a file. + does not clobber files - More recent copies on disk will not be + clobbered from tape. + automatic byte swap - star automatically detects swapped archives. + automatic format detect - Automatically detects archive formats: + old tar, gnu tar, ansi tar, star. + fully ansi compatible - star is fully ANSI/Posix 1003.1 compatible. Author: Joerg Schilling <js@cs.tu-berlin.de> Please mail bugs and suggestions to him. diff --git a/archivers/star-devel/pkg-plist b/archivers/star-devel/pkg-plist index 5fd0d4fe5351..e8014df9c551 100644 --- a/archivers/star-devel/pkg-plist +++ b/archivers/star-devel/pkg-plist @@ -1,2 +1 @@ bin/star -bin/ustar diff --git a/archivers/star/Makefile b/archivers/star/Makefile index 645b02590344..01e8cbcabd60 100644 --- a/archivers/star/Makefile +++ b/archivers/star/Makefile @@ -3,7 +3,7 @@ # Date created: Thu May 1 20:28:44 CEST 1997 # Whom: Andreas Klemm <andreas@klemm.gtn.com> # -# $Id: Makefile,v 1.8 1999/05/31 05:08:06 steve Exp $ +# $Id: Makefile,v 1.9 1999/06/05 15:31:30 andreas Exp $ # DISTNAME= star-1.2 @@ -14,19 +14,20 @@ MASTER_SITE_SUBDIR= utils/compress MAINTAINER= andreas@FreeBSD.ORG -NO_PACKAGE= ignores cflags +#NO_PACKAGE= ignores cflags USE_GMAKE= yes -MAKE_ENV= MAKEPROG=gmake +MAKE_ENV= MAKEPROG=gmake CCOM=${CC} MAN1= star.1 .if ${MACHINE_ARCH} != "i386" post-extract: - @${LN} -sf i386-freebsd-cc.rul ${WRKSRC}/RULES/${MACHINE_ARCH}-freebsd-cc.rul + @${LN} -sf i386-freebsd-cc.rul \ + ${WRKSRC}/RULES/${MACHINE_ARCH}-freebsd-cc.rul .endif do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/star/OBJ/${MACHINE_ARCH}-freebsd-cc/star ${PREFIX}/bin - ${LN} -sf ${PREFIX}/bin/star ${PREFIX}/bin/ustar + ${INSTALL_PROGRAM} ${WRKSRC}/star/OBJ/${MACHINE_ARCH}-freebsd-cc/star \ + ${PREFIX}/bin ${INSTALL_MAN} ${WRKSRC}/star/star.1 ${PREFIX}/man/man1 .include <bsd.port.mk> diff --git a/archivers/star/files/patch-aa b/archivers/star/files/patch-aa index 8d4d7feffcbb..febfef64b732 100644 --- a/archivers/star/files/patch-aa +++ b/archivers/star/files/patch-aa @@ -1,11 +1,39 @@ ---- include/standard.h.orig Sun May 30 23:20:26 1999 -+++ include/standard.h Sun May 30 23:21:25 1999 -@@ -182,7 +182,7 @@ - extern int wait_chld __PR((int)); - extern int geterrno __PR((void)); - extern void raisecond __PR((const char *, long)); --extern int snprintf __PR((char *, unsigned, const char *, ...)); -+/*extern int snprintf __PR((char *, unsigned, const char *, ...)); */ - /*extern int sprintf __PR((char *, const char *, ...)); ist woanders falsch deklariert !!!*/ - extern char *strcatl __PR((char *, ...)); - extern int streql __PR((const char *, const char *)); +--- RULES/i386-freebsd-cc.rul.orig Thu May 6 02:48:51 1999 ++++ RULES/i386-freebsd-cc.rul Thu May 6 02:50:11 1999 +@@ -24,7 +24,7 @@ + ########################################################################### + + CPPFLAGS= $(CPPOPTS) $(CPPOPTX) +-CFLAGS= $(COPTS) $(CWARNOPTS) $(COPTOPT) $(COPTX) ++CFLAGS+= $(COPTS) $(CWARNOPTS) $(COPTX) + + CPPOPTS= -I. -I$(ARCHDIR) -I$(OINCSDIR) $(INCDIRS:%=-I%) $(OSDEFS) + COPTS= +@@ -47,7 +47,7 @@ + + LIBS_PATH= -L$(OLIBSDIR) + +-LDFLAGS= $(LDOPTS) $(LDOPTX) ++LDFLAGS+= $(LDOPTS) $(LDOPTX) + LDLIBS= $(LIBS) $(LIBX) + + #LDOPTS= $(LIBS_PATH) $(LDPATH) $(RUNPATH) +@@ -57,14 +57,14 @@ + + FLOAT_OPTIONS= + +-CC= @echo " ==> COMPILING \"$@\""; gcc +-LDCC= @echo " ==> LINKING \"$@\""; gcc +-DYNLD= @echo " ==> LINKING dynamic library \"$@\""; gcc ++CC= @echo " ==> COMPILING \"$@\""; ${CCOM} ++LDCC= @echo " ==> LINKING \"$@\""; ${CCOM} ++DYNLD= @echo " ==> LINKING dynamic library \"$@\""; ${CCOM} + RANLIB= @echo " ==> RANDOMIZING ARCHIVE \"$@\""; ranlib + ARFLAGS= cr + LORDER= lorder + TSORT= tsort + + RMDEP= : +-MKDEP= @echo " ==> MAKE DEPENDENCIES \"$@\""; $(RMDEP); gcc -M ++MKDEP= @echo " ==> MAKE DEPENDENCIES \"$@\""; $(RMDEP); ${CCOM} -M + MKDEP_OUT= diff --git a/archivers/star/files/patch-ab b/archivers/star/files/patch-ab new file mode 100644 index 000000000000..1bb6a51328ed --- /dev/null +++ b/archivers/star/files/patch-ab @@ -0,0 +1,248 @@ +--- star/star.c.orig Thu May 6 17:09:19 1999 ++++ star/star.c Thu May 6 17:14:00 1999 +@@ -403,44 +403,46 @@ + usage(ret) + int ret; + { +- error("Usage:\tstar cmd [options] file1 ... filen\n"); +- error("Cmd:\n"); +- error("\t-c/-u/-r\tcreate/update/replace named files to tape\n"); +- error("\t-x/-t/-n\textract/list/trace named files from tape\n"); +- error("\t-diff\t\tdiff archive against file system (see -xhelp)\n"); +- error("Options:\n"); +- error("\t-help,-h\tprint this help\n"); +- error("\t-xhelp\t\tprint extended help\n"); +- error("\tblocks=#,b=#\tset blocking factor to #x512 Bytes (default 20)\n"); +- error("\tfile=nm,f=nm\tuse 'nm' as tape instead of stdin/stdout\n"); +- error("\t-T\t\tuse $TAPE as tape instead of stdin/stdout\n"); ++ FILE *fp = ret ? stderr : stdout; ++ ++ fprintf(fp, "Usage:\tstar cmd [options] file1 ... filen\n"); ++ fprintf(fp, "Cmd:\n"); ++ fprintf(fp, "\t-c/-u/-r\tcreate/update/replace named files to tape\n"); ++ fprintf(fp, "\t-x/-t/-n\textract/list/trace named files from tape\n"); ++ fprintf(fp, "\t-diff\t\tdiff archive against file system (see -xhelp)\n"); ++ fprintf(fp, "Options:\n"); ++ fprintf(fp, "\t-help,-h\tprint this help\n"); ++ fprintf(fp, "\t-xhelp\t\tprint extended help\n"); ++ fprintf(fp, "\tblocks=#,b=#\tset blocking factor to #x512 Bytes (default 20)\n"); ++ fprintf(fp, "\tfile=nm,f=nm\tuse 'nm' as tape instead of stdin/stdout\n"); ++ fprintf(fp, "\t-T\t\tuse $TAPE as tape instead of stdin/stdout\n"); + #ifdef FIFO +- error("\t-fifo/-no_fifo\tuse/don't use a fifo to optimize data flow from/to tape\n"); ++ fprintf(fp, "\t-fifo/-no_fifo\tuse/don't use a fifo to optimize data flow from/to tape\n"); + #if defined(USE_MMAP) && defined(USE_SHM) +- error("\t-shm\t\tuse SysV shared memory for fifo\n"); ++ fprintf(fp, "\t-shm\t\tuse SysV shared memory for fifo\n"); + #endif + #endif +- error("\t-v\t\tbe verbose\n"); +- error("\t-tpath\t\tuse with -t to list path names only\n"); +- error("\tH=header\tgenerate 'header' type archive (see H=help)\n"); +- error("\tC=dir\t\tperform a chdir to 'dir' before storing next file\n"); +- error("\t-z\t\tpipe input/output through gzip, does not work on tapes\n"); +- error("\t-B\t\tperform multiple reads (needed on pipes)\n"); +- error("\t-i\t\tignore checksum errors\n"); +- error("\t-d\t\tdo not store/create directories\n"); +- error("\t-m\t\tdo not restore access and modification time\n"); +- error("\t-nochown\tdo not restore owner and group\n"); +- error("\t-a,-atime\treset access time after storing file\n"); +- error("\t-p\t\trestore filemodes of directories\n"); +- error("\t-l\t\tdo not print a message if not all links are dumped\n"); +- error("\t-L\t\tfollow symbolic links as if they were files\n"); +- error("\t-D\t\tdo not descend directories\n"); +- error("\t-M\t\tdo not descend mounting points\n"); +- error("\t-I\t\tdo interactive creation/extraction/renaming\n"); +- error("\t-O\t\tbe compatible to old tar (except for checksum bug)\n"); +- error("\t-P\t\tlast record may be partial (useful on cartridge tapes)\n"); +- error("\t-S\t\tdo not store/create special files\n"); +- error("\t-U\t\trestore files unconditionally\n"); ++ fprintf(fp, "\t-v\t\tbe verbose\n"); ++ fprintf(fp, "\t-tpath\t\tuse with -t to list path names only\n"); ++ fprintf(fp, "\tH=header\tgenerate 'header' type archive (see H=help)\n"); ++ fprintf(fp, "\tC=dir\t\tperform a chdir to 'dir' before storing next file\n"); ++ fprintf(fp, "\t-z\t\tpipe input/output through gzip, does not work on tapes\n"); ++ fprintf(fp, "\t-B\t\tperform multiple reads (needed on pipes)\n"); ++ fprintf(fp, "\t-i\t\tignore checksum errors\n"); ++ fprintf(fp, "\t-d\t\tdo not store/create directories\n"); ++ fprintf(fp, "\t-m\t\tdo not restore access and modification time\n"); ++ fprintf(fp, "\t-nochown\tdo not restore owner and group\n"); ++ fprintf(fp, "\t-a,-atime\treset access time after storing file\n"); ++ fprintf(fp, "\t-p\t\trestore filemodes of directories\n"); ++ fprintf(fp, "\t-l\t\tdo not print a message if not all links are dumped\n"); ++ fprintf(fp, "\t-L\t\tfollow symbolic links as if they were files\n"); ++ fprintf(fp, "\t-D\t\tdo not descend directories\n"); ++ fprintf(fp, "\t-M\t\tdo not descend mounting points\n"); ++ fprintf(fp, "\t-I\t\tdo interactive creation/extraction/renaming\n"); ++ fprintf(fp, "\t-O\t\tbe compatible to old tar (except for checksum bug)\n"); ++ fprintf(fp, "\t-P\t\tlast record may be partial (useful on cartridge tapes)\n"); ++ fprintf(fp, "\t-S\t\tdo not store/create special files\n"); ++ fprintf(fp, "\t-U\t\trestore files unconditionally\n"); + exit(ret); + /* NOTREACHED */ + } +@@ -449,52 +451,54 @@ + xusage(ret) + int ret; + { +- error("Usage:\tstar cmd [options] file1 ... filen\n"); +- error("Extended options:\n"); +- error("\tdiffopts=optlst\tcomma separated list of diffopts (see diffopts=help)\n"); +- error("\t-not,-V\t\tuse those files which do not match pattern\n"); +- error("\tVOLHDR=name\tuse name to generate a volume header\n"); +- error("\t-xdir\t\textract dir even if the current is never\n"); +- error("\t-keep_old_files,-k\tkeep existing files\n"); +- error("\t-/\t\tdon't strip leading '/'s from file names\n"); +- error("\tlist=name\tread filenames from named file\n"); +- error("\t-dodesc\t\tdo descend directories found in a list= file\n"); +- error("\tpattern=p,pat=p\tset matching pattern\n"); +- error("\tmaxsize=#\tdo not store file if it is bigger than # kBytes\n"); +- error("\tnewer=name\tstore only files which are newer than 'name'\n"); +- error("\t-ctime\t\tuse ctime for newer= option\n"); +- error("\tbs=#\t\tset (output) block size to #\n"); ++ FILE *fp = ret ? stderr : stdout; ++ ++ fprintf(fp, "Usage:\tstar cmd [options] file1 ... filen\n"); ++ fprintf(fp, "Extended options:\n"); ++ fprintf(fp, "\tdiffopts=optlst\tcomma separated list of diffopts (see diffopts=help)\n"); ++ fprintf(fp, "\t-not,-V\t\tuse those files which do not match pattern\n"); ++ fprintf(fp, "\tVOLHDR=name\tuse name to generate a volume header\n"); ++ fprintf(fp, "\t-xdir\t\textract dir even if the current is never\n"); ++ fprintf(fp, "\t-keep_old_files,-k\tkeep existing files\n"); ++ fprintf(fp, "\t-/\t\tdon't strip leading '/'s from file names\n"); ++ fprintf(fp, "\tlist=name\tread filenames from named file\n"); ++ fprintf(fp, "\t-dodesc\t\tdo descend directories found in a list= file\n"); ++ fprintf(fp, "\tpattern=p,pat=p\tset matching pattern\n"); ++ fprintf(fp, "\tmaxsize=#\tdo not store file if it is bigger than # kBytes\n"); ++ fprintf(fp, "\tnewer=name\tstore only files which are newer than 'name'\n"); ++ fprintf(fp, "\t-ctime\t\tuse ctime for newer= option\n"); ++ fprintf(fp, "\tbs=#\t\tset (output) block size to #\n"); + #ifdef FIFO +- error("\tfs=#\t\tset fifo size to #\n"); ++ fprintf(fp, "\tfs=#\t\tset fifo size to #\n"); + #endif +- error("\ttsize=#\t\tset tape volume size to # 512 byte blocks\n"); +- error("\t-qic24\t\tset tape volume size to %d kBytes\n", ++ fprintf(fp, "\ttsize=#\t\tset tape volume size to # 512 byte blocks\n"); ++ fprintf(fp, "\t-qic24\t\tset tape volume size to %d kBytes\n", + TSIZE(QIC_24_TSIZE)/1024); +- error("\t-qic120\t\tset tape volume size to %d kBytes\n", ++ fprintf(fp, "\t-qic120\t\tset tape volume size to %d kBytes\n", + TSIZE(QIC_120_TSIZE)/1024); +- error("\t-qic150\t\tset tape volume size to %d kBytes\n", ++ fprintf(fp, "\t-qic150\t\tset tape volume size to %d kBytes\n", + TSIZE(QIC_150_TSIZE)/1024); +- error("\t-qic250\t\tset tape volume size to %d kBytes\n", ++ fprintf(fp, "\t-qic250\t\tset tape volume size to %d kBytes\n", + TSIZE(QIC_250_TSIZE)/1024); +- error("\t-nowarn\t\tdo not print warning messages\n"); +- error("\t-time\t\tprint timing info\n"); +- error("\t-no_statistics\tdo not print statistics\n"); ++ fprintf(fp, "\t-nowarn\t\tdo not print warning messages\n"); ++ fprintf(fp, "\t-time\t\tprint timing info\n"); ++ fprintf(fp, "\t-no_statistics\tdo not print statistics\n"); + #ifdef FIFO +- error("\t-fifostats\tprint fifo statistics\n"); ++ fprintf(fp, "\t-fifostats\tprint fifo statistics\n"); + #endif +- error("\t-numeric\tdon't use user/group name from tape\n"); +- error("\t-newest\t\tfind newest file on tape\n"); +- error("\t-newest_file\tfind newest regular file on tape\n"); +- error("\t-signed_checksum\tuse signed chars to calculate checksum\n"); +- error("\t-sparse\t\thandle file with holes effectively on store/create\n"); +- error("\t-force_hole\ttry to extract all files with holes\n"); +- error("\t-to_stdout\textract files to stdout\n"); +- error("\t-wready\t\twait for tape drive to become ready\n"); +- error("\t-force_remove\tforce to remove non writable files on extraction\n"); +- error("\t-ask_remove\task to remove non writable files on extraction\n"); +- error("\t-remove_first\tremove files before extraction\n"); +- error("\t-remove_recursive\tremove files recursive\n"); +- error("\t-nullout\tsimulate creating an achive to compute the size\n"); ++ fprintf(fp, "\t-numeric\tdon't use user/group name from tape\n"); ++ fprintf(fp, "\t-newest\t\tfind newest file on tape\n"); ++ fprintf(fp, "\t-newest_file\tfind newest regular file on tape\n"); ++ fprintf(fp, "\t-signed_checksum\tuse signed chars to calculate checksum\n"); ++ fprintf(fp, "\t-sparse\t\thandle file with holes effectively on store/create\n"); ++ fprintf(fp, "\t-force_hole\ttry to extract all files with holes\n"); ++ fprintf(fp, "\t-to_stdout\textract files to stdout\n"); ++ fprintf(fp, "\t-wready\t\twait for tape drive to become ready\n"); ++ fprintf(fp, "\t-force_remove\tforce to remove non writable files on extraction\n"); ++ fprintf(fp, "\t-ask_remove\task to remove non writable files on extraction\n"); ++ fprintf(fp, "\t-remove_first\tremove files before extraction\n"); ++ fprintf(fp, "\t-remove_recursive\tremove files recursive\n"); ++ fprintf(fp, "\t-nullout\tsimulate creating an achive to compute the size\n"); + exit(ret); + /* NOTREACHED */ + } +@@ -503,27 +507,29 @@ + dusage(ret) + int ret; + { +- error("Diff options:\n"); +- error("\tnot\t\tif this option is present, exclude listed options\n"); +- error("\tperm\t\tcompare file permissions\n"); +- error("\tmode\t\tcompare file permissions\n"); +- error("\ttype\t\tcompare file type\n"); +- error("\tnlink\t\tcompare linkcount (not supported)\n"); +- error("\tuid\t\tcompare owner of file\n"); +- error("\tgid\t\tcompare group of file\n"); +- error("\tuname\t\tcompare name of owner of file\n"); +- error("\tgname\t\tcompare name of group of file\n"); +- error("\tid\t\tcompare owner, group, ownername and groupname of file\n"); +- error("\tsize\t\tcompare file size\n"); +- error("\tdata\t\tcompare content of file\n"); +- error("\tcont\t\tcompare content of file\n"); +- error("\trdev\t\tcompare rdev of device node\n"); +- error("\thardlink\tcompare target of hardlink\n"); +- error("\tsymlink\t\tcompare target of symlink\n"); +- error("\tatime\t\tcompare access time of file (only star)\n"); +- error("\tmtime\t\tcompare modification time of file\n"); +- error("\tctime\t\tcompare creation time of file (only star)\n"); +- error("\ttimes\t\tcompare all times of file\n"); ++ FILE *fp = ret ? stderr : stdout; ++ ++ fprintf(fp, "Diff options:\n"); ++ fprintf(fp, "\tnot\t\tif this option is present, exclude listed options\n"); ++ fprintf(fp, "\tperm\t\tcompare file permissions\n"); ++ fprintf(fp, "\tmode\t\tcompare file permissions\n"); ++ fprintf(fp, "\ttype\t\tcompare file type\n"); ++ fprintf(fp, "\tnlink\t\tcompare linkcount (not supported)\n"); ++ fprintf(fp, "\tuid\t\tcompare owner of file\n"); ++ fprintf(fp, "\tgid\t\tcompare group of file\n"); ++ fprintf(fp, "\tuname\t\tcompare name of owner of file\n"); ++ fprintf(fp, "\tgname\t\tcompare name of group of file\n"); ++ fprintf(fp, "\tid\t\tcompare owner, group, ownername and groupname of file\n"); ++ fprintf(fp, "\tsize\t\tcompare file size\n"); ++ fprintf(fp, "\tdata\t\tcompare content of file\n"); ++ fprintf(fp, "\tcont\t\tcompare content of file\n"); ++ fprintf(fp, "\trdev\t\tcompare rdev of device node\n"); ++ fprintf(fp, "\thardlink\tcompare target of hardlink\n"); ++ fprintf(fp, "\tsymlink\t\tcompare target of symlink\n"); ++ fprintf(fp, "\tatime\t\tcompare access time of file (only star)\n"); ++ fprintf(fp, "\tmtime\t\tcompare modification time of file\n"); ++ fprintf(fp, "\tctime\t\tcompare creation time of file (only star)\n"); ++ fprintf(fp, "\ttimes\t\tcompare all times of file\n"); + exit(ret); + /* NOTREACHED */ + } +@@ -532,12 +538,14 @@ + husage(ret) + int ret; + { +- error("Header types:\n"); +- error("\ttar\t\told tar format\n"); +- error("\tstar\t\tstar format\n"); +- error("\tgnutar\t\tgnu tar format\n"); +- error("\tustar\t\tstandard tar (ieee 1003.1) format\n"); +- error("\txstar\t\textended standard tar format\n"); ++ FILE *fp = ret ? stderr : stdout; ++ ++ fprintf(fp, "Header types:\n"); ++ fprintf(fp, "\ttar\t\told tar format\n"); ++ fprintf(fp, "\tstar\t\tstar format\n"); ++ fprintf(fp, "\tgnutar\t\tgnu tar format\n"); ++ fprintf(fp, "\tustar\t\tstandard tar (ieee 1003.1) format\n"); ++ fprintf(fp, "\txstar\t\textended standard tar format\n"); + exit(ret); + /* NOTREACHED */ + } diff --git a/archivers/star/files/patch-ac b/archivers/star/files/patch-ac new file mode 100644 index 000000000000..8d4d7feffcbb --- /dev/null +++ b/archivers/star/files/patch-ac @@ -0,0 +1,11 @@ +--- include/standard.h.orig Sun May 30 23:20:26 1999 ++++ include/standard.h Sun May 30 23:21:25 1999 +@@ -182,7 +182,7 @@ + extern int wait_chld __PR((int)); + extern int geterrno __PR((void)); + extern void raisecond __PR((const char *, long)); +-extern int snprintf __PR((char *, unsigned, const char *, ...)); ++/*extern int snprintf __PR((char *, unsigned, const char *, ...)); */ + /*extern int sprintf __PR((char *, const char *, ...)); ist woanders falsch deklariert !!!*/ + extern char *strcatl __PR((char *, ...)); + extern int streql __PR((const char *, const char *)); diff --git a/archivers/star/pkg-comment b/archivers/star/pkg-comment index b0332b514fb1..6457b83bfa6b 100644 --- a/archivers/star/pkg-comment +++ b/archivers/star/pkg-comment @@ -1 +1 @@ -Unique standard tape archiver with many enhancements +Unique standard tape archiver with many enhancements. diff --git a/archivers/star/pkg-descr b/archivers/star/pkg-descr index 8694c6e5508a..2af715f36ddb 100644 --- a/archivers/star/pkg-descr +++ b/archivers/star/pkg-descr @@ -1,20 +1,20 @@ -Star is the fastest known implementation of a tar archiver. Star +star is the fastest known implementation of a tar archiver. star development started 1982, development is still in progress. The current version is stable. Main advantages over other tar implementations: - fifo - keeps the tape streaming. - pattern matcher - for a convenient user interface - sophisticated diff - user tailorable interface for comparing tar - archives against file trees + fifo - Keeps the tape streaming. + pattern matcher - For a convenient user interface. + sophisticated diff - User tailorable interface for comparing tar + archives against file trees. no namelen limitation - Pathnames up to 1024 Bytes may be archived. - deals with all 3 times - stores/restores all 3 times of a file - does not clobber files - more recent copies on disk will not be - clobbered from tape - automatic byte swap - star automatically detects swapped archives - automatic format detect - automatically detects archive formats: - Old tar, gnu tar, ansi tar, star. - fully ansi compatible - Star is fully ANSI/Posix 1003.1 compatible. + deals with all 3 times - Stores/restores all 3 times of a file. + does not clobber files - More recent copies on disk will not be + clobbered from tape. + automatic byte swap - star automatically detects swapped archives. + automatic format detect - Automatically detects archive formats: + old tar, gnu tar, ansi tar, star. + fully ansi compatible - star is fully ANSI/Posix 1003.1 compatible. Author: Joerg Schilling <js@cs.tu-berlin.de> Please mail bugs and suggestions to him. diff --git a/archivers/star/pkg-plist b/archivers/star/pkg-plist index 5fd0d4fe5351..e8014df9c551 100644 --- a/archivers/star/pkg-plist +++ b/archivers/star/pkg-plist @@ -1,2 +1 @@ bin/star -bin/ustar diff --git a/sysutils/star/Makefile b/sysutils/star/Makefile index 645b02590344..01e8cbcabd60 100644 --- a/sysutils/star/Makefile +++ b/sysutils/star/Makefile @@ -3,7 +3,7 @@ # Date created: Thu May 1 20:28:44 CEST 1997 # Whom: Andreas Klemm <andreas@klemm.gtn.com> # -# $Id: Makefile,v 1.8 1999/05/31 05:08:06 steve Exp $ +# $Id: Makefile,v 1.9 1999/06/05 15:31:30 andreas Exp $ # DISTNAME= star-1.2 @@ -14,19 +14,20 @@ MASTER_SITE_SUBDIR= utils/compress MAINTAINER= andreas@FreeBSD.ORG -NO_PACKAGE= ignores cflags +#NO_PACKAGE= ignores cflags USE_GMAKE= yes -MAKE_ENV= MAKEPROG=gmake +MAKE_ENV= MAKEPROG=gmake CCOM=${CC} MAN1= star.1 .if ${MACHINE_ARCH} != "i386" post-extract: - @${LN} -sf i386-freebsd-cc.rul ${WRKSRC}/RULES/${MACHINE_ARCH}-freebsd-cc.rul + @${LN} -sf i386-freebsd-cc.rul \ + ${WRKSRC}/RULES/${MACHINE_ARCH}-freebsd-cc.rul .endif do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/star/OBJ/${MACHINE_ARCH}-freebsd-cc/star ${PREFIX}/bin - ${LN} -sf ${PREFIX}/bin/star ${PREFIX}/bin/ustar + ${INSTALL_PROGRAM} ${WRKSRC}/star/OBJ/${MACHINE_ARCH}-freebsd-cc/star \ + ${PREFIX}/bin ${INSTALL_MAN} ${WRKSRC}/star/star.1 ${PREFIX}/man/man1 .include <bsd.port.mk> diff --git a/sysutils/star/files/patch-aa b/sysutils/star/files/patch-aa index 8d4d7feffcbb..febfef64b732 100644 --- a/sysutils/star/files/patch-aa +++ b/sysutils/star/files/patch-aa @@ -1,11 +1,39 @@ ---- include/standard.h.orig Sun May 30 23:20:26 1999 -+++ include/standard.h Sun May 30 23:21:25 1999 -@@ -182,7 +182,7 @@ - extern int wait_chld __PR((int)); - extern int geterrno __PR((void)); - extern void raisecond __PR((const char *, long)); --extern int snprintf __PR((char *, unsigned, const char *, ...)); -+/*extern int snprintf __PR((char *, unsigned, const char *, ...)); */ - /*extern int sprintf __PR((char *, const char *, ...)); ist woanders falsch deklariert !!!*/ - extern char *strcatl __PR((char *, ...)); - extern int streql __PR((const char *, const char *)); +--- RULES/i386-freebsd-cc.rul.orig Thu May 6 02:48:51 1999 ++++ RULES/i386-freebsd-cc.rul Thu May 6 02:50:11 1999 +@@ -24,7 +24,7 @@ + ########################################################################### + + CPPFLAGS= $(CPPOPTS) $(CPPOPTX) +-CFLAGS= $(COPTS) $(CWARNOPTS) $(COPTOPT) $(COPTX) ++CFLAGS+= $(COPTS) $(CWARNOPTS) $(COPTX) + + CPPOPTS= -I. -I$(ARCHDIR) -I$(OINCSDIR) $(INCDIRS:%=-I%) $(OSDEFS) + COPTS= +@@ -47,7 +47,7 @@ + + LIBS_PATH= -L$(OLIBSDIR) + +-LDFLAGS= $(LDOPTS) $(LDOPTX) ++LDFLAGS+= $(LDOPTS) $(LDOPTX) + LDLIBS= $(LIBS) $(LIBX) + + #LDOPTS= $(LIBS_PATH) $(LDPATH) $(RUNPATH) +@@ -57,14 +57,14 @@ + + FLOAT_OPTIONS= + +-CC= @echo " ==> COMPILING \"$@\""; gcc +-LDCC= @echo " ==> LINKING \"$@\""; gcc +-DYNLD= @echo " ==> LINKING dynamic library \"$@\""; gcc ++CC= @echo " ==> COMPILING \"$@\""; ${CCOM} ++LDCC= @echo " ==> LINKING \"$@\""; ${CCOM} ++DYNLD= @echo " ==> LINKING dynamic library \"$@\""; ${CCOM} + RANLIB= @echo " ==> RANDOMIZING ARCHIVE \"$@\""; ranlib + ARFLAGS= cr + LORDER= lorder + TSORT= tsort + + RMDEP= : +-MKDEP= @echo " ==> MAKE DEPENDENCIES \"$@\""; $(RMDEP); gcc -M ++MKDEP= @echo " ==> MAKE DEPENDENCIES \"$@\""; $(RMDEP); ${CCOM} -M + MKDEP_OUT= diff --git a/sysutils/star/files/patch-ab b/sysutils/star/files/patch-ab new file mode 100644 index 000000000000..1bb6a51328ed --- /dev/null +++ b/sysutils/star/files/patch-ab @@ -0,0 +1,248 @@ +--- star/star.c.orig Thu May 6 17:09:19 1999 ++++ star/star.c Thu May 6 17:14:00 1999 +@@ -403,44 +403,46 @@ + usage(ret) + int ret; + { +- error("Usage:\tstar cmd [options] file1 ... filen\n"); +- error("Cmd:\n"); +- error("\t-c/-u/-r\tcreate/update/replace named files to tape\n"); +- error("\t-x/-t/-n\textract/list/trace named files from tape\n"); +- error("\t-diff\t\tdiff archive against file system (see -xhelp)\n"); +- error("Options:\n"); +- error("\t-help,-h\tprint this help\n"); +- error("\t-xhelp\t\tprint extended help\n"); +- error("\tblocks=#,b=#\tset blocking factor to #x512 Bytes (default 20)\n"); +- error("\tfile=nm,f=nm\tuse 'nm' as tape instead of stdin/stdout\n"); +- error("\t-T\t\tuse $TAPE as tape instead of stdin/stdout\n"); ++ FILE *fp = ret ? stderr : stdout; ++ ++ fprintf(fp, "Usage:\tstar cmd [options] file1 ... filen\n"); ++ fprintf(fp, "Cmd:\n"); ++ fprintf(fp, "\t-c/-u/-r\tcreate/update/replace named files to tape\n"); ++ fprintf(fp, "\t-x/-t/-n\textract/list/trace named files from tape\n"); ++ fprintf(fp, "\t-diff\t\tdiff archive against file system (see -xhelp)\n"); ++ fprintf(fp, "Options:\n"); ++ fprintf(fp, "\t-help,-h\tprint this help\n"); ++ fprintf(fp, "\t-xhelp\t\tprint extended help\n"); ++ fprintf(fp, "\tblocks=#,b=#\tset blocking factor to #x512 Bytes (default 20)\n"); ++ fprintf(fp, "\tfile=nm,f=nm\tuse 'nm' as tape instead of stdin/stdout\n"); ++ fprintf(fp, "\t-T\t\tuse $TAPE as tape instead of stdin/stdout\n"); + #ifdef FIFO +- error("\t-fifo/-no_fifo\tuse/don't use a fifo to optimize data flow from/to tape\n"); ++ fprintf(fp, "\t-fifo/-no_fifo\tuse/don't use a fifo to optimize data flow from/to tape\n"); + #if defined(USE_MMAP) && defined(USE_SHM) +- error("\t-shm\t\tuse SysV shared memory for fifo\n"); ++ fprintf(fp, "\t-shm\t\tuse SysV shared memory for fifo\n"); + #endif + #endif +- error("\t-v\t\tbe verbose\n"); +- error("\t-tpath\t\tuse with -t to list path names only\n"); +- error("\tH=header\tgenerate 'header' type archive (see H=help)\n"); +- error("\tC=dir\t\tperform a chdir to 'dir' before storing next file\n"); +- error("\t-z\t\tpipe input/output through gzip, does not work on tapes\n"); +- error("\t-B\t\tperform multiple reads (needed on pipes)\n"); +- error("\t-i\t\tignore checksum errors\n"); +- error("\t-d\t\tdo not store/create directories\n"); +- error("\t-m\t\tdo not restore access and modification time\n"); +- error("\t-nochown\tdo not restore owner and group\n"); +- error("\t-a,-atime\treset access time after storing file\n"); +- error("\t-p\t\trestore filemodes of directories\n"); +- error("\t-l\t\tdo not print a message if not all links are dumped\n"); +- error("\t-L\t\tfollow symbolic links as if they were files\n"); +- error("\t-D\t\tdo not descend directories\n"); +- error("\t-M\t\tdo not descend mounting points\n"); +- error("\t-I\t\tdo interactive creation/extraction/renaming\n"); +- error("\t-O\t\tbe compatible to old tar (except for checksum bug)\n"); +- error("\t-P\t\tlast record may be partial (useful on cartridge tapes)\n"); +- error("\t-S\t\tdo not store/create special files\n"); +- error("\t-U\t\trestore files unconditionally\n"); ++ fprintf(fp, "\t-v\t\tbe verbose\n"); ++ fprintf(fp, "\t-tpath\t\tuse with -t to list path names only\n"); ++ fprintf(fp, "\tH=header\tgenerate 'header' type archive (see H=help)\n"); ++ fprintf(fp, "\tC=dir\t\tperform a chdir to 'dir' before storing next file\n"); ++ fprintf(fp, "\t-z\t\tpipe input/output through gzip, does not work on tapes\n"); ++ fprintf(fp, "\t-B\t\tperform multiple reads (needed on pipes)\n"); ++ fprintf(fp, "\t-i\t\tignore checksum errors\n"); ++ fprintf(fp, "\t-d\t\tdo not store/create directories\n"); ++ fprintf(fp, "\t-m\t\tdo not restore access and modification time\n"); ++ fprintf(fp, "\t-nochown\tdo not restore owner and group\n"); ++ fprintf(fp, "\t-a,-atime\treset access time after storing file\n"); ++ fprintf(fp, "\t-p\t\trestore filemodes of directories\n"); ++ fprintf(fp, "\t-l\t\tdo not print a message if not all links are dumped\n"); ++ fprintf(fp, "\t-L\t\tfollow symbolic links as if they were files\n"); ++ fprintf(fp, "\t-D\t\tdo not descend directories\n"); ++ fprintf(fp, "\t-M\t\tdo not descend mounting points\n"); ++ fprintf(fp, "\t-I\t\tdo interactive creation/extraction/renaming\n"); ++ fprintf(fp, "\t-O\t\tbe compatible to old tar (except for checksum bug)\n"); ++ fprintf(fp, "\t-P\t\tlast record may be partial (useful on cartridge tapes)\n"); ++ fprintf(fp, "\t-S\t\tdo not store/create special files\n"); ++ fprintf(fp, "\t-U\t\trestore files unconditionally\n"); + exit(ret); + /* NOTREACHED */ + } +@@ -449,52 +451,54 @@ + xusage(ret) + int ret; + { +- error("Usage:\tstar cmd [options] file1 ... filen\n"); +- error("Extended options:\n"); +- error("\tdiffopts=optlst\tcomma separated list of diffopts (see diffopts=help)\n"); +- error("\t-not,-V\t\tuse those files which do not match pattern\n"); +- error("\tVOLHDR=name\tuse name to generate a volume header\n"); +- error("\t-xdir\t\textract dir even if the current is never\n"); +- error("\t-keep_old_files,-k\tkeep existing files\n"); +- error("\t-/\t\tdon't strip leading '/'s from file names\n"); +- error("\tlist=name\tread filenames from named file\n"); +- error("\t-dodesc\t\tdo descend directories found in a list= file\n"); +- error("\tpattern=p,pat=p\tset matching pattern\n"); +- error("\tmaxsize=#\tdo not store file if it is bigger than # kBytes\n"); +- error("\tnewer=name\tstore only files which are newer than 'name'\n"); +- error("\t-ctime\t\tuse ctime for newer= option\n"); +- error("\tbs=#\t\tset (output) block size to #\n"); ++ FILE *fp = ret ? stderr : stdout; ++ ++ fprintf(fp, "Usage:\tstar cmd [options] file1 ... filen\n"); ++ fprintf(fp, "Extended options:\n"); ++ fprintf(fp, "\tdiffopts=optlst\tcomma separated list of diffopts (see diffopts=help)\n"); ++ fprintf(fp, "\t-not,-V\t\tuse those files which do not match pattern\n"); ++ fprintf(fp, "\tVOLHDR=name\tuse name to generate a volume header\n"); ++ fprintf(fp, "\t-xdir\t\textract dir even if the current is never\n"); ++ fprintf(fp, "\t-keep_old_files,-k\tkeep existing files\n"); ++ fprintf(fp, "\t-/\t\tdon't strip leading '/'s from file names\n"); ++ fprintf(fp, "\tlist=name\tread filenames from named file\n"); ++ fprintf(fp, "\t-dodesc\t\tdo descend directories found in a list= file\n"); ++ fprintf(fp, "\tpattern=p,pat=p\tset matching pattern\n"); ++ fprintf(fp, "\tmaxsize=#\tdo not store file if it is bigger than # kBytes\n"); ++ fprintf(fp, "\tnewer=name\tstore only files which are newer than 'name'\n"); ++ fprintf(fp, "\t-ctime\t\tuse ctime for newer= option\n"); ++ fprintf(fp, "\tbs=#\t\tset (output) block size to #\n"); + #ifdef FIFO +- error("\tfs=#\t\tset fifo size to #\n"); ++ fprintf(fp, "\tfs=#\t\tset fifo size to #\n"); + #endif +- error("\ttsize=#\t\tset tape volume size to # 512 byte blocks\n"); +- error("\t-qic24\t\tset tape volume size to %d kBytes\n", ++ fprintf(fp, "\ttsize=#\t\tset tape volume size to # 512 byte blocks\n"); ++ fprintf(fp, "\t-qic24\t\tset tape volume size to %d kBytes\n", + TSIZE(QIC_24_TSIZE)/1024); +- error("\t-qic120\t\tset tape volume size to %d kBytes\n", ++ fprintf(fp, "\t-qic120\t\tset tape volume size to %d kBytes\n", + TSIZE(QIC_120_TSIZE)/1024); +- error("\t-qic150\t\tset tape volume size to %d kBytes\n", ++ fprintf(fp, "\t-qic150\t\tset tape volume size to %d kBytes\n", + TSIZE(QIC_150_TSIZE)/1024); +- error("\t-qic250\t\tset tape volume size to %d kBytes\n", ++ fprintf(fp, "\t-qic250\t\tset tape volume size to %d kBytes\n", + TSIZE(QIC_250_TSIZE)/1024); +- error("\t-nowarn\t\tdo not print warning messages\n"); +- error("\t-time\t\tprint timing info\n"); +- error("\t-no_statistics\tdo not print statistics\n"); ++ fprintf(fp, "\t-nowarn\t\tdo not print warning messages\n"); ++ fprintf(fp, "\t-time\t\tprint timing info\n"); ++ fprintf(fp, "\t-no_statistics\tdo not print statistics\n"); + #ifdef FIFO +- error("\t-fifostats\tprint fifo statistics\n"); ++ fprintf(fp, "\t-fifostats\tprint fifo statistics\n"); + #endif +- error("\t-numeric\tdon't use user/group name from tape\n"); +- error("\t-newest\t\tfind newest file on tape\n"); +- error("\t-newest_file\tfind newest regular file on tape\n"); +- error("\t-signed_checksum\tuse signed chars to calculate checksum\n"); +- error("\t-sparse\t\thandle file with holes effectively on store/create\n"); +- error("\t-force_hole\ttry to extract all files with holes\n"); +- error("\t-to_stdout\textract files to stdout\n"); +- error("\t-wready\t\twait for tape drive to become ready\n"); +- error("\t-force_remove\tforce to remove non writable files on extraction\n"); +- error("\t-ask_remove\task to remove non writable files on extraction\n"); +- error("\t-remove_first\tremove files before extraction\n"); +- error("\t-remove_recursive\tremove files recursive\n"); +- error("\t-nullout\tsimulate creating an achive to compute the size\n"); ++ fprintf(fp, "\t-numeric\tdon't use user/group name from tape\n"); ++ fprintf(fp, "\t-newest\t\tfind newest file on tape\n"); ++ fprintf(fp, "\t-newest_file\tfind newest regular file on tape\n"); ++ fprintf(fp, "\t-signed_checksum\tuse signed chars to calculate checksum\n"); ++ fprintf(fp, "\t-sparse\t\thandle file with holes effectively on store/create\n"); ++ fprintf(fp, "\t-force_hole\ttry to extract all files with holes\n"); ++ fprintf(fp, "\t-to_stdout\textract files to stdout\n"); ++ fprintf(fp, "\t-wready\t\twait for tape drive to become ready\n"); ++ fprintf(fp, "\t-force_remove\tforce to remove non writable files on extraction\n"); ++ fprintf(fp, "\t-ask_remove\task to remove non writable files on extraction\n"); ++ fprintf(fp, "\t-remove_first\tremove files before extraction\n"); ++ fprintf(fp, "\t-remove_recursive\tremove files recursive\n"); ++ fprintf(fp, "\t-nullout\tsimulate creating an achive to compute the size\n"); + exit(ret); + /* NOTREACHED */ + } +@@ -503,27 +507,29 @@ + dusage(ret) + int ret; + { +- error("Diff options:\n"); +- error("\tnot\t\tif this option is present, exclude listed options\n"); +- error("\tperm\t\tcompare file permissions\n"); +- error("\tmode\t\tcompare file permissions\n"); +- error("\ttype\t\tcompare file type\n"); +- error("\tnlink\t\tcompare linkcount (not supported)\n"); +- error("\tuid\t\tcompare owner of file\n"); +- error("\tgid\t\tcompare group of file\n"); +- error("\tuname\t\tcompare name of owner of file\n"); +- error("\tgname\t\tcompare name of group of file\n"); +- error("\tid\t\tcompare owner, group, ownername and groupname of file\n"); +- error("\tsize\t\tcompare file size\n"); +- error("\tdata\t\tcompare content of file\n"); +- error("\tcont\t\tcompare content of file\n"); +- error("\trdev\t\tcompare rdev of device node\n"); +- error("\thardlink\tcompare target of hardlink\n"); +- error("\tsymlink\t\tcompare target of symlink\n"); +- error("\tatime\t\tcompare access time of file (only star)\n"); +- error("\tmtime\t\tcompare modification time of file\n"); +- error("\tctime\t\tcompare creation time of file (only star)\n"); +- error("\ttimes\t\tcompare all times of file\n"); ++ FILE *fp = ret ? stderr : stdout; ++ ++ fprintf(fp, "Diff options:\n"); ++ fprintf(fp, "\tnot\t\tif this option is present, exclude listed options\n"); ++ fprintf(fp, "\tperm\t\tcompare file permissions\n"); ++ fprintf(fp, "\tmode\t\tcompare file permissions\n"); ++ fprintf(fp, "\ttype\t\tcompare file type\n"); ++ fprintf(fp, "\tnlink\t\tcompare linkcount (not supported)\n"); ++ fprintf(fp, "\tuid\t\tcompare owner of file\n"); ++ fprintf(fp, "\tgid\t\tcompare group of file\n"); ++ fprintf(fp, "\tuname\t\tcompare name of owner of file\n"); ++ fprintf(fp, "\tgname\t\tcompare name of group of file\n"); ++ fprintf(fp, "\tid\t\tcompare owner, group, ownername and groupname of file\n"); ++ fprintf(fp, "\tsize\t\tcompare file size\n"); ++ fprintf(fp, "\tdata\t\tcompare content of file\n"); ++ fprintf(fp, "\tcont\t\tcompare content of file\n"); ++ fprintf(fp, "\trdev\t\tcompare rdev of device node\n"); ++ fprintf(fp, "\thardlink\tcompare target of hardlink\n"); ++ fprintf(fp, "\tsymlink\t\tcompare target of symlink\n"); ++ fprintf(fp, "\tatime\t\tcompare access time of file (only star)\n"); ++ fprintf(fp, "\tmtime\t\tcompare modification time of file\n"); ++ fprintf(fp, "\tctime\t\tcompare creation time of file (only star)\n"); ++ fprintf(fp, "\ttimes\t\tcompare all times of file\n"); + exit(ret); + /* NOTREACHED */ + } +@@ -532,12 +538,14 @@ + husage(ret) + int ret; + { +- error("Header types:\n"); +- error("\ttar\t\told tar format\n"); +- error("\tstar\t\tstar format\n"); +- error("\tgnutar\t\tgnu tar format\n"); +- error("\tustar\t\tstandard tar (ieee 1003.1) format\n"); +- error("\txstar\t\textended standard tar format\n"); ++ FILE *fp = ret ? stderr : stdout; ++ ++ fprintf(fp, "Header types:\n"); ++ fprintf(fp, "\ttar\t\told tar format\n"); ++ fprintf(fp, "\tstar\t\tstar format\n"); ++ fprintf(fp, "\tgnutar\t\tgnu tar format\n"); ++ fprintf(fp, "\tustar\t\tstandard tar (ieee 1003.1) format\n"); ++ fprintf(fp, "\txstar\t\textended standard tar format\n"); + exit(ret); + /* NOTREACHED */ + } diff --git a/sysutils/star/files/patch-ac b/sysutils/star/files/patch-ac new file mode 100644 index 000000000000..8d4d7feffcbb --- /dev/null +++ b/sysutils/star/files/patch-ac @@ -0,0 +1,11 @@ +--- include/standard.h.orig Sun May 30 23:20:26 1999 ++++ include/standard.h Sun May 30 23:21:25 1999 +@@ -182,7 +182,7 @@ + extern int wait_chld __PR((int)); + extern int geterrno __PR((void)); + extern void raisecond __PR((const char *, long)); +-extern int snprintf __PR((char *, unsigned, const char *, ...)); ++/*extern int snprintf __PR((char *, unsigned, const char *, ...)); */ + /*extern int sprintf __PR((char *, const char *, ...)); ist woanders falsch deklariert !!!*/ + extern char *strcatl __PR((char *, ...)); + extern int streql __PR((const char *, const char *)); diff --git a/sysutils/star/pkg-comment b/sysutils/star/pkg-comment index b0332b514fb1..6457b83bfa6b 100644 --- a/sysutils/star/pkg-comment +++ b/sysutils/star/pkg-comment @@ -1 +1 @@ -Unique standard tape archiver with many enhancements +Unique standard tape archiver with many enhancements. diff --git a/sysutils/star/pkg-descr b/sysutils/star/pkg-descr index 8694c6e5508a..2af715f36ddb 100644 --- a/sysutils/star/pkg-descr +++ b/sysutils/star/pkg-descr @@ -1,20 +1,20 @@ -Star is the fastest known implementation of a tar archiver. Star +star is the fastest known implementation of a tar archiver. star development started 1982, development is still in progress. The current version is stable. Main advantages over other tar implementations: - fifo - keeps the tape streaming. - pattern matcher - for a convenient user interface - sophisticated diff - user tailorable interface for comparing tar - archives against file trees + fifo - Keeps the tape streaming. + pattern matcher - For a convenient user interface. + sophisticated diff - User tailorable interface for comparing tar + archives against file trees. no namelen limitation - Pathnames up to 1024 Bytes may be archived. - deals with all 3 times - stores/restores all 3 times of a file - does not clobber files - more recent copies on disk will not be - clobbered from tape - automatic byte swap - star automatically detects swapped archives - automatic format detect - automatically detects archive formats: - Old tar, gnu tar, ansi tar, star. - fully ansi compatible - Star is fully ANSI/Posix 1003.1 compatible. + deals with all 3 times - Stores/restores all 3 times of a file. + does not clobber files - More recent copies on disk will not be + clobbered from tape. + automatic byte swap - star automatically detects swapped archives. + automatic format detect - Automatically detects archive formats: + old tar, gnu tar, ansi tar, star. + fully ansi compatible - star is fully ANSI/Posix 1003.1 compatible. Author: Joerg Schilling <js@cs.tu-berlin.de> Please mail bugs and suggestions to him. diff --git a/sysutils/star/pkg-plist b/sysutils/star/pkg-plist index 5fd0d4fe5351..e8014df9c551 100644 --- a/sysutils/star/pkg-plist +++ b/sysutils/star/pkg-plist @@ -1,2 +1 @@ bin/star -bin/ustar |