diff --git a/.firefox.metadata b/.firefox.metadata index 6fd15b0..44e76b5 100644 --- a/.firefox.metadata +++ b/.firefox.metadata @@ -1,3 +1,6 @@ -42dbd9ef7e3b5b4aabd2dee602e982146b457d18 SOURCES/firefox-38.7.0esr.source.tar.bz2 -32d36274e5bf94aed292945bb2653918f66b057e SOURCES/firefox-langpacks-38.7.0esr-20160303.tar.bz2 -39c11b21e3a50ea91d0b99d6ee6500e2e1377267 SOURCES/gcc48-4.8.2-15.el6.src.rpm +511960dd78451a06c9df76509635aeec05b2051a SOURCES/Python-2.7.8.tgz +467bdb846d67c01aed9e521fe0ef280065a50c3c SOURCES/devtoolset-2-binutils-2.23.52.0.1-10.el5.src.rpm +177b27772d1009bfc277577ad4e97d538073f508 SOURCES/firefox-45.1.0esr.source.tar.xz +e426ed2cea6e0335b979a0ebbfa83ef2ae8f6b28 SOURCES/firefox-langpacks-45.1.0esr-20160421.tar.xz +e5ba84786af5d0e0e23b1a9112c76821ef23306c SOURCES/gcc48-4.8.2-16.el5.src.rpm +77fd30f7ebc12a629a31c1e252cec06af55a71fe SOURCES/yasm-1.2.0-3.el5.src.rpm diff --git a/.gitignore b/.gitignore index 14a642b..a1741dd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ -SOURCES/firefox-38.7.0esr.source.tar.bz2 -SOURCES/firefox-langpacks-38.7.0esr-20160303.tar.bz2 -SOURCES/gcc48-4.8.2-15.el6.src.rpm +SOURCES/Python-2.7.8.tgz +SOURCES/devtoolset-2-binutils-2.23.52.0.1-10.el5.src.rpm +SOURCES/firefox-45.1.0esr.source.tar.xz +SOURCES/firefox-langpacks-45.1.0esr-20160421.tar.xz +SOURCES/gcc48-4.8.2-16.el5.src.rpm +SOURCES/yasm-1.2.0-3.el5.src.rpm diff --git a/SOURCES/aarch64-fix-skia.patch b/SOURCES/aarch64-fix-skia.patch index 4b9958d..115b1d8 100644 --- a/SOURCES/aarch64-fix-skia.patch +++ b/SOURCES/aarch64-fix-skia.patch @@ -1,9 +1,9 @@ Based on https://github.com/google/skia/commit/b79ff56de23fef680ae7187040f2d6a9516b553d -Index: mozilla-release/gfx/skia/trunk/src/core/SkUtilsArm.h +Index: mozilla-release/gfx/skia/skia/src/core/SkUtilsArm.h =================================================================== ---- mozilla-release.orig/gfx/skia/trunk/src/core/SkUtilsArm.h -+++ mozilla-release/gfx/skia/trunk/src/core/SkUtilsArm.h +--- mozilla-release.orig/gfx/skia/skia/src/core/SkUtilsArm.h ++++ mozilla-release/gfx/skia/skia/src/core/SkUtilsArm.h @@ -21,9 +21,9 @@ #define SK_ARM_NEON_MODE_ALWAYS 1 #define SK_ARM_NEON_MODE_DYNAMIC 2 diff --git a/SOURCES/build-el5-build-id.patch b/SOURCES/build-el5-build-id.patch new file mode 100644 index 0000000..17b19cf --- /dev/null +++ b/SOURCES/build-el5-build-id.patch @@ -0,0 +1,15 @@ +diff -up mozilla-esr31/tools/profiler/LulElf.cpp.python3 mozilla-esr31/tools/profiler/LulElf.cpp +--- mozilla-esr31/tools/profiler/lul/LulElf.cpp.python3 2014-08-25 15:17:29.000000000 +0200 ++++ mozilla-esr31/tools/profiler/lul/LulElf.cpp 2014-09-05 15:26:14.114681217 +0200 +@@ -69,6 +69,11 @@ + #include "LulElfInt.h" + #include "LulMainInt.h" + ++#ifndef NT_GNU_BUILD_ID ++#define NT_GNU_BUILD_ID 3 ++#endif ++ ++ + + #if defined(LUL_PLAT_arm_android) && !defined(SHT_ARM_EXIDX) + // bionic and older glibsc don't define it diff --git a/SOURCES/build-el5-fontconfig.patch b/SOURCES/build-el5-fontconfig.patch new file mode 100644 index 0000000..3e25c44 --- /dev/null +++ b/SOURCES/build-el5-fontconfig.patch @@ -0,0 +1,100 @@ +diff -up mozilla-aurora/gfx/thebes/gfxFcPlatformFontList.cpp.build-el5-fontconfig mozilla-aurora/gfx/thebes/gfxFcPlatformFontList.cpp +--- mozilla-aurora/gfx/thebes/gfxFcPlatformFontList.cpp.build-el5-fontconfig 2015-12-16 16:47:28.000000000 +0100 ++++ mozilla-aurora/gfx/thebes/gfxFcPlatformFontList.cpp 2016-01-19 14:20:43.676153725 +0100 +@@ -367,7 +367,48 @@ gfxFontconfigFontEntry::gfxFontconfigFon + // "blanks", effectively assuming that, if the font has a blank glyph, + // then the author intends any associated character to be rendered + // blank. +- mFontPattern = FcFreeTypeQueryFace(mFTFace, ToFcChar8Ptr(""), 0, nullptr); ++ // BACKPORT: FcFreeTypeQueryFace is not available in RHEL5's fontconfig ++ // mFontPattern = FcFreeTypeQueryFace(mFTFace, ToFcChar8Ptr(""), 0, nullptr); ++ ++ ++ // FC_CHARSET is vital to determine which characters are supported. ++ nsAutoRef charset(FcFreeTypeCharSet(mFTFace, nullptr)); ++ // If there are no characters then assume we don't know how to read ++ // this font. ++ if (!charset || FcCharSetCount(charset) == 0) ++ return; ++ ++ mFontPattern = FcPatternCreate(); ++ FcPatternAddCharSet(mFontPattern, FC_CHARSET, charset); ++ ++ // FC_PIXEL_SIZE can be important for font selection of fixed-size ++ // fonts. ++ if (!(mFTFace->face_flags & FT_FACE_FLAG_SCALABLE)) { ++ for (FT_Int i = 0; i < mFTFace->num_fixed_sizes; ++i) { ++#if HAVE_FT_BITMAP_SIZE_Y_PPEM ++ double size = FLOAT_FROM_26_6(mFTFace->available_sizes[i].y_ppem); ++#else ++ double size = mFTFace->available_sizes[i].height; ++#endif ++ FcPatternAddDouble (mFontPattern, FC_PIXEL_SIZE, size); ++ } ++ ++ // Not sure whether this is important; ++ // imitating FcFreeTypeQueryFace: ++ FcPatternAddBool (mFontPattern, FC_ANTIALIAS, FcFalse); ++ } ++ ++ // Setting up the FC_LANGSET property is very difficult with the APIs ++ // available prior to FcFreeTypeQueryFace. Having no FC_LANGSET ++ // property seems better than having a property with an empty LangSet. ++ // With no FC_LANGSET property, fontconfig sort functions will ++ // consider this face to have the same priority as (otherwise equal) ++ // faces that have support for the primary requested language, but ++ // will not consider any language to have been satisfied (and so will ++ // continue to look for a face with language support in fallback ++ // fonts). ++ ++ // END BACKPORT + // given that we have a FT_Face, not really sure this is possible... + if (!mFontPattern) { + mFontPattern = FcPatternCreate(); +@@ -1015,9 +1056,12 @@ gfxFcPlatformFontList::gfxFcPlatformFont + , mAlwaysUseFontconfigGenerics(true) + { + // if the rescan interval is set, start the timer +- int rescanInterval = FcConfigGetRescanInterval(nullptr); ++ // BACKPORT - do not implement rescan interval ++ //int rescanInterval = FcConfigGetRescanInterval(nullptr); ++ int rescanInterval = 0; + if (rescanInterval) { +- mLastConfig = FcConfigGetCurrent(); ++ nsAutoRef fc_conf(FcConfigGetCurrent()); ++ mLastConfig = fc_conf.out(); + mCheckFontUpdatesTimer = do_CreateInstance("@mozilla.org/timer;1"); + if (mCheckFontUpdatesTimer) { + mCheckFontUpdatesTimer-> +@@ -1131,7 +1175,8 @@ gfxFcPlatformFontList::AddFontSetFamilie + nsresult + gfxFcPlatformFontList::InitFontList() + { +- mLastConfig = FcConfigGetCurrent(); ++ nsAutoRef fc_conf(FcConfigGetCurrent()); ++ mLastConfig = fc_conf.out(); + + // reset font lists + gfxPlatformFontList::InitFontList(); +diff -up mozilla-aurora/gfx/thebes/gfxFcPlatformFontList.h.build-el5-fontconfig mozilla-aurora/gfx/thebes/gfxFcPlatformFontList.h +--- mozilla-aurora/gfx/thebes/gfxFcPlatformFontList.h.build-el5-fontconfig 2016-01-19 11:45:08.927745469 +0100 ++++ mozilla-aurora/gfx/thebes/gfxFcPlatformFontList.h 2016-01-19 13:49:58.296124911 +0100 +@@ -33,7 +33,8 @@ class nsAutoRefTraits : public + { + public: + static void Release(FcConfig *ptr) { FcConfigDestroy(ptr); } +- static void AddRef(FcConfig *ptr) { FcConfigReference(ptr); } ++ // AddRef is not supported in older font-config ++ // static void AddRef(FcConfig *ptr) { FcConfigReference(ptr); } + }; + + // Helper classes used for clearning out user font data when cairo font +@@ -290,7 +291,7 @@ protected: + nsRefPtrHashtable mFcSubstituteCache; + + nsCOMPtr mCheckFontUpdatesTimer; +- nsCountedRef mLastConfig; ++ nsAutoRef mLastConfig; + + // By default, font prefs under Linux are set to simply lookup + // via fontconfig the appropriate font for serif/sans-serif/monospace. diff --git a/SOURCES/build-el5-gtk2-2.10.patch b/SOURCES/build-el5-gtk2-2.10.patch new file mode 100644 index 0000000..9b1080b --- /dev/null +++ b/SOURCES/build-el5-gtk2-2.10.patch @@ -0,0 +1,2724 @@ +diff -up mozilla-aurora/config/system-headers.build-gtk2 mozilla-aurora/config/system-headers +--- mozilla-aurora/config/system-headers.build-gtk2 2015-12-16 16:47:44.000000000 +0100 ++++ mozilla-aurora/config/system-headers 2016-01-15 17:38:34.974272205 +0100 +@@ -511,7 +511,9 @@ gssapi/gssapi.h + gssapi.h + gtk/gtk.h + gtk/gtkx.h +-gtk/gtkunixprint.h ++gtk/gtkprinter.h ++gtk/gtkprintjob.h ++gtk/gtkprintunixdialog.h + #ifdef ANDROID + gui/BufferQueue.h + gui/ConsumerBase.h +diff -up mozilla-aurora/configure.in.build-gtk2 mozilla-aurora/configure.in +--- mozilla-aurora/configure.in.build-gtk2 2016-01-15 17:38:34.972272207 +0100 ++++ mozilla-aurora/configure.in 2016-01-15 17:38:34.975272203 +0100 +@@ -58,15 +58,15 @@ NSS_VERSION=3 + + dnl Set the minimum version of toolkit libs used by mozilla + dnl ======================================================== +-GLIB_VERSION=2.22 ++GLIB_VERSION=2.12 + # 2_26 is the earliest version we can set GLIB_VERSION_MIN_REQUIRED. + # The macro won't be used when compiling with earlier versions anyway. + GLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 + GIO_VERSION=2.22 + PERL_VERSION=5.006 + CAIRO_VERSION=1.10 +-PANGO_VERSION=1.22.0 +-GTK2_VERSION=2.18.0 ++PANGO_VERSION=1.14 ++GTK2_VERSION=2.10 + GTK3_VERSION=3.4.0 + GDK_VERSION_MIN_REQUIRED=GDK_VERSION_3_4 + WINDRES_VERSION=2.14.90 +@@ -4278,7 +4278,7 @@ if test "$COMPILE_ENVIRONMENT"; then + AC_DEFINE_UNQUOTED(GLIB_VERSION_MIN_REQUIRED,$GLIB_VERSION_MIN_REQUIRED) + AC_DEFINE_UNQUOTED(GLIB_VERSION_MAX_ALLOWED,$GLIB_VERSION_MAX_ALLOWED) + +- PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 $GDK_PACKAGES) ++ PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 >= $GLIB_VERSION gobject-2.0 $GDK_PACKAGES freetype2 fontconfig) + MOZ_GTK2_CFLAGS="-I${_topsrcdir}/widget/gtk/compat $MOZ_GTK2_CFLAGS" + fi + if test "$MOZ_ENABLE_GTK2"; then +diff -up mozilla-aurora/security/sandbox/linux/Sandbox.cpp.build-gtk2 mozilla-aurora/security/sandbox/linux/Sandbox.cpp +--- mozilla-aurora/security/sandbox/linux/Sandbox.cpp.build-gtk2 2015-12-16 16:47:02.000000000 +0100 ++++ mozilla-aurora/security/sandbox/linux/Sandbox.cpp 2016-01-15 17:38:34.976272202 +0100 +@@ -668,12 +668,13 @@ SetMediaPluginSandbox(const char *aFileP + MOZ_ASSERT(!gMediaPluginFile.mPath); + if (aFilePath) { + gMediaPluginFile.mPath = strdup(aFilePath); +- gMediaPluginFile.mFd = open(aFilePath, O_RDONLY | O_CLOEXEC); ++ gMediaPluginFile.mFd = open(aFilePath, O_RDONLY); + if (gMediaPluginFile.mFd == -1) { + SANDBOX_LOG_ERROR("failed to open plugin file %s: %s", + aFilePath, strerror(errno)); + MOZ_CRASH(); + } ++ fcntl(gMediaPluginFile.mFd, F_SETFD, fcntl(gMediaPluginFile.mFd, F_GETFD, 0) | FD_CLOEXEC); + } else { + gMediaPluginFile.mFd = -1; + } +diff -up mozilla-aurora/widget/gtk/compat/gdk/gdkkeysyms.h.build-gtk2 mozilla-aurora/widget/gtk/compat/gdk/gdkkeysyms.h +--- mozilla-aurora/widget/gtk/compat/gdk/gdkkeysyms.h.build-gtk2 2015-12-16 16:47:23.000000000 +0100 ++++ mozilla-aurora/widget/gtk/compat/gdk/gdkkeysyms.h 2016-01-15 17:38:34.976272202 +0100 +@@ -6,6 +6,7 @@ + #define GDKKEYSYMS_WRAPPER_H + + #include_next ++#include "gdkkeysyms-compat.h" + + #ifndef GDK_ISO_Level5_Shift + #define GDK_ISO_Level5_Shift 0xFE11 +diff -up mozilla-aurora/widget/gtk/compat/gtk/gtkcolorseldialog.h.build-gtk2 mozilla-aurora/widget/gtk/compat/gtk/gtkcolorseldialog.h +--- mozilla-aurora/widget/gtk/compat/gtk/gtkcolorseldialog.h.build-gtk2 2016-01-15 17:38:34.976272202 +0100 ++++ mozilla-aurora/widget/gtk/compat/gtk/gtkcolorseldialog.h 2016-01-15 17:38:34.976272202 +0100 +@@ -0,0 +1,20 @@ ++/* 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/. */ ++ ++#ifndef GTKCOLOR_SELECTION_DIALOG_WRAPPER_H ++#define GTKCOLOR_SELECTION_DIALOG_WRAPPER_H ++ ++#define gtk_color_selection_dialog_get_color_selection gtk_color_selection_dialog_get_color_selection_ ++#include_next ++#undef gtk_color_selection_dialog_get_color_selection ++ ++static inline GtkWidget* ++gtk_color_selection_dialog_get_color_selection (GtkColorSelectionDialog *colorsel) ++{ ++ g_return_val_if_fail (GTK_IS_COLOR_SELECTION_DIALOG (colorsel), NULL); ++ ++ return colorsel->colorsel; ++} ++ ++#endif /* GTKCOLOR_SELECTION_DIALOG_WRAPPER_H */ +diff -up mozilla-aurora/widget/gtk/compat/gtk/gtkdialog.h.build-gtk2 mozilla-aurora/widget/gtk/compat/gtk/gtkdialog.h +--- mozilla-aurora/widget/gtk/compat/gtk/gtkdialog.h.build-gtk2 2016-01-15 17:38:34.976272202 +0100 ++++ mozilla-aurora/widget/gtk/compat/gtk/gtkdialog.h 2016-01-15 17:38:34.976272202 +0100 +@@ -0,0 +1,20 @@ ++/* 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/. */ ++ ++#ifndef GTKDIALOG_WRAPPER_H ++#define GTKDIALOG_WRAPPER_H ++ ++#define gtk_dialog_get_content_area gtk_dialog_get_content_area_ ++#include_next ++#undef gtk_dialog_get_content_area ++ ++static inline GtkWidget * ++gtk_dialog_get_content_area (GtkDialog *dialog) ++{ ++ g_return_val_if_fail (GTK_IS_DIALOG (dialog), NULL); ++ ++ return dialog->vbox; ++} ++ ++#endif /* GTKDIALOG_WRAPPER_H */ +diff -up mozilla-aurora/widget/gtk/compat/gtk/gtkplug.h.build-gtk2 mozilla-aurora/widget/gtk/compat/gtk/gtkplug.h +--- mozilla-aurora/widget/gtk/compat/gtk/gtkplug.h.build-gtk2 2016-01-15 17:38:34.976272202 +0100 ++++ mozilla-aurora/widget/gtk/compat/gtk/gtkplug.h 2016-01-15 17:38:34.976272202 +0100 +@@ -0,0 +1,20 @@ ++/* 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/. */ ++ ++#ifndef GTKPLUG_WRAPPER_H ++#define GTKPLUG_WRAPPER_H ++ ++#define gtk_plug_get_socket_window gtk_plug_get_socket_window_ ++#include_next ++#undef gtk_plug_get_socket_window ++ ++static inline GdkWindow * ++gtk_plug_get_socket_window (GtkPlug *plug) ++{ ++ g_return_val_if_fail (GTK_IS_PLUG (plug), NULL); ++ ++ return plug->socket_window; ++} ++ ++#endif /* GTKPLUG_WRAPPER_H */ +diff -up mozilla-aurora/widget/gtk/compat/gtk/gtkselection.h.build-gtk2 mozilla-aurora/widget/gtk/compat/gtk/gtkselection.h +--- mozilla-aurora/widget/gtk/compat/gtk/gtkselection.h.build-gtk2 2016-01-15 17:38:34.977272201 +0100 ++++ mozilla-aurora/widget/gtk/compat/gtk/gtkselection.h 2016-01-15 17:38:34.976272202 +0100 +@@ -0,0 +1,60 @@ ++/* 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/. */ ++ ++#ifndef GTKSELECTION_WRAPPER_H ++#define GTKSELECTION_WRAPPER_H ++ ++#define gtk_selection_data_get_length gtk_selection_data_get_length_ ++#define gtk_selection_data_get_data_type gtk_selection_data_get_data_type_ ++#define gtk_selection_data_get_selection gtk_selection_data_get_selection_ ++#define gtk_selection_data_get_target gtk_selection_data_get_target_ ++#define gtk_selection_data_get_data gtk_selection_data_get_data_ ++#include_next ++#undef gtk_selection_data_get_length ++#undef gtk_selection_data_get_data_type ++#undef gtk_selection_data_get_selection ++#undef gtk_selection_data_get_target ++#undef gtk_selection_data_get_data ++ ++static inline GdkAtom ++gtk_selection_data_get_data_type (GtkSelectionData *selection_data) ++{ ++ g_return_val_if_fail (selection_data != NULL, 0); ++ ++ return selection_data->type; ++} ++ ++static inline gint ++gtk_selection_data_get_length (GtkSelectionData *selection_data) ++{ ++ g_return_val_if_fail (selection_data != NULL, -1); ++ ++ return selection_data->length; ++} ++ ++static inline GdkAtom ++gtk_selection_data_get_selection (GtkSelectionData *selection_data) ++{ ++ g_return_val_if_fail (selection_data != NULL, 0); ++ ++ return selection_data->selection; ++} ++ ++static inline GdkAtom ++gtk_selection_data_get_target (GtkSelectionData *selection_data) ++{ ++ g_return_val_if_fail (selection_data != NULL, 0); ++ ++ return selection_data->target; ++} ++ ++static inline const guchar* ++gtk_selection_data_get_data (GtkSelectionData *selection_data) ++{ ++ g_return_val_if_fail (selection_data != NULL, NULL); ++ ++ return selection_data->data; ++} ++ ++#endif /* GTKSELECTION_WRAPPER_H */ +diff -up mozilla-aurora/widget/gtk/compat/gtk/gtkwidget.h.build-gtk2 mozilla-aurora/widget/gtk/compat/gtk/gtkwidget.h +--- mozilla-aurora/widget/gtk/compat/gtk/gtkwidget.h.build-gtk2 2015-12-16 16:47:23.000000000 +0100 ++++ mozilla-aurora/widget/gtk/compat/gtk/gtkwidget.h 2016-01-15 17:38:34.977272201 +0100 +@@ -9,11 +9,34 @@ + #define gtk_widget_get_mapped gtk_widget_get_mapped_ + #define gtk_widget_set_realized gtk_widget_set_realized_ + #define gtk_widget_get_realized gtk_widget_get_realized_ ++#define gtk_widget_get_window gtk_widget_get_window_ ++#define gtk_widget_has_focus gtk_widget_has_focus_ ++#define gtk_widget_get_visible gtk_widget_get_visible_ ++#define gtk_widget_set_window gtk_widget_set_window_ ++#define gtk_widget_set_can_focus gtk_widget_set_can_focus_ ++#define gtk_widget_get_has_window gtk_widget_get_has_window_ ++#define gtk_widget_set_has_window gtk_widget_set_has_window_ ++#define gtk_widget_get_allocation gtk_widget_get_allocation_ ++#define gtk_widget_set_allocation gtk_widget_set_allocation_ ++#define gtk_widget_get_can_focus gtk_widget_get_can_focus_ ++#define gtk_widget_has_grab gtk_widget_has_grab_ ++#define gtk_widget_is_toplevel gtk_widget_is_toplevel_ + #include_next + #undef gtk_widget_set_mapped + #undef gtk_widget_get_mapped + #undef gtk_widget_set_realized + #undef gtk_widget_get_realized ++#undef gtk_widget_get_window ++#undef gtk_widget_has_focus ++#undef gtk_widget_get_visible ++#undef gtk_widget_set_window ++#undef gtk_widget_set_can_focus ++#undef gtk_widget_get_has_window ++#undef gtk_widget_set_has_window ++#undef gtk_widget_get_allocation ++#undef gtk_widget_set_allocation ++#undef gtk_widget_has_grab ++#undef gtk_widget_is_toplevel + + #include + +@@ -47,4 +70,119 @@ gtk_widget_get_realized(GtkWidget *widge + return GTK_WIDGET_REALIZED (widget); + } + ++static inline GdkWindow * ++gtk_widget_get_window(GtkWidget *widget) ++{ ++ return widget->window; ++} ++ ++static inline void ++gtk_widget_set_window(GtkWidget *widget, ++ GdkWindow *window) ++{ ++ g_return_if_fail (GTK_IS_WIDGET (widget)); ++ g_return_if_fail (window == NULL || GDK_IS_WINDOW (window)); ++ ++ if (widget->window != window) ++ { ++ widget->window = window; ++ g_object_notify (G_OBJECT (widget), "window"); ++ } ++} ++ ++ ++static inline gboolean ++gtk_widget_has_focus(GtkWidget *widget) ++{ ++ return GTK_WIDGET_HAS_FOCUS(widget); ++} ++ ++static inline gboolean ++gtk_widget_get_can_focus (GtkWidget *widget) ++{ ++ g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); ++ ++ return (GTK_OBJECT_FLAGS (widget) & GTK_CAN_FOCUS) != 0; ++} ++ ++static inline void ++gtk_widget_set_can_focus (GtkWidget *widget, ++ gboolean can_focus) ++{ ++ g_return_if_fail (GTK_IS_WIDGET (widget)); ++ ++ if (can_focus != gtk_widget_get_can_focus (widget)) ++ { ++ if (can_focus) ++ GTK_OBJECT_FLAGS (widget) |= GTK_CAN_FOCUS; ++ else ++ GTK_OBJECT_FLAGS (widget) &= ~(GTK_CAN_FOCUS); ++ ++ gtk_widget_queue_resize (widget); ++ g_object_notify (G_OBJECT (widget), "can-focus"); ++ } ++} ++ ++static inline gboolean ++gtk_widget_get_visible(GtkWidget *widget) ++{ ++ return GTK_WIDGET_VISIBLE(widget); ++} ++ ++static inline gboolean ++gtk_widget_get_has_window (GtkWidget *widget) ++{ ++ g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); ++ ++ return !((GTK_OBJECT_FLAGS (widget) & GTK_NO_WINDOW) != 0); ++} ++ ++static inline void ++gtk_widget_set_has_window (GtkWidget *widget, ++ gboolean has_window) ++{ ++ g_return_if_fail (GTK_IS_WIDGET (widget)); ++ ++ if (has_window) ++ GTK_OBJECT_FLAGS (widget) &= ~(GTK_NO_WINDOW); ++ else ++ GTK_OBJECT_FLAGS (widget) |= GTK_NO_WINDOW; ++} ++ ++static inline void ++gtk_widget_get_allocation (GtkWidget *widget, ++ GtkAllocation *allocation) ++{ ++ g_return_if_fail (GTK_IS_WIDGET (widget)); ++ g_return_if_fail (allocation != NULL); ++ ++ *allocation = widget->allocation; ++} ++ ++static inline void ++gtk_widget_set_allocation (GtkWidget *widget, ++ const GtkAllocation *allocation) ++{ ++ g_return_if_fail (GTK_IS_WIDGET (widget)); ++ g_return_if_fail (allocation != NULL); ++ ++ widget->allocation = *allocation; ++} ++ ++static inline gboolean ++gtk_widget_has_grab (GtkWidget *widget) ++{ ++ g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); ++ ++ return (GTK_OBJECT_FLAGS (widget) & GTK_HAS_GRAB) != 0; ++} ++ ++static inline gboolean ++gtk_widget_is_toplevel (GtkWidget *widget) ++{ ++ g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); ++ ++ return (GTK_OBJECT_FLAGS (widget) & GTK_TOPLEVEL) != 0; ++} ++ + #endif /* GTKWIDGET_WRAPPER_H */ +diff -up mozilla-aurora/widget/gtk/gdkkeysyms-compat.h.build-gtk2 mozilla-aurora/widget/gtk/gdkkeysyms-compat.h +--- mozilla-aurora/widget/gtk/gdkkeysyms-compat.h.build-gtk2 2016-01-15 17:38:34.978272200 +0100 ++++ mozilla-aurora/widget/gtk/gdkkeysyms-compat.h 2016-01-15 17:38:34.978272200 +0100 +@@ -0,0 +1,2208 @@ ++/* GDK - The GIMP Drawing Kit ++ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald ++ * Copyright (C) 2005, 2006, 2007, 2009 GNOME Foundation ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the ++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ * Boston, MA 02111-1307, USA. ++ */ ++ ++/* ++ * Compatibility version of gdkkeysyms.h. ++ * ++ * In GTK3, keysyms changed to have a KEY_ prefix. This is a compatibility header ++ * your application can include to gain access to the old names as well. Consider ++ * porting to the new names instead. ++ */ ++ ++#ifndef __GDK_KEYSYMS_COMPAT_H__ ++#define __GDK_KEYSYMS_COMPAT_H__ ++ ++#define GDK_VoidSymbol 0xffffff ++#define GDK_BackSpace 0xff08 ++#define GDK_Tab 0xff09 ++#define GDK_Linefeed 0xff0a ++#define GDK_Clear 0xff0b ++#define GDK_Return 0xff0d ++#define GDK_Pause 0xff13 ++#define GDK_Scroll_Lock 0xff14 ++#define GDK_Sys_Req 0xff15 ++#define GDK_Escape 0xff1b ++#define GDK_Delete 0xffff ++#define GDK_Multi_key 0xff20 ++#define GDK_Codeinput 0xff37 ++#define GDK_SingleCandidate 0xff3c ++#define GDK_MultipleCandidate 0xff3d ++#define GDK_PreviousCandidate 0xff3e ++#define GDK_Kanji 0xff21 ++#define GDK_Muhenkan 0xff22 ++#define GDK_Henkan_Mode 0xff23 ++#define GDK_Henkan 0xff23 ++#define GDK_Romaji 0xff24 ++#define GDK_Hiragana 0xff25 ++#define GDK_Katakana 0xff26 ++#define GDK_Hiragana_Katakana 0xff27 ++#define GDK_Zenkaku 0xff28 ++#define GDK_Hankaku 0xff29 ++#define GDK_Zenkaku_Hankaku 0xff2a ++#define GDK_Touroku 0xff2b ++#define GDK_Massyo 0xff2c ++#define GDK_Kana_Lock 0xff2d ++#define GDK_Kana_Shift 0xff2e ++#define GDK_Eisu_Shift 0xff2f ++#define GDK_Eisu_toggle 0xff30 ++#define GDK_Kanji_Bangou 0xff37 ++#define GDK_Zen_Koho 0xff3d ++#define GDK_Mae_Koho 0xff3e ++#define GDK_Home 0xff50 ++#define GDK_Left 0xff51 ++#define GDK_Up 0xff52 ++#define GDK_Right 0xff53 ++#define GDK_Down 0xff54 ++#define GDK_Prior 0xff55 ++#define GDK_Page_Up 0xff55 ++#define GDK_Next 0xff56 ++#define GDK_Page_Down 0xff56 ++#define GDK_End 0xff57 ++#define GDK_Begin 0xff58 ++#define GDK_Select 0xff60 ++#define GDK_Print 0xff61 ++#define GDK_Execute 0xff62 ++#define GDK_Insert 0xff63 ++#define GDK_Undo 0xff65 ++#define GDK_Redo 0xff66 ++#define GDK_Menu 0xff67 ++#define GDK_Find 0xff68 ++#define GDK_Cancel 0xff69 ++#define GDK_Help 0xff6a ++#define GDK_Break 0xff6b ++#define GDK_Mode_switch 0xff7e ++#define GDK_script_switch 0xff7e ++#define GDK_Num_Lock 0xff7f ++#define GDK_KP_Space 0xff80 ++#define GDK_KP_Tab 0xff89 ++#define GDK_KP_Enter 0xff8d ++#define GDK_KP_F1 0xff91 ++#define GDK_KP_F2 0xff92 ++#define GDK_KP_F3 0xff93 ++#define GDK_KP_F4 0xff94 ++#define GDK_KP_Home 0xff95 ++#define GDK_KP_Left 0xff96 ++#define GDK_KP_Up 0xff97 ++#define GDK_KP_Right 0xff98 ++#define GDK_KP_Down 0xff99 ++#define GDK_KP_Prior 0xff9a ++#define GDK_KP_Page_Up 0xff9a ++#define GDK_KP_Next 0xff9b ++#define GDK_KP_Page_Down 0xff9b ++#define GDK_KP_End 0xff9c ++#define GDK_KP_Begin 0xff9d ++#define GDK_KP_Insert 0xff9e ++#define GDK_KP_Delete 0xff9f ++#define GDK_KP_Equal 0xffbd ++#define GDK_KP_Multiply 0xffaa ++#define GDK_KP_Add 0xffab ++#define GDK_KP_Separator 0xffac ++#define GDK_KP_Subtract 0xffad ++#define GDK_KP_Decimal 0xffae ++#define GDK_KP_Divide 0xffaf ++#define GDK_KP_0 0xffb0 ++#define GDK_KP_1 0xffb1 ++#define GDK_KP_2 0xffb2 ++#define GDK_KP_3 0xffb3 ++#define GDK_KP_4 0xffb4 ++#define GDK_KP_5 0xffb5 ++#define GDK_KP_6 0xffb6 ++#define GDK_KP_7 0xffb7 ++#define GDK_KP_8 0xffb8 ++#define GDK_KP_9 0xffb9 ++#define GDK_F1 0xffbe ++#define GDK_F2 0xffbf ++#define GDK_F3 0xffc0 ++#define GDK_F4 0xffc1 ++#define GDK_F5 0xffc2 ++#define GDK_F6 0xffc3 ++#define GDK_F7 0xffc4 ++#define GDK_F8 0xffc5 ++#define GDK_F9 0xffc6 ++#define GDK_F10 0xffc7 ++#define GDK_F11 0xffc8 ++#define GDK_L1 0xffc8 ++#define GDK_F12 0xffc9 ++#define GDK_L2 0xffc9 ++#define GDK_F13 0xffca ++#define GDK_L3 0xffca ++#define GDK_F14 0xffcb ++#define GDK_L4 0xffcb ++#define GDK_F15 0xffcc ++#define GDK_L5 0xffcc ++#define GDK_F16 0xffcd ++#define GDK_L6 0xffcd ++#define GDK_F17 0xffce ++#define GDK_L7 0xffce ++#define GDK_F18 0xffcf ++#define GDK_L8 0xffcf ++#define GDK_F19 0xffd0 ++#define GDK_L9 0xffd0 ++#define GDK_F20 0xffd1 ++#define GDK_L10 0xffd1 ++#define GDK_F21 0xffd2 ++#define GDK_R1 0xffd2 ++#define GDK_F22 0xffd3 ++#define GDK_R2 0xffd3 ++#define GDK_F23 0xffd4 ++#define GDK_R3 0xffd4 ++#define GDK_F24 0xffd5 ++#define GDK_R4 0xffd5 ++#define GDK_F25 0xffd6 ++#define GDK_R5 0xffd6 ++#define GDK_F26 0xffd7 ++#define GDK_R6 0xffd7 ++#define GDK_F27 0xffd8 ++#define GDK_R7 0xffd8 ++#define GDK_F28 0xffd9 ++#define GDK_R8 0xffd9 ++#define GDK_F29 0xffda ++#define GDK_R9 0xffda ++#define GDK_F30 0xffdb ++#define GDK_R10 0xffdb ++#define GDK_F31 0xffdc ++#define GDK_R11 0xffdc ++#define GDK_F32 0xffdd ++#define GDK_R12 0xffdd ++#define GDK_F33 0xffde ++#define GDK_R13 0xffde ++#define GDK_F34 0xffdf ++#define GDK_R14 0xffdf ++#define GDK_F35 0xffe0 ++#define GDK_R15 0xffe0 ++#define GDK_Shift_L 0xffe1 ++#define GDK_Shift_R 0xffe2 ++#define GDK_Control_L 0xffe3 ++#define GDK_Control_R 0xffe4 ++#define GDK_Caps_Lock 0xffe5 ++#define GDK_Shift_Lock 0xffe6 ++#define GDK_Meta_L 0xffe7 ++#define GDK_Meta_R 0xffe8 ++#define GDK_Alt_L 0xffe9 ++#define GDK_Alt_R 0xffea ++#define GDK_Super_L 0xffeb ++#define GDK_Super_R 0xffec ++#define GDK_Hyper_L 0xffed ++#define GDK_Hyper_R 0xffee ++#define GDK_ISO_Lock 0xfe01 ++#define GDK_ISO_Level2_Latch 0xfe02 ++#define GDK_ISO_Level3_Shift 0xfe03 ++#define GDK_ISO_Level3_Latch 0xfe04 ++#define GDK_ISO_Level3_Lock 0xfe05 ++#define GDK_ISO_Level5_Shift 0xfe11 ++#define GDK_ISO_Level5_Latch 0xfe12 ++#define GDK_ISO_Level5_Lock 0xfe13 ++#define GDK_ISO_Group_Shift 0xff7e ++#define GDK_ISO_Group_Latch 0xfe06 ++#define GDK_ISO_Group_Lock 0xfe07 ++#define GDK_ISO_Next_Group 0xfe08 ++#define GDK_ISO_Next_Group_Lock 0xfe09 ++#define GDK_ISO_Prev_Group 0xfe0a ++#define GDK_ISO_Prev_Group_Lock 0xfe0b ++#define GDK_ISO_First_Group 0xfe0c ++#define GDK_ISO_First_Group_Lock 0xfe0d ++#define GDK_ISO_Last_Group 0xfe0e ++#define GDK_ISO_Last_Group_Lock 0xfe0f ++#define GDK_ISO_Left_Tab 0xfe20 ++#define GDK_ISO_Move_Line_Up 0xfe21 ++#define GDK_ISO_Move_Line_Down 0xfe22 ++#define GDK_ISO_Partial_Line_Up 0xfe23 ++#define GDK_ISO_Partial_Line_Down 0xfe24 ++#define GDK_ISO_Partial_Space_Left 0xfe25 ++#define GDK_ISO_Partial_Space_Right 0xfe26 ++#define GDK_ISO_Set_Margin_Left 0xfe27 ++#define GDK_ISO_Set_Margin_Right 0xfe28 ++#define GDK_ISO_Release_Margin_Left 0xfe29 ++#define GDK_ISO_Release_Margin_Right 0xfe2a ++#define GDK_ISO_Release_Both_Margins 0xfe2b ++#define GDK_ISO_Fast_Cursor_Left 0xfe2c ++#define GDK_ISO_Fast_Cursor_Right 0xfe2d ++#define GDK_ISO_Fast_Cursor_Up 0xfe2e ++#define GDK_ISO_Fast_Cursor_Down 0xfe2f ++#define GDK_ISO_Continuous_Underline 0xfe30 ++#define GDK_ISO_Discontinuous_Underline 0xfe31 ++#define GDK_ISO_Emphasize 0xfe32 ++#define GDK_ISO_Center_Object 0xfe33 ++#define GDK_ISO_Enter 0xfe34 ++#define GDK_dead_grave 0xfe50 ++#define GDK_dead_acute 0xfe51 ++#define GDK_dead_circumflex 0xfe52 ++#define GDK_dead_tilde 0xfe53 ++#define GDK_dead_perispomeni 0xfe53 ++#define GDK_dead_macron 0xfe54 ++#define GDK_dead_breve 0xfe55 ++#define GDK_dead_abovedot 0xfe56 ++#define GDK_dead_diaeresis 0xfe57 ++#define GDK_dead_abovering 0xfe58 ++#define GDK_dead_doubleacute 0xfe59 ++#define GDK_dead_caron 0xfe5a ++#define GDK_dead_cedilla 0xfe5b ++#define GDK_dead_ogonek 0xfe5c ++#define GDK_dead_iota 0xfe5d ++#define GDK_dead_voiced_sound 0xfe5e ++#define GDK_dead_semivoiced_sound 0xfe5f ++#define GDK_dead_belowdot 0xfe60 ++#define GDK_dead_hook 0xfe61 ++#define GDK_dead_horn 0xfe62 ++#define GDK_dead_stroke 0xfe63 ++#define GDK_dead_abovecomma 0xfe64 ++#define GDK_dead_psili 0xfe64 ++#define GDK_dead_abovereversedcomma 0xfe65 ++#define GDK_dead_dasia 0xfe65 ++#define GDK_dead_doublegrave 0xfe66 ++#define GDK_dead_belowring 0xfe67 ++#define GDK_dead_belowmacron 0xfe68 ++#define GDK_dead_belowcircumflex 0xfe69 ++#define GDK_dead_belowtilde 0xfe6a ++#define GDK_dead_belowbreve 0xfe6b ++#define GDK_dead_belowdiaeresis 0xfe6c ++#define GDK_dead_invertedbreve 0xfe6d ++#define GDK_dead_belowcomma 0xfe6e ++#define GDK_dead_currency 0xfe6f ++#define GDK_dead_a 0xfe80 ++#define GDK_dead_A 0xfe81 ++#define GDK_dead_e 0xfe82 ++#define GDK_dead_E 0xfe83 ++#define GDK_dead_i 0xfe84 ++#define GDK_dead_I 0xfe85 ++#define GDK_dead_o 0xfe86 ++#define GDK_dead_O 0xfe87 ++#define GDK_dead_u 0xfe88 ++#define GDK_dead_U 0xfe89 ++#define GDK_dead_small_schwa 0xfe8a ++#define GDK_dead_capital_schwa 0xfe8b ++#define GDK_First_Virtual_Screen 0xfed0 ++#define GDK_Prev_Virtual_Screen 0xfed1 ++#define GDK_Next_Virtual_Screen 0xfed2 ++#define GDK_Last_Virtual_Screen 0xfed4 ++#define GDK_Terminate_Server 0xfed5 ++#define GDK_AccessX_Enable 0xfe70 ++#define GDK_AccessX_Feedback_Enable 0xfe71 ++#define GDK_RepeatKeys_Enable 0xfe72 ++#define GDK_SlowKeys_Enable 0xfe73 ++#define GDK_BounceKeys_Enable 0xfe74 ++#define GDK_StickyKeys_Enable 0xfe75 ++#define GDK_MouseKeys_Enable 0xfe76 ++#define GDK_MouseKeys_Accel_Enable 0xfe77 ++#define GDK_Overlay1_Enable 0xfe78 ++#define GDK_Overlay2_Enable 0xfe79 ++#define GDK_AudibleBell_Enable 0xfe7a ++#define GDK_Pointer_Left 0xfee0 ++#define GDK_Pointer_Right 0xfee1 ++#define GDK_Pointer_Up 0xfee2 ++#define GDK_Pointer_Down 0xfee3 ++#define GDK_Pointer_UpLeft 0xfee4 ++#define GDK_Pointer_UpRight 0xfee5 ++#define GDK_Pointer_DownLeft 0xfee6 ++#define GDK_Pointer_DownRight 0xfee7 ++#define GDK_Pointer_Button_Dflt 0xfee8 ++#define GDK_Pointer_Button1 0xfee9 ++#define GDK_Pointer_Button2 0xfeea ++#define GDK_Pointer_Button3 0xfeeb ++#define GDK_Pointer_Button4 0xfeec ++#define GDK_Pointer_Button5 0xfeed ++#define GDK_Pointer_DblClick_Dflt 0xfeee ++#define GDK_Pointer_DblClick1 0xfeef ++#define GDK_Pointer_DblClick2 0xfef0 ++#define GDK_Pointer_DblClick3 0xfef1 ++#define GDK_Pointer_DblClick4 0xfef2 ++#define GDK_Pointer_DblClick5 0xfef3 ++#define GDK_Pointer_Drag_Dflt 0xfef4 ++#define GDK_Pointer_Drag1 0xfef5 ++#define GDK_Pointer_Drag2 0xfef6 ++#define GDK_Pointer_Drag3 0xfef7 ++#define GDK_Pointer_Drag4 0xfef8 ++#define GDK_Pointer_Drag5 0xfefd ++#define GDK_Pointer_EnableKeys 0xfef9 ++#define GDK_Pointer_Accelerate 0xfefa ++#define GDK_Pointer_DfltBtnNext 0xfefb ++#define GDK_Pointer_DfltBtnPrev 0xfefc ++#define GDK_3270_Duplicate 0xfd01 ++#define GDK_3270_FieldMark 0xfd02 ++#define GDK_3270_Right2 0xfd03 ++#define GDK_3270_Left2 0xfd04 ++#define GDK_3270_BackTab 0xfd05 ++#define GDK_3270_EraseEOF 0xfd06 ++#define GDK_3270_EraseInput 0xfd07 ++#define GDK_3270_Reset 0xfd08 ++#define GDK_3270_Quit 0xfd09 ++#define GDK_3270_PA1 0xfd0a ++#define GDK_3270_PA2 0xfd0b ++#define GDK_3270_PA3 0xfd0c ++#define GDK_3270_Test 0xfd0d ++#define GDK_3270_Attn 0xfd0e ++#define GDK_3270_CursorBlink 0xfd0f ++#define GDK_3270_AltCursor 0xfd10 ++#define GDK_3270_KeyClick 0xfd11 ++#define GDK_3270_Jump 0xfd12 ++#define GDK_3270_Ident 0xfd13 ++#define GDK_3270_Rule 0xfd14 ++#define GDK_3270_Copy 0xfd15 ++#define GDK_3270_Play 0xfd16 ++#define GDK_3270_Setup 0xfd17 ++#define GDK_3270_Record 0xfd18 ++#define GDK_3270_ChangeScreen 0xfd19 ++#define GDK_3270_DeleteWord 0xfd1a ++#define GDK_3270_ExSelect 0xfd1b ++#define GDK_3270_CursorSelect 0xfd1c ++#define GDK_3270_PrintScreen 0xfd1d ++#define GDK_3270_Enter 0xfd1e ++#define GDK_space 0x020 ++#define GDK_exclam 0x021 ++#define GDK_quotedbl 0x022 ++#define GDK_numbersign 0x023 ++#define GDK_dollar 0x024 ++#define GDK_percent 0x025 ++#define GDK_ampersand 0x026 ++#define GDK_apostrophe 0x027 ++#define GDK_quoteright 0x027 ++#define GDK_parenleft 0x028 ++#define GDK_parenright 0x029 ++#define GDK_asterisk 0x02a ++#define GDK_plus 0x02b ++#define GDK_comma 0x02c ++#define GDK_minus 0x02d ++#define GDK_period 0x02e ++#define GDK_slash 0x02f ++#define GDK_0 0x030 ++#define GDK_1 0x031 ++#define GDK_2 0x032 ++#define GDK_3 0x033 ++#define GDK_4 0x034 ++#define GDK_5 0x035 ++#define GDK_6 0x036 ++#define GDK_7 0x037 ++#define GDK_8 0x038 ++#define GDK_9 0x039 ++#define GDK_colon 0x03a ++#define GDK_semicolon 0x03b ++#define GDK_less 0x03c ++#define GDK_equal 0x03d ++#define GDK_greater 0x03e ++#define GDK_question 0x03f ++#define GDK_at 0x040 ++#define GDK_A 0x041 ++#define GDK_B 0x042 ++#define GDK_C 0x043 ++#define GDK_D 0x044 ++#define GDK_E 0x045 ++#define GDK_F 0x046 ++#define GDK_G 0x047 ++#define GDK_H 0x048 ++#define GDK_I 0x049 ++#define GDK_J 0x04a ++#define GDK_K 0x04b ++#define GDK_L 0x04c ++#define GDK_M 0x04d ++#define GDK_N 0x04e ++#define GDK_O 0x04f ++#define GDK_P 0x050 ++#define GDK_Q 0x051 ++#define GDK_R 0x052 ++#define GDK_S 0x053 ++#define GDK_T 0x054 ++#define GDK_U 0x055 ++#define GDK_V 0x056 ++#define GDK_W 0x057 ++#define GDK_X 0x058 ++#define GDK_Y 0x059 ++#define GDK_Z 0x05a ++#define GDK_bracketleft 0x05b ++#define GDK_backslash 0x05c ++#define GDK_bracketright 0x05d ++#define GDK_asciicircum 0x05e ++#define GDK_underscore 0x05f ++#define GDK_grave 0x060 ++#define GDK_quoteleft 0x060 ++#define GDK_a 0x061 ++#define GDK_b 0x062 ++#define GDK_c 0x063 ++#define GDK_d 0x064 ++#define GDK_e 0x065 ++#define GDK_f 0x066 ++#define GDK_g 0x067 ++#define GDK_h 0x068 ++#define GDK_i 0x069 ++#define GDK_j 0x06a ++#define GDK_k 0x06b ++#define GDK_l 0x06c ++#define GDK_m 0x06d ++#define GDK_n 0x06e ++#define GDK_o 0x06f ++#define GDK_p 0x070 ++#define GDK_q 0x071 ++#define GDK_r 0x072 ++#define GDK_s 0x073 ++#define GDK_t 0x074 ++#define GDK_u 0x075 ++#define GDK_v 0x076 ++#define GDK_w 0x077 ++#define GDK_x 0x078 ++#define GDK_y 0x079 ++#define GDK_z 0x07a ++#define GDK_braceleft 0x07b ++#define GDK_bar 0x07c ++#define GDK_braceright 0x07d ++#define GDK_asciitilde 0x07e ++#define GDK_nobreakspace 0x0a0 ++#define GDK_exclamdown 0x0a1 ++#define GDK_cent 0x0a2 ++#define GDK_sterling 0x0a3 ++#define GDK_currency 0x0a4 ++#define GDK_yen 0x0a5 ++#define GDK_brokenbar 0x0a6 ++#define GDK_section 0x0a7 ++#define GDK_diaeresis 0x0a8 ++#define GDK_copyright 0x0a9 ++#define GDK_ordfeminine 0x0aa ++#define GDK_guillemotleft 0x0ab ++#define GDK_notsign 0x0ac ++#define GDK_hyphen 0x0ad ++#define GDK_registered 0x0ae ++#define GDK_macron 0x0af ++#define GDK_degree 0x0b0 ++#define GDK_plusminus 0x0b1 ++#define GDK_twosuperior 0x0b2 ++#define GDK_threesuperior 0x0b3 ++#define GDK_acute 0x0b4 ++#define GDK_mu 0x0b5 ++#define GDK_paragraph 0x0b6 ++#define GDK_periodcentered 0x0b7 ++#define GDK_cedilla 0x0b8 ++#define GDK_onesuperior 0x0b9 ++#define GDK_masculine 0x0ba ++#define GDK_guillemotright 0x0bb ++#define GDK_onequarter 0x0bc ++#define GDK_onehalf 0x0bd ++#define GDK_threequarters 0x0be ++#define GDK_questiondown 0x0bf ++#define GDK_Agrave 0x0c0 ++#define GDK_Aacute 0x0c1 ++#define GDK_Acircumflex 0x0c2 ++#define GDK_Atilde 0x0c3 ++#define GDK_Adiaeresis 0x0c4 ++#define GDK_Aring 0x0c5 ++#define GDK_AE 0x0c6 ++#define GDK_Ccedilla 0x0c7 ++#define GDK_Egrave 0x0c8 ++#define GDK_Eacute 0x0c9 ++#define GDK_Ecircumflex 0x0ca ++#define GDK_Ediaeresis 0x0cb ++#define GDK_Igrave 0x0cc ++#define GDK_Iacute 0x0cd ++#define GDK_Icircumflex 0x0ce ++#define GDK_Idiaeresis 0x0cf ++#define GDK_ETH 0x0d0 ++#define GDK_Eth 0x0d0 ++#define GDK_Ntilde 0x0d1 ++#define GDK_Ograve 0x0d2 ++#define GDK_Oacute 0x0d3 ++#define GDK_Ocircumflex 0x0d4 ++#define GDK_Otilde 0x0d5 ++#define GDK_Odiaeresis 0x0d6 ++#define GDK_multiply 0x0d7 ++#define GDK_Oslash 0x0d8 ++#define GDK_Ooblique 0x0d8 ++#define GDK_Ugrave 0x0d9 ++#define GDK_Uacute 0x0da ++#define GDK_Ucircumflex 0x0db ++#define GDK_Udiaeresis 0x0dc ++#define GDK_Yacute 0x0dd ++#define GDK_THORN 0x0de ++#define GDK_Thorn 0x0de ++#define GDK_ssharp 0x0df ++#define GDK_agrave 0x0e0 ++#define GDK_aacute 0x0e1 ++#define GDK_acircumflex 0x0e2 ++#define GDK_atilde 0x0e3 ++#define GDK_adiaeresis 0x0e4 ++#define GDK_aring 0x0e5 ++#define GDK_ae 0x0e6 ++#define GDK_ccedilla 0x0e7 ++#define GDK_egrave 0x0e8 ++#define GDK_eacute 0x0e9 ++#define GDK_ecircumflex 0x0ea ++#define GDK_ediaeresis 0x0eb ++#define GDK_igrave 0x0ec ++#define GDK_iacute 0x0ed ++#define GDK_icircumflex 0x0ee ++#define GDK_idiaeresis 0x0ef ++#define GDK_eth 0x0f0 ++#define GDK_ntilde 0x0f1 ++#define GDK_ograve 0x0f2 ++#define GDK_oacute 0x0f3 ++#define GDK_ocircumflex 0x0f4 ++#define GDK_otilde 0x0f5 ++#define GDK_odiaeresis 0x0f6 ++#define GDK_division 0x0f7 ++#define GDK_oslash 0x0f8 ++#define GDK_ooblique 0x0f8 ++#define GDK_ugrave 0x0f9 ++#define GDK_uacute 0x0fa ++#define GDK_ucircumflex 0x0fb ++#define GDK_udiaeresis 0x0fc ++#define GDK_yacute 0x0fd ++#define GDK_thorn 0x0fe ++#define GDK_ydiaeresis 0x0ff ++#define GDK_Aogonek 0x1a1 ++#define GDK_breve 0x1a2 ++#define GDK_Lstroke 0x1a3 ++#define GDK_Lcaron 0x1a5 ++#define GDK_Sacute 0x1a6 ++#define GDK_Scaron 0x1a9 ++#define GDK_Scedilla 0x1aa ++#define GDK_Tcaron 0x1ab ++#define GDK_Zacute 0x1ac ++#define GDK_Zcaron 0x1ae ++#define GDK_Zabovedot 0x1af ++#define GDK_aogonek 0x1b1 ++#define GDK_ogonek 0x1b2 ++#define GDK_lstroke 0x1b3 ++#define GDK_lcaron 0x1b5 ++#define GDK_sacute 0x1b6 ++#define GDK_caron 0x1b7 ++#define GDK_scaron 0x1b9 ++#define GDK_scedilla 0x1ba ++#define GDK_tcaron 0x1bb ++#define GDK_zacute 0x1bc ++#define GDK_doubleacute 0x1bd ++#define GDK_zcaron 0x1be ++#define GDK_zabovedot 0x1bf ++#define GDK_Racute 0x1c0 ++#define GDK_Abreve 0x1c3 ++#define GDK_Lacute 0x1c5 ++#define GDK_Cacute 0x1c6 ++#define GDK_Ccaron 0x1c8 ++#define GDK_Eogonek 0x1ca ++#define GDK_Ecaron 0x1cc ++#define GDK_Dcaron 0x1cf ++#define GDK_Dstroke 0x1d0 ++#define GDK_Nacute 0x1d1 ++#define GDK_Ncaron 0x1d2 ++#define GDK_Odoubleacute 0x1d5 ++#define GDK_Rcaron 0x1d8 ++#define GDK_Uring 0x1d9 ++#define GDK_Udoubleacute 0x1db ++#define GDK_Tcedilla 0x1de ++#define GDK_racute 0x1e0 ++#define GDK_abreve 0x1e3 ++#define GDK_lacute 0x1e5 ++#define GDK_cacute 0x1e6 ++#define GDK_ccaron 0x1e8 ++#define GDK_eogonek 0x1ea ++#define GDK_ecaron 0x1ec ++#define GDK_dcaron 0x1ef ++#define GDK_dstroke 0x1f0 ++#define GDK_nacute 0x1f1 ++#define GDK_ncaron 0x1f2 ++#define GDK_odoubleacute 0x1f5 ++#define GDK_udoubleacute 0x1fb ++#define GDK_rcaron 0x1f8 ++#define GDK_uring 0x1f9 ++#define GDK_tcedilla 0x1fe ++#define GDK_abovedot 0x1ff ++#define GDK_Hstroke 0x2a1 ++#define GDK_Hcircumflex 0x2a6 ++#define GDK_Iabovedot 0x2a9 ++#define GDK_Gbreve 0x2ab ++#define GDK_Jcircumflex 0x2ac ++#define GDK_hstroke 0x2b1 ++#define GDK_hcircumflex 0x2b6 ++#define GDK_idotless 0x2b9 ++#define GDK_gbreve 0x2bb ++#define GDK_jcircumflex 0x2bc ++#define GDK_Cabovedot 0x2c5 ++#define GDK_Ccircumflex 0x2c6 ++#define GDK_Gabovedot 0x2d5 ++#define GDK_Gcircumflex 0x2d8 ++#define GDK_Ubreve 0x2dd ++#define GDK_Scircumflex 0x2de ++#define GDK_cabovedot 0x2e5 ++#define GDK_ccircumflex 0x2e6 ++#define GDK_gabovedot 0x2f5 ++#define GDK_gcircumflex 0x2f8 ++#define GDK_ubreve 0x2fd ++#define GDK_scircumflex 0x2fe ++#define GDK_kra 0x3a2 ++#define GDK_kappa 0x3a2 ++#define GDK_Rcedilla 0x3a3 ++#define GDK_Itilde 0x3a5 ++#define GDK_Lcedilla 0x3a6 ++#define GDK_Emacron 0x3aa ++#define GDK_Gcedilla 0x3ab ++#define GDK_Tslash 0x3ac ++#define GDK_rcedilla 0x3b3 ++#define GDK_itilde 0x3b5 ++#define GDK_lcedilla 0x3b6 ++#define GDK_emacron 0x3ba ++#define GDK_gcedilla 0x3bb ++#define GDK_tslash 0x3bc ++#define GDK_ENG 0x3bd ++#define GDK_eng 0x3bf ++#define GDK_Amacron 0x3c0 ++#define GDK_Iogonek 0x3c7 ++#define GDK_Eabovedot 0x3cc ++#define GDK_Imacron 0x3cf ++#define GDK_Ncedilla 0x3d1 ++#define GDK_Omacron 0x3d2 ++#define GDK_Kcedilla 0x3d3 ++#define GDK_Uogonek 0x3d9 ++#define GDK_Utilde 0x3dd ++#define GDK_Umacron 0x3de ++#define GDK_amacron 0x3e0 ++#define GDK_iogonek 0x3e7 ++#define GDK_eabovedot 0x3ec ++#define GDK_imacron 0x3ef ++#define GDK_ncedilla 0x3f1 ++#define GDK_omacron 0x3f2 ++#define GDK_kcedilla 0x3f3 ++#define GDK_uogonek 0x3f9 ++#define GDK_utilde 0x3fd ++#define GDK_umacron 0x3fe ++#define GDK_Babovedot 0x1001e02 ++#define GDK_babovedot 0x1001e03 ++#define GDK_Dabovedot 0x1001e0a ++#define GDK_Wgrave 0x1001e80 ++#define GDK_Wacute 0x1001e82 ++#define GDK_dabovedot 0x1001e0b ++#define GDK_Ygrave 0x1001ef2 ++#define GDK_Fabovedot 0x1001e1e ++#define GDK_fabovedot 0x1001e1f ++#define GDK_Mabovedot 0x1001e40 ++#define GDK_mabovedot 0x1001e41 ++#define GDK_Pabovedot 0x1001e56 ++#define GDK_wgrave 0x1001e81 ++#define GDK_pabovedot 0x1001e57 ++#define GDK_wacute 0x1001e83 ++#define GDK_Sabovedot 0x1001e60 ++#define GDK_ygrave 0x1001ef3 ++#define GDK_Wdiaeresis 0x1001e84 ++#define GDK_wdiaeresis 0x1001e85 ++#define GDK_sabovedot 0x1001e61 ++#define GDK_Wcircumflex 0x1000174 ++#define GDK_Tabovedot 0x1001e6a ++#define GDK_Ycircumflex 0x1000176 ++#define GDK_wcircumflex 0x1000175 ++#define GDK_tabovedot 0x1001e6b ++#define GDK_ycircumflex 0x1000177 ++#define GDK_OE 0x13bc ++#define GDK_oe 0x13bd ++#define GDK_Ydiaeresis 0x13be ++#define GDK_overline 0x47e ++#define GDK_kana_fullstop 0x4a1 ++#define GDK_kana_openingbracket 0x4a2 ++#define GDK_kana_closingbracket 0x4a3 ++#define GDK_kana_comma 0x4a4 ++#define GDK_kana_conjunctive 0x4a5 ++#define GDK_kana_middledot 0x4a5 ++#define GDK_kana_WO 0x4a6 ++#define GDK_kana_a 0x4a7 ++#define GDK_kana_i 0x4a8 ++#define GDK_kana_u 0x4a9 ++#define GDK_kana_e 0x4aa ++#define GDK_kana_o 0x4ab ++#define GDK_kana_ya 0x4ac ++#define GDK_kana_yu 0x4ad ++#define GDK_kana_yo 0x4ae ++#define GDK_kana_tsu 0x4af ++#define GDK_kana_tu 0x4af ++#define GDK_prolongedsound 0x4b0 ++#define GDK_kana_A 0x4b1 ++#define GDK_kana_I 0x4b2 ++#define GDK_kana_U 0x4b3 ++#define GDK_kana_E 0x4b4 ++#define GDK_kana_O 0x4b5 ++#define GDK_kana_KA 0x4b6 ++#define GDK_kana_KI 0x4b7 ++#define GDK_kana_KU 0x4b8 ++#define GDK_kana_KE 0x4b9 ++#define GDK_kana_KO 0x4ba ++#define GDK_kana_SA 0x4bb ++#define GDK_kana_SHI 0x4bc ++#define GDK_kana_SU 0x4bd ++#define GDK_kana_SE 0x4be ++#define GDK_kana_SO 0x4bf ++#define GDK_kana_TA 0x4c0 ++#define GDK_kana_CHI 0x4c1 ++#define GDK_kana_TI 0x4c1 ++#define GDK_kana_TSU 0x4c2 ++#define GDK_kana_TU 0x4c2 ++#define GDK_kana_TE 0x4c3 ++#define GDK_kana_TO 0x4c4 ++#define GDK_kana_NA 0x4c5 ++#define GDK_kana_NI 0x4c6 ++#define GDK_kana_NU 0x4c7 ++#define GDK_kana_NE 0x4c8 ++#define GDK_kana_NO 0x4c9 ++#define GDK_kana_HA 0x4ca ++#define GDK_kana_HI 0x4cb ++#define GDK_kana_FU 0x4cc ++#define GDK_kana_HU 0x4cc ++#define GDK_kana_HE 0x4cd ++#define GDK_kana_HO 0x4ce ++#define GDK_kana_MA 0x4cf ++#define GDK_kana_MI 0x4d0 ++#define GDK_kana_MU 0x4d1 ++#define GDK_kana_ME 0x4d2 ++#define GDK_kana_MO 0x4d3 ++#define GDK_kana_YA 0x4d4 ++#define GDK_kana_YU 0x4d5 ++#define GDK_kana_YO 0x4d6 ++#define GDK_kana_RA 0x4d7 ++#define GDK_kana_RI 0x4d8 ++#define GDK_kana_RU 0x4d9 ++#define GDK_kana_RE 0x4da ++#define GDK_kana_RO 0x4db ++#define GDK_kana_WA 0x4dc ++#define GDK_kana_N 0x4dd ++#define GDK_voicedsound 0x4de ++#define GDK_semivoicedsound 0x4df ++#define GDK_kana_switch 0xff7e ++#define GDK_Farsi_0 0x10006f0 ++#define GDK_Farsi_1 0x10006f1 ++#define GDK_Farsi_2 0x10006f2 ++#define GDK_Farsi_3 0x10006f3 ++#define GDK_Farsi_4 0x10006f4 ++#define GDK_Farsi_5 0x10006f5 ++#define GDK_Farsi_6 0x10006f6 ++#define GDK_Farsi_7 0x10006f7 ++#define GDK_Farsi_8 0x10006f8 ++#define GDK_Farsi_9 0x10006f9 ++#define GDK_Arabic_percent 0x100066a ++#define GDK_Arabic_superscript_alef 0x1000670 ++#define GDK_Arabic_tteh 0x1000679 ++#define GDK_Arabic_peh 0x100067e ++#define GDK_Arabic_tcheh 0x1000686 ++#define GDK_Arabic_ddal 0x1000688 ++#define GDK_Arabic_rreh 0x1000691 ++#define GDK_Arabic_comma 0x5ac ++#define GDK_Arabic_fullstop 0x10006d4 ++#define GDK_Arabic_0 0x1000660 ++#define GDK_Arabic_1 0x1000661 ++#define GDK_Arabic_2 0x1000662 ++#define GDK_Arabic_3 0x1000663 ++#define GDK_Arabic_4 0x1000664 ++#define GDK_Arabic_5 0x1000665 ++#define GDK_Arabic_6 0x1000666 ++#define GDK_Arabic_7 0x1000667 ++#define GDK_Arabic_8 0x1000668 ++#define GDK_Arabic_9 0x1000669 ++#define GDK_Arabic_semicolon 0x5bb ++#define GDK_Arabic_question_mark 0x5bf ++#define GDK_Arabic_hamza 0x5c1 ++#define GDK_Arabic_maddaonalef 0x5c2 ++#define GDK_Arabic_hamzaonalef 0x5c3 ++#define GDK_Arabic_hamzaonwaw 0x5c4 ++#define GDK_Arabic_hamzaunderalef 0x5c5 ++#define GDK_Arabic_hamzaonyeh 0x5c6 ++#define GDK_Arabic_alef 0x5c7 ++#define GDK_Arabic_beh 0x5c8 ++#define GDK_Arabic_tehmarbuta 0x5c9 ++#define GDK_Arabic_teh 0x5ca ++#define GDK_Arabic_theh 0x5cb ++#define GDK_Arabic_jeem 0x5cc ++#define GDK_Arabic_hah 0x5cd ++#define GDK_Arabic_khah 0x5ce ++#define GDK_Arabic_dal 0x5cf ++#define GDK_Arabic_thal 0x5d0 ++#define GDK_Arabic_ra 0x5d1 ++#define GDK_Arabic_zain 0x5d2 ++#define GDK_Arabic_seen 0x5d3 ++#define GDK_Arabic_sheen 0x5d4 ++#define GDK_Arabic_sad 0x5d5 ++#define GDK_Arabic_dad 0x5d6 ++#define GDK_Arabic_tah 0x5d7 ++#define GDK_Arabic_zah 0x5d8 ++#define GDK_Arabic_ain 0x5d9 ++#define GDK_Arabic_ghain 0x5da ++#define GDK_Arabic_tatweel 0x5e0 ++#define GDK_Arabic_feh 0x5e1 ++#define GDK_Arabic_qaf 0x5e2 ++#define GDK_Arabic_kaf 0x5e3 ++#define GDK_Arabic_lam 0x5e4 ++#define GDK_Arabic_meem 0x5e5 ++#define GDK_Arabic_noon 0x5e6 ++#define GDK_Arabic_ha 0x5e7 ++#define GDK_Arabic_heh 0x5e7 ++#define GDK_Arabic_waw 0x5e8 ++#define GDK_Arabic_alefmaksura 0x5e9 ++#define GDK_Arabic_yeh 0x5ea ++#define GDK_Arabic_fathatan 0x5eb ++#define GDK_Arabic_dammatan 0x5ec ++#define GDK_Arabic_kasratan 0x5ed ++#define GDK_Arabic_fatha 0x5ee ++#define GDK_Arabic_damma 0x5ef ++#define GDK_Arabic_kasra 0x5f0 ++#define GDK_Arabic_shadda 0x5f1 ++#define GDK_Arabic_sukun 0x5f2 ++#define GDK_Arabic_madda_above 0x1000653 ++#define GDK_Arabic_hamza_above 0x1000654 ++#define GDK_Arabic_hamza_below 0x1000655 ++#define GDK_Arabic_jeh 0x1000698 ++#define GDK_Arabic_veh 0x10006a4 ++#define GDK_Arabic_keheh 0x10006a9 ++#define GDK_Arabic_gaf 0x10006af ++#define GDK_Arabic_noon_ghunna 0x10006ba ++#define GDK_Arabic_heh_doachashmee 0x10006be ++#define GDK_Farsi_yeh 0x10006cc ++#define GDK_Arabic_farsi_yeh 0x10006cc ++#define GDK_Arabic_yeh_baree 0x10006d2 ++#define GDK_Arabic_heh_goal 0x10006c1 ++#define GDK_Arabic_switch 0xff7e ++#define GDK_Cyrillic_GHE_bar 0x1000492 ++#define GDK_Cyrillic_ghe_bar 0x1000493 ++#define GDK_Cyrillic_ZHE_descender 0x1000496 ++#define GDK_Cyrillic_zhe_descender 0x1000497 ++#define GDK_Cyrillic_KA_descender 0x100049a ++#define GDK_Cyrillic_ka_descender 0x100049b ++#define GDK_Cyrillic_KA_vertstroke 0x100049c ++#define GDK_Cyrillic_ka_vertstroke 0x100049d ++#define GDK_Cyrillic_EN_descender 0x10004a2 ++#define GDK_Cyrillic_en_descender 0x10004a3 ++#define GDK_Cyrillic_U_straight 0x10004ae ++#define GDK_Cyrillic_u_straight 0x10004af ++#define GDK_Cyrillic_U_straight_bar 0x10004b0 ++#define GDK_Cyrillic_u_straight_bar 0x10004b1 ++#define GDK_Cyrillic_HA_descender 0x10004b2 ++#define GDK_Cyrillic_ha_descender 0x10004b3 ++#define GDK_Cyrillic_CHE_descender 0x10004b6 ++#define GDK_Cyrillic_che_descender 0x10004b7 ++#define GDK_Cyrillic_CHE_vertstroke 0x10004b8 ++#define GDK_Cyrillic_che_vertstroke 0x10004b9 ++#define GDK_Cyrillic_SHHA 0x10004ba ++#define GDK_Cyrillic_shha 0x10004bb ++#define GDK_Cyrillic_SCHWA 0x10004d8 ++#define GDK_Cyrillic_schwa 0x10004d9 ++#define GDK_Cyrillic_I_macron 0x10004e2 ++#define GDK_Cyrillic_i_macron 0x10004e3 ++#define GDK_Cyrillic_O_bar 0x10004e8 ++#define GDK_Cyrillic_o_bar 0x10004e9 ++#define GDK_Cyrillic_U_macron 0x10004ee ++#define GDK_Cyrillic_u_macron 0x10004ef ++#define GDK_Serbian_dje 0x6a1 ++#define GDK_Macedonia_gje 0x6a2 ++#define GDK_Cyrillic_io 0x6a3 ++#define GDK_Ukrainian_ie 0x6a4 ++#define GDK_Ukranian_je 0x6a4 ++#define GDK_Macedonia_dse 0x6a5 ++#define GDK_Ukrainian_i 0x6a6 ++#define GDK_Ukranian_i 0x6a6 ++#define GDK_Ukrainian_yi 0x6a7 ++#define GDK_Ukranian_yi 0x6a7 ++#define GDK_Cyrillic_je 0x6a8 ++#define GDK_Serbian_je 0x6a8 ++#define GDK_Cyrillic_lje 0x6a9 ++#define GDK_Serbian_lje 0x6a9 ++#define GDK_Cyrillic_nje 0x6aa ++#define GDK_Serbian_nje 0x6aa ++#define GDK_Serbian_tshe 0x6ab ++#define GDK_Macedonia_kje 0x6ac ++#define GDK_Ukrainian_ghe_with_upturn 0x6ad ++#define GDK_Byelorussian_shortu 0x6ae ++#define GDK_Cyrillic_dzhe 0x6af ++#define GDK_Serbian_dze 0x6af ++#define GDK_numerosign 0x6b0 ++#define GDK_Serbian_DJE 0x6b1 ++#define GDK_Macedonia_GJE 0x6b2 ++#define GDK_Cyrillic_IO 0x6b3 ++#define GDK_Ukrainian_IE 0x6b4 ++#define GDK_Ukranian_JE 0x6b4 ++#define GDK_Macedonia_DSE 0x6b5 ++#define GDK_Ukrainian_I 0x6b6 ++#define GDK_Ukranian_I 0x6b6 ++#define GDK_Ukrainian_YI 0x6b7 ++#define GDK_Ukranian_YI 0x6b7 ++#define GDK_Cyrillic_JE 0x6b8 ++#define GDK_Serbian_JE 0x6b8 ++#define GDK_Cyrillic_LJE 0x6b9 ++#define GDK_Serbian_LJE 0x6b9 ++#define GDK_Cyrillic_NJE 0x6ba ++#define GDK_Serbian_NJE 0x6ba ++#define GDK_Serbian_TSHE 0x6bb ++#define GDK_Macedonia_KJE 0x6bc ++#define GDK_Ukrainian_GHE_WITH_UPTURN 0x6bd ++#define GDK_Byelorussian_SHORTU 0x6be ++#define GDK_Cyrillic_DZHE 0x6bf ++#define GDK_Serbian_DZE 0x6bf ++#define GDK_Cyrillic_yu 0x6c0 ++#define GDK_Cyrillic_a 0x6c1 ++#define GDK_Cyrillic_be 0x6c2 ++#define GDK_Cyrillic_tse 0x6c3 ++#define GDK_Cyrillic_de 0x6c4 ++#define GDK_Cyrillic_ie 0x6c5 ++#define GDK_Cyrillic_ef 0x6c6 ++#define GDK_Cyrillic_ghe 0x6c7 ++#define GDK_Cyrillic_ha 0x6c8 ++#define GDK_Cyrillic_i 0x6c9 ++#define GDK_Cyrillic_shorti 0x6ca ++#define GDK_Cyrillic_ka 0x6cb ++#define GDK_Cyrillic_el 0x6cc ++#define GDK_Cyrillic_em 0x6cd ++#define GDK_Cyrillic_en 0x6ce ++#define GDK_Cyrillic_o 0x6cf ++#define GDK_Cyrillic_pe 0x6d0 ++#define GDK_Cyrillic_ya 0x6d1 ++#define GDK_Cyrillic_er 0x6d2 ++#define GDK_Cyrillic_es 0x6d3 ++#define GDK_Cyrillic_te 0x6d4 ++#define GDK_Cyrillic_u 0x6d5 ++#define GDK_Cyrillic_zhe 0x6d6 ++#define GDK_Cyrillic_ve 0x6d7 ++#define GDK_Cyrillic_softsign 0x6d8 ++#define GDK_Cyrillic_yeru 0x6d9 ++#define GDK_Cyrillic_ze 0x6da ++#define GDK_Cyrillic_sha 0x6db ++#define GDK_Cyrillic_e 0x6dc ++#define GDK_Cyrillic_shcha 0x6dd ++#define GDK_Cyrillic_che 0x6de ++#define GDK_Cyrillic_hardsign 0x6df ++#define GDK_Cyrillic_YU 0x6e0 ++#define GDK_Cyrillic_A 0x6e1 ++#define GDK_Cyrillic_BE 0x6e2 ++#define GDK_Cyrillic_TSE 0x6e3 ++#define GDK_Cyrillic_DE 0x6e4 ++#define GDK_Cyrillic_IE 0x6e5 ++#define GDK_Cyrillic_EF 0x6e6 ++#define GDK_Cyrillic_GHE 0x6e7 ++#define GDK_Cyrillic_HA 0x6e8 ++#define GDK_Cyrillic_I 0x6e9 ++#define GDK_Cyrillic_SHORTI 0x6ea ++#define GDK_Cyrillic_KA 0x6eb ++#define GDK_Cyrillic_EL 0x6ec ++#define GDK_Cyrillic_EM 0x6ed ++#define GDK_Cyrillic_EN 0x6ee ++#define GDK_Cyrillic_O 0x6ef ++#define GDK_Cyrillic_PE 0x6f0 ++#define GDK_Cyrillic_YA 0x6f1 ++#define GDK_Cyrillic_ER 0x6f2 ++#define GDK_Cyrillic_ES 0x6f3 ++#define GDK_Cyrillic_TE 0x6f4 ++#define GDK_Cyrillic_U 0x6f5 ++#define GDK_Cyrillic_ZHE 0x6f6 ++#define GDK_Cyrillic_VE 0x6f7 ++#define GDK_Cyrillic_SOFTSIGN 0x6f8 ++#define GDK_Cyrillic_YERU 0x6f9 ++#define GDK_Cyrillic_ZE 0x6fa ++#define GDK_Cyrillic_SHA 0x6fb ++#define GDK_Cyrillic_E 0x6fc ++#define GDK_Cyrillic_SHCHA 0x6fd ++#define GDK_Cyrillic_CHE 0x6fe ++#define GDK_Cyrillic_HARDSIGN 0x6ff ++#define GDK_Greek_ALPHAaccent 0x7a1 ++#define GDK_Greek_EPSILONaccent 0x7a2 ++#define GDK_Greek_ETAaccent 0x7a3 ++#define GDK_Greek_IOTAaccent 0x7a4 ++#define GDK_Greek_IOTAdieresis 0x7a5 ++#define GDK_Greek_IOTAdiaeresis 0x7a5 ++#define GDK_Greek_OMICRONaccent 0x7a7 ++#define GDK_Greek_UPSILONaccent 0x7a8 ++#define GDK_Greek_UPSILONdieresis 0x7a9 ++#define GDK_Greek_OMEGAaccent 0x7ab ++#define GDK_Greek_accentdieresis 0x7ae ++#define GDK_Greek_horizbar 0x7af ++#define GDK_Greek_alphaaccent 0x7b1 ++#define GDK_Greek_epsilonaccent 0x7b2 ++#define GDK_Greek_etaaccent 0x7b3 ++#define GDK_Greek_iotaaccent 0x7b4 ++#define GDK_Greek_iotadieresis 0x7b5 ++#define GDK_Greek_iotaaccentdieresis 0x7b6 ++#define GDK_Greek_omicronaccent 0x7b7 ++#define GDK_Greek_upsilonaccent 0x7b8 ++#define GDK_Greek_upsilondieresis 0x7b9 ++#define GDK_Greek_upsilonaccentdieresis 0x7ba ++#define GDK_Greek_omegaaccent 0x7bb ++#define GDK_Greek_ALPHA 0x7c1 ++#define GDK_Greek_BETA 0x7c2 ++#define GDK_Greek_GAMMA 0x7c3 ++#define GDK_Greek_DELTA 0x7c4 ++#define GDK_Greek_EPSILON 0x7c5 ++#define GDK_Greek_ZETA 0x7c6 ++#define GDK_Greek_ETA 0x7c7 ++#define GDK_Greek_THETA 0x7c8 ++#define GDK_Greek_IOTA 0x7c9 ++#define GDK_Greek_KAPPA 0x7ca ++#define GDK_Greek_LAMDA 0x7cb ++#define GDK_Greek_LAMBDA 0x7cb ++#define GDK_Greek_MU 0x7cc ++#define GDK_Greek_NU 0x7cd ++#define GDK_Greek_XI 0x7ce ++#define GDK_Greek_OMICRON 0x7cf ++#define GDK_Greek_PI 0x7d0 ++#define GDK_Greek_RHO 0x7d1 ++#define GDK_Greek_SIGMA 0x7d2 ++#define GDK_Greek_TAU 0x7d4 ++#define GDK_Greek_UPSILON 0x7d5 ++#define GDK_Greek_PHI 0x7d6 ++#define GDK_Greek_CHI 0x7d7 ++#define GDK_Greek_PSI 0x7d8 ++#define GDK_Greek_OMEGA 0x7d9 ++#define GDK_Greek_alpha 0x7e1 ++#define GDK_Greek_beta 0x7e2 ++#define GDK_Greek_gamma 0x7e3 ++#define GDK_Greek_delta 0x7e4 ++#define GDK_Greek_epsilon 0x7e5 ++#define GDK_Greek_zeta 0x7e6 ++#define GDK_Greek_eta 0x7e7 ++#define GDK_Greek_theta 0x7e8 ++#define GDK_Greek_iota 0x7e9 ++#define GDK_Greek_kappa 0x7ea ++#define GDK_Greek_lamda 0x7eb ++#define GDK_Greek_lambda 0x7eb ++#define GDK_Greek_mu 0x7ec ++#define GDK_Greek_nu 0x7ed ++#define GDK_Greek_xi 0x7ee ++#define GDK_Greek_omicron 0x7ef ++#define GDK_Greek_pi 0x7f0 ++#define GDK_Greek_rho 0x7f1 ++#define GDK_Greek_sigma 0x7f2 ++#define GDK_Greek_finalsmallsigma 0x7f3 ++#define GDK_Greek_tau 0x7f4 ++#define GDK_Greek_upsilon 0x7f5 ++#define GDK_Greek_phi 0x7f6 ++#define GDK_Greek_chi 0x7f7 ++#define GDK_Greek_psi 0x7f8 ++#define GDK_Greek_omega 0x7f9 ++#define GDK_Greek_switch 0xff7e ++#define GDK_leftradical 0x8a1 ++#define GDK_topleftradical 0x8a2 ++#define GDK_horizconnector 0x8a3 ++#define GDK_topintegral 0x8a4 ++#define GDK_botintegral 0x8a5 ++#define GDK_vertconnector 0x8a6 ++#define GDK_topleftsqbracket 0x8a7 ++#define GDK_botleftsqbracket 0x8a8 ++#define GDK_toprightsqbracket 0x8a9 ++#define GDK_botrightsqbracket 0x8aa ++#define GDK_topleftparens 0x8ab ++#define GDK_botleftparens 0x8ac ++#define GDK_toprightparens 0x8ad ++#define GDK_botrightparens 0x8ae ++#define GDK_leftmiddlecurlybrace 0x8af ++#define GDK_rightmiddlecurlybrace 0x8b0 ++#define GDK_topleftsummation 0x8b1 ++#define GDK_botleftsummation 0x8b2 ++#define GDK_topvertsummationconnector 0x8b3 ++#define GDK_botvertsummationconnector 0x8b4 ++#define GDK_toprightsummation 0x8b5 ++#define GDK_botrightsummation 0x8b6 ++#define GDK_rightmiddlesummation 0x8b7 ++#define GDK_lessthanequal 0x8bc ++#define GDK_notequal 0x8bd ++#define GDK_greaterthanequal 0x8be ++#define GDK_integral 0x8bf ++#define GDK_therefore 0x8c0 ++#define GDK_variation 0x8c1 ++#define GDK_infinity 0x8c2 ++#define GDK_nabla 0x8c5 ++#define GDK_approximate 0x8c8 ++#define GDK_similarequal 0x8c9 ++#define GDK_ifonlyif 0x8cd ++#define GDK_implies 0x8ce ++#define GDK_identical 0x8cf ++#define GDK_radical 0x8d6 ++#define GDK_includedin 0x8da ++#define GDK_includes 0x8db ++#define GDK_intersection 0x8dc ++#define GDK_union 0x8dd ++#define GDK_logicaland 0x8de ++#define GDK_logicalor 0x8df ++#define GDK_partialderivative 0x8ef ++#define GDK_function 0x8f6 ++#define GDK_leftarrow 0x8fb ++#define GDK_uparrow 0x8fc ++#define GDK_rightarrow 0x8fd ++#define GDK_downarrow 0x8fe ++#define GDK_blank 0x9df ++#define GDK_soliddiamond 0x9e0 ++#define GDK_checkerboard 0x9e1 ++#define GDK_ht 0x9e2 ++#define GDK_ff 0x9e3 ++#define GDK_cr 0x9e4 ++#define GDK_lf 0x9e5 ++#define GDK_nl 0x9e8 ++#define GDK_vt 0x9e9 ++#define GDK_lowrightcorner 0x9ea ++#define GDK_uprightcorner 0x9eb ++#define GDK_upleftcorner 0x9ec ++#define GDK_lowleftcorner 0x9ed ++#define GDK_crossinglines 0x9ee ++#define GDK_horizlinescan1 0x9ef ++#define GDK_horizlinescan3 0x9f0 ++#define GDK_horizlinescan5 0x9f1 ++#define GDK_horizlinescan7 0x9f2 ++#define GDK_horizlinescan9 0x9f3 ++#define GDK_leftt 0x9f4 ++#define GDK_rightt 0x9f5 ++#define GDK_bott 0x9f6 ++#define GDK_topt 0x9f7 ++#define GDK_vertbar 0x9f8 ++#define GDK_emspace 0xaa1 ++#define GDK_enspace 0xaa2 ++#define GDK_em3space 0xaa3 ++#define GDK_em4space 0xaa4 ++#define GDK_digitspace 0xaa5 ++#define GDK_punctspace 0xaa6 ++#define GDK_thinspace 0xaa7 ++#define GDK_hairspace 0xaa8 ++#define GDK_emdash 0xaa9 ++#define GDK_endash 0xaaa ++#define GDK_signifblank 0xaac ++#define GDK_ellipsis 0xaae ++#define GDK_doubbaselinedot 0xaaf ++#define GDK_onethird 0xab0 ++#define GDK_twothirds 0xab1 ++#define GDK_onefifth 0xab2 ++#define GDK_twofifths 0xab3 ++#define GDK_threefifths 0xab4 ++#define GDK_fourfifths 0xab5 ++#define GDK_onesixth 0xab6 ++#define GDK_fivesixths 0xab7 ++#define GDK_careof 0xab8 ++#define GDK_figdash 0xabb ++#define GDK_leftanglebracket 0xabc ++#define GDK_decimalpoint 0xabd ++#define GDK_rightanglebracket 0xabe ++#define GDK_marker 0xabf ++#define GDK_oneeighth 0xac3 ++#define GDK_threeeighths 0xac4 ++#define GDK_fiveeighths 0xac5 ++#define GDK_seveneighths 0xac6 ++#define GDK_trademark 0xac9 ++#define GDK_signaturemark 0xaca ++#define GDK_trademarkincircle 0xacb ++#define GDK_leftopentriangle 0xacc ++#define GDK_rightopentriangle 0xacd ++#define GDK_emopencircle 0xace ++#define GDK_emopenrectangle 0xacf ++#define GDK_leftsinglequotemark 0xad0 ++#define GDK_rightsinglequotemark 0xad1 ++#define GDK_leftdoublequotemark 0xad2 ++#define GDK_rightdoublequotemark 0xad3 ++#define GDK_prescription 0xad4 ++#define GDK_minutes 0xad6 ++#define GDK_seconds 0xad7 ++#define GDK_latincross 0xad9 ++#define GDK_hexagram 0xada ++#define GDK_filledrectbullet 0xadb ++#define GDK_filledlefttribullet 0xadc ++#define GDK_filledrighttribullet 0xadd ++#define GDK_emfilledcircle 0xade ++#define GDK_emfilledrect 0xadf ++#define GDK_enopencircbullet 0xae0 ++#define GDK_enopensquarebullet 0xae1 ++#define GDK_openrectbullet 0xae2 ++#define GDK_opentribulletup 0xae3 ++#define GDK_opentribulletdown 0xae4 ++#define GDK_openstar 0xae5 ++#define GDK_enfilledcircbullet 0xae6 ++#define GDK_enfilledsqbullet 0xae7 ++#define GDK_filledtribulletup 0xae8 ++#define GDK_filledtribulletdown 0xae9 ++#define GDK_leftpointer 0xaea ++#define GDK_rightpointer 0xaeb ++#define GDK_club 0xaec ++#define GDK_diamond 0xaed ++#define GDK_heart 0xaee ++#define GDK_maltesecross 0xaf0 ++#define GDK_dagger 0xaf1 ++#define GDK_doubledagger 0xaf2 ++#define GDK_checkmark 0xaf3 ++#define GDK_ballotcross 0xaf4 ++#define GDK_musicalsharp 0xaf5 ++#define GDK_musicalflat 0xaf6 ++#define GDK_malesymbol 0xaf7 ++#define GDK_femalesymbol 0xaf8 ++#define GDK_telephone 0xaf9 ++#define GDK_telephonerecorder 0xafa ++#define GDK_phonographcopyright 0xafb ++#define GDK_caret 0xafc ++#define GDK_singlelowquotemark 0xafd ++#define GDK_doublelowquotemark 0xafe ++#define GDK_cursor 0xaff ++#define GDK_leftcaret 0xba3 ++#define GDK_rightcaret 0xba6 ++#define GDK_downcaret 0xba8 ++#define GDK_upcaret 0xba9 ++#define GDK_overbar 0xbc0 ++#define GDK_downtack 0xbc2 ++#define GDK_upshoe 0xbc3 ++#define GDK_downstile 0xbc4 ++#define GDK_underbar 0xbc6 ++#define GDK_jot 0xbca ++#define GDK_quad 0xbcc ++#define GDK_uptack 0xbce ++#define GDK_circle 0xbcf ++#define GDK_upstile 0xbd3 ++#define GDK_downshoe 0xbd6 ++#define GDK_rightshoe 0xbd8 ++#define GDK_leftshoe 0xbda ++#define GDK_lefttack 0xbdc ++#define GDK_righttack 0xbfc ++#define GDK_hebrew_doublelowline 0xcdf ++#define GDK_hebrew_aleph 0xce0 ++#define GDK_hebrew_bet 0xce1 ++#define GDK_hebrew_beth 0xce1 ++#define GDK_hebrew_gimel 0xce2 ++#define GDK_hebrew_gimmel 0xce2 ++#define GDK_hebrew_dalet 0xce3 ++#define GDK_hebrew_daleth 0xce3 ++#define GDK_hebrew_he 0xce4 ++#define GDK_hebrew_waw 0xce5 ++#define GDK_hebrew_zain 0xce6 ++#define GDK_hebrew_zayin 0xce6 ++#define GDK_hebrew_chet 0xce7 ++#define GDK_hebrew_het 0xce7 ++#define GDK_hebrew_tet 0xce8 ++#define GDK_hebrew_teth 0xce8 ++#define GDK_hebrew_yod 0xce9 ++#define GDK_hebrew_finalkaph 0xcea ++#define GDK_hebrew_kaph 0xceb ++#define GDK_hebrew_lamed 0xcec ++#define GDK_hebrew_finalmem 0xced ++#define GDK_hebrew_mem 0xcee ++#define GDK_hebrew_finalnun 0xcef ++#define GDK_hebrew_nun 0xcf0 ++#define GDK_hebrew_samech 0xcf1 ++#define GDK_hebrew_samekh 0xcf1 ++#define GDK_hebrew_ayin 0xcf2 ++#define GDK_hebrew_finalpe 0xcf3 ++#define GDK_hebrew_pe 0xcf4 ++#define GDK_hebrew_finalzade 0xcf5 ++#define GDK_hebrew_finalzadi 0xcf5 ++#define GDK_hebrew_zade 0xcf6 ++#define GDK_hebrew_zadi 0xcf6 ++#define GDK_hebrew_qoph 0xcf7 ++#define GDK_hebrew_kuf 0xcf7 ++#define GDK_hebrew_resh 0xcf8 ++#define GDK_hebrew_shin 0xcf9 ++#define GDK_hebrew_taw 0xcfa ++#define GDK_hebrew_taf 0xcfa ++#define GDK_Hebrew_switch 0xff7e ++#define GDK_Thai_kokai 0xda1 ++#define GDK_Thai_khokhai 0xda2 ++#define GDK_Thai_khokhuat 0xda3 ++#define GDK_Thai_khokhwai 0xda4 ++#define GDK_Thai_khokhon 0xda5 ++#define GDK_Thai_khorakhang 0xda6 ++#define GDK_Thai_ngongu 0xda7 ++#define GDK_Thai_chochan 0xda8 ++#define GDK_Thai_choching 0xda9 ++#define GDK_Thai_chochang 0xdaa ++#define GDK_Thai_soso 0xdab ++#define GDK_Thai_chochoe 0xdac ++#define GDK_Thai_yoying 0xdad ++#define GDK_Thai_dochada 0xdae ++#define GDK_Thai_topatak 0xdaf ++#define GDK_Thai_thothan 0xdb0 ++#define GDK_Thai_thonangmontho 0xdb1 ++#define GDK_Thai_thophuthao 0xdb2 ++#define GDK_Thai_nonen 0xdb3 ++#define GDK_Thai_dodek 0xdb4 ++#define GDK_Thai_totao 0xdb5 ++#define GDK_Thai_thothung 0xdb6 ++#define GDK_Thai_thothahan 0xdb7 ++#define GDK_Thai_thothong 0xdb8 ++#define GDK_Thai_nonu 0xdb9 ++#define GDK_Thai_bobaimai 0xdba ++#define GDK_Thai_popla 0xdbb ++#define GDK_Thai_phophung 0xdbc ++#define GDK_Thai_fofa 0xdbd ++#define GDK_Thai_phophan 0xdbe ++#define GDK_Thai_fofan 0xdbf ++#define GDK_Thai_phosamphao 0xdc0 ++#define GDK_Thai_moma 0xdc1 ++#define GDK_Thai_yoyak 0xdc2 ++#define GDK_Thai_rorua 0xdc3 ++#define GDK_Thai_ru 0xdc4 ++#define GDK_Thai_loling 0xdc5 ++#define GDK_Thai_lu 0xdc6 ++#define GDK_Thai_wowaen 0xdc7 ++#define GDK_Thai_sosala 0xdc8 ++#define GDK_Thai_sorusi 0xdc9 ++#define GDK_Thai_sosua 0xdca ++#define GDK_Thai_hohip 0xdcb ++#define GDK_Thai_lochula 0xdcc ++#define GDK_Thai_oang 0xdcd ++#define GDK_Thai_honokhuk 0xdce ++#define GDK_Thai_paiyannoi 0xdcf ++#define GDK_Thai_saraa 0xdd0 ++#define GDK_Thai_maihanakat 0xdd1 ++#define GDK_Thai_saraaa 0xdd2 ++#define GDK_Thai_saraam 0xdd3 ++#define GDK_Thai_sarai 0xdd4 ++#define GDK_Thai_saraii 0xdd5 ++#define GDK_Thai_saraue 0xdd6 ++#define GDK_Thai_sarauee 0xdd7 ++#define GDK_Thai_sarau 0xdd8 ++#define GDK_Thai_sarauu 0xdd9 ++#define GDK_Thai_phinthu 0xdda ++#define GDK_Thai_maihanakat_maitho 0xdde ++#define GDK_Thai_baht 0xddf ++#define GDK_Thai_sarae 0xde0 ++#define GDK_Thai_saraae 0xde1 ++#define GDK_Thai_sarao 0xde2 ++#define GDK_Thai_saraaimaimuan 0xde3 ++#define GDK_Thai_saraaimaimalai 0xde4 ++#define GDK_Thai_lakkhangyao 0xde5 ++#define GDK_Thai_maiyamok 0xde6 ++#define GDK_Thai_maitaikhu 0xde7 ++#define GDK_Thai_maiek 0xde8 ++#define GDK_Thai_maitho 0xde9 ++#define GDK_Thai_maitri 0xdea ++#define GDK_Thai_maichattawa 0xdeb ++#define GDK_Thai_thanthakhat 0xdec ++#define GDK_Thai_nikhahit 0xded ++#define GDK_Thai_leksun 0xdf0 ++#define GDK_Thai_leknung 0xdf1 ++#define GDK_Thai_leksong 0xdf2 ++#define GDK_Thai_leksam 0xdf3 ++#define GDK_Thai_leksi 0xdf4 ++#define GDK_Thai_lekha 0xdf5 ++#define GDK_Thai_lekhok 0xdf6 ++#define GDK_Thai_lekchet 0xdf7 ++#define GDK_Thai_lekpaet 0xdf8 ++#define GDK_Thai_lekkao 0xdf9 ++#define GDK_Hangul 0xff31 ++#define GDK_Hangul_Start 0xff32 ++#define GDK_Hangul_End 0xff33 ++#define GDK_Hangul_Hanja 0xff34 ++#define GDK_Hangul_Jamo 0xff35 ++#define GDK_Hangul_Romaja 0xff36 ++#define GDK_Hangul_Codeinput 0xff37 ++#define GDK_Hangul_Jeonja 0xff38 ++#define GDK_Hangul_Banja 0xff39 ++#define GDK_Hangul_PreHanja 0xff3a ++#define GDK_Hangul_PostHanja 0xff3b ++#define GDK_Hangul_SingleCandidate 0xff3c ++#define GDK_Hangul_MultipleCandidate 0xff3d ++#define GDK_Hangul_PreviousCandidate 0xff3e ++#define GDK_Hangul_Special 0xff3f ++#define GDK_Hangul_switch 0xff7e ++#define GDK_Hangul_Kiyeog 0xea1 ++#define GDK_Hangul_SsangKiyeog 0xea2 ++#define GDK_Hangul_KiyeogSios 0xea3 ++#define GDK_Hangul_Nieun 0xea4 ++#define GDK_Hangul_NieunJieuj 0xea5 ++#define GDK_Hangul_NieunHieuh 0xea6 ++#define GDK_Hangul_Dikeud 0xea7 ++#define GDK_Hangul_SsangDikeud 0xea8 ++#define GDK_Hangul_Rieul 0xea9 ++#define GDK_Hangul_RieulKiyeog 0xeaa ++#define GDK_Hangul_RieulMieum 0xeab ++#define GDK_Hangul_RieulPieub 0xeac ++#define GDK_Hangul_RieulSios 0xead ++#define GDK_Hangul_RieulTieut 0xeae ++#define GDK_Hangul_RieulPhieuf 0xeaf ++#define GDK_Hangul_RieulHieuh 0xeb0 ++#define GDK_Hangul_Mieum 0xeb1 ++#define GDK_Hangul_Pieub 0xeb2 ++#define GDK_Hangul_SsangPieub 0xeb3 ++#define GDK_Hangul_PieubSios 0xeb4 ++#define GDK_Hangul_Sios 0xeb5 ++#define GDK_Hangul_SsangSios 0xeb6 ++#define GDK_Hangul_Ieung 0xeb7 ++#define GDK_Hangul_Jieuj 0xeb8 ++#define GDK_Hangul_SsangJieuj 0xeb9 ++#define GDK_Hangul_Cieuc 0xeba ++#define GDK_Hangul_Khieuq 0xebb ++#define GDK_Hangul_Tieut 0xebc ++#define GDK_Hangul_Phieuf 0xebd ++#define GDK_Hangul_Hieuh 0xebe ++#define GDK_Hangul_A 0xebf ++#define GDK_Hangul_AE 0xec0 ++#define GDK_Hangul_YA 0xec1 ++#define GDK_Hangul_YAE 0xec2 ++#define GDK_Hangul_EO 0xec3 ++#define GDK_Hangul_E 0xec4 ++#define GDK_Hangul_YEO 0xec5 ++#define GDK_Hangul_YE 0xec6 ++#define GDK_Hangul_O 0xec7 ++#define GDK_Hangul_WA 0xec8 ++#define GDK_Hangul_WAE 0xec9 ++#define GDK_Hangul_OE 0xeca ++#define GDK_Hangul_YO 0xecb ++#define GDK_Hangul_U 0xecc ++#define GDK_Hangul_WEO 0xecd ++#define GDK_Hangul_WE 0xece ++#define GDK_Hangul_WI 0xecf ++#define GDK_Hangul_YU 0xed0 ++#define GDK_Hangul_EU 0xed1 ++#define GDK_Hangul_YI 0xed2 ++#define GDK_Hangul_I 0xed3 ++#define GDK_Hangul_J_Kiyeog 0xed4 ++#define GDK_Hangul_J_SsangKiyeog 0xed5 ++#define GDK_Hangul_J_KiyeogSios 0xed6 ++#define GDK_Hangul_J_Nieun 0xed7 ++#define GDK_Hangul_J_NieunJieuj 0xed8 ++#define GDK_Hangul_J_NieunHieuh 0xed9 ++#define GDK_Hangul_J_Dikeud 0xeda ++#define GDK_Hangul_J_Rieul 0xedb ++#define GDK_Hangul_J_RieulKiyeog 0xedc ++#define GDK_Hangul_J_RieulMieum 0xedd ++#define GDK_Hangul_J_RieulPieub 0xede ++#define GDK_Hangul_J_RieulSios 0xedf ++#define GDK_Hangul_J_RieulTieut 0xee0 ++#define GDK_Hangul_J_RieulPhieuf 0xee1 ++#define GDK_Hangul_J_RieulHieuh 0xee2 ++#define GDK_Hangul_J_Mieum 0xee3 ++#define GDK_Hangul_J_Pieub 0xee4 ++#define GDK_Hangul_J_PieubSios 0xee5 ++#define GDK_Hangul_J_Sios 0xee6 ++#define GDK_Hangul_J_SsangSios 0xee7 ++#define GDK_Hangul_J_Ieung 0xee8 ++#define GDK_Hangul_J_Jieuj 0xee9 ++#define GDK_Hangul_J_Cieuc 0xeea ++#define GDK_Hangul_J_Khieuq 0xeeb ++#define GDK_Hangul_J_Tieut 0xeec ++#define GDK_Hangul_J_Phieuf 0xeed ++#define GDK_Hangul_J_Hieuh 0xeee ++#define GDK_Hangul_RieulYeorinHieuh 0xeef ++#define GDK_Hangul_SunkyeongeumMieum 0xef0 ++#define GDK_Hangul_SunkyeongeumPieub 0xef1 ++#define GDK_Hangul_PanSios 0xef2 ++#define GDK_Hangul_KkogjiDalrinIeung 0xef3 ++#define GDK_Hangul_SunkyeongeumPhieuf 0xef4 ++#define GDK_Hangul_YeorinHieuh 0xef5 ++#define GDK_Hangul_AraeA 0xef6 ++#define GDK_Hangul_AraeAE 0xef7 ++#define GDK_Hangul_J_PanSios 0xef8 ++#define GDK_Hangul_J_KkogjiDalrinIeung 0xef9 ++#define GDK_Hangul_J_YeorinHieuh 0xefa ++#define GDK_Korean_Won 0xeff ++#define GDK_Armenian_ligature_ew 0x1000587 ++#define GDK_Armenian_full_stop 0x1000589 ++#define GDK_Armenian_verjaket 0x1000589 ++#define GDK_Armenian_separation_mark 0x100055d ++#define GDK_Armenian_but 0x100055d ++#define GDK_Armenian_hyphen 0x100058a ++#define GDK_Armenian_yentamna 0x100058a ++#define GDK_Armenian_exclam 0x100055c ++#define GDK_Armenian_amanak 0x100055c ++#define GDK_Armenian_accent 0x100055b ++#define GDK_Armenian_shesht 0x100055b ++#define GDK_Armenian_question 0x100055e ++#define GDK_Armenian_paruyk 0x100055e ++#define GDK_Armenian_AYB 0x1000531 ++#define GDK_Armenian_ayb 0x1000561 ++#define GDK_Armenian_BEN 0x1000532 ++#define GDK_Armenian_ben 0x1000562 ++#define GDK_Armenian_GIM 0x1000533 ++#define GDK_Armenian_gim 0x1000563 ++#define GDK_Armenian_DA 0x1000534 ++#define GDK_Armenian_da 0x1000564 ++#define GDK_Armenian_YECH 0x1000535 ++#define GDK_Armenian_yech 0x1000565 ++#define GDK_Armenian_ZA 0x1000536 ++#define GDK_Armenian_za 0x1000566 ++#define GDK_Armenian_E 0x1000537 ++#define GDK_Armenian_e 0x1000567 ++#define GDK_Armenian_AT 0x1000538 ++#define GDK_Armenian_at 0x1000568 ++#define GDK_Armenian_TO 0x1000539 ++#define GDK_Armenian_to 0x1000569 ++#define GDK_Armenian_ZHE 0x100053a ++#define GDK_Armenian_zhe 0x100056a ++#define GDK_Armenian_INI 0x100053b ++#define GDK_Armenian_ini 0x100056b ++#define GDK_Armenian_LYUN 0x100053c ++#define GDK_Armenian_lyun 0x100056c ++#define GDK_Armenian_KHE 0x100053d ++#define GDK_Armenian_khe 0x100056d ++#define GDK_Armenian_TSA 0x100053e ++#define GDK_Armenian_tsa 0x100056e ++#define GDK_Armenian_KEN 0x100053f ++#define GDK_Armenian_ken 0x100056f ++#define GDK_Armenian_HO 0x1000540 ++#define GDK_Armenian_ho 0x1000570 ++#define GDK_Armenian_DZA 0x1000541 ++#define GDK_Armenian_dza 0x1000571 ++#define GDK_Armenian_GHAT 0x1000542 ++#define GDK_Armenian_ghat 0x1000572 ++#define GDK_Armenian_TCHE 0x1000543 ++#define GDK_Armenian_tche 0x1000573 ++#define GDK_Armenian_MEN 0x1000544 ++#define GDK_Armenian_men 0x1000574 ++#define GDK_Armenian_HI 0x1000545 ++#define GDK_Armenian_hi 0x1000575 ++#define GDK_Armenian_NU 0x1000546 ++#define GDK_Armenian_nu 0x1000576 ++#define GDK_Armenian_SHA 0x1000547 ++#define GDK_Armenian_sha 0x1000577 ++#define GDK_Armenian_VO 0x1000548 ++#define GDK_Armenian_vo 0x1000578 ++#define GDK_Armenian_CHA 0x1000549 ++#define GDK_Armenian_cha 0x1000579 ++#define GDK_Armenian_PE 0x100054a ++#define GDK_Armenian_pe 0x100057a ++#define GDK_Armenian_JE 0x100054b ++#define GDK_Armenian_je 0x100057b ++#define GDK_Armenian_RA 0x100054c ++#define GDK_Armenian_ra 0x100057c ++#define GDK_Armenian_SE 0x100054d ++#define GDK_Armenian_se 0x100057d ++#define GDK_Armenian_VEV 0x100054e ++#define GDK_Armenian_vev 0x100057e ++#define GDK_Armenian_TYUN 0x100054f ++#define GDK_Armenian_tyun 0x100057f ++#define GDK_Armenian_RE 0x1000550 ++#define GDK_Armenian_re 0x1000580 ++#define GDK_Armenian_TSO 0x1000551 ++#define GDK_Armenian_tso 0x1000581 ++#define GDK_Armenian_VYUN 0x1000552 ++#define GDK_Armenian_vyun 0x1000582 ++#define GDK_Armenian_PYUR 0x1000553 ++#define GDK_Armenian_pyur 0x1000583 ++#define GDK_Armenian_KE 0x1000554 ++#define GDK_Armenian_ke 0x1000584 ++#define GDK_Armenian_O 0x1000555 ++#define GDK_Armenian_o 0x1000585 ++#define GDK_Armenian_FE 0x1000556 ++#define GDK_Armenian_fe 0x1000586 ++#define GDK_Armenian_apostrophe 0x100055a ++#define GDK_Georgian_an 0x10010d0 ++#define GDK_Georgian_ban 0x10010d1 ++#define GDK_Georgian_gan 0x10010d2 ++#define GDK_Georgian_don 0x10010d3 ++#define GDK_Georgian_en 0x10010d4 ++#define GDK_Georgian_vin 0x10010d5 ++#define GDK_Georgian_zen 0x10010d6 ++#define GDK_Georgian_tan 0x10010d7 ++#define GDK_Georgian_in 0x10010d8 ++#define GDK_Georgian_kan 0x10010d9 ++#define GDK_Georgian_las 0x10010da ++#define GDK_Georgian_man 0x10010db ++#define GDK_Georgian_nar 0x10010dc ++#define GDK_Georgian_on 0x10010dd ++#define GDK_Georgian_par 0x10010de ++#define GDK_Georgian_zhar 0x10010df ++#define GDK_Georgian_rae 0x10010e0 ++#define GDK_Georgian_san 0x10010e1 ++#define GDK_Georgian_tar 0x10010e2 ++#define GDK_Georgian_un 0x10010e3 ++#define GDK_Georgian_phar 0x10010e4 ++#define GDK_Georgian_khar 0x10010e5 ++#define GDK_Georgian_ghan 0x10010e6 ++#define GDK_Georgian_qar 0x10010e7 ++#define GDK_Georgian_shin 0x10010e8 ++#define GDK_Georgian_chin 0x10010e9 ++#define GDK_Georgian_can 0x10010ea ++#define GDK_Georgian_jil 0x10010eb ++#define GDK_Georgian_cil 0x10010ec ++#define GDK_Georgian_char 0x10010ed ++#define GDK_Georgian_xan 0x10010ee ++#define GDK_Georgian_jhan 0x10010ef ++#define GDK_Georgian_hae 0x10010f0 ++#define GDK_Georgian_he 0x10010f1 ++#define GDK_Georgian_hie 0x10010f2 ++#define GDK_Georgian_we 0x10010f3 ++#define GDK_Georgian_har 0x10010f4 ++#define GDK_Georgian_hoe 0x10010f5 ++#define GDK_Georgian_fi 0x10010f6 ++#define GDK_Xabovedot 0x1001e8a ++#define GDK_Ibreve 0x100012c ++#define GDK_Zstroke 0x10001b5 ++#define GDK_Gcaron 0x10001e6 ++#define GDK_Ocaron 0x10001d1 ++#define GDK_Obarred 0x100019f ++#define GDK_xabovedot 0x1001e8b ++#define GDK_ibreve 0x100012d ++#define GDK_zstroke 0x10001b6 ++#define GDK_gcaron 0x10001e7 ++#define GDK_ocaron 0x10001d2 ++#define GDK_obarred 0x1000275 ++#define GDK_SCHWA 0x100018f ++#define GDK_schwa 0x1000259 ++#define GDK_Lbelowdot 0x1001e36 ++#define GDK_lbelowdot 0x1001e37 ++#define GDK_Abelowdot 0x1001ea0 ++#define GDK_abelowdot 0x1001ea1 ++#define GDK_Ahook 0x1001ea2 ++#define GDK_ahook 0x1001ea3 ++#define GDK_Acircumflexacute 0x1001ea4 ++#define GDK_acircumflexacute 0x1001ea5 ++#define GDK_Acircumflexgrave 0x1001ea6 ++#define GDK_acircumflexgrave 0x1001ea7 ++#define GDK_Acircumflexhook 0x1001ea8 ++#define GDK_acircumflexhook 0x1001ea9 ++#define GDK_Acircumflextilde 0x1001eaa ++#define GDK_acircumflextilde 0x1001eab ++#define GDK_Acircumflexbelowdot 0x1001eac ++#define GDK_acircumflexbelowdot 0x1001ead ++#define GDK_Abreveacute 0x1001eae ++#define GDK_abreveacute 0x1001eaf ++#define GDK_Abrevegrave 0x1001eb0 ++#define GDK_abrevegrave 0x1001eb1 ++#define GDK_Abrevehook 0x1001eb2 ++#define GDK_abrevehook 0x1001eb3 ++#define GDK_Abrevetilde 0x1001eb4 ++#define GDK_abrevetilde 0x1001eb5 ++#define GDK_Abrevebelowdot 0x1001eb6 ++#define GDK_abrevebelowdot 0x1001eb7 ++#define GDK_Ebelowdot 0x1001eb8 ++#define GDK_ebelowdot 0x1001eb9 ++#define GDK_Ehook 0x1001eba ++#define GDK_ehook 0x1001ebb ++#define GDK_Etilde 0x1001ebc ++#define GDK_etilde 0x1001ebd ++#define GDK_Ecircumflexacute 0x1001ebe ++#define GDK_ecircumflexacute 0x1001ebf ++#define GDK_Ecircumflexgrave 0x1001ec0 ++#define GDK_ecircumflexgrave 0x1001ec1 ++#define GDK_Ecircumflexhook 0x1001ec2 ++#define GDK_ecircumflexhook 0x1001ec3 ++#define GDK_Ecircumflextilde 0x1001ec4 ++#define GDK_ecircumflextilde 0x1001ec5 ++#define GDK_Ecircumflexbelowdot 0x1001ec6 ++#define GDK_ecircumflexbelowdot 0x1001ec7 ++#define GDK_Ihook 0x1001ec8 ++#define GDK_ihook 0x1001ec9 ++#define GDK_Ibelowdot 0x1001eca ++#define GDK_ibelowdot 0x1001ecb ++#define GDK_Obelowdot 0x1001ecc ++#define GDK_obelowdot 0x1001ecd ++#define GDK_Ohook 0x1001ece ++#define GDK_ohook 0x1001ecf ++#define GDK_Ocircumflexacute 0x1001ed0 ++#define GDK_ocircumflexacute 0x1001ed1 ++#define GDK_Ocircumflexgrave 0x1001ed2 ++#define GDK_ocircumflexgrave 0x1001ed3 ++#define GDK_Ocircumflexhook 0x1001ed4 ++#define GDK_ocircumflexhook 0x1001ed5 ++#define GDK_Ocircumflextilde 0x1001ed6 ++#define GDK_ocircumflextilde 0x1001ed7 ++#define GDK_Ocircumflexbelowdot 0x1001ed8 ++#define GDK_ocircumflexbelowdot 0x1001ed9 ++#define GDK_Ohornacute 0x1001eda ++#define GDK_ohornacute 0x1001edb ++#define GDK_Ohorngrave 0x1001edc ++#define GDK_ohorngrave 0x1001edd ++#define GDK_Ohornhook 0x1001ede ++#define GDK_ohornhook 0x1001edf ++#define GDK_Ohorntilde 0x1001ee0 ++#define GDK_ohorntilde 0x1001ee1 ++#define GDK_Ohornbelowdot 0x1001ee2 ++#define GDK_ohornbelowdot 0x1001ee3 ++#define GDK_Ubelowdot 0x1001ee4 ++#define GDK_ubelowdot 0x1001ee5 ++#define GDK_Uhook 0x1001ee6 ++#define GDK_uhook 0x1001ee7 ++#define GDK_Uhornacute 0x1001ee8 ++#define GDK_uhornacute 0x1001ee9 ++#define GDK_Uhorngrave 0x1001eea ++#define GDK_uhorngrave 0x1001eeb ++#define GDK_Uhornhook 0x1001eec ++#define GDK_uhornhook 0x1001eed ++#define GDK_Uhorntilde 0x1001eee ++#define GDK_uhorntilde 0x1001eef ++#define GDK_Uhornbelowdot 0x1001ef0 ++#define GDK_uhornbelowdot 0x1001ef1 ++#define GDK_Ybelowdot 0x1001ef4 ++#define GDK_ybelowdot 0x1001ef5 ++#define GDK_Yhook 0x1001ef6 ++#define GDK_yhook 0x1001ef7 ++#define GDK_Ytilde 0x1001ef8 ++#define GDK_ytilde 0x1001ef9 ++#define GDK_Ohorn 0x10001a0 ++#define GDK_ohorn 0x10001a1 ++#define GDK_Uhorn 0x10001af ++#define GDK_uhorn 0x10001b0 ++#define GDK_EcuSign 0x10020a0 ++#define GDK_ColonSign 0x10020a1 ++#define GDK_CruzeiroSign 0x10020a2 ++#define GDK_FFrancSign 0x10020a3 ++#define GDK_LiraSign 0x10020a4 ++#define GDK_MillSign 0x10020a5 ++#define GDK_NairaSign 0x10020a6 ++#define GDK_PesetaSign 0x10020a7 ++#define GDK_RupeeSign 0x10020a8 ++#define GDK_WonSign 0x10020a9 ++#define GDK_NewSheqelSign 0x10020aa ++#define GDK_DongSign 0x10020ab ++#define GDK_EuroSign 0x20ac ++#define GDK_zerosuperior 0x1002070 ++#define GDK_foursuperior 0x1002074 ++#define GDK_fivesuperior 0x1002075 ++#define GDK_sixsuperior 0x1002076 ++#define GDK_sevensuperior 0x1002077 ++#define GDK_eightsuperior 0x1002078 ++#define GDK_ninesuperior 0x1002079 ++#define GDK_zerosubscript 0x1002080 ++#define GDK_onesubscript 0x1002081 ++#define GDK_twosubscript 0x1002082 ++#define GDK_threesubscript 0x1002083 ++#define GDK_foursubscript 0x1002084 ++#define GDK_fivesubscript 0x1002085 ++#define GDK_sixsubscript 0x1002086 ++#define GDK_sevensubscript 0x1002087 ++#define GDK_eightsubscript 0x1002088 ++#define GDK_ninesubscript 0x1002089 ++#define GDK_partdifferential 0x1002202 ++#define GDK_emptyset 0x1002205 ++#define GDK_elementof 0x1002208 ++#define GDK_notelementof 0x1002209 ++#define GDK_containsas 0x100220b ++#define GDK_squareroot 0x100221a ++#define GDK_cuberoot 0x100221b ++#define GDK_fourthroot 0x100221c ++#define GDK_dintegral 0x100222c ++#define GDK_tintegral 0x100222d ++#define GDK_because 0x1002235 ++#define GDK_approxeq 0x1002248 ++#define GDK_notapproxeq 0x1002247 ++#define GDK_notidentical 0x1002262 ++#define GDK_stricteq 0x1002263 ++#define GDK_braille_dot_1 0xfff1 ++#define GDK_braille_dot_2 0xfff2 ++#define GDK_braille_dot_3 0xfff3 ++#define GDK_braille_dot_4 0xfff4 ++#define GDK_braille_dot_5 0xfff5 ++#define GDK_braille_dot_6 0xfff6 ++#define GDK_braille_dot_7 0xfff7 ++#define GDK_braille_dot_8 0xfff8 ++#define GDK_braille_dot_9 0xfff9 ++#define GDK_braille_dot_10 0xfffa ++#define GDK_braille_blank 0x1002800 ++#define GDK_braille_dots_1 0x1002801 ++#define GDK_braille_dots_2 0x1002802 ++#define GDK_braille_dots_12 0x1002803 ++#define GDK_braille_dots_3 0x1002804 ++#define GDK_braille_dots_13 0x1002805 ++#define GDK_braille_dots_23 0x1002806 ++#define GDK_braille_dots_123 0x1002807 ++#define GDK_braille_dots_4 0x1002808 ++#define GDK_braille_dots_14 0x1002809 ++#define GDK_braille_dots_24 0x100280a ++#define GDK_braille_dots_124 0x100280b ++#define GDK_braille_dots_34 0x100280c ++#define GDK_braille_dots_134 0x100280d ++#define GDK_braille_dots_234 0x100280e ++#define GDK_braille_dots_1234 0x100280f ++#define GDK_braille_dots_5 0x1002810 ++#define GDK_braille_dots_15 0x1002811 ++#define GDK_braille_dots_25 0x1002812 ++#define GDK_braille_dots_125 0x1002813 ++#define GDK_braille_dots_35 0x1002814 ++#define GDK_braille_dots_135 0x1002815 ++#define GDK_braille_dots_235 0x1002816 ++#define GDK_braille_dots_1235 0x1002817 ++#define GDK_braille_dots_45 0x1002818 ++#define GDK_braille_dots_145 0x1002819 ++#define GDK_braille_dots_245 0x100281a ++#define GDK_braille_dots_1245 0x100281b ++#define GDK_braille_dots_345 0x100281c ++#define GDK_braille_dots_1345 0x100281d ++#define GDK_braille_dots_2345 0x100281e ++#define GDK_braille_dots_12345 0x100281f ++#define GDK_braille_dots_6 0x1002820 ++#define GDK_braille_dots_16 0x1002821 ++#define GDK_braille_dots_26 0x1002822 ++#define GDK_braille_dots_126 0x1002823 ++#define GDK_braille_dots_36 0x1002824 ++#define GDK_braille_dots_136 0x1002825 ++#define GDK_braille_dots_236 0x1002826 ++#define GDK_braille_dots_1236 0x1002827 ++#define GDK_braille_dots_46 0x1002828 ++#define GDK_braille_dots_146 0x1002829 ++#define GDK_braille_dots_246 0x100282a ++#define GDK_braille_dots_1246 0x100282b ++#define GDK_braille_dots_346 0x100282c ++#define GDK_braille_dots_1346 0x100282d ++#define GDK_braille_dots_2346 0x100282e ++#define GDK_braille_dots_12346 0x100282f ++#define GDK_braille_dots_56 0x1002830 ++#define GDK_braille_dots_156 0x1002831 ++#define GDK_braille_dots_256 0x1002832 ++#define GDK_braille_dots_1256 0x1002833 ++#define GDK_braille_dots_356 0x1002834 ++#define GDK_braille_dots_1356 0x1002835 ++#define GDK_braille_dots_2356 0x1002836 ++#define GDK_braille_dots_12356 0x1002837 ++#define GDK_braille_dots_456 0x1002838 ++#define GDK_braille_dots_1456 0x1002839 ++#define GDK_braille_dots_2456 0x100283a ++#define GDK_braille_dots_12456 0x100283b ++#define GDK_braille_dots_3456 0x100283c ++#define GDK_braille_dots_13456 0x100283d ++#define GDK_braille_dots_23456 0x100283e ++#define GDK_braille_dots_123456 0x100283f ++#define GDK_braille_dots_7 0x1002840 ++#define GDK_braille_dots_17 0x1002841 ++#define GDK_braille_dots_27 0x1002842 ++#define GDK_braille_dots_127 0x1002843 ++#define GDK_braille_dots_37 0x1002844 ++#define GDK_braille_dots_137 0x1002845 ++#define GDK_braille_dots_237 0x1002846 ++#define GDK_braille_dots_1237 0x1002847 ++#define GDK_braille_dots_47 0x1002848 ++#define GDK_braille_dots_147 0x1002849 ++#define GDK_braille_dots_247 0x100284a ++#define GDK_braille_dots_1247 0x100284b ++#define GDK_braille_dots_347 0x100284c ++#define GDK_braille_dots_1347 0x100284d ++#define GDK_braille_dots_2347 0x100284e ++#define GDK_braille_dots_12347 0x100284f ++#define GDK_braille_dots_57 0x1002850 ++#define GDK_braille_dots_157 0x1002851 ++#define GDK_braille_dots_257 0x1002852 ++#define GDK_braille_dots_1257 0x1002853 ++#define GDK_braille_dots_357 0x1002854 ++#define GDK_braille_dots_1357 0x1002855 ++#define GDK_braille_dots_2357 0x1002856 ++#define GDK_braille_dots_12357 0x1002857 ++#define GDK_braille_dots_457 0x1002858 ++#define GDK_braille_dots_1457 0x1002859 ++#define GDK_braille_dots_2457 0x100285a ++#define GDK_braille_dots_12457 0x100285b ++#define GDK_braille_dots_3457 0x100285c ++#define GDK_braille_dots_13457 0x100285d ++#define GDK_braille_dots_23457 0x100285e ++#define GDK_braille_dots_123457 0x100285f ++#define GDK_braille_dots_67 0x1002860 ++#define GDK_braille_dots_167 0x1002861 ++#define GDK_braille_dots_267 0x1002862 ++#define GDK_braille_dots_1267 0x1002863 ++#define GDK_braille_dots_367 0x1002864 ++#define GDK_braille_dots_1367 0x1002865 ++#define GDK_braille_dots_2367 0x1002866 ++#define GDK_braille_dots_12367 0x1002867 ++#define GDK_braille_dots_467 0x1002868 ++#define GDK_braille_dots_1467 0x1002869 ++#define GDK_braille_dots_2467 0x100286a ++#define GDK_braille_dots_12467 0x100286b ++#define GDK_braille_dots_3467 0x100286c ++#define GDK_braille_dots_13467 0x100286d ++#define GDK_braille_dots_23467 0x100286e ++#define GDK_braille_dots_123467 0x100286f ++#define GDK_braille_dots_567 0x1002870 ++#define GDK_braille_dots_1567 0x1002871 ++#define GDK_braille_dots_2567 0x1002872 ++#define GDK_braille_dots_12567 0x1002873 ++#define GDK_braille_dots_3567 0x1002874 ++#define GDK_braille_dots_13567 0x1002875 ++#define GDK_braille_dots_23567 0x1002876 ++#define GDK_braille_dots_123567 0x1002877 ++#define GDK_braille_dots_4567 0x1002878 ++#define GDK_braille_dots_14567 0x1002879 ++#define GDK_braille_dots_24567 0x100287a ++#define GDK_braille_dots_124567 0x100287b ++#define GDK_braille_dots_34567 0x100287c ++#define GDK_braille_dots_134567 0x100287d ++#define GDK_braille_dots_234567 0x100287e ++#define GDK_braille_dots_1234567 0x100287f ++#define GDK_braille_dots_8 0x1002880 ++#define GDK_braille_dots_18 0x1002881 ++#define GDK_braille_dots_28 0x1002882 ++#define GDK_braille_dots_128 0x1002883 ++#define GDK_braille_dots_38 0x1002884 ++#define GDK_braille_dots_138 0x1002885 ++#define GDK_braille_dots_238 0x1002886 ++#define GDK_braille_dots_1238 0x1002887 ++#define GDK_braille_dots_48 0x1002888 ++#define GDK_braille_dots_148 0x1002889 ++#define GDK_braille_dots_248 0x100288a ++#define GDK_braille_dots_1248 0x100288b ++#define GDK_braille_dots_348 0x100288c ++#define GDK_braille_dots_1348 0x100288d ++#define GDK_braille_dots_2348 0x100288e ++#define GDK_braille_dots_12348 0x100288f ++#define GDK_braille_dots_58 0x1002890 ++#define GDK_braille_dots_158 0x1002891 ++#define GDK_braille_dots_258 0x1002892 ++#define GDK_braille_dots_1258 0x1002893 ++#define GDK_braille_dots_358 0x1002894 ++#define GDK_braille_dots_1358 0x1002895 ++#define GDK_braille_dots_2358 0x1002896 ++#define GDK_braille_dots_12358 0x1002897 ++#define GDK_braille_dots_458 0x1002898 ++#define GDK_braille_dots_1458 0x1002899 ++#define GDK_braille_dots_2458 0x100289a ++#define GDK_braille_dots_12458 0x100289b ++#define GDK_braille_dots_3458 0x100289c ++#define GDK_braille_dots_13458 0x100289d ++#define GDK_braille_dots_23458 0x100289e ++#define GDK_braille_dots_123458 0x100289f ++#define GDK_braille_dots_68 0x10028a0 ++#define GDK_braille_dots_168 0x10028a1 ++#define GDK_braille_dots_268 0x10028a2 ++#define GDK_braille_dots_1268 0x10028a3 ++#define GDK_braille_dots_368 0x10028a4 ++#define GDK_braille_dots_1368 0x10028a5 ++#define GDK_braille_dots_2368 0x10028a6 ++#define GDK_braille_dots_12368 0x10028a7 ++#define GDK_braille_dots_468 0x10028a8 ++#define GDK_braille_dots_1468 0x10028a9 ++#define GDK_braille_dots_2468 0x10028aa ++#define GDK_braille_dots_12468 0x10028ab ++#define GDK_braille_dots_3468 0x10028ac ++#define GDK_braille_dots_13468 0x10028ad ++#define GDK_braille_dots_23468 0x10028ae ++#define GDK_braille_dots_123468 0x10028af ++#define GDK_braille_dots_568 0x10028b0 ++#define GDK_braille_dots_1568 0x10028b1 ++#define GDK_braille_dots_2568 0x10028b2 ++#define GDK_braille_dots_12568 0x10028b3 ++#define GDK_braille_dots_3568 0x10028b4 ++#define GDK_braille_dots_13568 0x10028b5 ++#define GDK_braille_dots_23568 0x10028b6 ++#define GDK_braille_dots_123568 0x10028b7 ++#define GDK_braille_dots_4568 0x10028b8 ++#define GDK_braille_dots_14568 0x10028b9 ++#define GDK_braille_dots_24568 0x10028ba ++#define GDK_braille_dots_124568 0x10028bb ++#define GDK_braille_dots_34568 0x10028bc ++#define GDK_braille_dots_134568 0x10028bd ++#define GDK_braille_dots_234568 0x10028be ++#define GDK_braille_dots_1234568 0x10028bf ++#define GDK_braille_dots_78 0x10028c0 ++#define GDK_braille_dots_178 0x10028c1 ++#define GDK_braille_dots_278 0x10028c2 ++#define GDK_braille_dots_1278 0x10028c3 ++#define GDK_braille_dots_378 0x10028c4 ++#define GDK_braille_dots_1378 0x10028c5 ++#define GDK_braille_dots_2378 0x10028c6 ++#define GDK_braille_dots_12378 0x10028c7 ++#define GDK_braille_dots_478 0x10028c8 ++#define GDK_braille_dots_1478 0x10028c9 ++#define GDK_braille_dots_2478 0x10028ca ++#define GDK_braille_dots_12478 0x10028cb ++#define GDK_braille_dots_3478 0x10028cc ++#define GDK_braille_dots_13478 0x10028cd ++#define GDK_braille_dots_23478 0x10028ce ++#define GDK_braille_dots_123478 0x10028cf ++#define GDK_braille_dots_578 0x10028d0 ++#define GDK_braille_dots_1578 0x10028d1 ++#define GDK_braille_dots_2578 0x10028d2 ++#define GDK_braille_dots_12578 0x10028d3 ++#define GDK_braille_dots_3578 0x10028d4 ++#define GDK_braille_dots_13578 0x10028d5 ++#define GDK_braille_dots_23578 0x10028d6 ++#define GDK_braille_dots_123578 0x10028d7 ++#define GDK_braille_dots_4578 0x10028d8 ++#define GDK_braille_dots_14578 0x10028d9 ++#define GDK_braille_dots_24578 0x10028da ++#define GDK_braille_dots_124578 0x10028db ++#define GDK_braille_dots_34578 0x10028dc ++#define GDK_braille_dots_134578 0x10028dd ++#define GDK_braille_dots_234578 0x10028de ++#define GDK_braille_dots_1234578 0x10028df ++#define GDK_braille_dots_678 0x10028e0 ++#define GDK_braille_dots_1678 0x10028e1 ++#define GDK_braille_dots_2678 0x10028e2 ++#define GDK_braille_dots_12678 0x10028e3 ++#define GDK_braille_dots_3678 0x10028e4 ++#define GDK_braille_dots_13678 0x10028e5 ++#define GDK_braille_dots_23678 0x10028e6 ++#define GDK_braille_dots_123678 0x10028e7 ++#define GDK_braille_dots_4678 0x10028e8 ++#define GDK_braille_dots_14678 0x10028e9 ++#define GDK_braille_dots_24678 0x10028ea ++#define GDK_braille_dots_124678 0x10028eb ++#define GDK_braille_dots_34678 0x10028ec ++#define GDK_braille_dots_134678 0x10028ed ++#define GDK_braille_dots_234678 0x10028ee ++#define GDK_braille_dots_1234678 0x10028ef ++#define GDK_braille_dots_5678 0x10028f0 ++#define GDK_braille_dots_15678 0x10028f1 ++#define GDK_braille_dots_25678 0x10028f2 ++#define GDK_braille_dots_125678 0x10028f3 ++#define GDK_braille_dots_35678 0x10028f4 ++#define GDK_braille_dots_135678 0x10028f5 ++#define GDK_braille_dots_235678 0x10028f6 ++#define GDK_braille_dots_1235678 0x10028f7 ++#define GDK_braille_dots_45678 0x10028f8 ++#define GDK_braille_dots_145678 0x10028f9 ++#define GDK_braille_dots_245678 0x10028fa ++#define GDK_braille_dots_1245678 0x10028fb ++#define GDK_braille_dots_345678 0x10028fc ++#define GDK_braille_dots_1345678 0x10028fd ++#define GDK_braille_dots_2345678 0x10028fe ++#define GDK_braille_dots_12345678 0x10028ff ++#define GDK_ModeLock 0x1008ff01 ++#define GDK_MonBrightnessUp 0x1008ff02 ++#define GDK_MonBrightnessDown 0x1008ff03 ++#define GDK_KbdLightOnOff 0x1008ff04 ++#define GDK_KbdBrightnessUp 0x1008ff05 ++#define GDK_KbdBrightnessDown 0x1008ff06 ++#define GDK_Standby 0x1008ff10 ++#define GDK_AudioLowerVolume 0x1008ff11 ++#define GDK_AudioMute 0x1008ff12 ++#define GDK_AudioRaiseVolume 0x1008ff13 ++#define GDK_AudioPlay 0x1008ff14 ++#define GDK_AudioStop 0x1008ff15 ++#define GDK_AudioPrev 0x1008ff16 ++#define GDK_AudioNext 0x1008ff17 ++#define GDK_HomePage 0x1008ff18 ++#define GDK_Mail 0x1008ff19 ++#define GDK_Start 0x1008ff1a ++#define GDK_Search 0x1008ff1b ++#define GDK_AudioRecord 0x1008ff1c ++#define GDK_Calculator 0x1008ff1d ++#define GDK_Memo 0x1008ff1e ++#define GDK_ToDoList 0x1008ff1f ++#define GDK_Calendar 0x1008ff20 ++#define GDK_PowerDown 0x1008ff21 ++#define GDK_ContrastAdjust 0x1008ff22 ++#define GDK_RockerUp 0x1008ff23 ++#define GDK_RockerDown 0x1008ff24 ++#define GDK_RockerEnter 0x1008ff25 ++#define GDK_Back 0x1008ff26 ++#define GDK_Forward 0x1008ff27 ++#define GDK_Stop 0x1008ff28 ++#define GDK_Refresh 0x1008ff29 ++#define GDK_PowerOff 0x1008ff2a ++#define GDK_WakeUp 0x1008ff2b ++#define GDK_Eject 0x1008ff2c ++#define GDK_ScreenSaver 0x1008ff2d ++#define GDK_WWW 0x1008ff2e ++#define GDK_Sleep 0x1008ff2f ++#define GDK_Favorites 0x1008ff30 ++#define GDK_AudioPause 0x1008ff31 ++#define GDK_AudioMedia 0x1008ff32 ++#define GDK_MyComputer 0x1008ff33 ++#define GDK_VendorHome 0x1008ff34 ++#define GDK_LightBulb 0x1008ff35 ++#define GDK_Shop 0x1008ff36 ++#define GDK_History 0x1008ff37 ++#define GDK_OpenURL 0x1008ff38 ++#define GDK_AddFavorite 0x1008ff39 ++#define GDK_HotLinks 0x1008ff3a ++#define GDK_BrightnessAdjust 0x1008ff3b ++#define GDK_Finance 0x1008ff3c ++#define GDK_Community 0x1008ff3d ++#define GDK_AudioRewind 0x1008ff3e ++#define GDK_BackForward 0x1008ff3f ++#define GDK_Launch0 0x1008ff40 ++#define GDK_Launch1 0x1008ff41 ++#define GDK_Launch2 0x1008ff42 ++#define GDK_Launch3 0x1008ff43 ++#define GDK_Launch4 0x1008ff44 ++#define GDK_Launch5 0x1008ff45 ++#define GDK_Launch6 0x1008ff46 ++#define GDK_Launch7 0x1008ff47 ++#define GDK_Launch8 0x1008ff48 ++#define GDK_Launch9 0x1008ff49 ++#define GDK_LaunchA 0x1008ff4a ++#define GDK_LaunchB 0x1008ff4b ++#define GDK_LaunchC 0x1008ff4c ++#define GDK_LaunchD 0x1008ff4d ++#define GDK_LaunchE 0x1008ff4e ++#define GDK_LaunchF 0x1008ff4f ++#define GDK_ApplicationLeft 0x1008ff50 ++#define GDK_ApplicationRight 0x1008ff51 ++#define GDK_Book 0x1008ff52 ++#define GDK_CD 0x1008ff53 ++#define GDK_WindowClear 0x1008ff55 ++#define GDK_Close 0x1008ff56 ++#define GDK_Copy 0x1008ff57 ++#define GDK_Cut 0x1008ff58 ++#define GDK_Display 0x1008ff59 ++#define GDK_DOS 0x1008ff5a ++#define GDK_Documents 0x1008ff5b ++#define GDK_Excel 0x1008ff5c ++#define GDK_Explorer 0x1008ff5d ++#define GDK_Game 0x1008ff5e ++#define GDK_Go 0x1008ff5f ++#define GDK_iTouch 0x1008ff60 ++#define GDK_LogOff 0x1008ff61 ++#define GDK_Market 0x1008ff62 ++#define GDK_Meeting 0x1008ff63 ++#define GDK_MenuKB 0x1008ff65 ++#define GDK_MenuPB 0x1008ff66 ++#define GDK_MySites 0x1008ff67 ++#define GDK_New 0x1008ff68 ++#define GDK_News 0x1008ff69 ++#define GDK_OfficeHome 0x1008ff6a ++#define GDK_Open 0x1008ff6b ++#define GDK_Option 0x1008ff6c ++#define GDK_Paste 0x1008ff6d ++#define GDK_Phone 0x1008ff6e ++#define GDK_Reply 0x1008ff72 ++#define GDK_Reload 0x1008ff73 ++#define GDK_RotateWindows 0x1008ff74 ++#define GDK_RotationPB 0x1008ff75 ++#define GDK_RotationKB 0x1008ff76 ++#define GDK_Save 0x1008ff77 ++#define GDK_ScrollUp 0x1008ff78 ++#define GDK_ScrollDown 0x1008ff79 ++#define GDK_ScrollClick 0x1008ff7a ++#define GDK_Send 0x1008ff7b ++#define GDK_Spell 0x1008ff7c ++#define GDK_SplitScreen 0x1008ff7d ++#define GDK_Support 0x1008ff7e ++#define GDK_TaskPane 0x1008ff7f ++#define GDK_Terminal 0x1008ff80 ++#define GDK_Tools 0x1008ff81 ++#define GDK_Travel 0x1008ff82 ++#define GDK_UserPB 0x1008ff84 ++#define GDK_User1KB 0x1008ff85 ++#define GDK_User2KB 0x1008ff86 ++#define GDK_Video 0x1008ff87 ++#define GDK_WheelButton 0x1008ff88 ++#define GDK_Word 0x1008ff89 ++#define GDK_Xfer 0x1008ff8a ++#define GDK_ZoomIn 0x1008ff8b ++#define GDK_ZoomOut 0x1008ff8c ++#define GDK_Away 0x1008ff8d ++#define GDK_Messenger 0x1008ff8e ++#define GDK_WebCam 0x1008ff8f ++#define GDK_MailForward 0x1008ff90 ++#define GDK_Pictures 0x1008ff91 ++#define GDK_Music 0x1008ff92 ++#define GDK_Battery 0x1008ff93 ++#define GDK_Bluetooth 0x1008ff94 ++#define GDK_WLAN 0x1008ff95 ++#define GDK_UWB 0x1008ff96 ++#define GDK_AudioForward 0x1008ff97 ++#define GDK_AudioRepeat 0x1008ff98 ++#define GDK_AudioRandomPlay 0x1008ff99 ++#define GDK_Subtitle 0x1008ff9a ++#define GDK_AudioCycleTrack 0x1008ff9b ++#define GDK_CycleAngle 0x1008ff9c ++#define GDK_FrameBack 0x1008ff9d ++#define GDK_FrameForward 0x1008ff9e ++#define GDK_Time 0x1008ff9f ++#define GDK_SelectButton 0x1008ffa0 ++#define GDK_View 0x1008ffa1 ++#define GDK_TopMenu 0x1008ffa2 ++#define GDK_Red 0x1008ffa3 ++#define GDK_Green 0x1008ffa4 ++#define GDK_Yellow 0x1008ffa5 ++#define GDK_Blue 0x1008ffa6 ++#define GDK_Suspend 0x1008ffa7 ++#define GDK_Hibernate 0x1008ffa8 ++#define GDK_TouchpadToggle 0x1008ffa9 ++#define GDK_Switch_VT_1 0x1008fe01 ++#define GDK_Switch_VT_2 0x1008fe02 ++#define GDK_Switch_VT_3 0x1008fe03 ++#define GDK_Switch_VT_4 0x1008fe04 ++#define GDK_Switch_VT_5 0x1008fe05 ++#define GDK_Switch_VT_6 0x1008fe06 ++#define GDK_Switch_VT_7 0x1008fe07 ++#define GDK_Switch_VT_8 0x1008fe08 ++#define GDK_Switch_VT_9 0x1008fe09 ++#define GDK_Switch_VT_10 0x1008fe0a ++#define GDK_Switch_VT_11 0x1008fe0b ++#define GDK_Switch_VT_12 0x1008fe0c ++#define GDK_Ungrab 0x1008fe20 ++#define GDK_ClearGrab 0x1008fe21 ++#define GDK_Next_VMode 0x1008fe22 ++#define GDK_Prev_VMode 0x1008fe23 ++ ++#endif /* __GDK_KEYSYMS_COMPAT_H__ */ +diff -up mozilla-aurora/widget/gtk/nsDeviceContextSpecG.h.build-gtk2 mozilla-aurora/widget/gtk/nsDeviceContextSpecG.h +--- mozilla-aurora/widget/gtk/nsDeviceContextSpecG.h.build-gtk2 2015-12-16 16:47:23.000000000 +0100 ++++ mozilla-aurora/widget/gtk/nsDeviceContextSpecG.h 2016-01-15 17:38:34.978272200 +0100 +@@ -16,7 +16,12 @@ + #include "nsCRT.h" /* should be ? */ + + #include ++#if (MOZ_WIDGET_GTK == 2) ++#include ++#include ++#else + #include ++#endif + + #define NS_PORTRAIT 0 + #define NS_LANDSCAPE 1 +diff -up mozilla-aurora/widget/gtk/nsFilePicker.cpp.build-gtk2 mozilla-aurora/widget/gtk/nsFilePicker.cpp +--- mozilla-aurora/widget/gtk/nsFilePicker.cpp.build-gtk2 2015-12-16 16:47:23.000000000 +0100 ++++ mozilla-aurora/widget/gtk/nsFilePicker.cpp 2016-01-15 17:38:34.978272200 +0100 +@@ -125,9 +125,11 @@ UpdateFilePreviewWidget(GtkFileChooser * + return; + } + ++#if GTK_CHECK_VERSION(2,12,0) + GdkPixbuf *preview_pixbuf_temp = preview_pixbuf; + preview_pixbuf = gdk_pixbuf_apply_embedded_orientation(preview_pixbuf_temp); + g_object_unref(preview_pixbuf_temp); ++#endif + + // This is the easiest way to do center alignment without worrying about containers + // Minimum 3px padding each side (hence the 6) just to make things nice +diff -up mozilla-aurora/widget/gtk/nsPrintDialogGTK.cpp.build-gtk2 mozilla-aurora/widget/gtk/nsPrintDialogGTK.cpp +--- mozilla-aurora/widget/gtk/nsPrintDialogGTK.cpp.build-gtk2 2015-12-16 16:47:23.000000000 +0100 ++++ mozilla-aurora/widget/gtk/nsPrintDialogGTK.cpp 2016-01-15 17:38:34.979272199 +0100 +@@ -4,7 +4,13 @@ + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + #include ++#if (MOZ_WIDGET_GTK == 2) ++#include ++#include ++#include ++#else + #include ++#endif + #include + + #include "mozilla/ArrayUtils.h" +diff -up mozilla-aurora/widget/gtk/nsPrintSettingsGTK.h.build-gtk2 mozilla-aurora/widget/gtk/nsPrintSettingsGTK.h +--- mozilla-aurora/widget/gtk/nsPrintSettingsGTK.h.build-gtk2 2015-12-16 16:47:23.000000000 +0100 ++++ mozilla-aurora/widget/gtk/nsPrintSettingsGTK.h 2016-01-15 17:38:34.979272199 +0100 +@@ -11,7 +11,12 @@ + + extern "C" { + #include ++#if (MOZ_WIDGET_GTK == 2) ++#include ++#include ++#else + #include ++#endif + } + + #define NS_PRINTSETTINGSGTK_IID \ +diff -up mozilla-aurora/widget/gtk/nsWindow.cpp.build-gtk2 mozilla-aurora/widget/gtk/nsWindow.cpp +--- mozilla-aurora/widget/gtk/nsWindow.cpp.build-gtk2 2015-12-16 16:47:23.000000000 +0100 ++++ mozilla-aurora/widget/gtk/nsWindow.cpp 2016-01-15 17:38:34.980272198 +0100 +@@ -4895,7 +4895,8 @@ FullscreenTransitionWindow::FullscreenTr + bgColor.red = bgColor.green = bgColor.blue = 0; + gtk_widget_modify_bg(mWindow, GTK_STATE_NORMAL, &bgColor); + +- gtk_window_set_opacity(gtkWin, 0.0); ++ // Opacity not supported in gtk 2.10 ++ // gtk_window_set_opacity(gtkWin, 0.0); + gtk_widget_show(mWindow); + } + +@@ -4935,7 +4936,8 @@ FullscreenTransitionData::TimeoutCallbac + if (data->mStage == nsIWidget::eAfterFullscreenToggle) { + opacity = 1.0 - opacity; + } +- gtk_window_set_opacity(GTK_WINDOW(data->mWindow->mWindow), opacity); ++ // Opacity not supported in gtk 2.10 ++ // gtk_window_set_opacity(GTK_WINDOW(data->mWindow->mWindow), opacity); + + if (data->mStep != data->mTotalSteps) { + return TRUE; +diff -up mozilla-aurora/widget/gtk/nsBidiKeyboard.cpp.build-gtk2 mozilla-aurora/widget/gtk/nsBidiKeyboard.cpp +--- mozilla-aurora/widget/gtk/nsBidiKeyboard.cpp.build-gtk2 2016-01-18 09:41:47.302300030 +0100 ++++ mozilla-aurora/widget/gtk/nsBidiKeyboard.cpp 2016-01-18 09:43:50.663288859 +0100 +@@ -10,6 +10,11 @@ + #include "nsBidiKeyboard.h" + #include + ++#if (MOZ_WIDGET_GTK == 2) ++typedef gboolean (*GdkKeymapHaveBidiLayoutsType)(GdkKeymap *keymap); ++static GdkKeymapHaveBidiLayoutsType GdkKeymapHaveBidiLayouts = nullptr; ++#endif ++ + NS_IMPL_ISUPPORTS(nsBidiKeyboard, nsIBidiKeyboard) + + nsBidiKeyboard::nsBidiKeyboard() +@@ -20,21 +25,32 @@ nsBidiKeyboard::nsBidiKeyboard() + NS_IMETHODIMP + nsBidiKeyboard::Reset() + { +- // NB: The default keymap can be null (e.g. in xpcshell). In that case, +- // simply assume that we don't have bidi keyboards. +- mHaveBidiKeyboards = false; ++#if (MOZ_WIDGET_GTK == 2) ++ PRLibrary *gtklib = nullptr; ++#if defined(MOZ_X11) ++ if (!GdkKeymapHaveBidiLayouts) { ++ GdkKeymapHaveBidiLayouts = (GdkKeymapHaveBidiLayoutsType) ++ PR_FindFunctionSymbolAndLibrary("gdk_keymap_have_bidi_layouts", ++ >klib); ++ if (gtklib) ++ PR_UnloadLibrary(gtklib); ++ } ++#endif + +- GdkDisplay *display = gdk_display_get_default(); +- if (!display) +- return NS_OK; +- +- GdkKeymap *keymap = gdk_keymap_get_for_display(display); +- mHaveBidiKeyboards = keymap && gdk_keymap_have_bidi_layouts(keymap); ++ mHaveBidiKeyboards = false; ++ if (GdkKeymapHaveBidiLayouts) ++ mHaveBidiKeyboards = (*GdkKeymapHaveBidiLayouts)(nullptr); ++#else ++ mHaveBidiKeyboards = gdk_keymap_have_bidi_layouts(gdk_keymap_get_default()); ++#endif + return NS_OK; + } + + nsBidiKeyboard::~nsBidiKeyboard() + { ++#if (MOZ_WIDGET_GTK == 2) ++ GdkKeymapHaveBidiLayouts = nullptr; ++#endif + } + + NS_IMETHODIMP diff --git a/SOURCES/build-el5-nss.patch b/SOURCES/build-el5-nss.patch new file mode 100644 index 0000000..13c6dfd --- /dev/null +++ b/SOURCES/build-el5-nss.patch @@ -0,0 +1,12 @@ +diff -up mozilla-aurora/config/external/nss/Makefile.in.build-el5-nss mozilla-aurora/config/external/nss/Makefile.in +--- mozilla-aurora/config/external/nss/Makefile.in.build-el5-nss 2016-01-26 10:25:01.770613169 +0100 ++++ mozilla-aurora/config/external/nss/Makefile.in 2016-01-26 10:25:12.824599219 +0100 +@@ -298,7 +298,7 @@ NSS_DIRS += \ + endif + + ifneq (,$(filter %--build-id,$(LDFLAGS))) +-DEFAULT_GMAKE_ENV = LDFLAGS=-Wl,--build-id ++#DEFAULT_GMAKE_ENV = LDFLAGS=-Wl,--build-id + endif + + ifdef MOZ_FOLD_LIBS diff --git a/SOURCES/build-el5-rapl.patch b/SOURCES/build-el5-rapl.patch new file mode 100644 index 0000000..ec6f0b1 --- /dev/null +++ b/SOURCES/build-el5-rapl.patch @@ -0,0 +1,12 @@ +diff -up mozilla-aurora/tools/power/moz.build.rapl mozilla-aurora/tools/power/moz.build +--- mozilla-aurora/tools/power/moz.build.rapl 2016-01-18 10:55:59.461937398 +0100 ++++ mozilla-aurora/tools/power/moz.build 2016-01-18 10:56:04.483935330 +0100 +@@ -11,7 +11,7 @@ if CONFIG['OS_ARCH'] == 'Darwin' and CON + + if CONFIG['OS_ARCH'] == 'Linux' and CONFIG['OS_TARGET'] != 'Android' and \ + CONFIG['CPU_ARCH'] in ('x86', 'x86_64'): +- do_rapl = True ++ do_rapl = False + + if do_rapl: + SimplePrograms([ diff --git a/SOURCES/build-el5-rt-tgsigqueueinfo.patch b/SOURCES/build-el5-rt-tgsigqueueinfo.patch new file mode 100644 index 0000000..2ca3218 --- /dev/null +++ b/SOURCES/build-el5-rt-tgsigqueueinfo.patch @@ -0,0 +1,18 @@ +diff -up mozilla-beta/xpcom/threads/ThreadStackHelper.cpp.rt-tgsigqueueinfo mozilla-beta/xpcom/threads/ThreadStackHelper.cpp +--- mozilla-beta/xpcom/threads/ThreadStackHelper.cpp.rt-tgsigqueueinfo 2015-04-16 23:45:29.000000000 +0200 ++++ mozilla-beta/xpcom/threads/ThreadStackHelper.cpp 2015-04-22 09:10:25.291166226 +0200 +@@ -240,10 +240,13 @@ ThreadStackHelper::GetStack(Stack& aStac + uinfo.si_pid = getpid(); + uinfo.si_uid = getuid(); + uinfo.si_value.sival_ptr = this; ++#ifdef SYS_rt_tgsigqueueinfo + if (::syscall(SYS_rt_tgsigqueueinfo, uinfo.si_pid, +- mThreadID, sFillStackSignum, &uinfo)) { ++ mThreadID, sFillStackSignum, &uinfo)) + // rt_tgsigqueueinfo was added in Linux 2.6.31. + // Could have failed because the syscall did not exist. ++#endif ++ { + return; + } + MOZ_ALWAYS_TRUE(!::sem_wait(&mSem)); diff --git a/SOURCES/build-el5-sandbox.patch b/SOURCES/build-el5-sandbox.patch new file mode 100644 index 0000000..170130d --- /dev/null +++ b/SOURCES/build-el5-sandbox.patch @@ -0,0 +1,46 @@ +diff -up mozilla-aurora/security/sandbox/linux/broker/SandboxBroker.cpp.build-sandbox mozilla-aurora/security/sandbox/linux/broker/SandboxBroker.cpp +--- mozilla-aurora/security/sandbox/linux/broker/SandboxBroker.cpp.build-sandbox 2015-12-16 16:47:02.000000000 +0100 ++++ mozilla-aurora/security/sandbox/linux/broker/SandboxBroker.cpp 2016-01-21 15:34:59.168878105 +0100 +@@ -201,7 +201,7 @@ AllowAccess(int aReqFlags, int aPerms) + // on this process. These shouldn't be relevant to the child process + // in any case due to the sandboxing restrictions on it. (See also + // the use of MSG_CMSG_CLOEXEC in SandboxBrokerCommon.cpp). +-static const int kRequiredOpenFlags = O_CLOEXEC | O_NOCTTY; ++static const int kRequiredOpenFlags = O_NOCTTY; + + // Linux originally assigned a flag bit to O_SYNC but implemented the + // semantics standardized as O_DSYNC; later, that bit was renamed and +@@ -212,7 +212,7 @@ static const int kRequiredOpenFlags = O_ + static const int kAllowedOpenFlags = + O_APPEND | O_ASYNC | O_DIRECT | O_DIRECTORY | O_EXCL | O_LARGEFILE + | O_NOATIME | O_NOCTTY | O_NOFOLLOW | O_NONBLOCK | O_NDELAY | O_SYNC_NEW +- | O_TRUNC | O_CLOEXEC | O_CREAT; ++ | O_TRUNC | O_CREAT; + #undef O_SYNC_NEW + + static bool +@@ -358,6 +358,7 @@ SandboxBroker::ThreadMain(void) + // new ones). + openedFd = open(pathBuf, req.mFlags | kRequiredOpenFlags, 0600); + if (openedFd >= 0) { ++ fcntl(openedFd, F_SETFD, fcntl(openedFd, F_GETFD, 0) | FD_CLOEXEC); + resp.mError = 0; + } else { + resp.mError = errno; +diff -up mozilla-aurora/security/sandbox/linux/SandboxBrokerClient.cpp.build-sandbox mozilla-aurora/security/sandbox/linux/SandboxBrokerClient.cpp +--- mozilla-aurora/security/sandbox/linux/SandboxBrokerClient.cpp.build-sandbox 2016-01-21 15:48:55.807532739 +0100 ++++ mozilla-aurora/security/sandbox/linux/SandboxBrokerClient.cpp 2016-01-21 15:49:26.163518779 +0100 +@@ -149,9 +149,10 @@ SandboxBrokerClient::Open(const char* aP + int maybeFd = DoCall(&req, aPath, nullptr, true); + if (maybeFd >= 0) { + // NSPR has opinions about file flags. Fix O_CLOEXEC. +- if ((aFlags & O_CLOEXEC) == 0) { +- fcntl(maybeFd, F_SETFD, 0); +- } ++ // O_CLOEXEC is not available in RHEL5 ++ //if ((aFlags & O_CLOEXEC) == 0) { ++ // fcntl(maybeFd, F_SETFD, 0); ++ //} + } + return maybeFd; + } diff --git a/SOURCES/build-el5-stdint.patch b/SOURCES/build-el5-stdint.patch new file mode 100644 index 0000000..d693e5c --- /dev/null +++ b/SOURCES/build-el5-stdint.patch @@ -0,0 +1,47 @@ +diff -up mozilla-aurora/security/sandbox/linux/LinuxCapabilities.h.build-el5-stdint mozilla-aurora/security/sandbox/linux/LinuxCapabilities.h +--- mozilla-aurora/security/sandbox/linux/LinuxCapabilities.h.build-el5-stdint 2015-12-16 16:47:02.000000000 +0100 ++++ mozilla-aurora/security/sandbox/linux/LinuxCapabilities.h 2016-01-26 15:52:02.557401691 +0100 +@@ -7,7 +7,32 @@ + #ifndef mozilla_LinuxCapabilities_h + #define mozilla_LinuxCapabilities_h + ++#define int64_t int64_t_linux ++#define uint64_t uint64_t_linux ++#define loff_t loff_t_linux ++#define dev_t dev_t_linux ++#define timer_t timer_t_linux ++#define u_int64_t u_int64_t_linux ++#define fd_set fd_set_linux ++#define blkcnt_t blkcnt_t_linux ++#define gid_t gid_t_linux ++#define mode_t mode_t_linux ++#define nlink_t nlink_t_linux ++#define uid_t uid_t_linux + #include ++#undef int64_t ++#undef uint64_t ++#undef loff_t ++#undef dev_t ++#undef timer_t ++#undef u_int64_t ++#undef fd_set ++#undef blkcnt_t ++#undef gid_t ++#undef mode_t ++#undef nlink_t ++#undef uid_t ++ + #include + + #include "mozilla/Assertions.h" +diff -up mozilla-aurora/security/sandbox/linux/SandboxFilterUtil.cpp.build-el5-stdint mozilla-aurora/security/sandbox/linux/SandboxFilterUtil.cpp +--- mozilla-aurora/security/sandbox/linux/SandboxFilterUtil.cpp.build-el5-stdint 2016-01-25 20:56:57.937678560 +0100 ++++ mozilla-aurora/security/sandbox/linux/SandboxFilterUtil.cpp 2016-01-25 20:58:25.574613828 +0100 +@@ -13,6 +13,7 @@ + + #include "mozilla/UniquePtr.h" + #include "sandbox/linux/bpf_dsl/bpf_dsl.h" ++#include + + // Older kernel headers (mostly Android, but also some older desktop + // distributions) are missing some or all of these: diff --git a/SOURCES/build-el5-xlib-header.patch b/SOURCES/build-el5-xlib-header.patch new file mode 100644 index 0000000..247036c --- /dev/null +++ b/SOURCES/build-el5-xlib-header.patch @@ -0,0 +1,27 @@ +diff -up mozilla-aurora/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.cc.xlib-swap mozilla-aurora/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.cc +--- mozilla-aurora/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.cc.xlib-swap 2016-01-15 12:50:55.900989372 +0100 ++++ mozilla-aurora/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.cc 2016-01-15 12:51:40.592950518 +0100 +@@ -10,8 +10,8 @@ + + #include "webrtc/modules/desktop_capture/mouse_cursor_monitor.h" + +-#include + #include ++#include + #include + + #include "webrtc/base/scoped_ptr.h" +diff -up mozilla-aurora/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_x11.cc.xlib-swap mozilla-aurora/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_x11.cc +--- mozilla-aurora/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_x11.cc.xlib-swap 2016-01-15 12:50:48.652995674 +0100 ++++ mozilla-aurora/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_x11.cc 2016-01-15 12:51:34.005956245 +0100 +@@ -13,9 +13,9 @@ + #include + #include + ++#include + #include + #include +-#include + #include + + #include "webrtc/base/scoped_ptr.h" diff --git a/SOURCES/build-no-format.patch b/SOURCES/build-no-format.patch deleted file mode 100644 index 9bc6129..0000000 --- a/SOURCES/build-no-format.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up mozilla-aurora/media/libstagefright/moz.build.no-format mozilla-aurora/media/libstagefright/moz.build ---- mozilla-aurora/media/libstagefright/moz.build.no-format 2015-03-16 13:39:35.861598410 +0100 -+++ mozilla-aurora/media/libstagefright/moz.build 2015-03-16 13:39:39.710557344 +0100 -@@ -141,7 +141,6 @@ elif CONFIG['GNU_CXX']: - '-Wno-sign-compare' - ] - CXXFLAGS += [ -- '-Wno-format', - '-Wno-multichar', - '-Wno-sign-compare', - '-Wno-unused', diff --git a/SOURCES/build-nspr-prbool.patch b/SOURCES/build-nspr-prbool.patch deleted file mode 100644 index a46f472..0000000 --- a/SOURCES/build-nspr-prbool.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff -up mozilla-beta/media/webrtc/trunk/webrtc/base/nssidentity.h.prbool-fix mozilla-beta/media/webrtc/trunk/webrtc/base/nssidentity.h ---- mozilla-beta/media/webrtc/trunk/webrtc/base/nssidentity.h.prbool-fix 2015-04-07 10:29:51.919137851 +0200 -+++ mozilla-beta/media/webrtc/trunk/webrtc/base/nssidentity.h 2015-04-07 10:33:06.886532753 +0200 -@@ -15,6 +15,7 @@ - - #include "cert.h" - #include "nspr.h" -+#include "prtypes.h" - #include "hasht.h" - #include "keythi.h" - -diff -up mozilla-beta/modules/libmar/sign/nss_secutil.h.prbool-fix mozilla-beta/modules/libmar/sign/nss_secutil.h ---- mozilla-beta/modules/libmar/sign/nss_secutil.h.prbool-fix 2015-04-07 10:33:13.079513533 +0200 -+++ mozilla-beta/modules/libmar/sign/nss_secutil.h 2015-04-07 10:33:16.101504154 +0200 -@@ -11,6 +11,7 @@ - #include "nss.h" - #include "pk11pub.h" - #include "cryptohi.h" -+#include "prtypes.h" - #include "hasht.h" - #include "cert.h" - #include "key.h" -diff -up mozilla-beta/security/certverifier/ExtendedValidation.cpp.prbool-fix mozilla-beta/security/certverifier/ExtendedValidation.cpp ---- mozilla-beta/security/certverifier/ExtendedValidation.cpp.prbool-fix 2015-04-07 10:36:42.693902941 +0200 -+++ mozilla-beta/security/certverifier/ExtendedValidation.cpp 2015-04-07 10:36:45.925893606 +0200 -@@ -9,6 +9,7 @@ - #include "cert.h" - #include "certdb.h" - #include "base64.h" -+#include "prtypes.h" - #include "hasht.h" - #include "pkix/stdkeywords.h" - #include "pkix/pkixtypes.h" -diff -up mozilla-beta/security/certverifier/OCSPCache.h.prbool-fix mozilla-beta/security/certverifier/OCSPCache.h ---- mozilla-beta/security/certverifier/OCSPCache.h.prbool-fix 2015-04-07 10:36:34.106927741 +0200 -+++ mozilla-beta/security/certverifier/OCSPCache.h 2015-04-07 10:36:35.940922444 +0200 -@@ -25,6 +25,7 @@ - #ifndef mozilla_psm_OCSPCache_h - #define mozilla_psm_OCSPCache_h - -+#include "prtypes.h" - #include "hasht.h" - #include "mozilla/Mutex.h" - #include "mozilla/Vector.h" -diff -up mozilla-beta/security/manager/ssl/src/nsCryptoHash.h.prbool-fix mozilla-beta/security/manager/ssl/src/nsCryptoHash.h ---- mozilla-beta/security/manager/ssl/src/nsCryptoHash.h.prbool-fix 2015-04-07 10:36:15.887980360 +0200 -+++ mozilla-beta/security/manager/ssl/src/nsCryptoHash.h 2015-04-07 10:36:18.124973899 +0200 -@@ -10,6 +10,7 @@ - #include "nsICryptoHash.h" - #include "nsICryptoHMAC.h" - #include "nsNSSShutDown.h" -+#include "prtypes.h" - #include "hasht.h" - #include "secmodt.h" - -diff -up mozilla-beta/security/manager/ssl/tests/unit/tlsserver/cmd/ClientAuthServer.cpp.prbool-fix mozilla-beta/security/manager/ssl/tests/unit/tlsserver/cmd/ClientAuthServer.cpp ---- mozilla-beta/security/manager/ssl/tests/unit/tlsserver/cmd/ClientAuthServer.cpp.prbool-fix 2015-04-07 10:36:25.065953853 +0200 -+++ mozilla-beta/security/manager/ssl/tests/unit/tlsserver/cmd/ClientAuthServer.cpp 2015-04-07 10:36:27.319947343 +0200 -@@ -15,6 +15,7 @@ - - #include - -+#include "prtypes.h" - #include "hasht.h" - #include "ScopedNSSTypes.h" - #include "ssl.h" diff --git a/SOURCES/build-nss.patch b/SOURCES/build-nss.patch new file mode 100644 index 0000000..36f8f83 --- /dev/null +++ b/SOURCES/build-nss.patch @@ -0,0 +1,21 @@ +diff -up firefox-45.0.1esr/configure.in.nss firefox-45.0.1esr/configure.in +--- firefox-45.0.1esr/configure.in.nss 2016-04-06 10:20:01.000000000 +0200 ++++ firefox-45.0.1esr/configure.in 2016-04-06 10:25:56.998285981 +0200 +@@ -53,7 +53,7 @@ dnl ==================================== + MOZJPEG=62 + MOZPNG=10619 + NSPR_VERSION=4 +-NSPR_MINVER=4.12 ++NSPR_MINVER=4.11 + NSS_VERSION=3 + + dnl Set the minimum version of toolkit libs used by mozilla +@@ -3451,7 +3451,7 @@ MOZ_ARG_WITH_BOOL(system-nss, + _USE_SYSTEM_NSS=1 ) + + if test -n "$_USE_SYSTEM_NSS"; then +- AM_PATH_NSS(3.21.1, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) ++ AM_PATH_NSS(3.21.0, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) + fi + + if test -n "$MOZ_NATIVE_NSS"; then diff --git a/SOURCES/firefox-centos-default-prefs.js b/SOURCES/firefox-centos-default-prefs.js deleted file mode 100644 index e894b72..0000000 --- a/SOURCES/firefox-centos-default-prefs.js +++ /dev/null @@ -1,29 +0,0 @@ -pref("app.update.auto", false); -pref("app.update.enabled", false); -pref("app.update.autoInstallEnabled", false); -pref("browser.backspace_action", 2); -pref("browser.display.use_system_colors", true); -pref("browser.download.folderList", 1); -pref("browser.link.open_external", 3); -pref("browser.shell.checkDefaultBrowser", false); -pref("general.smoothScroll", true); -pref("general.useragent.vendor", "CentOS"); -pref("general.useragent.vendorSub", "FIREFOX_RPM_VR"); -pref("intl.locale.matchOS", true); -pref("storage.nfs_filesystem", false); -pref("dom.ipc.plugins.enabled.nswrapper*", false); -pref("network.manage-offline-status", true); -pref("toolkit.networkmanager.disable", false); -pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=file:///usr/share/doc/HTML/index.html"); -pref("toolkit.storage.synchronous", 0); -pref("startup.homepage_override_url", "http://www.centos.org"); -pref("startup.homepage_welcome_url", "http://www.centos.org"); -/* Workaround for rhbz#1134876 */ -pref("javascript.options.baselinejit", true); -pref("extensions.shownSelectionUI", true); -/* Workaround for rhbz#1110291 */ -pref("network.negotiate-auth.allow-insecure-ntlm-v1", true); -/* Workaround for mozbz#1063315 */ -pref("security.use_mozillapkix_verification", false); -pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"); -perf("loop.enabled", true); diff --git a/SOURCES/firefox-debug.patch b/SOURCES/firefox-debug.patch deleted file mode 100644 index 0fdccb1..0000000 --- a/SOURCES/firefox-debug.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up mozilla-release/browser/installer/package-manifest.in.old mozilla-release/browser/installer/package-manifest.in ---- mozilla-release/browser/installer/package-manifest.in.old 2015-04-03 04:30:05.000000000 +0200 -+++ mozilla-release/browser/installer/package-manifest.in 2015-04-07 13:17:44.180343700 +0200 -@@ -608,7 +608,7 @@ - @RESPATH@/components/MozKeyboard.js - @RESPATH@/components/InputMethod.manifest - --#ifdef MOZ_DEBUG -+#ifdef ENABLE_TESTS - @RESPATH@/components/TestInterfaceJS.js - @RESPATH@/components/TestInterfaceJS.manifest - #endif -diff -up firefox-38.0/mozilla-beta/js/src/jit/shared/CodeGenerator-shared-inl.h.debug firefox-38.0/mozilla-beta/js/src/jit/shared/CodeGenerator-shared-inl.h ---- mozilla-beta/js/src/jit/shared/CodeGenerator-shared-inl.h.debug 2015-03-31 00:54:47.000000000 +0200 -+++ mozilla-beta/js/src/jit/shared/CodeGenerator-shared-inl.h 2015-04-07 21:36:41.136826585 +0200 -@@ -189,7 +189,7 @@ CodeGeneratorShared::verifyHeapAccessDis - Scalar::Type type, const Operand& mem, - LAllocation alloc) - { --#ifdef DEBUG -+#if 0 - using namespace Disassembler; - - OtherOperand op; diff --git a/SOURCES/firefox-default.patch b/SOURCES/firefox-default.patch index f7b7486..58a82fc 100644 --- a/SOURCES/firefox-default.patch +++ b/SOURCES/firefox-default.patch @@ -1,28 +1,28 @@ -diff -up mozilla-aurora/browser/components/preferences/advanced.xul.default mozilla-aurora/browser/components/preferences/advanced.xul ---- mozilla-aurora/browser/components/preferences/advanced.xul.default 2015-03-12 13:21:15.000000000 +0100 -+++ mozilla-aurora/browser/components/preferences/advanced.xul 2015-03-12 14:23:22.419249264 +0100 -@@ -58,7 +58,7 @@ - type="bool"/> +diff -up mozilla-aurora/browser/components/preferences/in-content/advanced.xul.default mozilla-aurora/browser/components/preferences/in-content/advanced.xul +--- mozilla-aurora/browser/components/preferences/in-content/advanced.xul.default 2016-01-28 16:47:37.376005810 +0100 ++++ mozilla-aurora/browser/components/preferences/in-content/advanced.xul 2016-01-28 16:48:40.113963249 +0100 +@@ -63,7 +63,7 @@ + type="bool"/> - + -#ifdef MOZ_UPDATER +#ifdef 0 - - - #ifdef XP_WIN -@@ -95,7 +95,7 @@ - type="int"/> - + +@@ -107,7 +107,7 @@ + type="int"/> + -#ifdef HAVE_SHELL_SERVICE +#ifdef 0 - - + + #endif diff -up mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp.default mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp ---- mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp.default 2015-03-12 13:21:16.000000000 +0100 -+++ mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp 2015-03-12 14:23:22.419249264 +0100 -@@ -149,8 +149,8 @@ nsGNOMEShellService::GetAppPathFromLaunc +--- mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp.default 2015-12-16 16:47:31.000000000 +0100 ++++ mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp 2016-01-28 16:47:37.376005810 +0100 +@@ -150,8 +150,8 @@ nsGNOMEShellService::GetAppPathFromLaunc bool nsGNOMEShellService::KeyMatchesAppName(const char *aKeyValue) const { @@ -32,7 +32,7 @@ diff -up mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp.default if (mUseLocaleFilenames) { gchar *nativePath = g_filename_from_utf8(aKeyValue, -1, nullptr, nullptr, nullptr); -@@ -159,17 +159,13 @@ nsGNOMEShellService::KeyMatchesAppName(c +@@ -160,17 +160,13 @@ nsGNOMEShellService::KeyMatchesAppName(c return false; } @@ -53,7 +53,7 @@ diff -up mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp.default return matches; } -@@ -254,16 +250,7 @@ nsGNOMEShellService::SetDefaultBrowser(b +@@ -255,16 +251,7 @@ nsGNOMEShellService::SetDefaultBrowser(b nsCOMPtr gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID); nsCOMPtr giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID); if (gconf) { @@ -72,10 +72,10 @@ diff -up mozilla-aurora/browser/components/shell/nsGNOMEShellService.cpp.default for (unsigned int i = 0; i < ArrayLength(appProtocols); ++i) { diff -up mozilla-aurora/browser/components/shell/nsGNOMEShellService.h.default mozilla-aurora/browser/components/shell/nsGNOMEShellService.h ---- mozilla-aurora/browser/components/shell/nsGNOMEShellService.h.default 2015-03-12 13:21:16.000000000 +0100 -+++ mozilla-aurora/browser/components/shell/nsGNOMEShellService.h 2015-03-12 14:23:22.420249261 +0100 +--- mozilla-aurora/browser/components/shell/nsGNOMEShellService.h.default 2015-12-16 16:47:31.000000000 +0100 ++++ mozilla-aurora/browser/components/shell/nsGNOMEShellService.h 2016-01-28 16:47:37.376005810 +0100 @@ -13,7 +13,7 @@ - class nsGNOMEShellService MOZ_FINAL : public nsIShellService + class nsGNOMEShellService final : public nsIShellService { public: - nsGNOMEShellService() : mCheckedThisSession(false), mAppIsInPath(false) { } diff --git a/SOURCES/firefox-duckduckgo.patch b/SOURCES/firefox-duckduckgo.patch deleted file mode 100644 index e747013..0000000 --- a/SOURCES/firefox-duckduckgo.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -up mozilla-release/browser/locales/en-US/chrome/browser-region/region.properties.duckduckgo mozilla-release/browser/locales/en-US/chrome/browser-region/region.properties ---- mozilla-release/browser/locales/en-US/chrome/browser-region/region.properties.duckduckgo 2012-10-24 16:32:26.000000000 +0200 -+++ mozilla-release/browser/locales/en-US/chrome/browser-region/region.properties 2012-11-07 16:27:04.278857840 +0100 -@@ -9,6 +9,7 @@ browser.search.defaultenginename=Google - browser.search.order.1=Google - browser.search.order.2=Yahoo - browser.search.order.3=Bing -+browser.search.order.4=DuckDuckGo - - # This is the default set of web based feed handlers shown in the reader - # selection UI -diff -up mozilla-release/browser/locales/en-US/searchplugins/duckduckgo.xml.duckduckgo mozilla-release/browser/locales/en-US/searchplugins/duckduckgo.xml ---- mozilla-release/browser/locales/en-US/searchplugins/duckduckgo.xml.duckduckgo 2012-11-07 16:27:04.278857840 +0100 -+++ mozilla-release/browser/locales/en-US/searchplugins/duckduckgo.xml 2012-11-07 16:27:04.278857840 +0100 -@@ -0,0 +1,11 @@ -+ -+ DuckDuckGo -+ We believe you can get better search and privacy at the same time. -+ UTF-8 -+ data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA== -+ -+ -+ -+ -+ https://duckduckgo.com/ -+ -diff -up mozilla-release/browser/locales/en-US/searchplugins/list.txt.duckduckgo mozilla-release/browser/locales/en-US/searchplugins/list.txt ---- mozilla-release/browser/locales/en-US/searchplugins/list.txt.duckduckgo 2012-10-24 16:32:26.000000000 +0200 -+++ mozilla-release/browser/locales/en-US/searchplugins/list.txt 2012-11-07 16:27:04.279857842 +0100 -@@ -1,5 +1,6 @@ - amazondotcom - bing -+duckduckgo - eBay - google - twitter diff --git a/SOURCES/firefox-mozconfig b/SOURCES/firefox-mozconfig index 19beaf1..5f93abb 100755 --- a/SOURCES/firefox-mozconfig +++ b/SOURCES/firefox-mozconfig @@ -2,39 +2,33 @@ ac_add_options --disable-cpp-exceptions ac_add_options --disable-crashreporter -ac_add_options --disable-debug -ac_add_options --disable-gnomevfs +ac_add_options --disable-exact-rooting ac_add_options --disable-installer ac_add_options --disable-javaxpcom ac_add_options --disable-libjpeg-turbo ac_add_options --disable-mochitest ac_add_options --disable-necko-wifi ac_add_options --disable-strip -ac_add_options --disable-system-cairo ac_add_options --disable-tests ac_add_options --disable-updater ac_add_options --disable-xprint ac_add_options --enable-canvas ac_add_options --enable-default-toolkit=cairo-gtk2 ac_add_options --enable-extensions=default -ac_add_options --enable-gio ac_add_options --enable-libnotify ac_add_options --enable-pango +ac_add_options --enable-release ac_add_options --enable-safe-browsing +ac_add_options --enable-skia ac_add_options --enable-startup-notification ac_add_options --enable-svg ac_add_options --enable-xinerama ac_add_options --libdir="$LIBDIR" ac_add_options --prefix="$PREFIX" +ac_add_options --with-mozilla-api-keyfile=../mozilla-api-key +ac_add_options --without-system-libvpx ac_add_options --with-pthreads -ac_add_options --with-system-bz2 -ac_add_options --with-system-jpeg ac_add_options --with-system-zlib -ac_add_options --with-mozilla-api-keyfile=../mozilla-api-key -ac_add_options --disable-exact-rooting -ac_add_options --enable-release -ac_add_options --enable-skia - export BUILD_OFFICIAL=1 export CFLAGS="$CFLAGS -gdwarf-2" export CXXFLAGS="$CXXFLAGS -gdwarf-2" diff --git a/SOURCES/firefox-mozconfig-branded b/SOURCES/firefox-mozconfig-branded deleted file mode 100644 index 53b376d..0000000 --- a/SOURCES/firefox-mozconfig-branded +++ /dev/null @@ -1 +0,0 @@ -ac_add_options --enable-official-branding diff --git a/SOURCES/firefox-nss-3.19.1.patch b/SOURCES/firefox-nss-3.19.1.patch deleted file mode 100644 index b31417b..0000000 --- a/SOURCES/firefox-nss-3.19.1.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -up mozilla-esr38/configure.in.nss-3.19.1 mozilla-esr38/configure.in ---- mozilla-esr38/configure.in.nss-3.19.1 2015-10-29 11:17:50.666423563 +0100 -+++ mozilla-esr38/configure.in 2015-10-29 11:28:06.142004473 +0100 -@@ -52,7 +52,7 @@ dnl ==================================== - MOZJPEG=62 - MOZPNG=10616 - NSPR_VERSION=4 --NSPR_MINVER=4.10.10 -+NSPR_MINVER=4.10.8 - NSS_VERSION=3 - - dnl Set the minimum version of toolkit libs used by mozilla -@@ -3627,7 +3627,7 @@ MOZ_ARG_WITH_BOOL(system-nss, - _USE_SYSTEM_NSS=1 ) - - if test -n "$_USE_SYSTEM_NSS"; then -- AM_PATH_NSS(3.19.2.3, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) -+ AM_PATH_NSS(3.19.1, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])]) - fi - - if test -n "$MOZ_NATIVE_NSS"; then diff --git a/SOURCES/firefox-ppc64le.patch b/SOURCES/firefox-ppc64le.patch index 6465eec..45fe1bc 100644 --- a/SOURCES/firefox-ppc64le.patch +++ b/SOURCES/firefox-ppc64le.patch @@ -1,6 +1,6 @@ -diff -up firefox-36.0/mozilla-release/gfx/skia/trunk/include/core/SkPreConfig.h.ppc64le firefox-36.0/mozilla-release/gfx/skia/trunk/include/core/SkPreConfig.h ---- firefox-36.0/mozilla-release/gfx/skia/trunk/include/core/SkPreConfig.h.ppc64le 2015-02-20 03:01:40.000000000 +0100 -+++ firefox-36.0/mozilla-release/gfx/skia/trunk/include/core/SkPreConfig.h 2015-03-06 15:52:58.298050379 +0100 +diff -up firefox-36.0/mozilla-release/gfx/skia/skia/include/core/SkPreConfig.h.ppc64le firefox-36.0/mozilla-release/gfx/skia/skia/include/core/SkPreConfig.h +--- firefox-36.0/mozilla-release/gfx/skia/skia/include/core/SkPreConfig.h.ppc64le 2015-02-20 03:01:40.000000000 +0100 ++++ firefox-36.0/mozilla-release/gfx/skia/skia/include/core/SkPreConfig.h 2015-03-06 15:52:58.298050379 +0100 @@ -90,6 +90,13 @@ #endif diff --git a/SOURCES/firefox-redhat-default-bookmarks.html b/SOURCES/firefox-redhat-default-bookmarks.html new file mode 100644 index 0000000..042ccdc --- /dev/null +++ b/SOURCES/firefox-redhat-default-bookmarks.html @@ -0,0 +1,17 @@ + + + +Bookmarks +

