diff mbox series

[1/1] package/nfs-utils: fix unit dependencies without systemd on build host

Message ID 20241106100210.1547916-1-anssi.hannula@bitwise.fi
State Accepted
Headers show
Series [1/1] package/nfs-utils: fix unit dependencies without systemd on build host | expand

Commit Message

Anssi Hannula Nov. 6, 2024, 10:02 a.m. UTC
nfs-utils configure script uses "systemd-escape" to determine the
rpc_pipefs mount point unit name in the non-default case.

If the host build system has no systemd this will silently result in an
empty name, causing rpc_pipefs.target to incorrectly depend on ".mount".

Fix that by depending on host-systemd for build.

Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>
---
 package/nfs-utils/nfs-utils.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Petr Vorel Nov. 14, 2024, 9:04 p.m. UTC | #1
Hi Anssi, all,

> nfs-utils configure script uses "systemd-escape" to determine the
> rpc_pipefs mount point unit name in the non-default case.

> If the host build system has no systemd this will silently result in an
> empty name, causing rpc_pipefs.target to incorrectly depend on ".mount".

> Fix that by depending on host-systemd for build.

> Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>
> ---
>  package/nfs-utils/nfs-utils.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

> diff --git a/package/nfs-utils/nfs-utils.mk b/package/nfs-utils/nfs-utils.mk
> index b757e3e51d..9ea3bae79d 100644
> --- a/package/nfs-utils/nfs-utils.mk
> +++ b/package/nfs-utils/nfs-utils.mk
> @@ -79,7 +79,7 @@ NFS_UTILS_POST_INSTALL_TARGET_HOOKS += NFS_UTILS_INSTALL_FIXUP

>  ifeq ($(BR2_INIT_SYSTEMD),y)
>  NFS_UTILS_CONF_OPTS += --with-systemd=/usr/lib/systemd/system
> -NFS_UTILS_DEPENDENCIES += systemd
> +NFS_UTILS_DEPENDENCIES += systemd host-systemd

Given that majority of the developers use Buildroot with Linux distro with
systemd I'm not happy about all of then need to build host-systemd.

Is there any better solution for this? If not let's fix the problem with
accepting the dependency.

Acked-by: Petr Vorel <petr.vorel@gmail.com>

Kind regards,
Petr

>  else
>  NFS_UTILS_CONF_OPTS += --without-systemd
>  endif
Petr Vorel Nov. 14, 2024, 9:42 p.m. UTC | #2
Hi Anssi,

> nfs-utils configure script uses "systemd-escape" to determine the
> rpc_pipefs mount point unit name in the non-default case.

> If the host build system has no systemd this will silently result in an
> empty name, causing rpc_pipefs.target to incorrectly depend on ".mount".

> Fix that by depending on host-systemd for build.

I dared to send a patch upstream to detect systemd-escape. Feel free to put
there more info (I wonder what distro you use for development).

https://lore.kernel.org/linux-nfs/20241114214044.1099257-1-petr.vorel@gmail.com/T/#u

Kind regards,
Petr
Arnout Vandecappelle Dec. 4, 2024, 8:29 p.m. UTC | #3
On 14/11/2024 22:04, Petr Vorel wrote:
> Hi Anssi, all,
> 
>> nfs-utils configure script uses "systemd-escape" to determine the
>> rpc_pipefs mount point unit name in the non-default case.
> 
>> If the host build system has no systemd this will silently result in an
>> empty name, causing rpc_pipefs.target to incorrectly depend on ".mount".
> 
>> Fix that by depending on host-systemd for build.
> 
>> Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>
>> ---
>>   package/nfs-utils/nfs-utils.mk | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
>> diff --git a/package/nfs-utils/nfs-utils.mk b/package/nfs-utils/nfs-utils.mk
>> index b757e3e51d..9ea3bae79d 100644
>> --- a/package/nfs-utils/nfs-utils.mk
>> +++ b/package/nfs-utils/nfs-utils.mk
>> @@ -79,7 +79,7 @@ NFS_UTILS_POST_INSTALL_TARGET_HOOKS += NFS_UTILS_INSTALL_FIXUP
> 
>>   ifeq ($(BR2_INIT_SYSTEMD),y)
>>   NFS_UTILS_CONF_OPTS += --with-systemd=/usr/lib/systemd/system
>> -NFS_UTILS_DEPENDENCIES += systemd
>> +NFS_UTILS_DEPENDENCIES += systemd host-systemd
> 
> Given that majority of the developers use Buildroot with Linux distro with
> systemd I'm not happy about all of then need to build host-systemd.

  Since systemd typically has a lot of dependencies (including host-python3), 
