Submitting Patches to the FreeDOS FreeCOM and Kernel Projects


Quick Links
FreeDOS Files
FreeDOS.ORG
Main Page

Developers' Page

List of Commands

COM076


How to submit patches to the FreeDOS Project
John Price linux-guru@gcfl.net
27-Apr-1999

Both the FreeDOS kernel and FreeCom have a "history.txt" file where people that contribute to either project should add comments about what changes they have implemented. There are no strict guidelines for these files now, but you can look at the file to see how everyone else does it. Most people just include what changes they made (and why if necessary) and sometimes specify what files they changed.

When you create the patch file (see below) it will contain the changes to the history.txt file, as well as all the other changes you made. Then when I get it, I can read your entry in the history.txt file and see what all you did.

Making patch files:

The "diff" program referred to within is available for UN*X and DOS OS's. Both versions are available on the GCFL FTP site at ftp://ftp.gcfl.net/FreeDOS/tools.

The patch files I refer to are really just the output that the diff program creates. I call them that because I use a program called "patch" to merge your patch file into my source code. Sorry if this seems confusing.

Here is a description of the diff program from the GNU web page (http://www.gnu.org):

"You can use the 'diff' command to show differences between two files, or each corresponding file in two directories. 'diff' outputs differences between files line by line in any of several formats, selectable by command line options. This set of differences is often called a 'diff' or 'patch.' For files that are identical, 'diff' normally produces no output; for binary (non-text) files, 'diff' normally reports only that they are different."

Points to remember:

  1. It is VERY important that you specify the name of the release (the version, i.e. com075a, or build 2010) that your patches were generated from!
  2. You should always get the latest source code available. Patches submitted that are changes to old source code are no good to the project. If they are only a revision or two behind, then we can work with them, but it's usually a manual process (ouch!).
  3. You should make a copy of the latest source code, and then change that code so that you will end up with two directories, an original directory (with the original source), and a new directory (with the original source plus all your revolutionary changes). This is not too important since you can always re-download the latest source code from the site, but who wants to download source twice?

These are the command line options I recommend for creating patch files for the FreeDOS project.

-r or --recursive
When comparing directories, recursively compare any subdirectories found.
-b or --ignore-space-change
Ignore changes in amount of white space.
-U 5 or --unified=5
Use the unified output format, showing 5 lines of context.
-d or --minimal
Change the algorithm to perhaps find a smaller set of changes.
-N or --new-file
In directory comparison, if a file is found in only one directory, treat it as present but empty in the other directory.
-w or --ignore-all-space
Ignore white space when comparing lines.
-B or --ignore-blank-lines
Ignore changes that just insert or delete blank lines
Example:

If you have version 0.76b of FreeCom in the directory "FREECOM\ORIG", and a copy of the same source tree, but with your changes included, in a directory called "FREECOM\NEW", and you want to create a patch file called "patch.txt", then you need to change to the directory "FREECOM", and issue this command:


diff -bBdNrw -U5 ORIG NEW > patch.txt

Always put the original directory name first, then the new directory name.

You can upload your patches to ftp://ftp.gcfl.net/incoming and send an email to John Price (linux-guru@gcfl.net).

[ Mailing List ] - [ Bugs ] - [ To Do ] - [ Wish List ] - [ History ]
[ Contributors ] - [ Distributions and Patches ] - [ Commands ]
[ Developer's Page ]

Page created and maintained by Rob Lake (with a little help from John Price and James Hall :-)