[Buildroot] [PATCH 1/4] package/{skalibs, execline, s6, s6-dns}: change prefix and shared options

Arnout Vandecappelle arnout at mind.be
Wed Apr 7 19:02:41 UTC 2021



On 07/04/2021 00:47, Dick Olsson via buildroot wrote:
> diff --git a/package/skalibs/skalibs.mk b/package/skalibs/skalibs.mk
> index f92859ff26..fe042604c2 100644
> --- a/package/skalibs/skalibs.mk
> +++ b/package/skalibs/skalibs.mk
> @@ -10,12 +10,24 @@ SKALIBS_LICENSE = ISC
>  SKALIBS_LICENSE_FILES = COPYING
>  SKALIBS_INSTALL_STAGING = YES
>  
> +SKALIBS_DEFAULT_PATH = $(call qstrip,$(BR2_SYSTEM_DEFAULT_PATH))
>  SKALIBS_CONF_OPTS = \
> -	--prefix=/usr \
> -	--with-default-path=/sbin:/usr/sbin:/bin:/usr/bin \
> +	--prefix=/ \
> +	--libexecdir=/libexec \
> +	--with-default-path=$(SKALIBS_DEFAULT_PATH) \
>  	--with-sysdep-devurandom=yes \
>  	$(SHARED_STATIC_LIBS_OPTS)
>  
> +# This variable can be used by dependant packages.
> +SHARED_SKALIBS_CONF_OPTS = \
> +	--prefix=/ \
> +	--with-sysdeps=$(STAGING_DIR)/lib/skalibs/sysdeps \
> +	--with-include=$(STAGING_DIR)/include \
> +	--with-dynlib=$(STAGING_DIR)/lib \
> +	--with-lib=$(STAGING_DIR)/lib/skalibs \
> +	$(if $(BR2_STATIC_LIBS),,--disable-allstatic) \
> +	$(SHARED_STATIC_LIBS_OPTS)
> +

 Hm, I'm not sure I like this...

 The good is obviously that it allows you to change all skarnet packages in one
fell swoop when that is needed.

 However, there are also some disadvantages.

 The main disadvantage is that it's harder for people to understand how e.g. the
execline package is configured. When you look at the execline.mk file, you don't
see what is the contents of the SHARED_SKALIBS_CONF_OPTS variable.

 Another disadvantage is that you may introduce a dependency on the order in
which the different mk files are included. In this case it's fine because the
variable is only used inside a rule, which is always expanded after all
makefiles have been processed. But in general it's risky.

 If there is shared stuff, then I personally prefer to make sure that it is made
clear by putting the packages that "belong together" in a subdirectory, and have
the shared stuff in the .mk file of that subdirectory. freescale-imx is an
example of that. However, we try to avoid subdirectories because it's annoying
for other reasons, so those are conflicting forces...


 I'm not really sure about all this, so I put the other maintainers in Cc of
this mail.


 If this change turns out to be acceptable, there's a small nitpick I'd like to
add: since SHARED_SKALIBS_CONF_OPTS is not used by this package itself, you
should put it at the very end of the file, after the generic-package.

 Oh, and please run check-package on it. SHARED_FOO_ is not allowed, it would
have to be FOO_SHARED_.

 Oh, and also the refactoring should be in a separate commit from the change of
/usr -> /


 Regards,
 Arnout

>  define SKALIBS_CONFIGURE_CMDS
>  	(cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure $(SKALIBS_CONF_OPTS))
>  endef



More information about the buildroot mailing list