Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Mar 2018 09:37:57 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r463637 - in head: Mk www/waterfox/files
Message-ID:  <201803050937.w259bvhg054268@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Mon Mar  5 09:37:57 2018
New Revision: 463637
URL: https://svnweb.freebsd.org/changeset/ports/463637

Log:
  www/waterfox: drop bindgen workaround

Added:
  head/www/waterfox/files/patch-bug1341234   (contents, props changed)
Modified:
  head/Mk/bsd.gecko.mk   (contents, props changed)

Modified: head/Mk/bsd.gecko.mk
==============================================================================
--- head/Mk/bsd.gecko.mk	Mon Mar  5 09:36:29 2018	(r463636)
+++ head/Mk/bsd.gecko.mk	Mon Mar  5 09:37:57 2018	(r463637)
@@ -111,15 +111,6 @@ USE_XORG+=	xcb
 MESA_LLVM_VER?=	50
 BUILD_DEPENDS+=	llvm${MESA_LLVM_VER}>0:devel/llvm${MESA_LLVM_VER}
 MOZ_EXPORT+=	LLVM_CONFIG=llvm-config${MESA_LLVM_VER}
-.if ${MOZILLA_VER:R:R} < 58
-MOZ_EXPORT+=	BINDGEN_CFLAGS="${BINDGEN_CFLAGS}"
-. if ! ${USE_MOZILLA:M-nspr}
-BINDGEN_CFLAGS+=-isystem${LOCALBASE}/include/nspr
-. endif
-. if ! ${USE_MOZILLA:M-pixman}
-BINDGEN_CFLAGS+=-isystem${LOCALBASE}/include/pixman-1
-. endif
-.endif # MOZILLA_VER < 58
 .endif
 
 .if ${OPSYS} == FreeBSD && ${OSREL} == 11.1

