From b75bd04b4a137dd38103656de960cf0afca01a3f Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Mon, 29 Jun 2015 11:35:04 -0400 Subject: [PATCH] netresolv: Add a quick document on how to synchronize with NetBSD. --- .../HowTo-Synchronize_with_NetBSD.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/kits/network/netresolv/HowTo-Synchronize_with_NetBSD.md diff --git a/src/kits/network/netresolv/HowTo-Synchronize_with_NetBSD.md b/src/kits/network/netresolv/HowTo-Synchronize_with_NetBSD.md new file mode 100644 index 0000000000..f7af1706d9 --- /dev/null +++ b/src/kits/network/netresolv/HowTo-Synchronize_with_NetBSD.md @@ -0,0 +1,30 @@ +How to Merge Patches from NetBSD Trunk +============================================ +Using the NetBSD CVS is a pain, so instead, the preferred thing to do is to use +[IIJ's Git mirror](https://github.com/IIJ-NetBSD/netbsd-src). The code here is +in the tree at a few places:`inet` is at `lib/libc/inet`, irs is scattered +across the tree, and `resolv` is at `lib/libc/resolv`. + +The preferable way to merge is to take the last commit merged from IIJ's mirror +(can be found in the merging commit in Haiku, if the merger has done their work +properly) and check all commits since then to see if they apply or not (some +apply to documentation we don't have, etc.) Cherry-pick the ones that do, and +download them as git-format-patch patches (by adding `.patch` onto the end of the +commit URL). + +To convert the patches to have the correct paths to the resolv/inet/etc. code, use +`sed`: +``` +sed s%lib/libc/resolv%src/kits/network/netresolv/resolv%g -i *.patch +``` +(You'll need to use similar commands for the `inet` and `irs` code.) + +Then apply the patches using `git apply --reject file.patch`. Git will spew a lot of +errors about files in the patch that aren't in the tree, and then it will warn that +some hunks are being rejected. Review the rejected hunks **VERY CAREFULLY**, as +some code in Haiku's NetResolv is not in NetBSD's and vice versa, and so some patches +may not apply cleanly because of that. You might have to resort to merging those +hunks by hand, if they apply at all to Haiku's code. + +Commit the changes all at once, but list all the commits merged from NetBSD +in the commit message (see previous merges for the style to follow).