On 2023/10/26 19:54, Klemens Nanni wrote:
> Recycle an old ID from 2016 as new "_dictd".

If we're recycling, I think I'd prefer to start with oldest first.

$ cvs blame user.list|grep '#' | sort -n | head
Annotations for user.list
***************
1.151        (fgsch    10-Mar-11): #639 _polkituser             _polkituser     
sysutils/policykit
1.182        (robert   19-Feb-12): #593 _nginx          _nginx          
www/nginx
1.183        (ajacouto 19-Feb-12): #630 _avahi-autoipd  _avahi-autoipd  
net/avahi
1.195        (fgsch    15-Sep-12): #597                 _kqemu          
emulators/kqemu
1.251        (ajacouto 17-Jul-15): #576 _apache2                _apache2        
www/apache-httpd
1.278        (sthen    06-Jul-16): #522 _xcept          _xcept          
comms/xcept
1.278        (sthen    06-Jul-16): #524                 _mail           
mail/openwebmail
1.278        (sthen    06-Jul-16): #589 _sdpd           _sdpd           
net/bluetooth-tools
1.278        (sthen    06-Jul-16): #596 _heartbeat              _heartbeat      
sysutils/heartbeat
1.278        (sthen    06-Jul-16): #600 _ntlmaps                _ntlmaps        
www/ntlmaps

> Provide an rc script so I can 'rcctl enable dictd' instead of running
> it as my own user.  This way we can make the service listen on localhost
> instead of the wildcard address by default, which I consider a saner
> default.
> 
> It won't start until you provide /etc/dictd.conf, but that's fine.

An rc script seems useful in general, but I think there's a bit
more to be done before this one really adds much benefit.

If you just install the package and start the daemon, it looks like
it starts:

# rcctl start dictd
dictd(ok)

but doesn't really, so that's a bit confusing:

# rcctl check dictd
dictd(failed)

in this case it's obviously due to the missing config file, which could
be checked for in the script, but it also does the same with an invalid
config file.

> The port ships a manual and examples.

The examples are not at all useful for the dictionaries provided in
packages, and with neither an @sample'd config file which the user can
easily find, nor a pkg-readme explaining things, it's quite a bit
more difficult to get started than I'd usually expect for something with
an rc script.

There are also a lot of example files to wade through before
discovering that they're not really useful. Would be nice to
provide a file which can be used directly for @sample that does
something useful with what's available in packages.

(not related to the diff, but noticed while reviewing - some files
aren't useful with the port as built anyway - dictd_popen.conf.in and
dictd_plugin_dbi.conf could be @comment'ed - dict1.conf is in the
server PLIST but it's actually a client config file).

> +# for dictd.rc pexp
> +V_REGEX=     ${V:S/./\./g}
> +SUBST_VARS=  V_REGEX
...
> +pexp="${daemon##*/} ${V_REGEX}: [0-9]+/[0-9]+"

$ pgrep -lf dictd
38602 dictd 1.13.1: 1/1

seems complex - any particular reason why this is better than a
simpler alternative like pexp='^dictd .*' ?

I suppose at least having a process string like this gives a good
indication that it's basically 90's software ;)

Reply via email to