Bug #63819 PCRE_CFLAGS is not referenced in backend/wbpublic/Makefile though it is required
Submitted: 21 Dec 2011 9:11 Modified: 7 Feb 2012 1:31
Reporter: John Anderson Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Workbench Severity:S3 (Non-critical)
Version:5.2.36, 5.2.37 OS:Any
Assigned to: CPU Architecture:Any
Tags: automake, Contribution, pcre.h

[21 Dec 2011 9:11] John Anderson
Description:
Workbench's configure script uses pcre-config to grab pcre's CFLAGS and LDFLAGS, and uses AC_SUBST to make these flags available to Makefiles, however, these flags are not referenced in backend/wb{public,private}/Makefile.am though pcre.h is required by backend/wbpublic/grt/refresh_ui.cpp, as well as other files in wbprivate.  This is not noticeable on distributions which package pcre.h in /usr/include, but it causes a compile error on distributions which include pcre.h in /usr/include/pcre/.

How to repeat:
./configure && make on a distribution which includes pcre.h in a directory other than $includedir.

Suggested fix:
This patch adds @PCRE_CFLAGS@ to the INCLUDES variable of:
backend/wbprivate/Makefile.am
backend/wbpublic/Makefile.am

diff -Naur mysql-workbench-gpl-5.2.36-src.orig/backend/wbprivate/Makefile.am mysql-workbench-gpl-5.2.36-src/backend/wbprivate/Makefile.am
--- mysql-workbench-gpl-5.2.36-src.orig/backend/wbprivate/Makefile.am   2011-12-02 04:37:03.000000000 -0700
+++ mysql-workbench-gpl-5.2.36-src/backend/wbprivate/Makefile.am        2011-12-21 01:21:35.000000000 -0700
@@ -2,7 +2,7 @@
 
 noinst_LIBRARIES=libwbprivate.a
 
-INCLUDES=@GLIB_CFLAGS@ @SIGC_CFLAGS@ @GRT_CFLAGS@ @CAIRO_CFLAGS@ @GNOME_CFLAGS@\
+INCLUDES=@GLIB_CFLAGS@ @SIGC_CFLAGS@ @GRT_CFLAGS@ @CAIRO_CFLAGS@ @GNOME_CFLAGS@ @PCRE_CFLAGS@\
        -I$(top_srcdir)/library/grt/src -I$(top_srcdir)/library/base\
        -I$(top_srcdir)/library/forms\
        -I$(top_srcdir)/library/forms/mforms\
diff -Naur mysql-workbench-gpl-5.2.36-src.orig/backend/wbpublic/Makefile.am mysql-workbench-gpl-5.2.36-src/backend/wbpublic/Makefile.am
--- mysql-workbench-gpl-5.2.36-src.orig/backend/wbpublic/Makefile.am    2011-12-02 04:36:59.000000000 -0700
+++ mysql-workbench-gpl-5.2.36-src/backend/wbpublic/Makefile.am 2011-12-21 01:20:35.000000000 -0700
@@ -9,7 +9,7 @@
 pkglib_LTLIBRARIES=libwbpublic.la
 
 
-INCLUDES=@GLIB_CFLAGS@ @SIGC_CFLAGS@ @GRT_CFLAGS@ @CAIRO_CFLAGS@ @MYSQL_INCLUDE@ @SQLITE3_CFLAGS@ @CTEMPLATE_CFLAGS@\
+INCLUDES=@GLIB_CFLAGS@ @SIGC_CFLAGS@ @GRT_CFLAGS@ @CAIRO_CFLAGS@ @MYSQL_INCLUDE@ @SQLITE3_CFLAGS@ @CTEMPLATE_CFLAGS@ @PCRE_CFLAGS@\
        -I$(top_srcdir)/library/grt/src -I$(top_srcdir)/library/base\
        -I$(top_srcdir)/library/forms\
        -I$(top_srcdir)/library/forms/mforms/\
[21 Dec 2011 10:41] John Anderson
After some more compiling, I found another place where PCRE_CFLAGS should be added:  modules/db.mysql/Makefile.am

