From: jliddle@rs6000.cmp.ilstu.edu (Jean Liddle)
Subject: proposed site for linux-specific patches
Date: Tue, 25 Aug 1992 22:24:35 GMT
Organization: Illinois State University

Greetings fellow linuxer's,

My site's system administrator has given me permission to set up a
small anonymous ftp site in order to support Linux.  Rather than become
yet another binary/source distribution center I am considering making
our site a center for distributing patches.

The reasoning is as follows:

1) There is an incredible amount of software available for various
   *nix flavors from hundreds of ftp sites around the world.  It
   would, IMHO, be nice to be able to download the sources for
   program A from wherever it is offered, download linux specific
   patches from a linux patch distribution center, and compile the
   program quickly and painlessly.

2) I have spent alot of time porting software (esp. X-Windows stuff)
   only to find that one or more other people have done likewise and
   have posted their binaries about the same time I would have.  Having
   a central point from which patches may be achieved might help
   prevent people from duplicating efforts, or at least make software
   ports more quickly available.   With any luck, this might lead to
   an even wider variety of software being made available (grin).

3) Our space is limited.  Patches for many more programs can be kept
   on disk than entire binary or source distributions.  As this is
   a service which does not appear to exist anywhere else, this
   seems like a reasonable niche for our site to fill.

I would greatly appreciate comments and suggestions as to how this
might best benefit the linux community.  I envision a directory tree
similar to tsx-11's /pub/linux/sources, i.e. perhaps:

pub/linux/-+-Utilities/ (patches to standard gnu/linux utilities
           |             such as gmake, flex, bison, etc. with 
           |             pointers to the original code from the FSF
           |             or other sites)
           +-Applications/ (patches to unix apps to run under linux)
           |
           +-System/ (this would be the only directory with actual
           |          source code in addition to patches, for linux
           |          kernel sources and patches, and system
           |          software such as filesystems, etc.)
           |
           +-X11R5/-+-mit  (X11 stuff.  The tree would resemble
                    |       the mit R5untarred tree structure at
                    |       export, with patches for clients, libs,
                    |       etc., in the appropriate directories)
                    +-contrib

I foresee each patch contained in a .tar.Z file which, in addition
to the patch(es) itself, would also include a README file, explaining
where to get the sources, how to apply the patch, and a short step-by-
step synopsis of how to compile the sources.

For example, foo.tar.Z might untar into files:

foo.patch
README.foo

with the README.foo looking something like (for an X-windows client):

[ start README.foo ]
---
Original Sources:  foo.tar.Z
File Size: 499,241 bytes
Available From:  ftp.site.edu
In: /pub/ftp/directory

Or use ARCHIE to locate foo.tar.Z at other ftp sites.
---
Patch submitted: 7 Aug 1992
By: joe_contributer@contributers.email.address.edu
Compiled with: gcc 2.2.2d
Under: Linux 0.97 pl 1
---
Installation:

1) Get the original sources (foo.tar.Z) from ftp.site.edu
2) Extract sources into /usr/src/foo
   - cd /usr/src
   - uncompress /PATH/foo.tar.Z 
   - tar xvf /PATH/foo.tar
3) Create Makefile
   - edit Imakefile for personal preferences (see /usr/src/foo/README
     for specific options which may be configured and change Imakefile
     accordingly)
   - xmkmf
4) Apply Patch (this might patch Makefile as well)
   - patch -p0 < foo.patch
5) Compile source
   - make depend
   - make all
   - make install
   - make clean
[ end README.patch ]

Also, how does everyone make patches?  I usually have two directories,
one which compiles under linux (/usr/src/foo) and the original sources
as untarred from foo.tar.Z (/usr/src/foo.orig)

From /usr/src I then do:

diff -w -c -r foo.orig foo > foo.patch

Is this the best way to make a patch for the entire directory tree?
Are there other switches people commonly use, which I have overlooked.

Many comments and suggestions are very welcome, as this will be my
first attempt at something like this.

Thanks for your input,

Jean.
-- 
Jean Liddle                                 | == Bill Clinton for President ==
Computer Science, Illinois State University | 
e-mail:  jliddle@ilstu.edu                  | - Carol Mosley Braun for Senat -