Wednesday, November 29, 2006

Binpatch Updates Coming Soon

OpenBSDI know, I know, I know... I've fallen behind with posting binpatch updates.

Previously, I had been maintaining several binpatch build environments to support multiple kernels (GENERIC, GENERIC.MP, GENERIC with RAIDFrame support, GENERIC.MP with RAIDFrame support, GENERIC.MP with pcibios disabled and GENERIC.MP with RAIDFrame support with pcibios disabled) and sendmail with SASL support.

This was becoming too much to handle. Plus, I wanted to add some features. Here's a (probably incomplete) list of enhancements coming soon (some changes were already in my binpatch files):

  • Create a /var/db/binpatch directory to track which binpatches have been installed. Each file in that directory will contain a list of files modified by the patch.

  • Add the ability to include a LICENSE file for the binpatch tarballs in /var/db/binpatch/

  • Compile multiple kernels by setting "KERNEL=GENERIC GENERIC.MP CUSTOM_RAID ..." in Makefile. Each kernel will be compiled. In the example given, the following kernel files would be created: bsd,, bsd.GENERIC_RAID.

  • Ability to sign binpatch tarballs using gzsig (suggested by Gerardo Santana, creator of Binpatch).

  • Ability to ALSO compile a SASL-ized version of sendmail.

Right now, everything is done except the SASL version of sendmail. I'm still working this part out, but my vision is that when setting the patch information in the Makefile, you'll add a "_sasl" build dependency for sendmail patches like this:

001_sendmail 003_sendmail2 005_sendmail3: _sasl
          cd ${WRKSRC}/gnu/usr.sbin/sendmail && \
          (${_obj}; ${_depend}; ${_build})

The result of this will be:

  • Existence of cyrus-sasl2 will be checked.

  • If a work-sasl (or something) directory does not exist, sendmail specific sources and /usr/lib/include are extracted into the work-sasl directory.

  • If a "base" SASL-ized sendmail has not been built, an unpatched SASL sendmail binpatch will be created.

  • The patch specified in PATCH will be applied to the work-sasl source and sendmail will be built with WANT_SMTPAUTH=1.

  • Then, the main work source directory patched and an un-SASL-ized version of sendmail will be built.

Hopefully this will be done sometime next week.