Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Giulio Benetti <giulio.benetti@benettiengineering.com>
To: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Bernd Kuhls <bernd@kuhls.net>,
	Giulio Benetti <giulio.benetti+tekvox@benettiengineering.com>,
	James Autry <jautry@tekvox.com>,
	Matthew Maron <matthewm@tekvox.com>,
	buildroot@buildroot.org, Jim Reinhart <jimr@tekvox.com>
Subject: Re: [Buildroot] [PATCH v4] package/apache: add option BR2_PACKAGE_APACHE_DAEMON
Date: Fri, 22 Sep 2023 23:09:50 +0200	[thread overview]
Message-ID: <88324aaa-6893-41fc-968a-d762097cd8a3@benettiengineering.com> (raw)
In-Reply-To: <20230921205637.GN512384@scaer>

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@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@Benetti Engineering sas

> Regards,
> Yann E. MORIN.
> 
>> Cc: Jim Reinhart <jimr@tekvox.com>
>> Cc: James Autry <jautry@tekvox.com>
>> Cc: Matthew Maron <matthewm@tekvox.com>
>> Signed-off-by: Giulio Benetti <giulio.benetti+tekvox@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@buildroot.org
>> https://lists.buildroot.org/mailman/listinfo/buildroot
> 

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

      reply	other threads:[~2023-09-22 21:09 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-21 20:32 [Buildroot] [PATCH v4] package/apache: add option BR2_PACKAGE_APACHE_DAEMON Giulio Benetti
2023-09-21 20:56 ` Yann E. MORIN
2023-09-22 21:09   ` Giulio Benetti [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=88324aaa-6893-41fc-968a-d762097cd8a3@benettiengineering.com \
    --to=giulio.benetti@benettiengineering.com \
    --cc=bernd@kuhls.net \
    --cc=buildroot@buildroot.org \
    --cc=giulio.benetti+tekvox@benettiengineering.com \
    --cc=jautry@tekvox.com \
    --cc=jimr@tekvox.com \
    --cc=matthewm@tekvox.com \
    --cc=yann.morin.1998@free.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox