a5061ecec5
An effort was started some time ago to consolidate all internal documentation in the git tree. However, this was just an accumulation of files in various formats without any strucutre or way to browse it, which results in no one even knowing that we have docs here. This converts most of the files to restructuredtext and uses Sphinx to generate an HTML browsable user manual (with a table of content and a first attempt to put things in a global hierarchy). There are almost no changes to the documentation content in this commit (some obviously obsolete things were removed). The plan is to get the toolchain up and running to make these docs easily available, and only then see about improving the content. We can migrate some things off the wiki and website, and rework the table of contents to have some more hierarchy levels because currently it's a bit messy. Change-Id: I924ac9dc6e753887ab56f18a09bdb0a1e1793bfd Reviewed-on: https://review.haiku-os.org/c/haiku/+/4370 Reviewed-by: Niels Sascha Reedijk <niels.reedijk@gmail.com>
37 lines
1.6 KiB
ReStructuredText
37 lines
1.6 KiB
ReStructuredText
How to Merge Patches from NetBSD Trunk
|
||
======================================
|
||
|
||
Using the NetBSD CVS is a pain, so instead, the preferred thing to do is
|
||
to use `the official Git mirror <https://github.com/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).
|