Added: head/www/waterfox/files/patch-bug1341234
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/waterfox/files/patch-bug1341234	Mon Mar  5 09:37:57 2018	(r463637)
@@ -0,0 +1,215 @@
+commit 1009160a12a7
+Author: Nathan Froyd <froydnj@mozilla.com>
+Date:   Fri Nov 10 10:05:36 2017 -0500
+
+    Bug 1341234 - part 0 - fix typo in AC_SUBST_SET checking; r=gps
+    
+    The various AC_SUBST macros generate AC_SUBST_*FOO macros for holding the
+    values to substitute.  The macros also cross-check the AC_SUBST_* macros
+    generated by other variants to make sure that you don't try to do
+    something like AC_SUBST(FOO) and AC_SUBST_SET(FOO).  However, the check
+    in AC_SUBST_SET for AC_SUBST_LIST duplicate is missing an underscore:
+    the AC_SUBST_LIST macro generates another macro starting with
+    AC_SUBST_LIST_, but the AC_SUBST_SET macro checks for the prefix
+    AC_SUBST_LIST, which is missing the trailing underscore.
+    
+    As we're going to be adding yet another AC_SUBST_* macro variant, and
+    therefore adding more checks to all existing macros, let's clean this up
+    before we start.
+---
+ build/autoconf/config.status.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git build/autoconf/config.status.m4 build/autoconf/config.status.m4
+index cede9d36928d..ae1a871952a9 100644
+--- build/autoconf/config.status.m4
++++ build/autoconf/config.status.m4
+@@ -24,7 +24,7 @@ dnl with values got from the value of the environment variable, split on
+ dnl whitespaces.
+ define([AC_SUBST_SET],
+ [ifdef([AC_SUBST_$1], [m4_fatal([Cannot use AC_SUBST and AC_SUBST_SET on the same variable ($1)])],
+-[ifdef([AC_SUBST_LIST$1], [m4_fatal([Cannot use AC_SUBST_LIST and AC_SUBST_SET on the same variable ($1)])],
++[ifdef([AC_SUBST_LIST_$1], [m4_fatal([Cannot use AC_SUBST_LIST and AC_SUBST_SET on the same variable ($1)])],
+ [ifdef([AC_SUBST_SET_$1], ,
+ [define([AC_SUBST_SET_$1], )dnl
+ AC_DIVERT_PUSH(MOZ_DIVERSION_SUBST)dnl
+
+commit 380dc56df216
+Author: Nathan Froyd <froydnj@mozilla.com>
+Date:   Fri Nov 10 10:05:36 2017 -0500
+
+    Bug 1341234 - part 1 - add AC_SUBST_TOML_LIST macro; r=gps
+    
+    Stylo's bindgen is configured partially through a .toml.in file that
+    substitutes the value of a configure variable (BINDGEN_CFLAGS) into a
+    TOML list.  We can debate whether this is a good thing to do some other
+    time; the reality is that the current moz.configure code that provides
+    the set_config for BINDGEN_CFLAGS needs to perform all the quoting
+    itself.
+    
+    We want, however, to define the substituted variable in old-configure.in
+    land (some of the values that will go into BINDGEN_CFLAGS are only
+    defined in old-configure.in, and are not trivially ported to
+    moz.configure), which means that we need to have quoting logic in
+    m4/Python when we generate config.status.  This patch adds an
+    appropriate macro for doing so.
+---
+ build/autoconf/config.status.m4 | 25 ++++++++++++++++++++++---
+ 1 file changed, 22 insertions(+), 3 deletions(-)
+
+diff --git build/autoconf/config.status.m4 build/autoconf/config.status.m4
+index ae1a871952a9..c75575386129 100644
+--- build/autoconf/config.status.m4
++++ build/autoconf/config.status.m4
+@@ -12,12 +12,13 @@ dnl    AC_SOMETHING(foo,AC_SUBST(),bar)
+ define([AC_SUBST],
+ [ifdef([AC_SUBST_SET_$1], [m4_fatal([Cannot use AC_SUBST and AC_SUBST_SET on the same variable ($1)])],
+ [ifdef([AC_SUBST_LIST_$1], [m4_fatal([Cannot use AC_SUBST and AC_SUBST_LIST on the same variable ($1)])],
++[ifdef([AC_SUBST_TOML_LIST_$1], [m4_fatal([Cannot use AC_SUBST and AC_SUBST_TOML_LIST on the same variable ($1)])],
+ [ifdef([AC_SUBST_$1], ,
+ [define([AC_SUBST_$1], )dnl
+ AC_DIVERT_PUSH(MOZ_DIVERSION_SUBST)dnl
+     (''' $1 ''', r''' [$]$1 ''')
+ AC_DIVERT_POP()dnl
+-])])])])
++])])])])])
+ 
+ dnl Like AC_SUBST, but makes the value available as a set in python,
+ dnl with values got from the value of the environment variable, split on
+@@ -25,12 +26,13 @@ dnl whitespaces.
+ define([AC_SUBST_SET],
+ [ifdef([AC_SUBST_$1], [m4_fatal([Cannot use AC_SUBST and AC_SUBST_SET on the same variable ($1)])],
+ [ifdef([AC_SUBST_LIST_$1], [m4_fatal([Cannot use AC_SUBST_LIST and AC_SUBST_SET on the same variable ($1)])],
++[ifdef([AC_SUBST_TOML_LIST_$1], [m4_fatal([Cannot use AC_SUBST_TOML_LIST and AC_SUBST_SET on the same variable ($1)])],
+ [ifdef([AC_SUBST_SET_$1], ,
+ [define([AC_SUBST_SET_$1], )dnl
+ AC_DIVERT_PUSH(MOZ_DIVERSION_SUBST)dnl
+     (''' $1 ''', unique_list(r''' [$]$1 '''.split()))
+ AC_DIVERT_POP()dnl
+-])])])])
++])])])])])
+ 
+ dnl Like AC_SUBST, but makes the value available as a list in python,
+ dnl with values got from the value of the environment variable, split on
+@@ -38,12 +40,29 @@ dnl whitespaces.
+ define([AC_SUBST_LIST],
+ [ifdef([AC_SUBST_$1], [m4_fatal([Cannot use AC_SUBST and AC_SUBST_LIST on the same variable ($1)])],
+ [ifdef([AC_SUBST_SET_$1], [m4_fatal([Cannot use AC_SUBST_SET and AC_SUBST_LIST on the same variable ($1)])],
++[ifdef([AC_SUBST_TOML_LIST_$1], [m4_fatal([Cannot use AC_SUBST_TOML_LIST and AC_SUBST_LIST on the same variable ($1)])],
+ [ifdef([AC_SUBST_LIST_$1], ,
+ [define([AC_SUBST_LIST_$1], )dnl
+ AC_DIVERT_PUSH(MOZ_DIVERSION_SUBST)dnl
+     (''' $1 ''', list(r''' [$]$1 '''.split()))
+ AC_DIVERT_POP()dnl
+-])])])])
++])])])])])
++
++dnl Like AC_SUBST, but makes the value available as a string of comma-separated
++dnl quoted strings in python, with values got from the value of the environment
++dnl variable, split on whitespaces. The value is suitable for embedding into a
++dnl .toml list.
++define([AC_SUBST_TOML_LIST],
++[ifdef([AC_SUBST_$1], [m4_fatal([Cannot use AC_SUBST and AC_SUBST_TOML_LIST on the same variable ($1)])],
++[ifdef([AC_SUBST_SET_$1], [m4_fatal([Cannot use AC_SUBST_SET and AC_SUBST_TOML_LIST on the same variable ($1)])],
++[ifdef([AC_SUBST_LIST_$1], [m4_fatal([Cannot use AC_SUBST_LIST and AC_SUBST_TOML_LIST on the same variable ($1)])],
++[ifdef([AC_SUBST_TOML_LIST_$1], ,
++[define([AC_SUBST_TOML_LIST_$1], )dnl
++AC_DIVERT_PUSH(MOZ_DIVERSION_SUBST)dnl
++    (''' $1 ''', r''' %s ''' % str(', '.join("'%s'" % s for s in r''' [$]$1 '''.split())))
++AC_DIVERT_POP()dnl
++])])])])])
++
+ 
+ dnl Ignore AC_SUBSTs for variables we don't have use for but that autoconf
+ dnl itself exports.
+
+commit 17b61015519a
+Author: Nathan Froyd <froydnj@mozilla.com>
+Date:   Fri Nov 10 10:05:36 2017 -0500
+
+    Bug 1341234 - part 2 - add an intermediate step for determining bindgen's CFLAGS; r=gps
+    
+    Add an intermediate step in old-configure.in for setting up
+    BINDGEN_CFLAGS (renamed to BINDGEN_SYSTEM_FLAGS), so we can add whatever
+    flags we like (e.g. for system libaries with their includes in
+    non-standard places) at a later point.
+---
+ build/moz.configure/toolchain.configure | 9 +++------
+ layout/style/bindgen.toml.in            | 2 +-
+ old-configure.in                        | 3 +++
+ 3 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git build/moz.configure/toolchain.configure build/moz.configure/toolchain.configure
+index 002a4cbbc2f0..7e1a8acd5194 100755
+--- build/moz.configure/toolchain.configure
++++ build/moz.configure/toolchain.configure
+@@ -902,15 +902,12 @@ option(env='BINDGEN_CFLAGS',
+        help='Options bindgen should pass to the C/C++ parser')
+ 
+ @depends('BINDGEN_CFLAGS')
+-@checking('bindgen cflags', lambda s: s if s and s.strip() else 'no')
++@checking('bindgen cflags', lambda s: s if s else 'no')
+ def bindgen_cflags(value):
+     if value and len(value):
+-        # Reformat the env value for substitution into a toml list.
+-        flags = value[0].split()
+-        return ', '.join('"' + flag + '"' for flag in flags)
+-    return ''
++        return value[0].split()
+ 
+-set_config('BINDGEN_CFLAGS', bindgen_cflags)
++add_old_configure_assignment('_BINDGEN_CFLAGS', bindgen_cflags)
+ 
+ @depends(c_compiler)
+ def default_debug_flags(compiler_info):
+diff --git layout/style/bindgen.toml.in layout/style/bindgen.toml.in
+index 7b1c72c86ec7..894008d0cfb6 100644
+--- layout/style/bindgen.toml.in
++++ layout/style/bindgen.toml.in
+@@ -1,4 +1,4 @@
+ [build]
+ args = [
+-    @BINDGEN_CFLAGS@
++    @BINDGEN_SYSTEM_FLAGS@
+ ]
+diff --git old-configure.in old-configure.in
+index f95c55515094..dd69eca8ff69 100644
+--- old-configure.in
++++ old-configure.in
+@@ -4395,6 +4395,9 @@ AC_SUBST_LIST(MOZ_CAIRO_LIBS)
+ AC_SUBST_LIST(MOZ_CAIRO_OSLIBS)
+ AC_SUBST(MOZ_TREE_PIXMAN)
+ 
++BINDGEN_SYSTEM_FLAGS="$_BINDGEN_CFLAGS"
++AC_SUBST_TOML_LIST(BINDGEN_SYSTEM_FLAGS)
++
+ dnl ========================================================
+ dnl disable xul
+ dnl ========================================================
+
+commit 4d60ad6f6676
+Author: Nathan Froyd <froydnj@mozilla.com>
+Date:   Fri Nov 10 10:05:36 2017 -0500
+
+    Bug 1341234 - part 3 - add various system library CFLAGS to BINDGEN_SYSTEM_FLAGS; r=gps
+    
+    This change ensures that folks who configure --with-system-FOO for
+    various values of FOO can build Stylo, since bindgen will know where to
+    find the flags for said FOO packages.
+---
+ old-configure.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git old-configure.in old-configure.in
+index dd69eca8ff69..2f8161ad035e 100644
+--- old-configure.in
++++ old-configure.in
+@@ -4395,7 +4395,7 @@ AC_SUBST_LIST(MOZ_CAIRO_LIBS)
+ AC_SUBST_LIST(MOZ_CAIRO_OSLIBS)
+ AC_SUBST(MOZ_TREE_PIXMAN)
+ 
+-BINDGEN_SYSTEM_FLAGS="$_BINDGEN_CFLAGS"
++BINDGEN_SYSTEM_FLAGS="$_BINDGEN_CFLAGS $NSPR_CFLAGS $NSS_CFLAGS $MOZ_PIXMAN_CFLAGS $MOZ_CAIRO_CFLAGS"
+ AC_SUBST_TOML_LIST(BINDGEN_SYSTEM_FLAGS)
+ 
+ dnl ========================================================



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201803050937.w259bvhg054268>