[Buildroot] [PATCH 1/1] package/apparmor: fix per-package build with apache

Thomas Petazzoni thomas.petazzoni at bootlin.com
Sat Sep 5 13:16:15 UTC 2020


Hello,

On Sat, 5 Sep 2020 14:50:58 +0200
"Yann E. MORIN" <yann.morin.1998 at free.fr> wrote:

> So, it is calling libtool from apache's host dir, and consequently, it
> is calling gcc from apache's host dir, and uses include paths that point
> to apache's sysroot.
> 
> This is no good.
> 
> In theory, we would want to fix apxs so we can only use path to the
> current package's sysroot. This could probably be achievable, because:
> 
>   - apxs is a perl script, so we could either sed it to replace paths,
>     but this is not noce, or we could fix it to introduce a variable
>     that contains the base directory to look from;
> 
>   - there is a config_vars.mk file that contains hard-coded paths, which
>     we could probably modify to also include a base directory to look
>     from. For example, we could introduce "APXS_BASE_DIR = blabla", and
>     then, right before the condifure step of dependant packages, fixup
>     that file to inject the correct PPD base directory.
> 
> This would not be very different from the fixups we apply to the meson's
> cross-compilation.conf configuration file, but there we do have an edge,
> in that this is done by an infra.
> 
> However, for this apxs configs_var.mk, it is not so trivial, because
> this is not part of an infra, and we do not have a way for packages to
> export a hook that other packages would have to run automatically.
> 
> We could probably have the apache package provide this as a set of
> macros:
> 
>     define APACHE_APXS_FIXUPS
>         $(SED) blablaba $(STAGING_DIR)/usr/build/config_vars.mk
>     endef
> 
> and then packages would do something like:
> 
>     APPARMOR_PRE_CONFIGURE_HOOKS += APACHE_APXS_FIXUPS
> 
> But:
> 
>  1. this is not so clean, because of the cross-package reference,
> 
>  2. we so far have only two packages using apxs, and that is probably
>     too-big a hammer to introduce this generic tweaking...
> 
> So, I am still a bit undecided whether to apply this quick workaround
> your patch is, or to require a full-blown, complete and correct fix...
> 
> Thomas, Peter, Arnout, thoughts?

We're already fixing a similar issue in the apache package as follows:

ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
define APACHE_FIXUP_APR_LIBTOOL
	$(SED) "s@$(PER_PACKAGE_DIR)/[^/]\+/@$(PER_PACKAGE_DIR)/apache/@g" \
		$(STAGING_DIR)/usr/build-1/libtool
endef
APACHE_POST_CONFIGURE_HOOKS += APACHE_FIXUP_APR_LIBTOOL
endif

Any reason not to do the same here ?

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


More information about the buildroot mailing list