Bug 1460600: Remove unsupported --enable-system-hunspell flag. r?ehsan,glandium draft
authorKris Maglione <maglione.k@gmail.com>
Thu, 10 May 2018 10:36:53 -0700
changeset 793762 305b91da5ec38119d69dabf6b349d8b1c083c80c
parent 793442 e40e77f848063469114960ac2f13dae5649b328f
push id109489
push usermaglione.k@gmail.com
push dateThu, 10 May 2018 17:38:06 +0000
reviewersehsan, glandium
bugs1460600
milestone62.0a1
Bug 1460600: Remove unsupported --enable-system-hunspell flag. r?ehsan,glandium Our bundled Hunspell now significantly differs from upstream Hunspell. Most importantly, it supports loading dictionaries from jar: URIs, which is now a requirement for loading bundled and extension dictionaries. This means that system Hunspell libraries are no longer compatible with our spell checker code. We should remove the option to use them so that users don't fall into the trap of trying to use them. MozReview-Commit-ID: 2ihJe6YOnGf
config/system-headers.mozbuild
extensions/spellcheck/hunspell/glue/moz.build
extensions/spellcheck/hunspell/moz.build
extensions/spellcheck/hunspell/src/hunvisapi.h
extensions/spellcheck/hunspell/src/moz.build
extensions/spellcheck/src/moz.build
moz.configure
mozilla-config.h.in
toolkit/library/moz.build
--- a/config/system-headers.mozbuild
+++ b/config/system-headers.mozbuild
@@ -1265,21 +1265,16 @@ if CONFIG['MOZ_ENABLE_STARTUP_NOTIFICATI
         'libsn/sn-common.h',
         'libsn/sn.h',
         'libsn/sn-launchee.h',
         'libsn/sn-launcher.h',
         'libsn/sn-monitor.h',
         'libsn/sn-util.h',
     ]
 
-if CONFIG['MOZ_SYSTEM_HUNSPELL']:
-    system_headers += [
-        'hunspell.hxx',
-    ]
-
 if CONFIG['MOZ_SYSTEM_LIBEVENT']:
     system_headers += [
         'event2/event_compat.h',
         'event2/event.h',
         'event2/event_struct.h',
         'event.h',
     ]
 else:
