diff mbox

mysql: propagate common dependencies to toplevel config

Message ID 20170109105654.14562-1-peter@korsgaard.com
State Accepted
Commit 8b6dad32a25274cb9fe56b09da356ade47cb83f9
Headers show

Commit Message

Peter Korsgaard Jan. 9, 2017, 10:56 a.m. UTC
Commit 3d707d2b (mysql: rename package to oracle-mysql, make a virtual
package) introduced a user selectable virtual BR2_PACKAGE_MYSQL package, but
didn't propagate the (common) dependencies of the two variants to it, so the
virtual package can now be selected even though neither of the variants are
available.

As several packages enable mysql support when BR2_PACKAGE_MYSQL is selected,
this causes a number of autobuilder issues:

http://autobuild.buildroot.net/results/7fe/7fe0d0a3e7ed0430852dc42b718dd037557207e8/
http://autobuild.buildroot.net/results/cc4/cc4c2d936f3e1ba6c0a9782b2218de54a4ff75d2/

Fix it by propagating the common dependencies of the two variants to the
virtual package to ensure it cannot be enabled unless at least one of them
are available.

Also move the toolchain comment outside the conditional so it is visible
when mysql isn't available.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
 package/mysql/Config.in | 22 +++++++---------------
 1 file changed, 7 insertions(+), 15 deletions(-)

Comments

Baruch Siach Jan. 9, 2017, 12:16 p.m. UTC | #1
Hi Peter,

On Mon, Jan 09, 2017 at 11:56:54AM +0100, Peter Korsgaard wrote:
> Commit 3d707d2b (mysql: rename package to oracle-mysql, make a virtual
> package) introduced a user selectable virtual BR2_PACKAGE_MYSQL package, but
> didn't propagate the (common) dependencies of the two variants to it, so the
> virtual package can now be selected even though neither of the variants are
> available.
> 
> As several packages enable mysql support when BR2_PACKAGE_MYSQL is selected,
> this causes a number of autobuilder issues:
> 
> http://autobuild.buildroot.net/results/7fe/7fe0d0a3e7ed0430852dc42b718dd037557207e8/
> http://autobuild.buildroot.net/results/cc4/cc4c2d936f3e1ba6c0a9782b2218de54a4ff75d2/
> 
> Fix it by propagating the common dependencies of the two variants to the
> virtual package to ensure it cannot be enabled unless at least one of them
> are available.
> 
> Also move the toolchain comment outside the conditional so it is visible
> when mysql isn't available.
> 
> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

This is similar to http://patchwork.ozlabs.org/patch/709670/, but more 
comprehensive. Looks good to me.

baruch

