Compilamos un "Bind" personalizado en SmartOS a partir de PkgSrc
Este artículo fusiona los anteriores:
- Compilar "Bind" en PkgSrc para SmartOS con la opción de "dnstap".
- Compilar "Bind" en PkgSrc para SmartOS con la opción de "dnstap" (II).
- Compilar una versión más moderna de "Bind" que la disponible en PkgSrc para SmartOS.
Adicionalmente queremos tener en cuenta:
- How to pin a "pkgin" package, what is the right way to deploy my own packages?
- Queremos incorporar parches propios.
Advertencia
No voy a repetir detalles de fondo y repasos de la configuración. Para ello debería leer los artículos anteriores.
Con todo lo anterior, queda algo así:
-
Tengo una zona nativa SmartOS con el software PkgSrc. En ella utilizamos la versión apropiada para las zonas donde vamos a desplegar nuestro Bind personalizado:
[root@PkgSrc ~]# run-sandbox 2023Q4-x86_64 Creating /data/chroot/dev-2023Q4-x86_64...done. Unpacking bootstrap-2023Q4-x86_64 into /data/chroot/dev-2023Q4-x86_64...done. Setting up environment...done. Installing additional tools packages...done. [...] Logging in. WARNING: On logout the sandbox will be destroyed. ,---. | ,---. ,---. `---. ,-.-. ,---. ,---. |--- | | `---. pkgbuild-lts | | | | ,---| | | | | | 23.4.0 `---' ` ' ' `---' ` `---' `---' `---' --<root@PkgSrc>-(/data/chroot/dev-2023Q4-x86_64)-<~>-- ->
-
Vamos al directorio donde está Bind y hacemos una copia para por los motivos detallados en How to pin a "pkgin" package, what is the right way to deploy my own packages?:
--<root@PkgSrc>-(/data/chroot/dev-2023Q4-x86_64)-<~>-- -> cd /data/pkgsrc/net/ --<root@PkgSrc>-(/data/chroot/dev-2023Q4-x86_64)-</data/pkgsrc/net>-- -> cp -a bind918 bind918-jcea --<root@PkgSrc>-(/data/chroot/dev-2023Q4-x86_64)-</data/pkgsrc/net>-- -> cd bind918-jcea --<root@PkgSrc>-(/data/chroot/dev-2023Q4-x86_64)-</data/pkgsrc/net/bind918-jcea>-- ->
-
Para compilar la versión de Bind que queremos debemos editar el fichero Makefile (en concreto la línea BIND_VERSION) y luego recalculamos los hashes:
--<root@PkgSrc>-(/data/chroot/dev-2023Q4-x86_64)-</data/pkgsrc/net/bind918-jcea>-- -> vi Makefile --<root@PkgSrc>-(/data/chroot/dev-2023Q4-x86_64)-</data/pkgsrc/net/bind918-jcea>-- -> bmake makesum
-
Copiamos mis parches personales desde el portátil:
jcea@jcea:~/XXXX/patches/bind$ scp * XXXX:/data/chroot/dev-2023Q4-x86_64/data/pkgsrc/net/bind918-jcea/patches/
-
Actualizamos las sumas de control de los parches:
--<root@PkgSrc>-(/data/chroot/dev-2023Q4-x86_64)-</data/pkgsrc/net/bind918-jcea>-- -> bmake makedistinfo
-
Compilamos con soporte dnstap:
--<root@PkgSrc>-(/data/chroot/dev-2023Q4-x86_64)-</data/pkgsrc/net/bind918-jcea>-- -> bmake PKG_OPTIONS.bind=dnstap package
Si hemos cambiado la versión de Bind es posible que los parches no se apliquen correctamente. Explico cómo solucionarlo en Compilar una versión más moderna de "Bind" que la disponible en PkgSrc para SmartOS.
También puede ser que falle la verificación final de la PLIST, si hay cambios en la lista de ficheros instalados, y tendríamos que modificarla a mano.