--- a/extensions/spellcheck/hunspell/glue/moz.build
+++ b/extensions/spellcheck/hunspell/glue/moz.build
@@ -8,32 +8,28 @@ UNIFIED_SOURCES += [
     'mozHunspell.cpp',
     'mozHunspellFileMgr.cpp',
     'RemoteSpellCheckEngineChild.cpp',
     'RemoteSpellCheckEngineParent.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
 
-if CONFIG['MOZ_SYSTEM_HUNSPELL']:
-    CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS']
-else:
-    LOCAL_INCLUDES += ['../src']
-
 LOCAL_INCLUDES += [
+    '../src',
     '/dom/base',
     '/extensions/spellcheck/src',
 ]
 
 include('/ipc/chromium/chromium-config.mozbuild')
 
 IPDL_SOURCES = [
     'PRemoteSpellcheckEngine.ipdl',
 ]
 
 EXPORTS.mozilla += [
      'RemoteSpellCheckEngineChild.h',
      'RemoteSpellCheckEngineParent.h',
 ]
 
-# This variable is referenced in configure.in.  Make sure to change that file
-# too if you need to change this variable.
+# This variable is referenced in mozilla-config.h.in.  Make sure to change
+# that file too if you need to change this variable.
 DEFINES['HUNSPELL_STATIC'] = True
--- a/extensions/spellcheck/hunspell/moz.build
+++ b/extensions/spellcheck/hunspell/moz.build
@@ -1,12 +1,10 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-DIRS += ['glue']
-if not CONFIG['MOZ_SYSTEM_HUNSPELL']:
-    DIRS += ['src']
+DIRS += ['glue', 'src']
 
 if CONFIG['ENABLE_TESTS']:
     XPCSHELL_TESTS_MANIFESTS += ['tests/unit/xpcshell.ini']    
--- a/extensions/spellcheck/hunspell/src/hunvisapi.h
+++ b/extensions/spellcheck/hunspell/src/hunvisapi.h
@@ -1,18 +1,6 @@
 #ifndef HUNSPELL_VISIBILITY_H_
 #define HUNSPELL_VISIBILITY_H_
 
-#if defined(HUNSPELL_STATIC)
-#  define LIBHUNSPELL_DLL_EXPORTED
-#elif defined(_MSC_VER)
-#  if defined(BUILDING_LIBHUNSPELL)
-#    define LIBHUNSPELL_DLL_EXPORTED __declspec(dllexport)
-#  else
-#    define LIBHUNSPELL_DLL_EXPORTED __declspec(dllimport)
-#  endif
-#elif defined(BUILDING_LIBHUNSPELL) && 1
-#  define LIBHUNSPELL_DLL_EXPORTED __attribute__((__visibility__("default")))
-#else
-#  define LIBHUNSPELL_DLL_EXPORTED
-#endif
+#define LIBHUNSPELL_DLL_EXPORTED
 
 #endif
--- a/extensions/spellcheck/hunspell/src/moz.build
+++ b/extensions/spellcheck/hunspell/src/moz.build
@@ -10,18 +10,18 @@ UNIFIED_SOURCES += [
     'csutil.cxx',
     'hashmgr.cxx',
     'hunspell.cxx',
     'phonet.cxx',
     'replist.cxx',
     'suggestmgr.cxx',
 ]
 
-# This variable is referenced in configure.in.  Make sure to change that file
-# too if you need to change this variable.
+# This variable is referenced in mozilla-config.h.in.  Make sure to change
+# that file too if you need to change this variable.
 DEFINES['HUNSPELL_STATIC'] = True
 
 FINAL_LIBRARY = 'xul'
 
 LOCAL_INCLUDES += [
     '../glue',
 ]
 
--- a/extensions/spellcheck/src/moz.build
+++ b/extensions/spellcheck/src/moz.build
@@ -12,23 +12,19 @@ UNIFIED_SOURCES += [
     'mozPersonalDictionary.cpp',
     'mozSpellChecker.cpp',
     'mozSpellCheckerFactory.cpp',
     'mozSpellI18NManager.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
 
-if CONFIG['MOZ_SYSTEM_HUNSPELL']:
-    CXXFLAGS += CONFIG['MOZ_HUNSPELL_CFLAGS']
-else:
-    LOCAL_INCLUDES += ['../hunspell/src']
-
 LOCAL_INCLUDES += [
     '../hunspell/glue',
+    '../hunspell/src',
     '/dom/base',
 ]
 EXPORTS.mozilla += [
      'mozInlineSpellChecker.h',
      'mozSpellChecker.h',
 ]
 
 if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
--- a/moz.configure
+++ b/moz.configure
@@ -476,28 +476,16 @@ check_prog('DSYMUTIL', extra_programs.DS
            allow_missing=True)
 check_prog('MKFSHFS', extra_programs.MKFSHFS,
            allow_missing=True)
 check_prog('HFS_TOOL', extra_programs.HFS_TOOL,
            allow_missing=True)
 check_prog('RPMBUILD', extra_programs.RPMBUILD,
            allow_missing=True)
 
-option('--enable-system-hunspell',
-       help="Use system hunspell (located with pkgconfig)")
-
-@depends('--enable-system-hunspell', compile_environment)
-def check_for_hunspell(value, compile_env):
-    return value and compile_env
-
-system_hunspell = pkg_check_modules('MOZ_HUNSPELL', 'hunspell',
-                                    when=check_for_hunspell)
-
-set_config('MOZ_SYSTEM_HUNSPELL', depends_if(system_hunspell)(lambda _: True))
-
 
 @depends(target)
 @imports('os')
 def makensis_progs(target):
     if target.kernel != 'WINNT':
         return
 
     candidates = [
--- a/mozilla-config.h.in
+++ b/mozilla-config.h.in
@@ -36,18 +36,17 @@
 #if defined(__clang__)
 #pragma clang diagnostic pop
 #endif
 
 /*
  * Force-include hunspell_alloc_hooks.h and hunspell_fopen_hooks.h for hunspell,
  * so that we don't need to modify them directly.
  *
- * HUNSPELL_STATIC is defined in extensions/spellcheck/hunspell/src/Makefile.in,
- * unless --enable-system-hunspell is defined.
+ * HUNSPELL_STATIC is defined in extensions/spellcheck/hunspell/src/moz.build
  */
 #if defined(HUNSPELL_STATIC)
 #include "hunspell_alloc_hooks.h"
 #include "hunspell_fopen_hooks.h"
 #endif
 
 /*
  * Force-include sdkdecls.h for building the chromium sandbox code.
--- a/toolkit/library/moz.build
+++ b/toolkit/library/moz.build
@@ -233,19 +233,16 @@ if CONFIG['SERVO_TARGET_DIR']:
         OS_LIBS += ['-L%s' % CONFIG['SERVO_TARGET_DIR'], '-lgeckoservo']
 
 if CONFIG['MOZ_SYSTEM_JPEG']:
     OS_LIBS += CONFIG['MOZ_JPEG_LIBS']
 
 if CONFIG['MOZ_SYSTEM_PNG']:
     OS_LIBS += CONFIG['MOZ_PNG_LIBS']
 
-if CONFIG['MOZ_SYSTEM_HUNSPELL']:
-    OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
-
 if CONFIG['MOZ_SYSTEM_LIBEVENT']:
     OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS']
 
 if CONFIG['MOZ_SYSTEM_LIBVPX']:
     OS_LIBS += CONFIG['MOZ_LIBVPX_LIBS']
 
 if not CONFIG['MOZ_TREE_PIXMAN']:
     OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']