Here's an updated patch:

diff -Nuar mysql-workbench-gpl-5.2.36-src.orig/backend/wbprivate/Makefile.am mysql-workbench-gpl-5.2.36-src/backend/wbprivate/Makefile.am
--- mysql-workbench-gpl-5.2.36-src.orig/backend/wbprivate/Makefile.am   2011-12-02 04:37:03.000000000 -0700
+++ mysql-workbench-gpl-5.2.36-src/backend/wbprivate/Makefile.am        2011-12-21 01:21:35.000000000 -0700
@@ -2,7 +2,7 @@

 noinst_LIBRARIES=libwbprivate.a

-INCLUDES=@GLIB_CFLAGS@ @SIGC_CFLAGS@ @GRT_CFLAGS@ @CAIRO_CFLAGS@ @GNOME_CFLAGS@\
+INCLUDES=@GLIB_CFLAGS@ @SIGC_CFLAGS@ @GRT_CFLAGS@ @CAIRO_CFLAGS@ @GNOME_CFLAGS@ @PCRE_CFLAGS@\
        -I$(top_srcdir)/library/grt/src -I$(top_srcdir)/library/base\
        -I$(top_srcdir)/library/forms\
        -I$(top_srcdir)/library/forms/mforms\
diff -Nuar mysql-workbench-gpl-5.2.36-src.orig/backend/wbpublic/Makefile.am mysql-workbench-gpl-5.2.36-src/backend/wbpublic/Makefile.am
--- mysql-workbench-gpl-5.2.36-src.orig/backend/wbpublic/Makefile.am    2011-12-02 04:36:59.000000000 -0700
+++ mysql-workbench-gpl-5.2.36-src/backend/wbpublic/Makefile.am 2011-12-21 01:20:35.000000000 -0700
@@ -9,7 +9,7 @@
 pkglib_LTLIBRARIES=libwbpublic.la

-INCLUDES=@GLIB_CFLAGS@ @SIGC_CFLAGS@ @GRT_CFLAGS@ @CAIRO_CFLAGS@ @MYSQL_INCLUDE@ @SQLITE3_CFLAGS@ @CTEMPLATE_CFLAGS@\
+INCLUDES=@GLIB_CFLAGS@ @SIGC_CFLAGS@ @GRT_CFLAGS@ @CAIRO_CFLAGS@ @MYSQL_INCLUDE@ @SQLITE3_CFLAGS@ @CTEMPLATE_CFLAGS@ @PCRE_CFLAGS@\
        -I$(top_srcdir)/library/grt/src -I$(top_srcdir)/library/base\
        -I$(top_srcdir)/library/forms\
        -I$(top_srcdir)/library/forms/mforms/\
diff -Nuar mysql-workbench-gpl-5.2.36-src.orig/modules/db.mysql/Makefile.am mysql-workbench-gpl-5.2.36-src/modules/db.mysql/Makefile.am
--- mysql-workbench-gpl-5.2.36-src.orig/modules/db.mysql/Makefile.am    2011-12-02 04:36:56.000000000 -0700
+++ mysql-workbench-gpl-5.2.36-src/modules/db.mysql/Makefile.am 2011-12-21 03:02:01.000000000 -0700
@@ -23,7 +23,7 @@
                 -I$(top_srcdir)/library/sql-parser/include\
                 -I$(top_srcdir)/library/sql-parser/source\
                 @CTEMPLATE_CFLAGS@\
-                @GRT_CFLAGS@ @GLIB_CFLAGS@ @SIGC_CFLAGS@
+                @GRT_CFLAGS@ @GLIB_CFLAGS@ @SIGC_CFLAGS@ @PCRE_CFLAGS@

 #db_mysql_grt_la_SOURCES=db_mysql_reveng.cpp\
[27 Dec 2011 11:25] Valeriy Kravchuk
Thank you for the problem report and patch contributed.
[7 Feb 2012 1:31] Philip Olson
Fixed as of 5.2.38:

Workbench would fail to compile under certain PCRE setups,
like when "pcre.h" existed within "/usr/include/pcre/".