On 2007-10-16 15:10, "Aryeh M. Friedman" <[EMAIL PROTECTED]> wrote: > I found and fixed a bug in one of the ports how do I make a patch file > (I only changed one line in one file) and who do I send it to?
If you know precisely the file, you can use diff(1) to generate the patch file. Note that patch files for ports have to be constructed in a "special" way, so that the "make patch" target can find them and apply them correctly. 1. Keep a copy of the patched file around, i.e. at `/tmp/foo.c' 2. Clean-up the "work" subdirectory of the port, and extract a clean version of the port's patched source: # cd /usr/ports/editors/foobar # rm -fr work # make patch 3. Enter the work/foobar-1.0 build directory of the port, and save the original, unpatched file you want to modify at port-build-time: # cd work/foobar-1.0 # cp src/foo.c src/foo.c.orig 4. Now overwrite the build-tree copy of `foo.c' with the saved copy from step 1. # cp /tmp/foo.c src/foo.c 5. Use the diff utility from within the `work/foobar-1.0' tree to generate a ports-based patch: # pwd /usr/ports/editors/foobar/work/foobar-1.0 # diff -u src/foo.c.orig src/foo.c > /tmp/patch-src-foo.c 6. Now that you have the 'fix' as a patch in /tmp/patch-src-foo.c, you can remove the temporary `work' directory of the port, and install the patch in `files' as a normal ports-based-patch: # cd /usr/ports/editors/foobar # rm -fr work # cp -i /tmp/patch-src-foo.c files/ If there's already an existing `patch-src-foo.c' file in `files', the last command will prompt you for overwriting the old patch. Don't do it. Just pick a non-conflicting name for the second patch which applies on top of `src/foo.c', i.e.: # cp -i /tmp/patch-src-foo.c files/patch-src-foo.c-bugfixname where `bugfixname' is a tag which can help the port maintainers understand why this patchfile is needed. After you have installed `patch-src-foo.c' in the `files' subdirectory of the port, you should be able to run: # cd /usr/ports/editors/foobar # make patch and your patchfile should be applied automatically. _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"