I'd like to weigh in on this again. I played around for a while today with making shar archives out of a combination of info and patch files, using /usr/bin/shar (which is BSD shar). The resulting file is quite similar to the original proposal of tacking the patch file on to the info file, but because it is a shar archive there is no ambiguity about it. And as you can see from the example I will paste below, it is quite readable (by humans): after a bit of header stuff, you see the original info file with an X at the beginning of each line... then there is some intermediate stuff, and you see the patch file with an X at the beginning of each line.
In fact, I would venture to say that if you were only trying to make small changes to the info file, you could edit this file directly, without unshar-ing it to its component parts. I agree with Max, up to a point, that anybody somebody sends you the info file they should send you the corresponding patch file, and that checking out from CVS by date could deliver you the appropriate pair. But this is not so robust, it seems to me... somebody could forget, you could store the files someplace where it wasn't obvious what corresponded to what, it could be tricky to determine the date you need, and so on. The shar archive solution is not a bad compromise. -- Dave P.S. I picked zip because the info and patch were not too big. # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # zip.info # zip.patch # echo x - zip.info sed 's/^X//' >zip.info << 'END-of-zip.info' XPackage: zip XVersion: 2.3 XRevision: 2 XMaintainer: Dave Vasilevsky <[EMAIL PROTECTED]> XLicense: BSD XCustomMirror: << Xnam-US: http://uiarchive.uiuc.edu/mirrors/ftp/ftp.info-zip.org/pub/infozip/src/ Xnam-US: ftp://uiarchive.cso.uiuc.edu/pub/ftp/ftp.info-zip.org/pub/infozip/src/ Xeur-UK: http://www.mirror.ac.uk/sites/ftp.info-zip.org/pub/infozip/src/ Xeur-PL: ftp://sunsite.icm.edu.pl/pub/unix/archiving/info-zip/src/ Xeur-CH: http://sunsite.cnlab-switch.ch/ftp/mirror/infozip/src/ Xeur-CH: ftp://sunsite.cnlab-switch.ch/mirror/infozip/src/ XPrimary: ftp://ftp.info-zip.org/pub/infozip/src/ X<< XSource: mirror:custom:%n23.tar.gz XSource-MD5: 5206a99541f3b0ab90f1baa167392c4f XSourceDirectory: %n-%v XDocFiles: BUGS CHANGES INSTALL LICENSE MANUAL README TODO WHATSNEW WHERE XHomepage: http://www.info-zip.org/pub/infozip/Zip.html XDescription: Compression compatible with pkzip XDescDetail: << XZip is different from gzip in that it allows packing multiple files into a Xsingle archive (without the assistance of tar). It is compatible with pkzip, Xpkunzip, and other Windows zip utilities. X XThis utility is necessary to install several packages in a pure Darwin Xinstallation, as Darwin does not come with zip/unzip. X<< XPatch: %n.patch XCompileScript: make CC='gcc -prebind' -f unix/Makefile generic XInstallScript: make -f unix/Makefile install BINDIR=%i/bin MANDIR=%i/share/man/man1 XRecommends: unzip END-of-zip.info echo x - zip.patch sed 's/^X//' >zip.patch << 'END-of-zip.patch' Xdiff -Naur zip-2.3/unix/Makefile zip-new/unix/Makefile X--- zip-2.3/unix/Makefile Sun Nov 28 21:22:42 1999 X+++ zip-new/unix/Makefile Thu May 16 21:19:17 2002 X@@ -47,7 +47,7 @@ X # LFLAGS2 flags after obj file list (libraries, etc) X CFLAGS = -O2 -I. -DUNIX $(LOCAL_ZIP) X LFLAGS1 = X-LFLAGS2 = -s X+LFLAGS2 = X X # object file lists X OBJZ = zip.o zipfile.o zipup.o fileio.o util.o globals.o crypt.o ttyio.o \ Xdiff -Naur zip-2.3/unix/configure zip-new/unix/configure X--- zip-2.3/unix/configure Tue Apr 27 12:49:05 1999 X+++ zip-new/unix/configure Thu May 16 21:42:46 2002 X@@ -13,7 +13,7 @@ X X CC=${1-cc} X CFLAGS=${2-"-O2 -I. -DUNIX"} X-LFLAGS1="-s" X+LFLAGS1= X LN="ln -s" X X echo Check for the C preprocessor Xdiff -Naur zip-2.3/zip.c zip-new/zip.c X--- zip-2.3/zip.c Tue Nov 16 12:08:10 1999 X+++ zip-new/zip.c Thu May 16 21:33:45 2002 X@@ -248,7 +248,7 @@ X if (PERR(c)) X perror("zip I/O error"); X fflush(mesg); X- fprintf(stderr, "\nzip error: %s (%s)\n", errors[c-1], h); X+ fprintf(stderr, "\nzip error: %s (%s)\n", zip_errors[c-1], h); X } X if (tempzip != NULL) X { Xdiff -Naur zip-2.3/zipcloak.c zip-new/zipcloak.c X--- zip-2.3/zipcloak.c Sun Nov 7 02:29:59 1999 X+++ zip-new/zipcloak.c Thu May 16 21:48:20 2002 X@@ -55,7 +55,7 @@ X char *msg; /* message about how it happened */ X { X if (PERR(code)) perror("zipcloak error"); X- fprintf(stderr, "zipcloak error: %s (%s)\n", errors[code-1], msg); X+ fprintf(stderr, "zipcloak error: %s (%s)\n", zip_errors[code-1], msg); X if (tempzf != NULL) fclose(tempzf); X if (tempzip != NULL) { X destroy(tempzip); Xdiff -Naur zip-2.3/ziperr.h zip-new/ziperr.h X--- zip-2.3/ziperr.h Sun Nov 7 02:31:27 1999 X+++ zip-new/ziperr.h Thu May 16 21:33:04 2002 X@@ -39,7 +39,7 @@ X X #ifdef GLOBALS X /* Error messages for the ziperr() function in the zip programs */ X-char *errors[ZE_MAXERR] = { X+char *zip_errors[ZE_MAXERR] = { X /* 1 */ "", X /* 2 */ "Unexpected end of zip file", X /* 3 */ "Zip file structure invalid", X@@ -63,5 +63,5 @@ X # endif X }; X #else /* !GLOBALS */ X-extern char *errors[ZE_MAXERR]; /* Error messages for ziperr() */ X+extern char *zip_errors[ZE_MAXERR]; /* Error messages for ziperr() */ X #endif /* ?GLOBALS */ Xdiff -Naur zip-2.3/zipnote.c zip-new/zipnote.c X--- zip-2.3/zipnote.c Sun Nov 7 02:30:22 1999 X+++ zip-new/zipnote.c Thu May 16 21:45:56 2002 X@@ -59,7 +59,7 @@ X { X if (PERR(c)) X perror("zipnote error"); X- fprintf(stderr, "zipnote error: %s (%s)\n", errors[c-1], h); X+ fprintf(stderr, "zipnote error: %s (%s)\n", zip_errors[c-1], h); X if (tempzf != NULL) X fclose(tempzf); X if (tempzip != NULL) Xdiff -Naur zip-2.3/zipsplit.c zip-new/zipsplit.c X--- zip-2.3/zipsplit.c Sun Nov 7 02:30:31 1999 X+++ zip-new/zipsplit.c Thu May 16 21:48:30 2002 X@@ -139,7 +139,7 @@ X { X if (PERR(c)) X perror("zipsplit error"); X- fprintf(stderr, "zipsplit error: %s (%s)\n", errors[c-1], h); X+ fprintf(stderr, "zipsplit error: %s (%s)\n", zip_errors[c-1], h); X if (indexmade) X { X strcpy(name, INDEX); END-of-zip.patch exit ------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 _______________________________________________ Fink-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/fink-devel