diff --git a/patches/ArmFixes.patch b/patches/ArmFixes.patch new file mode 100644 index 00000000..54ae1faa --- /dev/null +++ b/patches/ArmFixes.patch @@ -0,0 +1,148 @@ +diff --git a/modules/libgogi/pi_impl/mde_opfont.cpp b/modules/libgogi/pi_impl/mde_opfont.cpp +index 44efd58..fb19e89 100644 +--- a/modules/libgogi/pi_impl/mde_opfont.cpp ++++ b/modules/libgogi/pi_impl/mde_opfont.cpp +@@ -28,8 +28,8 @@ + # include "modules/libfreetype/include/freetype/ftoutln.h" + # else // FT_INTERNAL_FREETYPE + # include +-# include +-# include ++# include ++# include + # endif // FT_INTERNAL_FREETYPE + # endif // MDF_FREETYPE_SUPPORT && MDEFONT_MODULE + # ifdef MDF_AGFA_SUPPORT +diff --git a/modules/mdefont/mdf_freetype.cpp b/modules/mdefont/mdf_freetype.cpp +index 1708581..a6e7e4f 100644 +--- a/modules/mdefont/mdf_freetype.cpp ++++ b/modules/mdefont/mdf_freetype.cpp +@@ -23,10 +23,10 @@ + # include "modules/libfreetype/include/freetype/ftsnames.h" + #else // FT_INTERNAL_FREETYPE + # include +-# include +-# include +-# include +-# include ++# include ++# include ++# include ++# include + #endif // FT_INTERNAL_FREETYPE + + #include FT_FREETYPE_H +@@ -39,7 +39,7 @@ + # ifdef FT_INTERNAL_FREETYPE + # include "modules/libfreetype/include/freetype/ftlcdfil.h" + # else // FT_INTERNAL_FREETYPE +-# include ++# include + # endif // FT_INTERNAL_FREETYPE + #endif // FT_USE_SMOOTH_LCD_RENDERING || FT_USE_SMOOTH_LCDV_RENDERING + +diff --git a/platforms/crashlog/src/crashlog_linux32.cpp b/platforms/crashlog/src/crashlog_linux32.cpp +index c171961..8a21f5c 100644 +--- a/platforms/crashlog/src/crashlog_linux32.cpp ++++ b/platforms/crashlog/src/crashlog_linux32.cpp +@@ -9,7 +9,7 @@ + + #include "core/pch.h" + +-#if defined(__linux__) && defined(i386) ++#if defined(__linux__) && (defined(i386) || defined(__arm__)) + + #include "platforms/crashlog/crashlog.h" + #include "platforms/crashlog/gpu_info.h" +@@ -352,6 +352,7 @@ bool GetGpuInfo(pid_t pid, GpuInfo * gpu_info, GpuInfo * ret_gpudata) + + void WriteCrashlog(pid_t pid, GpuInfo * gpu_info, char* log_filename, int log_filename_size, const char* location) + { ++#if !defined(__arm__) + int status; + UINT i; + const char *signame = NULL; +@@ -710,6 +711,7 @@ void WriteCrashlog(pid_t pid, GpuInfo * gpu_info, char* log_filename, int log_fi + + ptrace(PT_KILL, pid, 0, 0); + waitpid(pid, &status, 0); ++#endif + } + + #endif // defined(__linux__) && defined(i386) +diff --git a/platforms/quix/desktop_pi_impl/unix_opautoupdate.cpp b/platforms/quix/desktop_pi_impl/unix_opautoupdate.cpp +index 473c488..3ce03fd 100644 +--- a/platforms/quix/desktop_pi_impl/unix_opautoupdate.cpp ++++ b/platforms/quix/desktop_pi_impl/unix_opautoupdate.cpp +@@ -57,6 +57,8 @@ OP_STATUS UnixOpAutoUpdate::GetArchitecture(OpString& arch) + return arch.Set("sparc"); + #elif defined(__PPC__) + return arch.Set("ppc"); ++#elif defined(__arm__) ++ return arch.Set("arm"); + #else + #error "Fix me: unsupported architecture" + return OpStatus::ERR; +diff --git a/platforms/quix/module.build/gcc.conf.py b/platforms/quix/module.build/gcc.conf.py +index 1970335..4e027db 100644 +--- a/platforms/quix/module.build/gcc.conf.py ++++ b/platforms/quix/module.build/gcc.conf.py +@@ -3,7 +3,7 @@ class GCC(default.GCC): + + def codeFlags(self): + flags = super(GCC, self).codeFlags +- if config.targetPlatform.wordsize == 32: +- flags += ['-march=i686', '-mtune=generic'] ++# if config.targetPlatform.wordsize == 32: ++# flags += ['-march=i686', '-mtune=generic'] + # We stick with the default (-march=x86-64) for 64-bit + return flags +diff --git a/platforms/unix/base/common/unix_opsysteminfo.cpp b/platforms/unix/base/common/unix_opsysteminfo.cpp +index 522714b..7680f27 100644 +--- a/platforms/unix/base/common/unix_opsysteminfo.cpp ++++ b/platforms/unix/base/common/unix_opsysteminfo.cpp +@@ -791,43 +791,7 @@ uni_char* UnixOpSystemInfo::SerializeFileName(const uni_char *path) + #ifdef OPSYSTEMINFO_CPU_FEATURES + unsigned int UnixOpSystemInfo::GetCPUFeatures() + { +- int ecx = 0, edx = 0; +- unsigned result = 0; +- const int SSE2_MASK = 0x4000000; // sse2 capability is written on the 27th bit of edx +- const int SSE3_MASK = 1; // // sse3 capability is written on the first bit of ecx +- const int SSSE3_MASK = 0x200; // // ssse3 capability is written on the 10th bit of ecx +- +- +- asm ("mov $1, %%eax\n\t" +-#ifndef SIXTY_FOUR_BIT +- "pushl %%ebx\n\t" +-#endif +- "cpuid\n\t" +-#ifndef SIXTY_FOUR_BIT +- "popl %%ebx\n\t" +-#endif +- : "=c"(ecx), "=d"(edx) +- : +- :"%eax" +-#ifdef SIXTY_FOUR_BIT +- , "%ebx" +-#endif +-); +- +- if (ecx & SSE3_MASK) +- { +- result |= CPU_FEATURES_IA32_SSE3; +- } +- if (ecx & SSSE3_MASK) +- { +- result |= CPU_FEATURES_IA32_SSSE3; +- } +- if (edx & SSE2_MASK) +- { +- result |= CPU_FEATURES_IA32_SSE2; +- } +- +- return result; ++ return CPU_FEATURES_NONE; + } + #endif // OPSYSTEMINFO_CPU_FEATURES + diff --git a/patches/DisableClickToActivate.patch b/patches/DisableClickToActivate.patch new file mode 100644 index 00000000..bd78a7ba --- /dev/null +++ b/patches/DisableClickToActivate.patch @@ -0,0 +1,33 @@ +diff --git a/modules/hardcore/features/features.txt b/modules/hardcore/features/features.txt +index 8cd5be4..a87c991 100644 +--- a/modules/hardcore/features/features.txt ++++ b/modules/hardcore/features/features.txt +@@ -3200,8 +3200,8 @@ FEATURE_MANUAL_PLUGIN_ACTIVATION pettern + Defines : MANUAL_PLUGIN_ACTIVATION + Depends on : FEATURE_PLUGIN + Required by : nothing +- Enabled for : desktop, smartphone, tv +- Disabled for: minimal, mini ++ Enabled for : smartphone, tv ++ Disabled for: desktop, minimal, mini + + FEATURE_TRUST_RATING jonnyr + +diff --git a/modules/layout/content/content.cpp b/modules/layout/content/content.cpp +index 829e6b2..3f004cb 100644 +--- a/modules/layout/content/content.cpp ++++ b/modules/layout/content/content.cpp +@@ -8935,8 +8935,11 @@ EmbedContent::Paint(LayoutProperties* layout_props, FramesDocument* doc, VisualD + #ifdef USE_PLUGIN_EVENT_API + # ifdef SUPPORT_VISUAL_ADBLOCK + if (OpPluginWindow* plugin_window = opns4plugin->GetPluginWindow()) +- plugin_window->BlockMouseInput(doc->GetWindow()->GetContentBlockEditMode() || +- !html_element->GetPluginExternal() && !html_element->GetPluginActivated()); ++ plugin_window->BlockMouseInput(doc->GetWindow()->GetContentBlockEditMode() ++#ifdef MANUAL_PLUGIN_ACTIVATION ++ || (!html_element->GetPluginExternal() && !html_element->GetPluginActivated()) ++#endif ++ ); + # endif // SUPPORT_VISUAL_ADBLOCK + + OpRect plugin_rect((INT32)x, (INT32)y, (INT32)width, (INT32)height); diff --git a/patches/FalseNullFix.patch b/patches/FalseNullFix.patch new file mode 100644 index 00000000..9710f5e3 --- /dev/null +++ b/patches/FalseNullFix.patch @@ -0,0 +1,22 @@ +diff --git a/modules/spellchecker/hunspell_3p/src/hunspell/affentry.h b/modules/spellchecker/hunspell_3p/src/hunspell/affentry.h +index 53fdd25..b212dbc 100644 +--- a/modules/spellchecker/hunspell_3p/src/hunspell/affentry.h ++++ b/modules/spellchecker/hunspell_3p/src/hunspell/affentry.h +@@ -27,7 +27,7 @@ public: + struct hentry * checkword(const char * word, int len, char in_compound, + const FLAG needflag = FLAG_NULL); + +- struct hentry * check_twosfx(const char * word, int len, char in_compound, const FLAG needflag = NULL); ++ struct hentry * check_twosfx(const char * word, int len, char in_compound, const FLAG needflag = FLAG_NULL); + + #ifdef MORPHOLOGICAL_FUNCTIONS + char * check_morph(const char * word, int len, char in_compound, +@@ -92,7 +92,7 @@ public: + // const FLAG cclass = FLAG_NULL, const FLAG needflag = FLAG_NULL, char in_compound=IN_CPD_NOT); + const FLAG cclass = FLAG_NULL, const FLAG needflag = FLAG_NULL, const FLAG badflag = 0); + +- struct hentry * check_twosfx(const char * word, int len, int optflags, PfxEntry* ppfx, const FLAG needflag = NULL); ++ struct hentry * check_twosfx(const char * word, int len, int optflags, PfxEntry* ppfx, const FLAG needflag = FLAG_NULL); + + char * check_twosfx_morph(const char * word, int len, int optflags, + PfxEntry* ppfx, const FLAG needflag = FLAG_NULL); \ No newline at end of file diff --git a/patches/FixFreeType.patch b/patches/FixFreeType.patch new file mode 100644 index 00000000..c777064a --- /dev/null +++ b/patches/FixFreeType.patch @@ -0,0 +1,43 @@ +diff --git a/modules/libgogi/pi_impl/mde_opfont.cpp b/modules/libgogi/pi_impl/mde_opfont.cpp +index 44efd58..dcb4d40 100644 +--- a/modules/libgogi/pi_impl/mde_opfont.cpp ++++ b/modules/libgogi/pi_impl/mde_opfont.cpp +@@ -28,8 +28,8 @@ + # include "modules/libfreetype/include/freetype/ftoutln.h" + # else // FT_INTERNAL_FREETYPE + # include +-# include +-# include ++# include FT_GLYPH_H ++# include FT_OUTLINE_H + # endif // FT_INTERNAL_FREETYPE + # endif // MDF_FREETYPE_SUPPORT && MDEFONT_MODULE + # ifdef MDF_AGFA_SUPPORT +diff --git a/modules/mdefont/mdf_freetype.cpp b/modules/mdefont/mdf_freetype.cpp +index 1708581..6228eca 100644 +--- a/modules/mdefont/mdf_freetype.cpp ++++ b/modules/mdefont/mdf_freetype.cpp +@@ -23,10 +23,10 @@ + # include "modules/libfreetype/include/freetype/ftsnames.h" + #else // FT_INTERNAL_FREETYPE + # include +-# include +-# include +-# include +-# include ++# include FT_TRUETYPE_TABLES_H ++# include FT_OUTLINE_H ++# include FT_TRUETYPE_IDS_H ++# include FT_SFNT_NAMES_H + #endif // FT_INTERNAL_FREETYPE + + #include FT_FREETYPE_H +@@ -39,7 +39,7 @@ + # ifdef FT_INTERNAL_FREETYPE + # include "modules/libfreetype/include/freetype/ftlcdfil.h" + # else // FT_INTERNAL_FREETYPE +-# include ++# include FT_LCD_FILTER_H + # endif // FT_INTERNAL_FREETYPE + #endif // FT_USE_SMOOTH_LCD_RENDERING || FT_USE_SMOOTH_LCDV_RENDERING + diff --git a/patches/freebsd-11-gcc6.patch b/patches/freebsd-11-gcc6.patch new file mode 100644 index 00000000..cafdb67d --- /dev/null +++ b/patches/freebsd-11-gcc6.patch @@ -0,0 +1,66 @@ +diff --git a/platforms/unix/base/common/unix_camera.h b/platforms/unix/base/common/unix_camera.h +index 3b747450..4380efa2 100644 +--- a/platforms/unix/base/common/unix_camera.h ++++ b/platforms/unix/base/common/unix_camera.h +@@ -15,7 +15,15 @@ + #include "modules/img/image.h" + #include "platforms/posix/posix_selector.h" + ++#ifdef __FreeBSD__ ++typedef uint32_t __u32; ++typedef int32_t __s32; ++typedef uint8_t __u8; ++typedef uint16_t __u16; ++#include ++#else + #include ++#endif + + class OpBitmap; + class UnixOpCamera; +@@ -27,7 +35,7 @@ class UnixOpCameraManager + #endif // __FreeBSD__ + { + public: +-#ifndef __FreeBSD__ ++#ifndef __FreeBSD__ + static const int MAX_NL_MSG_LEN = 256; + static const int NETLINK_MONITOR_KERNEL_GROUP = 1; + #endif // __FreeBSD__ +diff --git a/platforms/flower/module.build/00-gcc.conf.py b/platforms/flower/module.build/00-gcc.conf.py +index ab24053a..d235fa70 100644 +--- a/platforms/flower/module.build/00-gcc.conf.py ++++ b/platforms/flower/module.build/00-gcc.conf.py +@@ -46,7 +46,7 @@ class GCC(object): + def codeFlags(self, lang=None, pgo=None): + flags = ['-fshort-wchar', '-fsigned-char'] + if lang == 'c++': +- flags += ['-fno-threadsafe-statics', '-fno-exceptions', '-fno-rtti'] ++ flags += ['-fno-threadsafe-statics', '-fno-exceptions', '-fno-rtti', '-fno-delete-null-pointer-checks'] + if config.buildSharedLibrary: + flags += ['-fpic'] + if pgo: +@@ -73,7 +73,7 @@ class GCC(object): + if config.optimize: + flags += ['-ffunction-sections', '-fdata-sections'] + if self.role == 'linker': +- flags += ['-Wl,--gc-sections'] ++ flags += ['-Wl,--gc-sections,-rpath=/usr/local/lib/gcc6'] + if config.optimizeSize: + flags += ['-Os', '-ffast-math', '-fno-unsafe-math-optimizations'] + else: +diff --git a/platforms/flower/module.build/compile.flow.py b/platforms/flower/module.build/compile.flow.py +index f654ac3c..e833252c 100644 +--- a/platforms/flower/module.build/compile.flow.py ++++ b/platforms/flower/module.build/compile.flow.py +@@ -108,8 +108,8 @@ def compileSource(self, source, binary, pgo, lang, stem, pch): + compiler = config.targetPlatform.compiler + self['target'] = compiler.target + deps = [] +- if pch != 'nopch' and compiler.supportsPrecompiledHeaders: +- deps.append(precompiledHeader(stem=pch, binary=binary, lang=lang)) ++# if pch != 'nopch' and compiler.supportsPrecompiledHeaders: ++# deps.append(precompiledHeader(stem=pch, binary=binary, lang=lang)) + if pgo == 'use': + deps.append(PGODataFile(source=source, binary=binary)) + yield [sourceSetup()] + deps