and a large part of them are also needed for host-systemd, and the build time of 
host-systemd is only about a minute, I don't think this is such a big deal.

  Regards,
  Arnout

> 
> Is there any better solution for this? If not let's fix the problem with
> accepting the dependency.
> 
> Acked-by: Petr Vorel <petr.vorel@gmail.com>
> 
> Kind regards,
> Petr
> 
>>   else
>>   NFS_UTILS_CONF_OPTS += --without-systemd
>>   endif
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Arnout Vandecappelle Dec. 4, 2024, 8:31 p.m. UTC | #4
On 06/11/2024 11:02, Anssi Hannula via buildroot wrote:
> nfs-utils configure script uses "systemd-escape" to determine the
> rpc_pipefs mount point unit name in the non-default case.
> 
> If the host build system has no systemd this will silently result in an
> empty name, causing rpc_pipefs.target to incorrectly depend on ".mount".
> 
> Fix that by depending on host-systemd for build.
> 
> Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>

  Applied to master, thanks.

  Regards,
  Arnout

> ---
>   package/nfs-utils/nfs-utils.mk | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/package/nfs-utils/nfs-utils.mk b/package/nfs-utils/nfs-utils.mk
> index b757e3e51d..9ea3bae79d 100644
> --- a/package/nfs-utils/nfs-utils.mk
> +++ b/package/nfs-utils/nfs-utils.mk
> @@ -79,7 +79,7 @@ NFS_UTILS_POST_INSTALL_TARGET_HOOKS += NFS_UTILS_INSTALL_FIXUP
>   
>   ifeq ($(BR2_INIT_SYSTEMD),y)
>   NFS_UTILS_CONF_OPTS += --with-systemd=/usr/lib/systemd/system
> -NFS_UTILS_DEPENDENCIES += systemd
> +NFS_UTILS_DEPENDENCIES += systemd host-systemd
>   else
>   NFS_UTILS_CONF_OPTS += --without-systemd
>   endif
Peter Korsgaard Dec. 6, 2024, 10:25 p.m. UTC | #5
>>>>> "Anssi" == Anssi Hannula via buildroot <buildroot@buildroot.org> writes:

 > nfs-utils configure script uses "systemd-escape" to determine the
 > rpc_pipefs mount point unit name in the non-default case.

 > If the host build system has no systemd this will silently result in an
 > empty name, causing rpc_pipefs.target to incorrectly depend on ".mount".

 > Fix that by depending on host-systemd for build.

 > Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>

Committed to 2024.02.x and 2024.08.x, thanks.
diff mbox series

Patch

diff --git a/package/nfs-utils/nfs-utils.mk b/package/nfs-utils/nfs-utils.mk
index b757e3e51d..9ea3bae79d 100644
--- a/package/nfs-utils/nfs-utils.mk
+++ b/package/nfs-utils/nfs-utils.mk
@@ -79,7 +79,7 @@  NFS_UTILS_POST_INSTALL_TARGET_HOOKS += NFS_UTILS_INSTALL_FIXUP
 
 ifeq ($(BR2_INIT_SYSTEMD),y)
 NFS_UTILS_CONF_OPTS += --with-systemd=/usr/lib/systemd/system
-NFS_UTILS_DEPENDENCIES += systemd
+NFS_UTILS_DEPENDENCIES += systemd host-systemd
 else
 NFS_UTILS_CONF_OPTS += --without-systemd
 endif