Subject: Re: [PATCH iproute2-next] Makefile: use systemd-tmpfiles to create /var/lib/arpd

From: Max Gautier <[email-masked]>
Date: Mon, 11 Mar 2024 23:28:31 +0100

On Mon, Mar 11, 2024 at 12:40:03PM -0700, Stephen Hemminger wrote:
> On Mon, 11 Mar 2024 17:57:27 +0100
> Max Gautier <[email-masked]> wrote:
> 
> > Only apply on systemd systems (detected in the configure script).
> > The motivation is to build distributions packages without /var to go
> > towards stateless systems, see link below (TL;DR: provisionning anything
> > outside of /usr on boot).
> > 
> > The feature flag can be overridden on make invocation:
> > `make USE_TMPFILES_D=n DESTDIR=<install_loc> install`
> > 
> > Links: https://0pointer.net/blog/projects/stateless.html
> 
> Why does arpd need such hand holding, it is rarely used, maybe should just not be built.

The commit introducing the install of that directory is quite old

> commit e48f73d6a5e90d2f883e15ccedf4f53d26bb6e74
> Author: Olaf Rempel <[email-masked]>
> Date:   Wed Nov 9 15:25:40 2005 +0100
> 
>     iproute2-2.6.14-051107: missing arpd directory
>     
>     arpd requires a directory (/var/lib/arpd/) to run.
>     see attached patch, which lets iproute create this directroy during install.

For the why, arpd.c, L.671:

dbase = dbopen(dbname, O_CREAT|O_RDWR, 0644, DB_HASH, NULL);
if (dbase == NULL) {
    perror("db_open");
    exit(-1);
}

You think arpd should create its directory itself if it does not exists
?

-- 
Max Gautier