Bug in r361898 (was Re: poudriere: services_mkdb recompile with larger PROTOMAX)

From: Daniel Eischen <deischen_at_freebsd.org>
Date: Thu, 31 Dec 2020 17:47:16 -0500 (EST)
On Thu, 31 Dec 2020, Daniel Eischen wrote:

> I see this message in src/UPDATING:
>
> 20201216:
>  The services database has been updated to cover more of the basic
>  services expected in a modern system. The database is big enough
>  that it will cause issues in mergemaster in Releases previous to
>  12.2 and 11.3, or in very old current systems from before r358154.
>
> I'm trying to update a poudriere jail from a freshly built -current
> system (r368820):
>
>   FreeBSD vega.my.domain 13.0-CURRENT FreeBSD 13.0-CURRENT #0 r368820
>   Wed Dec 30 15:55:06 EST 2020
>
> I've tried running this command twice:
>
>   export MAKEOBJDIRPREFIX=/opt/FreeBSD/obj/head.obj
>   poudriere jail -u -j 13amd64
>
> [ /opt/FreeBSD/obj/head.obj is my freshly built (r368820) obj tree is ]
>
> services_mkdb was updated in the jail on the first pass:
>
>   # ls -l /usr/local/poudriere/jails/13amd64/usr/sbin/services_mkdb
>   -r-xr-xr-x  1 root  wheel  15288 Dec 31 13:02 
> /usr/local/poudriere/jails/13amd64/usr/sbin/services_mkdb
>
> But as on the first pass of 'poudriere jail -u -j 13amd64`, I still get
> the following error:
>
> ...
>
> --- _CONFSINS_services ---
> install -N /opt/FreeBSD/svn/head/etc  -C -o root  -g wheel -m 644 
> /opt/FreeBSD/svn/head/usr.sbin/services_mkdb/services 
> /usr/local/poudriere/jails/13amd64/etc/services
> --- installconfig_subdir_usr.bin ---
> --- installconfig_subdir_usr.bin/nice ---
> ===> usr.bin/nice (installconfig)
> --- installconfig_subdir_usr.sbin ---
> --- afterinstallconfig ---
> --- installconfig_subdir_lib ---
> --- installconfig_subdir_lib/ncurses ---
> --- installconfig_subdir_lib/ncurses/ncurses ---
> ===> lib/ncurses/ncurses (installconfig)
> --- installconfig_subdir_usr.sbin ---
> services_mkdb -l -q -o /usr/local/poudriere/jails/13amd64/var/db/services.db 
> /usr/local/poudriere/jails/13amd64/etc/services
> --- installconfig_subdir_usr.bin ---
> --- installconfig_subdir_usr.bin/nl ---
> ===> usr.bin/nl (installconfig)
> --- installconfig_subdir_usr.sbin ---
> services_mkdb: Ran out of protocols adding `divert'; recompile with larger 
> PROTOMAX
>
> What's the work-around for this?  services_mkdb seems to have been
> updated on the first pass off 'poudiere jail -u ...', but still fails
> on the second pass.

A typo (tdp was used instead of tcp) in the services file seems to
have been introduced in r361898.  This is the patch that fixes the
problem for me.

Index: usr.sbin/services_mkdb/services
===================================================================
--- usr.sbin/services_mkdb/services (revision 368820)
+++ usr.sbin/services_mkdb/services (working copy)
_at__at_ -1788,7 +1788,7 _at__at_
  iscsi-target 3260/udp   # iSCSI port
  mysql  3306/tcp   #MySQL
  mysql  3306/udp   #MySQL
-ms-wbt-server 3389/tdp   rdp #MS WBT Server
+ms-wbt-server 3389/tcp   rdp #MS WBT Server
  ms-wbt-server 3389/udp   #MS WBT Server
  efi-lm  3392/tcp   #EFI License Management
  efi-lm  3392/udp   #EFI License Management

-- 
DE
Received on Thu Dec 31 2020 - 21:47:22 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:26 UTC