Bookmarks

+ +

+

Personal Toolbar Folder

+

+

Red Hat +
Red Hat Magazine +
Red Hat Network +
Red Hat Support +

+

diff --git a/SOURCES/firefox-redhat-default-prefs.js b/SOURCES/firefox-redhat-default-prefs.js new file mode 100644 index 0000000..02113f4 --- /dev/null +++ b/SOURCES/firefox-redhat-default-prefs.js @@ -0,0 +1,27 @@ +pref("app.update.auto", false); +pref("app.update.enabled", false); +pref("app.update.autoInstallEnabled", false); +pref("browser.backspace_action", 2); +pref("browser.display.use_system_colors", true); +pref("browser.download.folderList", 1); +pref("browser.link.open_external", 3); +pref("browser.shell.checkDefaultBrowser", false); +pref("general.smoothScroll", true); +pref("general.useragent.vendor", "Red Hat"); +pref("general.useragent.vendorSub", "FIREFOX_RPM_VR"); +pref("intl.locale.matchOS", true); +pref("storage.nfs_filesystem", false); +pref("dom.ipc.plugins.enabled.nswrapper*", false); +pref("network.manage-offline-status", true); +pref("toolkit.networkmanager.disable", false); +pref("browser.startup.homepage", "data:text/plain,browser.startup.homepage=file:///usr/share/doc/HTML/index.html"); +pref("toolkit.storage.synchronous", 0); +pref("startup.homepage_override_url", "http://www.redhat.com"); +pref("startup.homepage_welcome_url", "http://www.redhat.com"); +pref("extensions.shownSelectionUI", true); +/* Workaround for rhbz#1110291 */ +pref("network.negotiate-auth.allow-insecure-ntlm-v1", true); +/* Workaround for mozbz#1063315 */ +pref("security.use_mozillapkix_verification", false); +pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"); +pref("browser.tabs.remote.autostart", false); diff --git a/SOURCES/firefox.sh.in b/SOURCES/firefox.sh.in deleted file mode 100644 index 2a0dfc9..0000000 --- a/SOURCES/firefox.sh.in +++ /dev/null @@ -1,261 +0,0 @@ -#!/bin/bash -# -# The contents of this file are subject to the Netscape Public -# License Version 1.1 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy of -# the License at http://www.mozilla.org/NPL/ -# -# Software distributed under the License is distributed on an "AS -# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or -# implied. See the License for the specific language governing -# rights and limitations under the License. -# -# The Original Code is mozilla.org code. -# -# The Initial Developer of the Original Code is Netscape -# Communications Corporation. Portions created by Netscape are -# Copyright (C) 1998 Netscape Communications Corporation. All -# Rights Reserved. -# -# Contributor(s): -# - -## -## Usage: -## -## $ firefox -## -## This script is meant to run a mozilla program from the mozilla -## rpm installation. -## -## The script will setup all the environment voodoo needed to make -## mozilla work. - -cmdname=`basename $0` - -## -## Variables -## -MOZ_ARCH=$(uname -m) -case $MOZ_ARCH in - x86_64 | s390x | sparc64) - MOZ_LIB_DIR="/usr/lib64" - SECONDARY_LIB_DIR="/usr/lib" - ;; - * ) - MOZ_LIB_DIR="/usr/lib" - SECONDARY_LIB_DIR="/usr/lib64" - ;; -esac - -MOZ_FIREFOX_FILE="firefox" - -if [ ! -r $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then - if [ ! -r $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then - echo "Error: $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" - if [ -d $SECONDARY_LIB_DIR ]; then - echo " $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" - fi - exit 1 - fi - MOZ_LIB_DIR="$SECONDARY_LIB_DIR" -fi -MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox" -MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks" -MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" -MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE" -MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh" - -## -## Set MOZ_GRE_CONF -## -MOZ_GRE_CONF=/etc/gre.d/gre.conf -if [ "$MOZ_LIB_DIR" == "/usr/lib64" ]; then - MOZ_GRE_CONF=/etc/gre.d/gre64.conf -fi -export MOZ_GRE_CONF - -## -## Set MOZILLA_FIVE_HOME -## -MOZILLA_FIVE_HOME="$MOZ_DIST_BIN" - -export MOZILLA_FIVE_HOME - -## -## Select the propper plugin dir -## Wrapped plug-ins are located in /lib/mozilla/plugins-wrapped -## -if [ -x "/usr/bin/mozilla-plugin-config" ] -then - MOZ_PLUGIN_DIR="plugins-wrapped" -else - MOZ_PLUGIN_DIR="plugins" -fi - -## -## Make sure that we set the plugin path -## -if [ "$MOZ_PLUGIN_PATH" ] -then - MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR -else - MOZ_PLUGIN_PATH=$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR -fi -export MOZ_PLUGIN_PATH - -## -## Set MOZ_APP_LAUNCHER for gnome-session -## -export MOZ_APP_LAUNCHER="/usr/bin/firefox" - -## -## If plugins are wrapped, check them -## -if [ -x "/usr/bin/mozilla-plugin-config" ] -then - /usr/bin/mozilla-plugin-config -fi - -## -## Set FONTCONFIG_PATH for Xft/fontconfig -## -FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft" -export FONTCONFIG_PATH - -## -## In order to better support certain scripts (such as Indic and some CJK -## scripts), Fedora builds its Firefox, with permission from the Mozilla -## Corporation, with the Pango system as its text renderer. This change -## may negatively impact performance on some pages. To disable the use of -## Pango, set MOZ_DISABLE_PANGO=1 in your environment before launching -## Firefox. -## -# -# MOZ_DISABLE_PANGO=1 -# export MOZ_DISABLE_PANGO -# - -## -## Disable the GNOME crash dialog, Moz has it's own -## -GNOME_DISABLE_CRASH_DIALOG=1 -export GNOME_DISABLE_CRASH_DIALOG - -## -## Disable the SLICE allocator (rhbz#1014858) -## -export G_SLICE=always-malloc - -# OK, here's where all the real work gets done - - -## -## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1 -## in your environment before launching Firefox. -## -# -# MOZ_DISABLE_LANGPACKS=1 -# export MOZ_DISABLE_LANGPACKS -# - -## -## Automatically installed langpacks are tracked by .fedora-langpack-install -## config file. -## -FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install" - -# MOZ_DISABLE_LANGPACKS disables language packs completely -MOZILLA_DOWN=0 -if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then - if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then - # Is firefox running? - $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE -remote 'ping()' > /dev/null 2>&1 - MOZILLA_DOWN=$? - fi -fi - -# Modify language pack configuration only when firefox is not running -# and language packs are not disabled -if [ $MOZILLA_DOWN -ne 0 ]; then - - # Clear already installed langpacks - mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR - if [ -f $FEDORA_LANGPACK_CONFIG ]; then - rm `cat $FEDORA_LANGPACK_CONFIG` > /dev/null 2>&1 - rm $FEDORA_LANGPACK_CONFIG > /dev/null 2>&1 - # remove all empty langpacks dirs while they block installation of langpacks - rmdir $MOZ_EXTENSIONS_PROFILE_DIR/langpack* > /dev/null 2>&1 - fi - - # Get locale from system - CURRENT_LOCALE=$LC_ALL - CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES} - CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG} - - # Try with a local variant first, then without a local variant - SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"` - MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"` - - function create_langpack_link() { - local language=$* - local langpack=langpack-${language}@firefox.mozilla.org.xpi - if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then - rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack - # If the target file is a symlink (the fallback langpack), - # install the original file instead of the fallback one - if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then - langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack` - fi - ln -s $MOZ_LANGPACKS_DIR/$langpack \ - $MOZ_EXTENSIONS_PROFILE_DIR/$langpack - echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG - return 0 - fi - return 1 - } - - create_langpack_link $MOZLOCALE || create_langpack_link $SHORTMOZLOCALE || true -fi - -# BEAST fix (rhbz#1005611) -NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1} -export NSS_SSL_CBC_RANDOM_IV - -# Prepare command line arguments -script_args="" -pass_arg_count=0 -while [ $# -gt $pass_arg_count ] -do - case "$1" in - -g | --debug) - script_args="$script_args -g" - debugging=1 - shift - ;; - -d | --debugger) - if [ $# -gt 1 ]; then - script_args="$script_args -d $2" - shift 2 - else - shift - fi - ;; - *) - # Move the unrecognized argument to the end of the list. - arg="$1" - shift - set -- "$@" "$arg" - pass_arg_count=`expr $pass_arg_count + 1` - ;; - esac -done - -# Run the browser -debugging=0 -if [ $debugging = 1 ] -then - echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" -fi - -exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" diff --git a/SOURCES/firefox.sh.in.rhel5 b/SOURCES/firefox.sh.in.rhel5 new file mode 100644 index 0000000..2149f2a --- /dev/null +++ b/SOURCES/firefox.sh.in.rhel5 @@ -0,0 +1,266 @@ +#!/bin/bash +# +# The contents of this file are subject to the Netscape Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/NPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is Netscape +# Communications Corporation. Portions created by Netscape are +# Copyright (C) 1998 Netscape Communications Corporation. All +# Rights Reserved. +# +# Contributor(s): +# + +## +## Usage: +## +## $ firefox +## +## This script is meant to run a mozilla program from the mozilla +## rpm installation. +## +## The script will setup all the environment voodoo needed to make +## mozilla work. + +cmdname=`basename $0` + +## +## Variables +## +MOZ_ARCH=$(uname -m) +case $MOZ_ARCH in + x86_64 | s390x | sparc64) + MOZ_LIB_DIR="/usr/lib64" + SECONDARY_LIB_DIR="/usr/lib" + ;; + * ) + MOZ_LIB_DIR="/usr/lib" + SECONDARY_LIB_DIR="/usr/lib64" + ;; +esac + +MOZ_FIREFOX_FILE="firefox" + +if [ ! -r $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then + if [ ! -r $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then + echo "Error: $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" + if [ -d $SECONDARY_LIB_DIR ]; then + echo " $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" + fi + exit 1 + fi + MOZ_LIB_DIR="$SECONDARY_LIB_DIR" +fi +MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox" +MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks" +MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" +MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE" +MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh" + +## +## Set MOZ_GRE_CONF +## +MOZ_GRE_CONF=/etc/gre.d/gre.conf +if [ "$MOZ_LIB_DIR" == "/usr/lib64" ]; then + MOZ_GRE_CONF=/etc/gre.d/gre64.conf +fi +export MOZ_GRE_CONF + +## +## Set MOZILLA_FIVE_HOME +## +MOZILLA_FIVE_HOME="$MOZ_DIST_BIN" + +export MOZILLA_FIVE_HOME + +## +## Select the propper plugin dir +## Wrapped plug-ins are located in /lib/mozilla/plugins-wrapped +## +if [ -x "/usr/bin/mozilla-plugin-config" ] +then + MOZ_PLUGIN_DIR="plugins-wrapped" +else + MOZ_PLUGIN_DIR="plugins" +fi + +## +## Make sure that we set the plugin path +## +if [ "$MOZ_PLUGIN_PATH" ] +then + MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR +else + MOZ_PLUGIN_PATH=$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR +fi +export MOZ_PLUGIN_PATH + +## +## Set MOZ_APP_LAUNCHER for gnome-session +## +export MOZ_APP_LAUNCHER="/usr/bin/firefox" + +## +## If plugins are wrapped, check them +## +if [ -x "/usr/bin/mozilla-plugin-config" ] +then + /usr/bin/mozilla-plugin-config +fi + +## +## Set FONTCONFIG_PATH for Xft/fontconfig +## +FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft" +export FONTCONFIG_PATH + +## +## Disable image optimalization (a workaround for Bug 447451) +## +export MOZ_DISABLE_IMAGE_OPTIMIZE=1 + +## +## In order to better support certain scripts (such as Indic and some CJK +## scripts), Fedora builds its Firefox, with permission from the Mozilla +## Corporation, with the Pango system as its text renderer. This change +## may negatively impact performance on some pages. To disable the use of +## Pango, set MOZ_DISABLE_PANGO=1 in your environment before launching +## Firefox. +## +# +# MOZ_DISABLE_PANGO=1 +# export MOZ_DISABLE_PANGO +# + +## +## Disable the GNOME crash dialog, Moz has it's own +## +GNOME_DISABLE_CRASH_DIALOG=1 +export GNOME_DISABLE_CRASH_DIALOG + +## +## Fix for: background-repeat css property is not rendered - https://bugzilla.redhat.com/show_bug.cgi?id=698313 +## +export MOZ_CAIRO_FORCE_BUGGY_REPEAT=1 + +# OK, here's where all the real work gets done + + +## +## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1 +## in your environment before launching Firefox. +## +# +# MOZ_DISABLE_LANGPACKS=1 +# export MOZ_DISABLE_LANGPACKS +# + +## +## Automatically installed langpacks are tracked by .fedora-langpack-install +## config file. +## +FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install" + +# MOZ_DISABLE_LANGPACKS disables language packs completely +MOZILLA_DOWN=0 +if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then + if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then + # Is firefox running? + /usr/bin/pidof firefox > /dev/null 2>&1 + MOZILLA_DOWN=$? + fi +fi + +# Modify language pack configuration only when firefox is not running +# and language packs are not disabled +if [ $MOZILLA_DOWN -ne 0 ]; then + + # Clear already installed langpacks + mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR + if [ -f $FEDORA_LANGPACK_CONFIG ]; then + rm `cat $FEDORA_LANGPACK_CONFIG` > /dev/null 2>&1 + rm $FEDORA_LANGPACK_CONFIG > /dev/null 2>&1 + # remove all empty langpacks dirs while they block installation of langpacks + rmdir $MOZ_EXTENSIONS_PROFILE_DIR/langpack* > /dev/null 2>&1 + fi + + # Get locale from system + CURRENT_LOCALE=$LC_ALL + CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES} + CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG} + + # Try with a local variant first, then without a local variant + SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"` + MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"` + + function create_langpack_link() { + local language=$* + local langpack=langpack-${language}@firefox.mozilla.org.xpi + if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then + rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack + # If the target file is a symlink (the fallback langpack), + # install the original file instead of the fallback one + if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then + langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack` + fi + ln -s $MOZ_LANGPACKS_DIR/$langpack \ + $MOZ_EXTENSIONS_PROFILE_DIR/$langpack + echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG + return 0 + fi + return 1 + } + + create_langpack_link $MOZLOCALE || create_langpack_link $SHORTMOZLOCALE || true +fi + +# BEAST fix (rhbz#1005611) +NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1} +export NSS_SSL_CBC_RANDOM_IV + +# Prepare command line arguments +script_args="" +pass_arg_count=0 +while [ $# -gt $pass_arg_count ] +do + case "$1" in + -g | --debug) + script_args="$script_args -g" + debugging=1 + shift + ;; + -d | --debugger) + if [ $# -gt 1 ]; then + script_args="$script_args -d $2" + shift 2 + else + shift + fi + ;; + *) + # Move the unrecognized argument to the end of the list. + arg="$1" + shift + set -- "$@" "$arg" + pass_arg_count=`expr $pass_arg_count + 1` + ;; + esac +done + +# Run the browser +debugging=0 +if [ $debugging = 1 ] +then + echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" +fi + +exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" diff --git a/SOURCES/firefox.sh.in.rhel6 b/SOURCES/firefox.sh.in.rhel6 new file mode 100644 index 0000000..1eb2d25 --- /dev/null +++ b/SOURCES/firefox.sh.in.rhel6 @@ -0,0 +1,256 @@ +#!/bin/bash +# +# The contents of this file are subject to the Netscape Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/NPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is Netscape +# Communications Corporation. Portions created by Netscape are +# Copyright (C) 1998 Netscape Communications Corporation. All +# Rights Reserved. +# +# Contributor(s): +# + +## +## Usage: +## +## $ firefox +## +## This script is meant to run a mozilla program from the mozilla +## rpm installation. +## +## The script will setup all the environment voodoo needed to make +## mozilla work. + +cmdname=`basename $0` + +## +## Variables +## +MOZ_ARCH=$(uname -m) +case $MOZ_ARCH in + x86_64 | s390x | sparc64) + MOZ_LIB_DIR="/usr/lib64" + SECONDARY_LIB_DIR="/usr/lib" + ;; + * ) + MOZ_LIB_DIR="/usr/lib" + SECONDARY_LIB_DIR="/usr/lib64" + ;; +esac + +MOZ_FIREFOX_FILE="firefox" + +if [ ! -r $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then + if [ ! -r $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then + echo "Error: $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" + if [ -d $SECONDARY_LIB_DIR ]; then + echo " $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" + fi + exit 1 + fi + MOZ_LIB_DIR="$SECONDARY_LIB_DIR" +fi +MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox" +MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks" +MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" +MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE" +MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh" + +## +## Set MOZ_GRE_CONF +## +MOZ_GRE_CONF=/etc/gre.d/gre.conf +if [ "$MOZ_LIB_DIR" == "/usr/lib64" ]; then + MOZ_GRE_CONF=/etc/gre.d/gre64.conf +fi +export MOZ_GRE_CONF + +## +## Set MOZILLA_FIVE_HOME +## +MOZILLA_FIVE_HOME="$MOZ_DIST_BIN" + +export MOZILLA_FIVE_HOME + +## +## Select the propper plugin dir +## Wrapped plug-ins are located in /lib/mozilla/plugins-wrapped +## +if [ -x "/usr/bin/mozilla-plugin-config" ] +then + MOZ_PLUGIN_DIR="plugins-wrapped" +else + MOZ_PLUGIN_DIR="plugins" +fi + +## +## Make sure that we set the plugin path +## +if [ "$MOZ_PLUGIN_PATH" ] +then + MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR +else + MOZ_PLUGIN_PATH=$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR +fi +export MOZ_PLUGIN_PATH + +## +## Set MOZ_APP_LAUNCHER for gnome-session +## +export MOZ_APP_LAUNCHER="/usr/bin/firefox" + +## +## If plugins are wrapped, check them +## +if [ -x "/usr/bin/mozilla-plugin-config" ] +then + /usr/bin/mozilla-plugin-config +fi + +## +## Set FONTCONFIG_PATH for Xft/fontconfig +## +FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft" +export FONTCONFIG_PATH + +## +## In order to better support certain scripts (such as Indic and some CJK +## scripts), Fedora builds its Firefox, with permission from the Mozilla +## Corporation, with the Pango system as its text renderer. This change +## may negatively impact performance on some pages. To disable the use of +## Pango, set MOZ_DISABLE_PANGO=1 in your environment before launching +## Firefox. +## +# +# MOZ_DISABLE_PANGO=1 +# export MOZ_DISABLE_PANGO +# + +## +## Disable the GNOME crash dialog, Moz has it's own +## +GNOME_DISABLE_CRASH_DIALOG=1 +export GNOME_DISABLE_CRASH_DIALOG + +# OK, here's where all the real work gets done + + +## +## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1 +## in your environment before launching Firefox. +## +# +# MOZ_DISABLE_LANGPACKS=1 +# export MOZ_DISABLE_LANGPACKS +# + +## +## Automatically installed langpacks are tracked by .fedora-langpack-install +## config file. +## +FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install" + +# MOZ_DISABLE_LANGPACKS disables language packs completely +MOZILLA_DOWN=0 +if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then + if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then + # Is firefox running? + /usr/bin/pidof firefox > /dev/null 2>&1 + MOZILLA_DOWN=$? + fi +fi + +# Modify language pack configuration only when firefox is not running +# and language packs are not disabled +if [ $MOZILLA_DOWN -ne 0 ]; then + + # Clear already installed langpacks + mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR + if [ -f $FEDORA_LANGPACK_CONFIG ]; then + rm `cat $FEDORA_LANGPACK_CONFIG` > /dev/null 2>&1 + rm $FEDORA_LANGPACK_CONFIG > /dev/null 2>&1 + # remove all empty langpacks dirs while they block installation of langpacks + rmdir $MOZ_EXTENSIONS_PROFILE_DIR/langpack* > /dev/null 2>&1 + fi + + # Get locale from system + CURRENT_LOCALE=$LC_ALL + CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES} + CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG} + + # Try with a local variant first, then without a local variant + SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"` + MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"` + + function create_langpack_link() { + local language=$* + local langpack=langpack-${language}@firefox.mozilla.org.xpi + if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then + rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack + # If the target file is a symlink (the fallback langpack), + # install the original file instead of the fallback one + if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then + langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack` + fi + ln -s $MOZ_LANGPACKS_DIR/$langpack \ + $MOZ_EXTENSIONS_PROFILE_DIR/$langpack + echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG + return 0 + fi + return 1 + } + + create_langpack_link $MOZLOCALE || create_langpack_link $SHORTMOZLOCALE || true +fi + +# BEAST fix (rhbz#1005611) +NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1} +export NSS_SSL_CBC_RANDOM_IV + +# Prepare command line arguments +script_args="" +pass_arg_count=0 +while [ $# -gt $pass_arg_count ] +do + case "$1" in + -g | --debug) + script_args="$script_args -g" + debugging=1 + shift + ;; + -d | --debugger) + if [ $# -gt 1 ]; then + script_args="$script_args -d $2" + shift 2 + else + shift + fi + ;; + *) + # Move the unrecognized argument to the end of the list. + arg="$1" + shift + set -- "$@" "$arg" + pass_arg_count=`expr $pass_arg_count + 1` + ;; + esac +done + +# Run the browser +debugging=0 +if [ $debugging = 1 ] +then + echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" +fi + +exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" diff --git a/SOURCES/firefox.sh.in.rhel7 b/SOURCES/firefox.sh.in.rhel7 new file mode 100644 index 0000000..385a05c --- /dev/null +++ b/SOURCES/firefox.sh.in.rhel7 @@ -0,0 +1,261 @@ +#!/bin/bash +# +# The contents of this file are subject to the Netscape Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/NPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is Netscape +# Communications Corporation. Portions created by Netscape are +# Copyright (C) 1998 Netscape Communications Corporation. All +# Rights Reserved. +# +# Contributor(s): +# + +## +## Usage: +## +## $ firefox +## +## This script is meant to run a mozilla program from the mozilla +## rpm installation. +## +## The script will setup all the environment voodoo needed to make +## mozilla work. + +cmdname=`basename $0` + +## +## Variables +## +MOZ_ARCH=$(uname -m) +case $MOZ_ARCH in + x86_64 | s390x | sparc64) + MOZ_LIB_DIR="/usr/lib64" + SECONDARY_LIB_DIR="/usr/lib" + ;; + * ) + MOZ_LIB_DIR="/usr/lib" + SECONDARY_LIB_DIR="/usr/lib64" + ;; +esac + +MOZ_FIREFOX_FILE="firefox" + +if [ ! -r $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then + if [ ! -r $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE ]; then + echo "Error: $MOZ_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" + if [ -d $SECONDARY_LIB_DIR ]; then + echo " $SECONDARY_LIB_DIR/firefox/$MOZ_FIREFOX_FILE not found" + fi + exit 1 + fi + MOZ_LIB_DIR="$SECONDARY_LIB_DIR" +fi +MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox" +MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks" +MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" +MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE" +MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh" + +## +## Set MOZ_GRE_CONF +## +MOZ_GRE_CONF=/etc/gre.d/gre.conf +if [ "$MOZ_LIB_DIR" == "/usr/lib64" ]; then + MOZ_GRE_CONF=/etc/gre.d/gre64.conf +fi +export MOZ_GRE_CONF + +## +## Set MOZILLA_FIVE_HOME +## +MOZILLA_FIVE_HOME="$MOZ_DIST_BIN" + +export MOZILLA_FIVE_HOME + +## +## Select the propper plugin dir +## Wrapped plug-ins are located in /lib/mozilla/plugins-wrapped +## +if [ -x "/usr/bin/mozilla-plugin-config" ] +then + MOZ_PLUGIN_DIR="plugins-wrapped" +else + MOZ_PLUGIN_DIR="plugins" +fi + +## +## Make sure that we set the plugin path +## +if [ "$MOZ_PLUGIN_PATH" ] +then + MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR +else + MOZ_PLUGIN_PATH=$MOZ_LIB_DIR/mozilla/$MOZ_PLUGIN_DIR:$MOZ_DIST_BIN/$MOZ_PLUGIN_DIR +fi +export MOZ_PLUGIN_PATH + +## +## Set MOZ_APP_LAUNCHER for gnome-session +## +export MOZ_APP_LAUNCHER="/usr/bin/firefox" + +## +## If plugins are wrapped, check them +## +if [ -x "/usr/bin/mozilla-plugin-config" ] +then + /usr/bin/mozilla-plugin-config +fi + +## +## Set FONTCONFIG_PATH for Xft/fontconfig +## +FONTCONFIG_PATH="/etc/fonts:${MOZILLA_FIVE_HOME}/res/Xft" +export FONTCONFIG_PATH + +## +## In order to better support certain scripts (such as Indic and some CJK +## scripts), Fedora builds its Firefox, with permission from the Mozilla +## Corporation, with the Pango system as its text renderer. This change +## may negatively impact performance on some pages. To disable the use of +## Pango, set MOZ_DISABLE_PANGO=1 in your environment before launching +## Firefox. +## +# +# MOZ_DISABLE_PANGO=1 +# export MOZ_DISABLE_PANGO +# + +## +## Disable the GNOME crash dialog, Moz has it's own +## +GNOME_DISABLE_CRASH_DIALOG=1 +export GNOME_DISABLE_CRASH_DIALOG + +## +## Disable the SLICE allocator (rhbz#1014858) +## +export G_SLICE=always-malloc + +# OK, here's where all the real work gets done + + +## +## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1 +## in your environment before launching Firefox. +## +# +# MOZ_DISABLE_LANGPACKS=1 +# export MOZ_DISABLE_LANGPACKS +# + +## +## Automatically installed langpacks are tracked by .fedora-langpack-install +## config file. +## +FEDORA_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.fedora-langpack-install" + +# MOZ_DISABLE_LANGPACKS disables language packs completely +MOZILLA_DOWN=0 +if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then + if [ -x $MOZ_DIST_BIN/$MOZ_FIREFOX_FILE ]; then + # Is firefox running? + /usr/bin/pidof firefox > /dev/null 2>&1 + MOZILLA_DOWN=$? + fi +fi + +# Modify language pack configuration only when firefox is not running +# and language packs are not disabled +if [ $MOZILLA_DOWN -ne 0 ]; then + + # Clear already installed langpacks + mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR + if [ -f $FEDORA_LANGPACK_CONFIG ]; then + rm `cat $FEDORA_LANGPACK_CONFIG` > /dev/null 2>&1 + rm $FEDORA_LANGPACK_CONFIG > /dev/null 2>&1 + # remove all empty langpacks dirs while they block installation of langpacks + rmdir $MOZ_EXTENSIONS_PROFILE_DIR/langpack* > /dev/null 2>&1 + fi + + # Get locale from system + CURRENT_LOCALE=$LC_ALL + CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES} + CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG} + + # Try with a local variant first, then without a local variant + SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g"` + MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g"` + + function create_langpack_link() { + local language=$* + local langpack=langpack-${language}@firefox.mozilla.org.xpi + if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then + rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack + # If the target file is a symlink (the fallback langpack), + # install the original file instead of the fallback one + if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then + langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack` + fi + ln -s $MOZ_LANGPACKS_DIR/$langpack \ + $MOZ_EXTENSIONS_PROFILE_DIR/$langpack + echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $FEDORA_LANGPACK_CONFIG + return 0 + fi + return 1 + } + + create_langpack_link $MOZLOCALE || create_langpack_link $SHORTMOZLOCALE || true +fi + +# BEAST fix (rhbz#1005611) +NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1} +export NSS_SSL_CBC_RANDOM_IV + +# Prepare command line arguments +script_args="" +pass_arg_count=0 +while [ $# -gt $pass_arg_count ] +do + case "$1" in + -g | --debug) + script_args="$script_args -g" + debugging=1 + shift + ;; + -d | --debugger) + if [ $# -gt 1 ]; then + script_args="$script_args -d $2" + shift 2 + else + shift + fi + ;; + *) + # Move the unrecognized argument to the end of the list. + arg="$1" + shift + set -- "$@" "$arg" + pass_arg_count=`expr $pass_arg_count + 1` + ;; + esac +done + +# Run the browser +debugging=0 +if [ $debugging = 1 ] +then + echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" +fi + +exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@" diff --git a/SOURCES/mozilla-1005535.patch b/SOURCES/mozilla-1005535.patch index 2f0381b..d84c913 100644 --- a/SOURCES/mozilla-1005535.patch +++ b/SOURCES/mozilla-1005535.patch @@ -3,20 +3,16 @@ # User Steve Singer Bug 1005535 - Get skia GPU building on big endian. -diff --git a/configure.in b/configure.in ---- a/configure.in -+++ b/configure.in -@@ -8231,21 +8231,21 @@ dnl Skia - dnl ======================================================== - if test "$MOZ_ENABLE_SKIA"; then - AC_DEFINE(MOZ_ENABLE_SKIA) - AC_DEFINE(USE_SKIA) - if test "${MOZ_WIDGET_TOOLKIT}" = "android" -o x"$MOZ_WIDGET_TOOLKIT" = x"gonk"; then +diff -up mozilla-aurora/configure.in.mozbz-1005535 mozilla-aurora/configure.in +--- mozilla-aurora/configure.in.mozbz-1005535 2015-12-18 14:55:09.415983194 +0100 ++++ mozilla-aurora/configure.in 2015-12-18 14:58:46.301911086 +0100 +@@ -8279,12 +8279,12 @@ if test "$MOZ_ENABLE_SKIA"; then AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK) fi - if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then +# if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then + SKIA_INCLUDES="$SKIA_INCLUDES /gfx/skia/skia/include/gpu /gfx/skia/skia/include/utils" MOZ_ENABLE_SKIA_GPU=1 AC_DEFINE(USE_SKIA_GPU) AC_SUBST(MOZ_ENABLE_SKIA_GPU) @@ -24,85 +20,12 @@ diff --git a/configure.in b/configure.in +# fi fi AC_SUBST(MOZ_ENABLE_SKIA) - - dnl ======================================================== - dnl disable xul - dnl ======================================================== - MOZ_ARG_DISABLE_BOOL(xul, - [ --disable-xul Disable XUL], -diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py ---- a/gfx/skia/generate_mozbuild.py -+++ b/gfx/skia/generate_mozbuild.py -@@ -236,17 +236,17 @@ def generate_separated_sources(platform_ - return True - - return False - - separated = { - 'common': { - #'trunk/src/effects/gradients/SkGradientTileProc.cpp', - 'trunk/src/gpu/gl/GrGLCreateNativeInterface_none.cpp', -- 'trunk/src/ports/SkDiscardableMemory_none.cpp', -+ #'trunk/src/ports/SkDiscardableMemory_none.cpp', - 'trunk/src/ports/SkImageDecoder_empty.cpp', - 'trunk/src/ports/SkMemory_mozalloc.cpp', - # 'trunk/src/images/SkImages.cpp', - # 'trunk/src/images/SkImageRef.cpp', - # 'trunk/src/images/SkImageRef_GlobalPool.cpp', - # 'trunk/src/images/SkImageRefPool.cpp', - # 'trunk/src/images/SkImageDecoder.cpp', - # 'trunk/src/images/SkImageDecoder_Factory.cpp', -diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build ---- a/gfx/skia/moz.build -+++ b/gfx/skia/moz.build -@@ -847,17 +847,16 @@ else: - 'trunk/src/opts/SkBitmapProcState_opts_none.cpp', - 'trunk/src/opts/SkBlitMask_opts_none.cpp', - 'trunk/src/opts/SkBlitRow_opts_none.cpp', - 'trunk/src/opts/SkBlurImage_opts_none.cpp', - 'trunk/src/opts/SkMorphology_opts_none.cpp', - 'trunk/src/opts/SkTextureCompression_opts_none.cpp', - 'trunk/src/opts/SkUtils_opts_none.cpp', - 'trunk/src/opts/SkXfermode_opts_none.cpp', -- 'trunk/src/ports/SkDiscardableMemory_none.cpp', - ] - - - # can we find a better way of dealing with asm sources? - - # left out of UNIFIED_SOURCES for now; that's not C++ anyway, nothing else to unify it with - if not CONFIG['INTEL_ARCHITECTURE'] and CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC']: - SOURCES += [ -diff --git a/gfx/skia/trunk/include/config/SkUserConfig.h b/gfx/skia/trunk/include/config/SkUserConfig.h ---- a/gfx/skia/trunk/include/config/SkUserConfig.h -+++ b/gfx/skia/trunk/include/config/SkUserConfig.h -@@ -192,16 +192,17 @@ - - #if defined(SK_CPU_ARM32) || defined(SK_CPU_ARM64) - # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_arm.h" - #else - # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_x86.h" - #endif - - // On all platforms we have this byte order -+ - #define SK_A32_SHIFT 24 - #define SK_R32_SHIFT 16 - #define SK_G32_SHIFT 8 - #define SK_B32_SHIFT 0 - - #define SK_ALLOW_STATIC_GLOBAL_INITIALIZERS 0 - - #define SK_SUPPORT_LEGACY_GETDEVICE -diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/core/SkColorPriv.h ---- a/gfx/skia/trunk/include/core/SkColorPriv.h -+++ b/gfx/skia/trunk/include/core/SkColorPriv.h -@@ -27,37 +27,27 @@ - * For easier compatibility with Skia's GPU backend, we further restrict these - * to either (in memory-byte-order) RGBA or BGRA. Note that this "order" does - * not directly correspond to the same shift-order, since we have to take endianess - * into account. - * + AC_SUBST_LIST(SKIA_INCLUDES) +diff -up mozilla-aurora/gfx/skia/skia/include/config/SkUserConfig.h.mozbz-1005535 mozilla-aurora/gfx/skia/skia/include/config/SkUserConfig.h +diff -up mozilla-aurora/gfx/skia/skia/include/core/SkColorPriv.h.mozbz-1005535 mozilla-aurora/gfx/skia/skia/include/core/SkColorPriv.h +--- mozilla-aurora/gfx/skia/skia/include/core/SkColorPriv.h.mozbz-1005535 2015-12-16 16:47:08.000000000 +0100 ++++ mozilla-aurora/gfx/skia/skia/include/core/SkColorPriv.h 2015-12-18 14:55:09.416983194 +0100 +@@ -32,17 +32,7 @@ * Here we enforce this constraint. */ @@ -120,9 +43,7 @@ diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/ #define SK_RGBA_R32_SHIFT 0 #define SK_RGBA_G32_SHIFT 8 #define SK_RGBA_B32_SHIFT 16 - #define SK_RGBA_A32_SHIFT 24 - - #define SK_BGRA_B32_SHIFT 0 +@@ -52,7 +42,7 @@ #define SK_BGRA_G32_SHIFT 8 #define SK_BGRA_R32_SHIFT 16 #define SK_BGRA_A32_SHIFT 24 @@ -131,20 +52,10 @@ diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/ #if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA) #error "can't define PMCOLOR to be RGBA and BGRA" - #endif - - #define LOCAL_PMCOLOR_SHIFTS_EQUIVALENT_TO_RGBA \ - (SK_A32_SHIFT == SK_RGBA_A32_SHIFT && \ - SK_R32_SHIFT == SK_RGBA_R32_SHIFT && \ -diff --git a/gfx/skia/trunk/include/core/SkImageInfo.h b/gfx/skia/trunk/include/core/SkImageInfo.h ---- a/gfx/skia/trunk/include/core/SkImageInfo.h -+++ b/gfx/skia/trunk/include/core/SkImageInfo.h -@@ -83,19 +83,20 @@ enum SkColorType { - - kLastEnum_SkColorType = kIndex_8_SkColorType, - - #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) - kN32_SkColorType = kBGRA_8888_SkColorType, +diff -up mozilla-aurora/gfx/skia/skia/include/core/SkImageInfo.h.mozbz-1005535 mozilla-aurora/gfx/skia/skia/include/core/SkImageInfo.h +--- mozilla-aurora/gfx/skia/skia/include/core/SkImageInfo.h.mozbz-1005535 2015-12-16 16:47:08.000000000 +0100 ++++ mozilla-aurora/gfx/skia/skia/include/core/SkImageInfo.h 2015-12-18 14:55:09.416983194 +0100 +@@ -88,9 +88,10 @@ enum SkColorType { #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A) kN32_SkColorType = kRGBA_8888_SkColorType, #else @@ -156,20 +67,10 @@ diff --git a/gfx/skia/trunk/include/core/SkImageInfo.h b/gfx/skia/trunk/include/ #ifdef SK_SUPPORT_LEGACY_N32_NAME kPMColor_SkColorType = kN32_SkColorType #endif - }; - - static int SkColorTypeBytesPerPixel(SkColorType ct) { - static const uint8_t gSize[] = { - 0, // Unknown -diff --git a/gfx/skia/trunk/include/gpu/GrTypes.h b/gfx/skia/trunk/include/gpu/GrTypes.h ---- a/gfx/skia/trunk/include/gpu/GrTypes.h -+++ b/gfx/skia/trunk/include/gpu/GrTypes.h -@@ -304,25 +304,23 @@ enum GrPixelConfig { - * Byte order is r, g, b, a. This color format is 32 bits per channel - */ - kRGBA_float_GrPixelConfig, - kLast_GrPixelConfig = kRGBA_float_GrPixelConfig - }; +diff -up mozilla-aurora/gfx/skia/skia/include/gpu/GrTypes.h.mozbz-1005535 mozilla-aurora/gfx/skia/skia/include/gpu/GrTypes.h +--- mozilla-aurora/gfx/skia/skia/include/gpu/GrTypes.h.mozbz-1005535 2015-12-16 16:47:08.000000000 +0100 ++++ mozilla-aurora/gfx/skia/skia/include/gpu/GrTypes.h 2015-12-18 14:55:09.416983194 +0100 +@@ -309,15 +309,13 @@ enum GrPixelConfig { static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1; // Aliases for pixel configs that match skia's byte order. @@ -187,8 +88,3 @@ diff --git a/gfx/skia/trunk/include/gpu/GrTypes.h b/gfx/skia/trunk/include/gpu/G #endif // Returns true if the pixel config is a GPU-specific compressed format - // representation. - static inline bool GrPixelConfigIsCompressed(GrPixelConfig config) { - switch (config) { - case kETC1_GrPixelConfig: - case kLATC_GrPixelConfig: diff --git a/SOURCES/mozilla-1170092-etc-conf.patch b/SOURCES/mozilla-1170092-etc-conf.patch new file mode 100644 index 0000000..2b10f06 --- /dev/null +++ b/SOURCES/mozilla-1170092-etc-conf.patch @@ -0,0 +1,96 @@ +diff -up firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp +--- firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp.1170092 2016-03-15 23:37:54.000000000 +0100 ++++ firefox-45.0.1/extensions/pref/autoconfig/src/nsReadConfig.cpp 2016-03-21 16:10:42.540417899 +0100 +@@ -245,8 +245,20 @@ nsresult nsReadConfig::openAndEvaluateJS + return rv; + + rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile); +- if (NS_FAILED(rv)) +- return rv; ++ if (NS_FAILED(rv)) { ++ // Look for cfg file in /etc//pref ++ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR, ++ getter_AddRefs(jsFile)); ++ NS_ENSURE_SUCCESS(rv, rv); ++ ++ rv = jsFile->AppendNative(NS_LITERAL_CSTRING("pref")); ++ NS_ENSURE_SUCCESS(rv, rv); ++ rv = jsFile->AppendNative(nsDependentCString(aFileName)); ++ NS_ENSURE_SUCCESS(rv, rv); ++ ++ rv = NS_NewLocalFileInputStream(getter_AddRefs(inStr), jsFile); ++ NS_ENSURE_SUCCESS(rv, rv); ++ } + + } else { + nsAutoCString location("resource://gre/defaults/autoconfig/"); +diff -up firefox-45.0.1/modules/libpref/Preferences.cpp.1170092 firefox-45.0.1/modules/libpref/Preferences.cpp +--- firefox-45.0.1/modules/libpref/Preferences.cpp.1170092 2016-03-21 16:10:42.540417899 +0100 ++++ firefox-45.0.1/modules/libpref/Preferences.cpp 2016-03-21 16:13:29.145888710 +0100 +@@ -1214,6 +1214,8 @@ static nsresult pref_InitInitialObjects( + // - jar:$gre/omni.jar!/defaults/preferences/*.js + // Thus, in omni.jar case, we always load app-specific default preferences + // from omni.jar, whether or not $app == $gre. ++ // At very end load configuration from system config location: ++ // - /etc/firefox/pref/*.js + + nsZipFind *findPtr; + nsAutoPtr find; +diff -up firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp.1170092 firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp +--- firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp.1170092 2016-03-15 23:37:46.000000000 +0100 ++++ firefox-45.0.1/toolkit/xre/nsXREDirProvider.cpp 2016-03-21 16:12:06.498655156 +0100 +@@ -51,6 +51,7 @@ + #endif + #ifdef XP_UNIX + #include ++#include "nsIXULAppInfo.h" + #endif + #ifdef XP_IOS + #include "UIKitDirProvider.h" +@@ -457,6 +458,20 @@ nsXREDirProvider::GetFile(const char* aP + } + } + } ++#if defined(XP_UNIX) ++ if (!strcmp(aProperty, NS_APP_PREFS_SYSTEM_CONFIG_DIR)) { ++ nsCString sysConfigDir = NS_LITERAL_CSTRING("/etc/"); ++ nsCOMPtr appInfo = do_GetService("@mozilla.org/xre/app-info;1"); ++ if (!appInfo) ++ return NS_ERROR_NOT_AVAILABLE; ++ nsCString appName; ++ appInfo->GetName(appName); ++ ToLowerCase(appName); ++ sysConfigDir.Append(appName); ++ return NS_NewNativeLocalFile(sysConfigDir, false, aFile); ++ } ++#endif ++ + if (NS_FAILED(rv) || !file) + return NS_ERROR_FAILURE; + +@@ -753,6 +768,14 @@ nsXREDirProvider::GetFilesInternal(const + LoadDirIntoArray(mXULAppDir, kAppendPrefDir, directories); + LoadDirsIntoArray(mAppBundleDirectories, + kAppendPrefDir, directories); ++ // Add /etc//pref/ directory if it exists ++ nsCOMPtr systemPrefDir; ++ rv = NS_GetSpecialDirectory(NS_APP_PREFS_SYSTEM_CONFIG_DIR, getter_AddRefs(systemPrefDir)); ++ if (NS_SUCCEEDED(rv)) { ++ rv = systemPrefDir->AppendNative(NS_LITERAL_CSTRING("pref")); ++ if (NS_SUCCEEDED(rv)) ++ directories.AppendObject(systemPrefDir); ++ } + + rv = NS_NewArrayEnumerator(aResult, directories); + } +diff -up firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h +--- firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h.1170092 2016-03-15 23:37:47.000000000 +0100 ++++ firefox-45.0.1/xpcom/io/nsAppDirectoryServiceDefs.h 2016-03-21 16:10:42.541417902 +0100 +@@ -67,6 +67,7 @@ + #define NS_APP_PREFS_DEFAULTS_DIR_LIST "PrefDL" + #define NS_EXT_PREFS_DEFAULTS_DIR_LIST "ExtPrefDL" + #define NS_APP_PREFS_OVERRIDE_DIR "PrefDOverride" // Directory for per-profile defaults ++#define NS_APP_PREFS_SYSTEM_CONFIG_DIR "PrefSysConf" // Directory with system-wide configuration + + #define NS_APP_USER_PROFILE_50_DIR "ProfD" + #define NS_APP_USER_PROFILE_LOCAL_50_DIR "ProfLD" diff --git a/SOURCES/mozilla-1204147.patch b/SOURCES/mozilla-1204147.patch deleted file mode 100644 index 63876c0..0000000 --- a/SOURCES/mozilla-1204147.patch +++ /dev/null @@ -1,28 +0,0 @@ -# HG changeset patch -# Parent c0abc2a6e11f52761366e029eb1bae4c9864a8a3 -# User Jorg K -Bug 1204147 - Prevent content preferences being written when they shouldn't. r=roc - -diff --git a/editor/composer/nsEditorSpellCheck.cpp b/editor/composer/nsEditorSpellCheck.cpp ---- a/editor/composer/nsEditorSpellCheck.cpp -+++ b/editor/composer/nsEditorSpellCheck.cpp -@@ -648,16 +648,19 @@ nsEditorSpellCheck::CheckCurrentDictiona - } - - // If our preferred current dictionary has gone, pick another one. - nsTArray dictList; - rv = mSpellChecker->GetDictionaryList(&dictList); - NS_ENSURE_SUCCESS(rv, rv); - - if (dictList.Length() > 0) { -+ // Use RAII object to prevent content preferences being written during -+ // this call. -+ UpdateDictionaryHolder holder(this); - rv = SetCurrentDictionary(dictList[0]); - NS_ENSURE_SUCCESS(rv, rv); - } - - return NS_OK; - } - - NS_IMETHODIMP diff --git a/SOURCES/mozilla-1253216-disable-ion.patch b/SOURCES/mozilla-1253216-disable-ion.patch new file mode 100644 index 0000000..6de0720 --- /dev/null +++ b/SOURCES/mozilla-1253216-disable-ion.patch @@ -0,0 +1,12 @@ +diff -up firefox-45.0/firefox-45.0/js/src/jit/AtomicOperations.h.old firefox-45.0/firefox-45.0/js/src/jit/AtomicOperations.h +--- firefox-45.0/firefox-45.0/js/src/jit/AtomicOperations.h.old 2016-03-01 09:45:01.000000000 +0100 ++++ firefox-45.0/firefox-45.0/js/src/jit/AtomicOperations.h 2016-03-03 13:13:34.915015391 +0100 +@@ -305,7 +305,7 @@ AtomicOperations::isLockfree(int32_t siz + || defined(__ppc__) || defined(__PPC__) + # include "jit/none/AtomicOperations-ppc.h" + #elif defined(JS_CODEGEN_NONE) +-# include "jit/none/AtomicOperations-none.h" ++# include "jit/none/AtomicOperations-ppc.h" + #elif defined(JS_CODEGEN_X86) || defined(JS_CODEGEN_X64) + # include "jit/x86-shared/AtomicOperations-x86-shared.h" + #else diff --git a/SOURCES/mozilla-1266366-branch64.patch b/SOURCES/mozilla-1266366-branch64.patch new file mode 100644 index 0000000..590f745 --- /dev/null +++ b/SOURCES/mozilla-1266366-branch64.patch @@ -0,0 +1,29 @@ +# HG changeset patch +# User Nicolas B. Pierron + +Bug 1266366 - Add branch64 functions to the none-backend MacroAssembler. r= + +diff --git a/js/src/jit/none/MacroAssembler-none.h b/js/src/jit/none/MacroAssembler-none.h +index 512ae81..4441d8d 100644 +--- a/js/src/jit/none/MacroAssembler-none.h ++++ b/js/src/jit/none/MacroAssembler-none.h +@@ -254,16 +254,18 @@ class MacroAssemblerNone : public Assembler + template void branchSub32(Condition, T, S, Label*) { MOZ_CRASH(); } + template void branchPtr(Condition, T, S, Label*) { MOZ_CRASH(); } + template void branchTestPtr(Condition, T, S, Label*) { MOZ_CRASH(); } + template void branchDouble(DoubleCondition, T, S, Label*) { MOZ_CRASH(); } + template void branchFloat(DoubleCondition, T, S, Label*) { MOZ_CRASH(); } + template void branchPrivatePtr(Condition, T, S, Label*) { MOZ_CRASH(); } + template void decBranchPtr(Condition, T, S, Label*) { MOZ_CRASH(); } + template void branchTest64(Condition, T, T, S, Label*) { MOZ_CRASH(); } ++ template void branch64(Condition, T, S, Label*) { MOZ_CRASH(); } ++ template void branch64(Condition, T, T, S, Label*) { MOZ_CRASH(); } + template void mov(T, S) { MOZ_CRASH(); } + template void movq(T, S) { MOZ_CRASH(); } + template void movePtr(T, S) { MOZ_CRASH(); } + template void move32(T, S) { MOZ_CRASH(); } + template void moveFloat32(T, S) { MOZ_CRASH(); } + template void moveDouble(T, S) { MOZ_CRASH(); } + template void move64(T, S) { MOZ_CRASH(); } + template CodeOffset movWithPatch(T, Register) { MOZ_CRASH(); } + diff --git a/SOURCES/rhbz-1014858.patch b/SOURCES/rhbz-1014858.patch deleted file mode 100644 index c953b33..0000000 --- a/SOURCES/rhbz-1014858.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -up mozilla-release/toolkit/xre/nsAppRunner.cpp.old mozilla-release/toolkit/xre/nsAppRunner.cpp ---- mozilla-release/toolkit/xre/nsAppRunner.cpp.old 2014-11-26 03:17:40.000000000 +0100 -+++ mozilla-release/toolkit/xre/nsAppRunner.cpp 2015-01-05 14:23:05.977933308 +0100 -@@ -4168,10 +4168,8 @@ XREMain::XRE_main(int argc, char* argv[] - - #if defined(MOZ_WIDGET_GTK) - #if defined(MOZ_MEMORY) || defined(__FreeBSD__) || defined(__NetBSD__) -- // Disable the slice allocator, since jemalloc already uses similar layout -- // algorithms, and using a sub-allocator tends to increase fragmentation. -- // This must be done before g_thread_init() is called. -- g_slice_set_config(G_SLICE_CONFIG_ALWAYS_MALLOC, 1); -+ // rhbz#1014858 - enable slice allocator for child processes -+ unsetenv("G_SLICE"); - #endif - g_thread_init(nullptr); - #endif diff --git a/SPECS/firefox.spec b/SPECS/firefox.spec index 69aa7c3..5692847 100644 --- a/SPECS/firefox.spec +++ b/SPECS/firefox.spec @@ -1,133 +1,189 @@ -# Use system sqlite? +# FIXME: HAVE TO USE SYSTEM NSS IN FINAL RELEASE!!! +%define system_nss 1 +%global nspr_version 4.11.0 +%global nss_version 3.21.0 %define system_sqlite 0 +%define sqlite_version 3.8.4.2 %define system_ffi 1 - -# Use system nss/nspr? -%define system_nss 1 - -# Gstreamer 1.0 support +%define ffi_version 3.0.9 +%define use_bundled_yasm 1 +%define use_bundled_python 0 +%define python_version 2.7.8 +%define use_bundled_gcc 0 +%define gcc_version 4.8.2-16 %define enable_gstreamer 1 - -# Use system cairo? %define system_cairo 0 +%define cairo_version 1.10.2 +%define freetype_version 2.1.9 +%define system_jpeg 1 +%define system_gio 1 +%define system_hunspell 1 +%define system_libatomic 0 +%define use_baselinejit 1 +%define official_branding 1 -# Build as a debug package? %define debug_build 0 +# This is for local builds or builds in mock with --no-clean +# It skips building of gcc, binutils and yasm rpms when they exists, it just installs +# them and doesn't delete them to allow recycling them in next build. +# SHOULD ALWAYS BE 0 WHEN BUILDING IN BREW +%define do_not_clean_rpms 0 -# Do we build a final version? -%define official_branding 1 + +# Configure and override build options for various platforms and RHEL versions +# ============================================================================ + +# RHEL7 +%if 0%{?rhel} == 7 %ifarch s390x %define use_bundled_gcc 1 -%else -%define use_bundled_gcc 0 %endif -%define gcc_version 4.8.2-15 +%endif +# RHEL6 +%if 0%{?rhel} == 6 +%define use_bundled_python 1 +%define use_bundled_gcc 1 +%define use_bundled_yasm 1 +%define system_ffi 0 +%define enable_gstreamer 0 +%define use_bundled_binutils 1 +%endif -# Minimal required versions -%if %{?system_nss} -%global nspr_version 4.10.8-2 -%global nss_version 3.19.1-7 +# RHEL5 +%if 0%{?rhel} == 5 +%define use_bundled_python 1 +%define use_bundled_gcc 1 +%define use_bundled_yasm 1 +%define system_ffi 0 +%define enable_gstreamer 0 +%define use_bundled_binutils 1 +%define system_jpeg 0 +%define system_gio 0 +%define system_hunspell 0 +# ppc and ia64 no longer supported (rhbz#1214863, rhbz#1214865) +ExcludeArch: ppc ia64 +%define system_libatomic 1 +%endif + +# Require libatomic for ppc +%ifarch ppc +%define system_libatomic 1 %endif -%define cairo_version 1.10.2 -%define freetype_version 2.1.9 -%define ffi_version 3.0.9 -%global libvpx_version 1.3.0 +# ============================================================================ + +# Avoid patch failures %define _default_patch_fuzz 2 -# Bookmark variables + %define default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html %define firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\} - %define mozappdir %{_libdir}/%{name} +%define build_langpacks 1 %define langpackdir %{mozappdir}/langpacks - %if %{?system_sqlite} -%define sqlite_version 3.8.4.2 # The actual sqlite version (see #480989): %global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536) %endif -%define official_branding 1 -%define build_langpacks 1 - -%if %{official_branding} -%define tarballdir mozilla-esr38 -%define ext_version esr -%endif - Summary: Mozilla Firefox Web browser Name: firefox -Version: 38.7.0 -Release: 1%{?prever}%{?dist} +Version: 45.1.0 +Release: 1%{?dist} URL: http://www.mozilla.org/projects/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ Group: Applications/Internet -# From ftp://ftp.mozilla.org/pub/firefox/releases/%{version}%{?pretag}/source -Source0: firefox-%{version}%{?prever}%{?ext_version}.source.tar.bz2 +%define ext_version esr +%define tarballdir firefox-%{version}%{?ext_version} + +# From ftp://archive.mozilla.org/pub/firefox/releases/%{version}%{?ext_version}/source +Source0: firefox-%{version}%{?ext_version}.source.tar.xz %if %{build_langpacks} -Source1: firefox-langpacks-%{version}%{?ext_version}-20160303.tar.bz2 +Source1: firefox-langpacks-%{version}%{?ext_version}-20160421.tar.xz %endif Source10: firefox-mozconfig -Source11: firefox-mozconfig-branded -Source12: firefox-centos-default-prefs.js +Source12: firefox-redhat-default-prefs.js Source20: firefox.desktop -Source21: firefox.sh.in +Source500: firefox.sh.in.rhel5 +Source600: firefox.sh.in.rhel6 +Source700: firefox.sh.in.rhel7 Source23: firefox.1 Source24: mozilla-api-key Source100: find-external-requires -Source300: gcc48-%{gcc_version}.el6.src.rpm +Source200: https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz +Source300: gcc48-%{gcc_version}.el5.src.rpm +Source301: yasm-1.2.0-3.el5.src.rpm +Source302: devtoolset-2-binutils-2.23.52.0.1-10.el5.src.rpm +# RHEL5 bookmarks +Source501: firefox-redhat-default-bookmarks.html # Build patches Patch0: firefox-install-dir.patch Patch5: xulrunner-24.0-jemalloc-ppc.patch Patch6: webrtc-arch-cpu.patch -Patch7: build-no-format.patch Patch8: firefox-ppc64le.patch -Patch9: firefox-debug.patch -Patch10: firefox-nss-3.19.1.patch -Patch11: build-nspr-prbool.patch - -# RPM specific patches -Patch101: firefox-default.patch -Patch102: firefox-enable-addons.patch -Patch103: rhbz-966424.patch -Patch106: firefox-enable-plugins.patch -Patch108: rhbz-1014858.patch -# Fix Skia Neon stuff on AArch64 -Patch109: aarch64-fix-skia.patch - +Patch16: mozilla-1253216-disable-ion.patch +Patch17: build-nss.patch +Patch18: mozilla-1266366-branch64.patch + +# RHEL patches +Patch101: firefox-default.patch +Patch102: firefox-enable-addons.patch +Patch103: rhbz-966424.patch +Patch106: firefox-enable-plugins.patch +Patch109: aarch64-fix-skia.patch +Patch110: mozilla-1170092-etc-conf.patch # Upstream patches -Patch200: firefox-duckduckgo.patch Patch201: mozilla-1005535.patch +# Kaie's patch, we'll most likely need this one Patch202: mozilla-1152515.patch -Patch203: mozilla-1204147.patch - - -%if %{official_branding} -# Required by Mozilla Corporation -%else -# Not yet approved by Mozillla Corporation - -%endif +# RHEL5 patches +Patch500: build-el5-build-id.patch +Patch501: build-el5-sandbox.patch +Patch502: build-el5-gtk2-2.10.patch +Patch503: build-el5-xlib-header.patch +Patch504: build-el5-rt-tgsigqueueinfo.patch +Patch505: build-el5-rapl.patch +Patch506: build-el5-fontconfig.patch +Patch507: build-el5-stdint.patch +Patch508: build-el5-nss.patch # --------------------------------------------------- BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -BuildRequires: desktop-file-utils +BuildRequires: desktop-file-utils BuildRequires: mesa-libGL-devel -BuildRequires: system-bookmarks -Requires: redhat-indexhtml - +BuildRequires: zip +BuildRequires: bzip2-devel +BuildRequires: zlib-devel +BuildRequires: libIDL-devel +BuildRequires: gtk2-devel +BuildRequires: gnome-vfs2-devel +BuildRequires: libgnome-devel +BuildRequires: libgnomeui-devel +BuildRequires: krb5-devel +BuildRequires: pango-devel +BuildRequires: freetype-devel >= %{freetype_version} +BuildRequires: libXt-devel +BuildRequires: libXrender-devel +BuildRequires: startup-notification-devel +BuildRequires: alsa-lib-devel +BuildRequires: libnotify-devel +BuildRequires: autoconf213 +BuildRequires: mesa-libGL-devel +BuildRequires: autoconf213 +BuildRequires: xz +%if ! %{use_bundled_yasm}0 +BuildRequires: yasm +%endif %if %{?system_sqlite} BuildRequires: sqlite-devel >= %{sqlite_version} Requires: sqlite >= %{sqlite_build_version} %endif - %if %{?system_nss} BuildRequires: nspr-devel >= %{nspr_version} BuildRequires: nss-devel >= %{nss_version} @@ -145,45 +201,62 @@ Requires: sqlite >= %{sqlite_build_version} BuildRequires: libffi-devel >= %{ffi_version} Requires: libffi >= %{ffi_version} %endif -BuildRequires: libvpx-devel >= %{libvpx_version} -Requires: libvpx >= %{libvpx_version} %if %{?enable_gstreamer} BuildRequires: gstreamer1-devel BuildRequires: gstreamer1-plugins-base-devel %endif -BuildRequires: hunspell-devel BuildRequires: libpng-devel +%if %{?system_jpeg} BuildRequires: libjpeg-devel -BuildRequires: zip -BuildRequires: bzip2-devel -BuildRequires: zlib-devel -BuildRequires: libIDL-devel -BuildRequires: gtk2-devel -BuildRequires: gnome-vfs2-devel -BuildRequires: libgnome-devel -BuildRequires: libgnomeui-devel -BuildRequires: krb5-devel -BuildRequires: pango-devel -BuildRequires: freetype-devel >= %{freetype_version} -BuildRequires: libXt-devel -BuildRequires: libXrender-devel -BuildRequires: startup-notification-devel -BuildRequires: alsa-lib-devel -BuildRequires: libnotify-devel -BuildRequires: autoconf213 -BuildRequires: mesa-libGL-devel +%endif +%if %{?system_hunspell} +BuildRequires: hunspell-devel +%endif +%if %{system_libatomic} +BuildRequires: libatomic +Requires: libatomic +%endif + +# RHEL7 requires +%if 0%{?rhel} == 7 +Requires: redhat-indexhtml BuildRequires: pulseaudio-libs-devel +BuildRequires: system-bookmarks +Requires: mozilla-filesystem +Requires: liberation-fonts-common +Requires: liberation-sans-fonts +%endif +# RHEL6 requires +%if 0%{?rhel} == 6 +BuildRequires: desktop-file-utils +BuildRequires: system-bookmarks +Requires: system-bookmarks +Requires: redhat-indexhtml +Requires: mozilla-filesystem +Requires: gtk2 >= 2.24 +BuildRequires: pulseaudio-libs-devel +BuildRequires: system-bookmarks Requires: mozilla-filesystem Requires: liberation-fonts-common Requires: liberation-sans-fonts +%endif + +# RHEL5 requires +%if 0%{rhel} == 5 +BuildRequires: libXcomposite-devel +BuildRequires: libXdamage-devel +BuildRequires: xorg-x11-proto-devel +%endif -BuildRequires: autoconf213 Obsoletes: mozilla <= 37:1.7.13 -Obsoletes: firefox < 24.1.0 -Conflicts: firefox < 24.1.0 +Obsoletes: firefox < 38.0 +Conflicts: firefox < 38.0 Provides: webclient +%if %{use_bundled_python} +BuildRequires: openssl-devel +%endif # GCC 4.8 BuildRequires # ================================================================================== %if %{use_bundled_gcc} @@ -296,7 +369,9 @@ BuildRequires: libmpc-devel >= 0.8.1 %endif # bundled gcc BuildRequires # ================================================================================== - +# Override internal dependency generator to avoid showing libraries provided by this package +# in dependencies: +AutoProv: 0 %define _use_internal_dependency_generator 0 %define __find_requires %{SOURCE100} @@ -315,167 +390,307 @@ cd %{tarballdir} %patch0 -p1 -b .orig %patch5 -p2 -b .jemalloc-ppc.patch %patch6 -p1 -b .webrtc-arch-cpu -%patch7 -p1 -b .no-format %patch8 -p2 -b .ppc64le -%if %{?debug_build} -%patch9 -p1 -b .debug -%endif -%patch10 -p1 -b .nss-3.19.1 -%patch11 -p1 -b .nspr-prbool +%patch16 -p2 -b .moz-1253216-disable-ion +%patch17 -p1 -b .build-nss +%patch18 -p1 -b .branch64 # RPM specific patches %patch101 -p1 -b .default %patch102 -p1 -b .addons %patch103 -p1 -b .rhbz-966424 %patch106 -p2 -b .plugins -%patch108 -p1 -b .rhbz-1014858 %patch109 -p1 -b .aarch64 +%patch110 -p1 -b .moz-1170092-etc-conf -# For branding specific patches. -%patch200 -p1 -b .duckduckgo +# Upstream patches %patch201 -p1 -b .mozbz-1005535 +# FIXME: will require this?: by kai %patch202 -p1 -b .mozbz-1152515 -%patch203 -p1 -b .mozilla-1204147 - -# Upstream patches -%if %{official_branding} -# Required by Mozilla Corporation - -%else -# Not yet approved by Mozilla Corporation +# RHEL5 only patches +%if %{?rhel} == 5 +%patch500 -p1 -b .gnu-build-id +%patch501 -p1 -b .build-sandbox +%patch502 -p1 -b .build-gtk2 +%patch503 -p1 -b .build-xlib-swap +%patch504 -p1 -b .build-rt-tgsigqueueinfo +%patch505 -p1 -b .build-el5-rapl +%patch506 -p1 -b .build-el5-fontconfig +%patch507 -p1 -b .build-el5-stdint +%patch508 -p1 -b .build-el5-nss %endif - %{__rm} -f .mozconfig %{__cp} %{SOURCE10} .mozconfig +%{__cp} %{SOURCE24} mozilla-api-key + +function add_to_mozconfig() { + mozconfig_entry=$1 + echo "ac_add_options --$1" >> .mozconfig +} + +# Modify mozconfig file %if %{official_branding} -%{__cat} %{SOURCE11} >> .mozconfig + add_to_mozconfig "enable-official-branding" %endif -%{__cp} %{SOURCE24} mozilla-api-key %if %{?system_sqlite} -echo "ac_add_options --enable-system-sqlite" >> .mozconfig + add_to_mozconfig "enable-system-sqlite" %else -echo "ac_add_options --disable-system-sqlite" >> .mozconfig + add_to_mozconfig "disable-system-sqlite" %endif -echo "ac_add_options --with-system-libvpx" >> .mozconfig - %if %{?system_cairo} -echo "ac_add_options --enable-system-cairo" >> .mozconfig + add_to_mozconfig "enable-system-cairo" %else -echo "ac_add_options --disable-system-cairo" >> .mozconfig + add_to_mozconfig "disable-system-cairo" %endif %if %{?system_ffi} -echo "ac_add_options --enable-system-ffi" >> .mozconfig + add_to_mozconfig "enable-system-ffi" %endif %if %{?system_nss} -echo "ac_add_options --with-system-nspr" >> .mozconfig -echo "ac_add_options --with-system-nss" >> .mozconfig + add_to_mozconfig "with-system-nspr" + add_to_mozconfig "with-system-nss" %else -echo "ac_add_options --without-system-nspr" >> .mozconfig -echo "ac_add_options --without-system-nss" >> .mozconfig + add_to_mozconfig "without-system-nspr" + add_to_mozconfig "without-system-nss" %endif %if %{?enable_gstreamer} -echo "ac_add_options --enable-gstreamer=1.0" >> .mozconfig + add_to_mozconfig "enable-gstreamer=1.0" %else -echo "ac_add_options --disable-gstreamer" >> .mozconfig + add_to_mozconfig "disable-gstreamer" %endif -%ifnarch %{ix86} x86_64 -echo "ac_add_options --disable-methodjit" >> .mozconfig -echo "ac_add_options --disable-monoic" >> .mozconfig -echo "ac_add_options --disable-polyic" >> .mozconfig -echo "ac_add_options --disable-tracejit" >> .mozconfig +%if %{?system_jpeg} + add_to_mozconfig "with-system-jpeg" +%else + add_to_mozconfig "without-system-jpeg" +%endif +%if %{?system_hunspell} + add_to_mozconfig "enable-system-hunspell" %endif # RHEL 7 mozconfig changes: -echo "ac_add_options --enable-system-hunspell" >> .mozconfig -echo "ac_add_options --enable-libnotify" >> .mozconfig -echo "ac_add_options --enable-startup-notification" >> .mozconfig -echo "ac_add_options --enable-jemalloc" >> .mozconfig +%if 0%{rhel} >= 6 + add_to_mozconfig "enable-libnotify" + add_to_mozconfig "enable-startup-notification" + add_to_mozconfig "enable-jemalloc" +%endif + +# RHEL 6 +%if 0%{rhel} == 6 + # Disable dbus, because we're unable to build with its support in brew + add_to_mozconfig "disable-dbus" +%endif + +%if 0%{rhel} == 5 + add_to_mozconfig "disable-pulseaudio" +%endif + +%ifarch aarch64 + add_to_mozconfig "disable-ion" +%endif + +%if %{system_gio} + add_to_mozconfig "enable-gio" + #add_to_mozconfig "disable-gnomevfs" +%else + # TODO: gnomevfs for RHEL5! + add_to_mozconfig "disable-gio" + #add_to_mozconfig "enable-gnomevfs" +%endif # Debug build flags %if %{?debug_build} -echo "ac_add_options --enable-debug" >> .mozconfig -echo "ac_add_options --disable-optimize" >> .mozconfig + add_to_mozconfig "enable-debug" + add_to_mozconfig "disable-optimize" %else -echo "ac_add_options --disable-debug" >> .mozconfig -echo "ac_add_options --enable-optimize" >> .mozconfig + add_to_mozconfig "disable-debug" + add_to_mozconfig "enable-optimize" +%endif + +#FIXME RTTI?? RHEL5/6 +# ac_add_options --enable-cpp-rtti +# RHEL7: ac_add_options --with-system-bz2 +# RHEL5: never been there, but is it usable --enable-gnomeui ???? + +%if %{use_bundled_python} + # Prepare Python 2.7 sources + tar xf %{SOURCE200} %endif #--------------------------------------------------------------------- %build + +function build_bundled_package() { + PACKAGE_RPM=$1 + PACKAGE_FILES=$2 + PACKAGE_SOURCE=$3 + PACKAGE_DIR="%{_topdir}/RPMS" + + PACKAGE_ALREADY_BUILD=0 + %if %{do_not_clean_rpms} + if ls $PACKAGE_DIR/$PACKAGE_RPM; then + PACKAGE_ALREADY_BUILD=1 + fi + if ls $PACKAGE_DIR/%{_arch}/$PACKAGE_RPM; then + PACKAGE_ALREADY_BUILD=1 + fi + %endif + if [ $PACKAGE_ALREADY_BUILD == 0 ]; then + echo "Rebuilding $PACKAGE_RPM from $PACKAGE_SOURCE"; echo "===============================" + rpmbuild --nodeps --rebuild $PACKAGE_SOURCE + fi + + if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then + # Hack for tps tests + ARCH_STR=%{_arch} + %ifarch i386 i686 + ARCH_STR="i?86" + %endif + PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR" + fi + pushd $PACKAGE_DIR + echo "Installing $PACKAGE_DIR/$PACKAGE_RPM"; echo "===============================" + rpm2cpio $PACKAGE_DIR/$PACKAGE_RPM | cpio -iduv + # Clean rpms to avoid including them to package + %if ! %{do_not_clean_rpms}0 + rm -f $PACKAGE_FILES + %endif + + PATH=$PACKAGE_DIR/usr/bin:$PATH + export PATH + LD_LIBRARY_PATH=$PACKAGE_DIR/usr/%{_lib} + export LD_LIBRARY_PATH + popd +} + +# Build and install local yasm if needed +# ====================================== +%if %{use_bundled_yasm} + build_bundled_package 'yasm-1*.rpm' 'yasm-*.rpm' '%{SOURCE301}' +%endif + +# Install local binutils if needed +# ====================================== +%if 0%{?use_bundled_binutils} + build_bundled_package 'binutils-2*.rpm' 'binutils*.rpm' '%{SOURCE302}' +%endif + +# Install local GCC if needed +# ====================================== %if %{use_bundled_gcc} -GCC_FILE="gcc48-%{gcc_version}*.rpm" -GCC_PATH="%{_rpmdir}" + %if %{rhel} == 5 + %ifarch ppc64 + export STRIP="/bin/true" + %endif + %endif + build_bundled_package 'gcc48-%{gcc_version}*.rpm' 'gcc48-*.rpm' '%{SOURCE300}' + %if %{rhel} == 5 + %ifarch ppc64 + unset STRIP + %endif + %endif + export CXX=g++ +%endif + + +# Install local Python if needed +# ====================================== +%if %{use_bundled_python} + echo "Rebuilding Python"; echo "===============================" + pushd %{tarballdir} + + # Build Python 2.7 and set environment + BUILD_DIR=`pwd`/python_build + cd Python-%{python_version} + ./configure --prefix=$BUILD_DIR --exec-prefix=$BUILD_DIR + make + make install + cd - + + PATH=$BUILD_DIR/bin:$PATH + export PATH + popd +%endif # bundled Python -rpmbuild --nodeps --rebuild %{SOURCE300} -cd %{_rpmdir} -if [ ! -f $GCC_PATH/$GCC_FILE ]; then - GCC_PATH="$GCC_PATH/%{_arch}" -fi -rpm2cpio $GCC_PATH/$GCC_FILE | cpio -iduv -# Clean gcc48 rpms to avoid including them to package -rm -f gcc48-*.rpm -cd - -PATH=%{_rpmdir}/usr/bin:$PATH -export PATH -export CXX=g++ -%endif # bundled gcc %if %{?system_sqlite} -# Do not proceed with build if the sqlite require would be broken: -# make sure the minimum requirement is non-empty, ... -sqlite_version=$(expr "%{sqlite_version}" : '\([0-9]*\.\)[0-9]*\.') || exit 1 -# ... and that major number of the computed build-time version matches: -case "%{sqlite_build_version}" in - "$sqlite_version"*) ;; - *) exit 1 ;; -esac + # Do not proceed with build if the sqlite require would be broken: + # make sure the minimum requirement is non-empty, ... + sqlite_version=$(expr "%{sqlite_version}" : '\([0-9]*\.\)[0-9]*\.') || exit 1 + # ... and that major number of the computed build-time version matches: + case "%{sqlite_build_version}" in + "$sqlite_version"*) ;; + *) exit 1 ;; + esac %endif +echo "Building Firefox"; echo "===============================" cd %{tarballdir} -# Mozilla builds with -Wall with exception of a few warnings which show up -# everywhere in the code; so, don't override that. -MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS -fpermissive" | %{__sed} -e 's/-Wall//') -%if %{?debug_build} -MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') -%endif -# -Werror=format-security causes build failures when -Wno-format is explicitly given -# for some sources -MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security" +# 1. Mozilla builds with -Wall with exception of a few warnings which show up +# everywhere in the code; so, don't override that. +# 2. -Werror=format-security causes build failures when -Wno-format is explicitly given +# for some sources +MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS -fpermissive -Wformat-security -Wformat -Werror=format-security" | %{__sed} -e 's/-Wall//') +# TODO check if necessery %ifarch s390 -MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') %endif + +# Avoid failing builds because OOM killer on some arches %ifarch s390 %{arm} ppc -MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" +MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -Wl,--no-keep-memory -Wl,--reduce-memory-overheads" +%endif + +%if %{rhel} == 6 + %if %{system_libatomic} + MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -l:libatomic.so.1" + %endif +%endif + +%if %{rhel} == 5 + %if %{system_libatomic} + # Force to use ld.bfd linker instead of ld.gold + MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -fuse-ld=bfd -l:libatomic.so.1" + %endif + %ifarch i386 i686 + MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-march=i386/-march=i586/') + %endif +%endif + +%if %{?debug_build} + MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//') %endif export CFLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-fpermissive//') export CXXFLAGS=$MOZ_OPT_FLAGS -export LDFLAGS=$MOZ_LINK_FLAGS +export LDFLAGS="-Wl,--verbose $MOZ_LINK_FLAGS" export PREFIX='%{_prefix}' export LIBDIR='%{_libdir}' +# Hack for missing shell when building in brew on RHEL6 and RHEL5 +%if 0%{?rhel} <= 6 +export SHELL=/bin/sh +%endif + MOZ_SMP_FLAGS=-j1 -%ifnarch ppc ppc64 s390 s390x [ -z "$RPM_BUILD_NCPUS" ] && \ RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`" [ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2 [ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4 [ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8 -%endif MOZ_APP_DIR=%{_libdir}/%{name} + make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" #--------------------------------------------------------------------- @@ -484,29 +699,51 @@ make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" cd %{tarballdir} %{__rm} -rf $RPM_BUILD_ROOT +%if %{rhel} == 5 +# set up our default bookmarks +%{__cp} -p %{SOURCE501} objdir/dist/bin/browser/defaults/profile/bookmarks.html +%else # set up our default bookmarks %{__cp} -p %{default_bookmarks_file} objdir/dist/bin/browser/defaults/profile/bookmarks.html +%endif # Make sure locale works for langpacks %{__cat} > objdir/dist/bin/browser/defaults/preferences/firefox-l10n.js << EOF pref("general.useragent.locale", "chrome://global/locale/intl.properties"); EOF + DESTDIR=$RPM_BUILD_ROOT make -C objdir install %{__mkdir_p} $RPM_BUILD_ROOT{%{_libdir},%{_bindir},%{_datadir}/applications} +%if %{rhel} == 5 +desktop-file-install --vendor mozilla \ + --dir $RPM_BUILD_ROOT%{_datadir}/applications \ + --add-category WebBrowser \ + --add-category Network \ + %{SOURCE20} +%else desktop-file-install \ --dir $RPM_BUILD_ROOT%{_datadir}/applications \ --add-category WebBrowser \ --add-category Network \ %{SOURCE20} +%endif -# set up the firefox start script +# Set up the firefox start script, unfortunatelly it is different for each RHEL rm -rf $RPM_BUILD_ROOT%{_bindir}/firefox -cp %{SOURCE21} $RPM_BUILD_ROOT%{_bindir}/firefox +FIREFOX_SH_SOURCE=%{SOURCE700} +%if %{rhel} == 5 + FIREFOX_SH_SOURCE=%{SOURCE500} +%endif +%if %{rhel} == 6 + FIREFOX_SH_SOURCE=%{SOURCE600} +%endif +cp $FIREFOX_SH_SOURCE $RPM_BUILD_ROOT%{_bindir}/firefox %{__chmod} 755 $RPM_BUILD_ROOT%{_bindir}/firefox +# Installing man page %{__install} -p -D -m 644 %{SOURCE23} $RPM_BUILD_ROOT%{_mandir}/man1/firefox.1 %{__rm} -f $RPM_BUILD_ROOT/%{mozappdir}/firefox-config @@ -521,7 +758,7 @@ echo > ../%{name}.lang %if %{build_langpacks} # Extract langpacks, make any mods needed, repack the langpack, and install it. %{__mkdir_p} $RPM_BUILD_ROOT%{langpackdir} -%{__tar} xf %{SOURCE1} +%{__xz} -dc %{SOURCE1} | %{__tar} xf - for langpack in `ls firefox-langpacks/*.xpi`; do language=`basename $langpack .xpi` extensionID=langpack-$language@firefox.mozilla.org @@ -541,12 +778,12 @@ done # Install langpack workaround (see #707100, #821169) function create_default_langpack() { -language_long=$1 -language_short=$2 -cd $RPM_BUILD_ROOT%{langpackdir} -ln -s langpack-$language_long@firefox.mozilla.org.xpi langpack-$language_short@firefox.mozilla.org.xpi -cd - -echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@firefox.mozilla.org.xpi" >> ../%{name}.lang + language_long=$1 + language_short=$2 + cd $RPM_BUILD_ROOT%{langpackdir} + ln -s langpack-$language_long@firefox.mozilla.org.xpi langpack-$language_short@firefox.mozilla.org.xpi + cd - + echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@firefox.mozilla.org.xpi" >> ../%{name}.lang } # Table of fallbacks for each language @@ -573,6 +810,16 @@ ln -s %{mozappdir}/defaults/preferences $RPM_BUILD_ROOT/%{mozappdir}/browser/def # Install default ones %{__cp} %{SOURCE12} ${RPM_BUILD_ROOT}%{mozappdir}/defaults/preferences/all-redhat.js +# Modify preset preferences +%if %{use_baselinejit} + echo 'pref("javascript.options.baselinejit", true);' >> ${RPM_BUILD_ROOT}%{mozappdir}/defaults/preferences/all-redhat.js +%else + echo '/* Workaround for rhbz#1134876 */' >> ${RPM_BUILD_ROOT}%{mozappdir}/defaults/preferences/all-redhat.js + echo 'pref("javascript.options.baselinejit", false);' >> ${RPM_BUILD_ROOT}%{mozappdir}/defaults/preferences/all-redhat.js +%endif + +# System config dir +%{__mkdir_p} $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}/pref # System extensions %{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/mozilla/extensions/%{firefox_app_id} @@ -581,9 +828,15 @@ ln -s %{mozappdir}/defaults/preferences $RPM_BUILD_ROOT/%{mozappdir}/browser/def # Copy over the LICENSE %{__install} -p -c -m 644 LICENSE $RPM_BUILD_ROOT/%{mozappdir} -# Use the system hunspell dictionaries for RHEL6+ -%{__rm} -rf ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries -ln -s %{_datadir}/myspell ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries +# Use the system dictionaries for system hunspell +%if %{system_hunspell} + %{__rm} -rf ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries + ln -s %{_datadir}/myspell ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries +%endif + +# Clean firefox-devel debuginfo +rm -rf %{_prefix}/lib/debug/lib/%{name}-devel-* +rm -rf %{_prefix}/lib/debug/lib64/%{name}-devel-* #--------------------------------------------------------------------- @@ -606,6 +859,14 @@ if [ $1 -eq 0 ] ; then fi update-desktop-database &> /dev/null || : +%preun +# is it a final removal? +if [ $1 -eq 0 ]; then + %{__rm} -rf %{mozappdir}/components + %{__rm} -rf %{mozappdir}/extensions + %{__rm} -rf %{mozappdir}/plugins +fi + %posttrans gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : @@ -613,6 +874,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %defattr(-,root,root,-) %{_bindir}/firefox %doc %{_mandir}/man1/* +%dir %{_sysconfdir}/%{name}/* %dir %{_datadir}/mozilla/extensions/%{firefox_app_id} %dir %{_libdir}/mozilla/extensions/%{firefox_app_id} %{_datadir}/icons/hicolor/16x16/apps/firefox.png @@ -621,7 +883,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/icons/hicolor/24x24/apps/firefox.png %{_datadir}/icons/hicolor/256x256/apps/firefox.png %{_datadir}/icons/hicolor/32x32/apps/firefox.png +%if %{rhel} == 5 +%{_datadir}/applications/mozilla-%{name}.desktop +%else %{_datadir}/applications/%{name}.desktop +%endif %dir %{mozappdir} %doc %{mozappdir}/LICENSE %{mozappdir}/browser/chrome @@ -631,10 +897,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{mozappdir}/browser/components/*.manifest %attr(644, root, root) %{mozappdir}/browser/blocklist.xml %dir %{mozappdir}/browser/extensions -%{mozappdir}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd} +%{mozappdir}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi +%{mozappdir}/browser/features/loop@mozilla.org.xpi %dir %{mozappdir}/langpacks %{mozappdir}/browser/icons -%{mozappdir}/browser/searchplugins %{mozappdir}/browser/omni.ja %{mozappdir}/firefox %{mozappdir}/firefox-bin @@ -647,9 +913,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %dir %{mozappdir}/webapprt %{mozappdir}/webapprt/omni.ja %{mozappdir}/webapprt/webapprt.ini -%{mozappdir}/chrome.manifest -%{mozappdir}/components/*.so -%{mozappdir}/components/*.manifest %{mozappdir}/dictionaries %{mozappdir}/*.so %{mozappdir}/omni.ja @@ -661,26 +924,36 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %if !%{?system_nss} %{mozappdir}/*.chk %endif - -#we don't ship firefox-devel package %exclude %{_datadir}/idl/* %exclude %{_includedir}/* %exclude %{_libdir}/%{name}-devel-*/* +%if !%{?system_nss} +%{mozappdir}/libfreebl3.chk +%{mozappdir}/libnssdbm3.chk +%{mozappdir}/libsoftokn3.chk +%endif + #--------------------------------------------------------------------- %changelog -* Tue Mar 08 2016 CentOS Sources - 38.7.0-1.el7.centos -- CentOS default prefs +* Thu Apr 21 2016 Jan Horak - 45.1.0-1 +- Update to 45.1.0 ESR + +* Tue Apr 12 2016 Jan Horak - 45.0.2-1 +- Update to 45.0.2 ESR + +* Wed Apr 6 2016 Jan Horak - 45.0.1-1 +- Update to 45.0.1 ESR -* Thu Mar 3 2016 Jan Horak - 38.7.0-1 -- Update to 38.7.0 ESR +* Mon Apr 4 2016 Martin Stransky - 45.0-5 +- Fixed crashed after start (rhbz#1323744, rhbz#1323738) -* Thu Feb 11 2016 Martin Stransky - 38.6.1-1 -- Update to 38.6.1 ESR +* Mon Apr 4 2016 Jan Horak - 45.0-4 +- Added system-level location for configuring Firefox (rhbz#1206239) -* Thu Jan 21 2016 Jan Horak - 38.6.0-1 -- Update to 38.6.0 ESR +* Mon Mar 7 2016 Jan Horak - 45.0-3 +- Update to 45.0 ESR * Fri Dec 11 2015 Jan Horak - 38.5.0-3 - Update to 38.5.0 ESR