#+TITLE: nsd(8) / unbound(8) update
#+DATE: 2020-12-07

How to update =nsd(8)= and =unbound(8)= in OpenBSD base from NLnetLabs
upstream.

* nsd(8)
git clone from the upstream repository on [[https://github.com/NLnetLabs/nsd][github]].
#+begin_src shell
  git pull
  git diff NSD_4_6_1_REL..NSD_4_7_0_REL . ':!.cirrus.yml' ':!tpkg/*' \
      ':!contrib/*' ':!compat/' ':!.gitignore' ':!doc/README.svn' \
      ':!doc/CREDITS' \
      ':!.buildkite/*' ':!makedist.sh' > ~/nsd_4.7.0_upstream.diff
  cd /usr/src/usr.sbin/nsd
  patch -Ep0 < ~/nsd_4.7.0_upstream.diff
  autoheader-2.69
  autoconf-2.69
  make -f Makefile.bsd-wrapper obj
  make -f Makefile.bsd-wrapper clean
  make -f Makefile.bsd-wrapper -j4
#+end_src
We also need to update the version numbers in the man pages. For that
we download the release tar ball and generate a diff:
#+begin_src shell
  diff -ru . /home/florian/nsd-4.7.0/ | fgrep -v Only > sync.diff
#+end_src
The diff then needs to be partially applied, some changes are
intentional.

* unbound(8)
I haven't done an unbound update in some time, this is probably
outdated.
git clone from the upstream repository on [[https://github.com/NLnetLabs/unbound][github]].
#+begin_src shell
  git pull
  git diff release-1.15.0..release-1.16.0 . \
      ':!contrib/*' ':!compat/' ':!README.md' ':!.gitignore' \
      ':!pythonmod/' ':!testdata/' ':!util/configlexer.c' \
      ':!util/configparser.c' ':!util/configparser.h' \
      ':!.buildkite/*' ':!makedist.sh' > ~/unbound_1.16.0_upstream.diff
  cd /usr/src/usr.sbin/unbound
  patch -Ep0 < ~/unbound_1.16.0_upstream.diff
  autoheader-2.69
  autoconf-2.69
  make -f Makefile.bsd-wrapper obj
  make -f Makefile.bsd-wrapper clean
  make -f Makefile.bsd-wrapper -j4
#+end_src
