update "Patching for pkgsrc" to reflect changes in mkpatches (thanks wiz@netbsd.org...
authormatthiasr <matthiasr@web>
Wed, 16 Mar 2011 12:41:58 +0000 (05:41 -0700)
committerCharlie <root@leaf.dragonflybsd.org>
Wed, 16 Mar 2011 12:41:58 +0000 (05:41 -0700)
docs/howtos/howtoporttodragonfly/index.mdwn

index 0694e9c..ad8ffbb 100644 (file)
@@ -230,16 +230,33 @@ The NetBSD group, which maintains pkgsrc, recommends the use of this definition.
 
 Ideally, a port to DragonFly shall always be at the project level. But realistically, it is faster and easier to modify applications at the pkgsrc level.
 
-Tools for pkgsrc allows you to keep only the patches and some basic information of a package. If you want to use pkgsrc, you'll have to use the tool mkpatches.
+pkgsrc contains the patches and some basic information needed to build a package.
 
-To use this tool, you need to install the pkgtools/pkgdiff package. As indicated earlier in this document, you first need to either extract an existing package or create and extract your own. Then you must keep the original version of each files modified by making a copy of it with the extension .orig. When changes are complete, you can run mkpatches from the directory, say, /usr/pkgsrc/foo/bar. This action will create a set of patches by using the .orig files previously created as a basis. A new directory will be created, here /usr/obj/pkgsrc/foo/bar/work/.newpatches. You then copy this directory like this:
+The `pkgtools/pkgdiff` suite of tools helps with creating and updating patches to a package. Extract the source code into the work directory (by default `/usr/pkgobj/bootstrap/work/pkgsrc/<category>/<package>/work/`) by invoking
 
-       mkpatches
-       mv patches patches.old
-       cp -Rp /usr/obj/pkgsrc/foo/bar/work/.newpatches patches
-       bmake distinfo
+        bmake patch
 
-The last command, bmake distinfo, will regenerate the verification file distinfo. From that moment, you can run bmake clean and rebuild the package at will. If you have any other changes to add, you can remove the package again and repeat these steps.
+from the package directory. This fetches the source code if necessary, extracts it and applies any existing pkgsrc patch, saving the unpatched files with a `.orig` extension in the work directory.
+
+To create a new patch, save a copy of the original file with that same `.orig` extension. If it exists, just keep it – do not overwrite or change `.orig` files or your patches will not apply later on! You may choose to use `pkgvi` from the `pkgdiff` suite to automate this.
+
+You can preview the patches using `pkgdiff <file>`. To generate all patches invoke
+
+        mkpatches
+
+from the package directory (not the work directory!) The new patches will be saved in the `patches/` directory along with backups of the previous patchset. When you are content with the generated patches commit them and update the patch checksums:
+
+        mkpatches -c
+        bmake makepatchsum
+
+You may also revert to the old patches by calling `mkpatches -r`.
+
+Now clean up and try to rebuild your package:
+
+        bmake clean
+        bmake
+
+If you have any other changes to add, you can remove the package again and repeat these steps.
 
 ## Submitting a package in pkgsrc