> ---
>  package/mysql/Config.in | 22 +++++++---------------
>  1 file changed, 7 insertions(+), 15 deletions(-)
> 
> diff --git a/package/mysql/Config.in b/package/mysql/Config.in
> index e485d6b99..69ad58654 100644
> --- a/package/mysql/Config.in
> +++ b/package/mysql/Config.in
> @@ -1,5 +1,8 @@
>  config BR2_PACKAGE_MYSQL
>  	bool "mysql support"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on BR2_USE_MMU # fork()
> +	depends on BR2_TOOLCHAIN_HAS_THREADS
>  	help
>  	  Select the desired mysql provider.
>  
> @@ -13,9 +16,6 @@ choice
>  
>  config BR2_PACKAGE_MARIADB
>  	bool "mariadb"
> -	depends on BR2_INSTALL_LIBSTDCPP
> -	depends on BR2_USE_MMU # fork()
> -	depends on BR2_TOOLCHAIN_HAS_THREADS
>  	depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
>  	select BR2_PACKAGE_LIBAIO
>  	select BR2_PACKAGE_LIBXML2
> @@ -32,9 +32,6 @@ config BR2_PACKAGE_MARIADB
>  
>  config BR2_PACKAGE_ORACLE_MYSQL
>  	bool "oracle mysql"
> -	depends on BR2_INSTALL_LIBSTDCPP
> -	depends on BR2_USE_MMU # fork()
> -	depends on BR2_TOOLCHAIN_HAS_THREADS
>  	select BR2_PACKAGE_NCURSES
>  	select BR2_PACKAGE_READLINE
>  	select BR2_PACKAGE_HAS_MYSQL
> @@ -45,15 +42,6 @@ config BR2_PACKAGE_ORACLE_MYSQL
>  
>  endchoice
>  
> -comment "mariadb needs a toolchain w/ C++, threads"
> -	depends on BR2_USE_MMU
> -	depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
> -	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
> -
> -comment "oracle mysql needs a toolchain w/ C++, threads"
> -	depends on BR2_USE_MMU
> -	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
> -
>  if BR2_PACKAGE_MARIADB
>  
>  config BR2_PACKAGE_MARIADB_SERVER
> @@ -81,3 +69,7 @@ config BR2_PACKAGE_PROVIDES_MYSQL
>  	default "oracle-mysql" if BR2_PACKAGE_ORACLE_MYSQL
>  
>  endif
> +
> +comment "mysql needs a toolchain w/ C++, threads"
> +	depends on BR2_USE_MMU
> +	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
> -- 
> 2.11.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Peter Korsgaard Jan. 9, 2017, 12:43 p.m. UTC | #2
>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

 > Hi Peter,
 > On Mon, Jan 09, 2017 at 11:56:54AM +0100, Peter Korsgaard wrote:
 >> Commit 3d707d2b (mysql: rename package to oracle-mysql, make a virtual
 >> package) introduced a user selectable virtual BR2_PACKAGE_MYSQL package, but
 >> didn't propagate the (common) dependencies of the two variants to it, so the
 >> virtual package can now be selected even though neither of the variants are
 >> available.
 >> 
 >> As several packages enable mysql support when BR2_PACKAGE_MYSQL is selected,
 >> this causes a number of autobuilder issues:
 >> 
 >> http://autobuild.buildroot.net/results/7fe/7fe0d0a3e7ed0430852dc42b718dd037557207e8/
 >> http://autobuild.buildroot.net/results/cc4/cc4c2d936f3e1ba6c0a9782b2218de54a4ff75d2/
 >> 
 >> Fix it by propagating the common dependencies of the two variants to the
 >> virtual package to ensure it cannot be enabled unless at least one of them
 >> are available.
 >> 
 >> Also move the toolchain comment outside the conditional so it is visible
 >> when mysql isn't available.
 >> 
 >> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

 > This is similar to http://patchwork.ozlabs.org/patch/709670/, but more 
 > comprehensive. Looks good to me.

Ups, I somehow missed your patch - Sorry about that!

Committed, thanks.
diff mbox

Patch

diff --git a/package/mysql/Config.in b/package/mysql/Config.in
index e485d6b99..69ad58654 100644
--- a/package/mysql/Config.in
+++ b/package/mysql/Config.in
@@ -1,5 +1,8 @@ 
 config BR2_PACKAGE_MYSQL
 	bool "mysql support"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_USE_MMU # fork()
+	depends on BR2_TOOLCHAIN_HAS_THREADS
 	help
 	  Select the desired mysql provider.
 
@@ -13,9 +16,6 @@  choice
 
 config BR2_PACKAGE_MARIADB
 	bool "mariadb"
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # fork()
-	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
 	select BR2_PACKAGE_LIBAIO
 	select BR2_PACKAGE_LIBXML2
@@ -32,9 +32,6 @@  config BR2_PACKAGE_MARIADB
 
 config BR2_PACKAGE_ORACLE_MYSQL
 	bool "oracle mysql"
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # fork()
-	depends on BR2_TOOLCHAIN_HAS_THREADS
 	select BR2_PACKAGE_NCURSES
 	select BR2_PACKAGE_READLINE
 	select BR2_PACKAGE_HAS_MYSQL
@@ -45,15 +42,6 @@  config BR2_PACKAGE_ORACLE_MYSQL
 
 endchoice
 
-comment "mariadb needs a toolchain w/ C++, threads"
-	depends on BR2_USE_MMU
-	depends on BR2_PACKAGE_LIBAIO_ARCH_SUPPORTS
-	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
-
-comment "oracle mysql needs a toolchain w/ C++, threads"
-	depends on BR2_USE_MMU
-	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
-
 if BR2_PACKAGE_MARIADB
 
 config BR2_PACKAGE_MARIADB_SERVER
@@ -81,3 +69,7 @@  config BR2_PACKAGE_PROVIDES_MYSQL
 	default "oracle-mysql" if BR2_PACKAGE_ORACLE_MYSQL
 
 endif
+
+comment "mysql needs a toolchain w/ C++, threads"
+	depends on BR2_USE_MMU
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS