[Buildroot] [PATCH v4] package/apache: add option BR2_PACKAGE_APACHE_DAEMON

Giulio Benetti giulio.benetti at benettiengineering.com
Fri Sep 22 21:09:50 UTC 2023


Hi Yann, All,

On 21/09/23 22:56, Yann E. MORIN wrote:
> Giulio, All,
> 
> You sent your v4 while I was writing my review of v3, so you could not
> have adressed my comments. Concurrency in computers is really hard, but
> is even harder with humans! ;-)
> 
> This is however a good opportunity to add what I forgot...
> 
> On 2023-09-21 22:32 +0200, Giulio Benetti spake thusly:
>> From: Giulio Benetti <giulio.benetti+tekvox at benettiengineering.com>
>>
>> With option BR2_PACKAGE_APACHE_DAEMON disabled only htdigest and htpasswd
>> are built and installed. By default BR2_PACKAGE_APACHE_DAEMON is enabled
>> and entire apache daemon is built. This is useful for Mongoose credentials
>> handling.
> 
> Your commit log must not describe the commit; it must explain it. Start
> with the problem you have, and then explain how you fixed it. E.g.:
> 
>      package/apache: add option to disable server
> 
>      Other packages (e.g. mongoose) can use htdigest and htpasswd, but
>      those are only available with apache.
> 
>      We don't want to build the whole apache server just for those tools,
>      so we add an option to disable the server; it is enabled by default
>      for legacy purposes (so that existing (def)configs still work).
> 
> (adapt the following:)
> 
>      However, there is not way to tell the apache buildsystem to only
>      build those two tools, so we have to provide custom build and
>      install commands; they are statically linked against the apache
>      internal helper libs, so we have nothing to install besides those
>      two executables.
> 
> About that last part: if --disable-http et al. really do the job, then
> it is moot, of course: adapt it appropriately.

Thanks a lot for commit log suggestion!

Going to send V5(and wait a bit :-))

Best regards
-- 
Giulio Benetti
CEO&CTO at Benetti Engineering sas

> Regards,
> Yann E. MORIN.
> 
>> Cc: Jim Reinhart <jimr at tekvox.com>
>> Cc: James Autry <jautry at tekvox.com>
>> Cc: Matthew Maron <matthewm at tekvox.com>
>> Signed-off-by: Giulio Benetti <giulio.benetti+tekvox at benettiengineering.com>
>> ---
>> V1->V2:
>> * Hide "External Apache modules" if BR2_PACKAGE_APACHE_UTILS_ONLY is enabled
>> V2->V3:
>> as suggested by Arnout:
>> * change negative option BR2_PACKAGE_APACHE_UTILS_ONLY to BR2_PACKAGE_APACHE_DAEMON
>> * set a common APACHE_CONF_OPTS and only add specific options for
>>    BR2_PACKAGE_APACHE_DAEMON enabled or not
>> V3->V4:
>> * drop --with-static-* options as suggested by Arnout
>> ---
>>   package/Config.in        |  2 +-
>>   package/apache/Config.in |  9 +++++++++
>>   package/apache/apache.mk | 20 +++++++++++++++++---
>>   3 files changed, 27 insertions(+), 4 deletions(-)
>>
>> diff --git a/package/Config.in b/package/Config.in
>> index cc99be39fb..cd7fe056b8 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -2279,7 +2279,7 @@ menu "Networking applications"
>>   	source "package/alfred/Config.in"
>>   	source "package/aoetools/Config.in"
>>   	source "package/apache/Config.in"
>> -if BR2_PACKAGE_APACHE
>> +if BR2_PACKAGE_APACHE_DAEMON
>>   menu "External Apache modules"
>>   	source "package/modsecurity2/Config.in"
>>   endmenu
>> diff --git a/package/apache/Config.in b/package/apache/Config.in
>> index 270296bce4..5e9e4c5f9d 100644
>> --- a/package/apache/Config.in
>> +++ b/package/apache/Config.in
>> @@ -17,6 +17,14 @@ config BR2_PACKAGE_APACHE
>>   
>>   if BR2_PACKAGE_APACHE
>>   
>> +config BR2_PACKAGE_APACHE_DAEMON
>> +	bool "apache-daemon"
>> +	default y
>> +	help
>> +	  Provide entire Apache daemon, otherwise only htdigest and htpasswd
>> +	  will be built and installed.
>> +
>> +if BR2_PACKAGE_APACHE_DAEMON
>>   choice
>>   	prompt "Multi-Processing Module (MPM)"
>>   	default BR2_PACKAGE_APACHE_MPM_WORKER
>> @@ -40,6 +48,7 @@ config BR2_PACKAGE_APACHE_MPM_WORKER
>>   	  Implements a hybrid multi-threaded multi-process web server
>>   
>>   endchoice
>> +endif
>>   
>>   endif
>>   
>> diff --git a/package/apache/apache.mk b/package/apache/apache.mk
>> index 320a6ad20e..994842b455 100644
>> --- a/package/apache/apache.mk
>> +++ b/package/apache/apache.mk
>> @@ -12,8 +12,6 @@ APACHE_LICENSE_FILES = LICENSE
>>   APACHE_CPE_ID_VENDOR = apache
>>   APACHE_CPE_ID_PRODUCT = http_server
>>   APACHE_SELINUX_MODULES = apache
>> -# Needed for mod_php
>> -APACHE_INSTALL_STAGING = YES
>>   # We have a patch touching configure.in and Makefile.in,
>>   # so we need to autoreconf:
>>   APACHE_AUTORECONF = YES
>> @@ -32,10 +30,16 @@ APACHE_MPM = worker
>>   endif
>>   
>>   APACHE_CONF_OPTS = \
>> -	--sysconfdir=/etc/apache2 \
>>   	--with-apr=$(STAGING_DIR)/usr \
>>   	--with-apr-util=$(STAGING_DIR)/usr \
>>   	--with-pcre=$(STAGING_DIR)/usr/bin/pcre2-config \
>> +
>> +ifeq ($(BR2_PACKAGE_APACHE_DAEMON),y)
>> +# Needed for mod_php
>> +APACHE_INSTALL_STAGING = YES
>> +
>> +APACHE_CONF_OPTS += \
>> +	--sysconfdir=/etc/apache2 \
>>   	--enable-http \
>>   	--enable-dbd \
>>   	--enable-proxy \
>> @@ -121,5 +125,15 @@ define APACHE_INSTALL_INIT_SYSTEMD
>>   	$(INSTALL) -D -m 644 package/apache/apache.service \
>>   		$(TARGET_DIR)/usr/lib/systemd/system/apache.service
>>   endef
>> +else
>> +define APACHE_BUILD_CMDS
>> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/support htdigest htpasswd
>> +endef
>> +
>> +define APACHE_INSTALL_TARGET_CMDS
>> +	$(INSTALL) -m 0755 -D $(@D)/support/htdigest $(TARGET_DIR)/usr/bin/htdigest
>> +	$(INSTALL) -m 0755 -D $(@D)/support/htpasswd $(TARGET_DIR)/usr/bin/htpasswd
>> +endef
>> +endif
>>   
>>   $(eval $(autotools-package))
>> -- 
>> 2.34.1
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at buildroot.org
>> https://lists.buildroot.org/mailman/listinfo/buildroot
> 




More information about the buildroot mailing list