[Buildroot] [PATCH 2/4] php: rework selection of interfaces

Arnout Vandecappelle arnout at mind.be
Sun Sep 11 22:55:29 UTC 2016


 Hi Fabrice,

On 12-09-16 00:26, Fabrice Fontaine wrote:
> Following suggestion of Yann Morin, rework selection of php interfaces:
> use booleans instead of choice to be able to select multiple interfaces
> as they are not exclusive

 Maybe add something like:

The choice was introduced in commit fcdc9f891 to make sure at least one
SAPI option was selected. Here, we use an auxiliary symbol
BR2_PACKAGE_PHP_HAS_SAPI and CGI will be selected if this symbol is not set.

> 
> Signed-off-by: Fabrice Fontaine <fabrice.fontaine at orange.com>
> ---
>  package/php/Config.in | 40 +++++-----------------------------------
>  package/php/php.mk    |  8 ++++----
>  2 files changed, 9 insertions(+), 39 deletions(-)
> 
> diff --git a/package/php/Config.in b/package/php/Config.in
> index eee8d26..c90ad4f 100644
> --- a/package/php/Config.in
> +++ b/package/php/Config.in
> @@ -1,5 +1,6 @@
>  config BR2_PACKAGE_PHP
>  	bool "php"
> +	select BR2_PACKAGE_PHP_SAPI_CGI if !BR2_PACKAGE_PHP_HAS_SAPI
>  	help
>  	  PHP  is a widely-used general-purpose scripting
>  	  language that is especially suited for Web development
> @@ -9,61 +10,30 @@ config BR2_PACKAGE_PHP
>  
>  if BR2_PACKAGE_PHP
>  
> -config BR2_PACKAGE_PHP_CLI
> +# Helper to make sure at least one interface is selected.
> +config BR2_PACKAGE_PHP_HAS_SAPI

 The name is not ideal, because it's actually _HAS_SAPI_EXCEPT_CGI. But that's
impossible to understand, so perhaps extend the comment with
# All SAPI options except CGI will select this symbol.

>  	bool
>  
> -config BR2_PACKAGE_PHP_CGI
> -	bool
> -
> -config BR2_PACKAGE_PHP_FPM
> -	bool
> -
> -choice
> -	prompt "Interface"

 You should keep this as a comment, or alternatively change the prompts below to
include "Interface". Now it is just

     [*] php
     -*-   CGI
     [ ]   CLI
     [ ]   FPM
           Extensions  --->

which is not descriptive enough IMHO.

> -	default BR2_PACKAGE_PHP_SAPI_CGI
> -	help
> -	  Select the PHP interface(s).
> -
>  config BR2_PACKAGE_PHP_SAPI_CGI
>  	bool "CGI"
>  	# CGI uses fork()
>  	depends on BR2_USE_MMU
> -	select BR2_PACKAGE_PHP_CGI
>  	help
>  	  Common Gateway Interface
>  
>  config BR2_PACKAGE_PHP_SAPI_CLI
>  	bool "CLI"
> -	select BR2_PACKAGE_PHP_CLI
> +	select BR2_PACKAGE_PHP_HAS_SAPI
>  	help
>  	  Command Line Interface
>  
>  config BR2_PACKAGE_PHP_SAPI_FPM
>  	bool "FPM"
>  	depends on BR2_USE_MMU
> -	select BR2_PACKAGE_PHP_FPM
> +	select BR2_PACKAGE_PHP_HAS_SAPI
>  	help
>  	  PHP-FPM (FastCGI Process Manager)

 Isn't FPM mutually exclusive with CGI?

 If yes, it could be tricky to code that in Config.in without a dependency cycle
due to HAS_SAPI...

>  
> -config BR2_PACKAGE_PHP_SAPI_CLI_CGI
> -	bool "CGI and CLI"
> -	# CGI uses fork()
> -	depends on BR2_USE_MMU
> -	select BR2_PACKAGE_PHP_CLI
> -	select BR2_PACKAGE_PHP_CGI

 Any user-settable config symbol that is removed should move to
Config.in.legacy. Something like this:

config BR2_PACKAGE_PHP_SAPI_CLI_CGI
	bool "PHP CGI and CLI option is split up"
	select BR2_PACKAGE_PHP_SAPI_CLI
	select BR2_PACKAGE_PHP_SAPI_CGI
	help
	  The PHP Interface options have been split up into a
	  separate option for each interface.

> -	help
> -	  Command line and Common gateway interfaces
> -
> -config BR2_PACKAGE_PHP_SAPI_CLI_FPM

 Similar for this one.


 Regards,
 Arnout

> -	bool "FPM and CLI"
> -	depends on BR2_USE_MMU
> -	select BR2_PACKAGE_PHP_CLI
> -	select BR2_PACKAGE_PHP_FPM
> -	help
> -	  Command line and PHP-FPM (FastCGI Process Manager)
> -
> -endchoice
> -
>  source "package/php/Config.ext"
>  
>  endif
> diff --git a/package/php/php.mk b/package/php/php.mk
> index 7df10be..97e3396 100644
> --- a/package/php/php.mk
> +++ b/package/php/php.mk
> @@ -77,9 +77,9 @@ else
>  PHP_CONF_ENV += ac_cv_func_dlopen=no ac_cv_lib_dl_dlopen=no
>  endif
>  
> -PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_CLI),,--disable-cli)
> -PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_CGI),,--disable-cgi)
> -PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_FPM),--enable-fpm,--disable-fpm)
> +PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_SAPI_CLI),,--disable-cli)
> +PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_SAPI_CGI),,--disable-cgi)
> +PHP_CONF_OPTS += $(if $(BR2_PACKAGE_PHP_SAPI_FPM),--enable-fpm,--disable-fpm)
>  
>  ### Extensions
>  PHP_CONF_OPTS += \
> @@ -280,7 +280,7 @@ PHP_CONF_OPTS += \
>  PHP_DEPENDENCIES += jpeg libpng freetype
>  endif
>  
> -ifeq ($(BR2_PACKAGE_PHP_FPM),y)
> +ifeq ($(BR2_PACKAGE_PHP_SAPI_FPM),y)
>  define PHP_INSTALL_INIT_SYSV
>  	$(INSTALL) -D -m 0755 $(@D)/sapi/fpm/init.d.php-fpm \
>  		$(TARGET_DIR)/etc/init.d/S49php-fpm
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF


More information about the buildroot mailing list