[Pdns-dev] Status report on Solaris integration work

a b tripivceta at hotmail.com
Tue Apr 10 17:08:13 CEST 2012


Just wanted to give everyone a quick status report on the state of Solaris PowerDNS integration.

We broke through to daylight with the PowerDNS recursor server up and running (names redacted to protect the guilty):

> pkginfo -l ACMEpowerdns-recursor
   PKGINST:  ACMEpowerdns-recursor
      NAME:  PowerDNS recursor
  CATEGORY:  application
      ARCH:  i386
   VERSION:  3.3,REV=2012.04.09.14
   BASEDIR:  /opt/acme            
      DESC:  PowerDNS recursor (pdns_recursor(1M)) is a resolving DNS server which runs as a separate process. The authoritative pdns_server(1M) can be configured to proxy recursive queries to the recursor, and optionally overlay authoritative zone data.
    PSTAMP:  host.inter.net20120409164425
  INSTDATE:  Apr 09 2012 16:45
     EMAIL:  please contact your service provider.
    STATUS:  completely installed
     FILES:       28 installed pathnames
                  16 shared pathnames
                   2 linked files
                  16 directories
                   4 executables
               18662 blocks used (approx)

As you can see, this is on SunOS 5.10 (Solaris 10) i86pc platform.

The recursor is now fully integrated into the Solaris Service Management Facility (SMF), and is under SMF control:

> svcs -xv powerdns:recursor
svc:/site/powerdns:recursor (PowerDNS recursive name server)
 State: online since Tue Apr 10 08:23:13 2012
   See: man -M /opt/acme/share/man -s 1M pdns_recursor
   See: /var/svc/log/site-powerdns:recursor.log
Impact: None.

Manual pages have been modified by hand to refer to section 1M instead of 8, to comply with System V Release 4.0 convention. Would it be possible to refactor the Makefile to do this automatically in a future release?

We have reached full compliance with the System V Release 4 filesystem(5) specification: all application files are in /opt/acme, configuration is in /etc/opt/acme/powerdns. Unfortunately, this required patching "config.h" with gpatch(1), as it is not configurable in the current state (Makefile does not currently modify "config.h" based on the value of SYSCONFDIR). rec_control(1M) has been moved to /opt/acme/sbin, since we felt this command will not be run by regular users, and in our view, is a command which would normally be used by the system administrator, rather than a regular user.

The package above seamlessly provides both i386 and amd64 versions in /opt/acme/sbin/i386 and /opt/acme/sbin/amd64; the operating system automatically selects the appropriate binary based on the endianess of the kernel (32- or 64-bit) because we hardlink /opt/acme/sbin/(pdns_recursor|rec_control) to ../lib/isaexec.

The effort was seriously jeopardized with the immediate crash of pdns_recursor thread #2 at start, and we only managed to break through to daylight thanks to Google and an e-mail from Bert Hubert to the mailing list, detailing the very special way that the pdns_recursor(1M) has to be built on Solaris.

Without the Google search and that e-mail, this project would have gotten nowhere really fast. Based on our experience so far with building PowerDNS on Solaris, we would like to ask that the special steps to build the pdns_recursor on Solaris be included in the official documentation.

More information about the Pdns-dev mailing list