Hello community, here is the log from the commit of package seamonkey for openSUSE:Factory checked in at 2012-02-14 19:08:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/seamonkey (Old) and /work/SRC/openSUSE:Factory/.seamonkey.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "seamonkey", Maintainer is "gnome-maintainers@suse.de" Changes: -------- --- /work/SRC/openSUSE:Factory/seamonkey/seamonkey.changes 2012-02-02 18:00:40.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.seamonkey.new/seamonkey.changes 2012-02-14 19:08:12.000000000 +0100 @@ -1,0 +2,10 @@ +Thu Feb 9 12:36:02 UTC 2012 - wr@rosenauer.org + +- update to Seamonkey 2.7.1 (bnc#746616) + * MFSA 2012-10/CVE-2012-0452 (bmo#724284) + use after free in nsXBLDocumentInfo::ReadPrototypeBindings +- Use YARR interpreter instead of PCRE on platforms where YARR JIT + is not supported, since PCRE doesnt build (bmo#691898) +- fix ppc64 build (bmo#703534) + +------------------------------------------------------------------- Old: ---- l10n-2.7.tar.bz2 seamonkey-2.7-source.tar.bz2 New: ---- l10n-2.7.1.tar.bz2 mozilla-bmo703534.patch mozilla-yarr-pcre.patch seamonkey-2.7.1-source.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ seamonkey.spec ++++++ --- /var/tmp/diff_new_pack.jXy0yS/_old 2012-02-14 19:08:19.000000000 +0100 +++ /var/tmp/diff_new_pack.jXy0yS/_new 2012-02-14 19:08:19.000000000 +0100 @@ -16,6 +16,7 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + Name: seamonkey BuildRequires: Mesa-devel BuildRequires: autoconf213 @@ -36,9 +37,9 @@ BuildRequires: yasm BuildRequires: zip Provides: web_browser -Version: 2.7 +Version: 2.7.1 Release: 0 -%define releasedate 2012013000 +%define releasedate 2012020800 Summary: The successor of the Mozilla Application Suite License: MPL-1.1 or GPL-2.0+ or LGPL-2.1+ Group: Productivity/Networking/Web/Browsers @@ -60,6 +61,8 @@ Patch5: mozilla-language.patch Patch8: mozilla-ntlm-full-path.patch Patch10: mozilla-ua-locale.patch +Patch11: mozilla-bmo703534.patch +Patch12: mozilla-yarr-pcre.patch Patch20: seamonkey-ua-locale.patch Patch21: seamonkey-shared-nss-db.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -156,6 +159,8 @@ %patch5 -p1 %patch8 -p1 %patch10 -p1 +%patch11 -p1 +%patch12 -p1 popd # comm patches %patch20 -p1 ++++++ compare-locales.tar.bz2 ++++++ ++++++ create-tar.sh ++++++ --- /var/tmp/diff_new_pack.jXy0yS/_old 2012-02-14 19:08:20.000000000 +0100 +++ /var/tmp/diff_new_pack.jXy0yS/_new 2012-02-14 19:08:20.000000000 +0100 @@ -1,8 +1,8 @@ #!/bin/bash BRANCH="releases/comm-release" -RELEASE_TAG="SEAMONKEY_2_7_RELEASE" -VERSION="2.7" +RELEASE_TAG="SEAMONKEY_2_7_1_RELEASE" +VERSION="2.7.1" echo "cloning $BRANCH..." hg clone http://hg.mozilla.org/$BRANCH seamonkey ++++++ l10n-2.7.tar.bz2 -> l10n-2.7.1.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/seamonkey/l10n-2.7.tar.bz2 /work/SRC/openSUSE:Factory/.seamonkey.new/l10n-2.7.1.tar.bz2 differ: char 11, line 1 ++++++ mozilla-bmo703534.patch ++++++ # HG changeset patch # User Mike Hommey <mh+mozilla@glandium.org> # Date 1321613368 -3600 # Node ID 15cf58eb7923d34de7e61df80fa5f8a18a995abf # Parent aeb035da53283c56370992f254e4f79d7dd180f8 Bug 703534 - Fix build failure on platforms without YARR JIT. r=luke target: M11 diff --git a/js/src/jscompartment.cpp b/js/src/jscompartment.cpp --- a/js/src/jscompartment.cpp +++ b/js/src/jscompartment.cpp @@ -45,17 +45,16 @@ #include "jsiter.h" #include "jsmath.h" #include "jsproxy.h" #include "jsscope.h" #include "jstracer.h" #include "jswatchpoint.h" #include "jswrapper.h" #include "assembler/wtf/Platform.h" -#include "assembler/jit/ExecutableAllocator.h" #include "yarr/BumpPointerAllocator.h" #include "methodjit/MethodJIT.h" #include "methodjit/PolyIC.h" #include "methodjit/MonoIC.h" #include "vm/Debugger.h" #include "jsgcinlines.h" #include "jsscopeinlines.h" ++++++ mozilla-yarr-pcre.patch ++++++ From: Mike Hommey <mh@glandium.org> Date: Sat, 24 Dec 2011 09:56:58 +0100 Subject: Bug 691898 - Use YARR interpreter instead of PCRE on platforms where YARR JIT is not supported --- js/src/Makefile.in | 21 +++++++++++++-------- js/src/vm/RegExpObject-inl.h | 28 ++++++---------------------- js/src/vm/RegExpObject.cpp | 36 ------------------------------------ js/src/vm/RegExpObject.h | 27 ++++++--------------------- js/src/yarr/wtfbridge.h | 2 -- 5 files changed, 25 insertions(+), 89 deletions(-) diff --git a/js/src/Makefile.in b/js/src/Makefile.in index fc48cbd..49f0bdc 100644 --- a/js/src/Makefile.in +++ b/js/src/Makefile.in @@ -416,15 +416,20 @@ CPPSRCS += checks.cc \ ifeq (,$(filter arm% sparc %86 x86_64,$(TARGET_CPU))) -VPATH += $(srcdir)/yarr/pcre \ +VPATH += $(srcdir)/assembler \ + $(srcdir)/assembler/wtf \ + $(srcdir)/yarr \ $(NULL) CPPSRCS += \ - pcre_compile.cpp \ - pcre_exec.cpp \ - pcre_tables.cpp \ - pcre_xclass.cpp \ - pcre_ucp_searchfuncs.cpp \ + Assertions.cpp \ + OSAllocatorOS2.cpp \ + OSAllocatorPosix.cpp \ + OSAllocatorWin.cpp \ + PageBlock.cpp \ + YarrInterpreter.cpp \ + YarrPattern.cpp \ + YarrSyntaxChecker.cpp \ $(NULL) else @@ -1015,10 +1020,10 @@ endif # Needed to "configure" it correctly. Unfortunately these # flags wind up being applied to all code in js/src, not just # the code in js/src/assembler. -CXXFLAGS += -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1 +CXXFLAGS += -DUSE_SYSTEM_MALLOC=1 ifneq (,$(ENABLE_YARR_JIT)$(ENABLE_TRACEJIT)$(ENABLE_METHODJIT)) -CXXFLAGS += -DENABLE_JIT=1 +CXXFLAGS += -DENABLE_JIT=1 -DENABLE_ASSEMBLER=1 endif INCLUDES += -I$(srcdir)/assembler -I$(srcdir)/yarr diff --git a/js/src/vm/RegExpObject-inl.h b/js/src/vm/RegExpObject-inl.h index 5f7817d..91108a7 100644 --- a/js/src/vm/RegExpObject-inl.h +++ b/js/src/vm/RegExpObject-inl.h @@ -327,6 +327,7 @@ RegExpPrivate::create(JSContext *cx, JSString *source, RegExpFlag flags, TokenSt return RetType(self); } +#if ENABLE_YARR_JIT /* This function should be deleted once bad Android platforms phase out. See bug 604774. */ inline bool RegExpPrivateCode::isJITRuntimeEnabled(JSContext *cx) @@ -337,12 +338,12 @@ RegExpPrivateCode::isJITRuntimeEnabled(JSContext *cx) return true; #endif } +#endif inline bool RegExpPrivateCode::compile(JSContext *cx, JSLinearString &pattern, TokenStream *ts, uintN *parenCount, RegExpFlag flags) { -#if ENABLE_YARR_JIT /* Parse the pattern. */ ErrorCode yarrError; YarrPattern yarrPattern(pattern, bool(flags & IgnoreCaseFlag), bool(flags & MultilineFlag), @@ -359,7 +360,7 @@ RegExpPrivateCode::compile(JSContext *cx, JSLinearString &pattern, TokenStream * * case we have to bytecode compile it. */ -#ifdef JS_METHODJIT +#if ENABLE_YARR_JIT && defined(JS_METHODJIT) if (isJITRuntimeEnabled(cx) && !yarrPattern.m_containsBackreferences) { if (!cx->compartment->ensureJaegerCompartmentExists(cx)) return false; @@ -371,21 +372,11 @@ RegExpPrivateCode::compile(JSContext *cx, JSLinearString &pattern, TokenStream * } #endif +#if ENABLE_YARR_JIT codeBlock.setFallBack(true); +#endif byteCode = byteCompile(yarrPattern, cx->compartment->regExpAllocator).get(); return true; -#else /* !defined(ENABLE_YARR_JIT) */ - int error = 0; - compiled = jsRegExpCompile(pattern.chars(), pattern.length(), - ignoreCase() ? JSRegExpIgnoreCase : JSRegExpDoNotIgnoreCase, - multiline() ? JSRegExpMultiline : JSRegExpSingleLine, - parenCount, &error); - if (error) { - reportPCREError(cx, error); - return false; - } - return true; -#endif } inline bool @@ -431,19 +422,12 @@ RegExpPrivateCode::execute(JSContext *cx, const jschar *chars, size_t start, siz else result = JSC::Yarr::execute(codeBlock, chars, start, length, output); #else - result = jsRegExpExecute(cx, compiled, chars, length, start, output, outputCount); + result = JSC::Yarr::interpret(byteCode, chars, start, length, output); #endif if (result == -1) return Success_NotFound; -#if !ENABLE_YARR_JIT - if (result < 0) { - reportPCREError(cx, result); - return Error; - } -#endif - JS_ASSERT(result >= 0); return Success; } diff --git a/js/src/vm/RegExpObject.cpp b/js/src/vm/RegExpObject.cpp index f75c6a5..7631dd5 100644 --- a/js/src/vm/RegExpObject.cpp +++ b/js/src/vm/RegExpObject.cpp @@ -251,7 +251,6 @@ Class js::RegExpClass = { NULL /* trace */ }; -#if ENABLE_YARR_JIT void RegExpPrivateCode::reportYarrError(JSContext *cx, TokenStream *ts, ErrorCode error) { @@ -283,41 +282,6 @@ RegExpPrivateCode::reportYarrError(JSContext *cx, TokenStream *ts, ErrorCode err } } -#else /* !ENABLE_YARR_JIT */ - -void -RegExpPrivateCode::reportPCREError(JSContext *cx, int error) -{ -#define REPORT(msg_) \ - JS_ReportErrorFlagsAndNumberUC(cx, JSREPORT_ERROR, js_GetErrorMessage, NULL, msg_); \ - return - switch (error) { - case -2: REPORT(JSMSG_REGEXP_TOO_COMPLEX); - case 0: JS_NOT_REACHED("Precondition violation: an error must have occurred."); - case 1: REPORT(JSMSG_TRAILING_SLASH); - case 2: REPORT(JSMSG_TRAILING_SLASH); - case 3: REPORT(JSMSG_REGEXP_TOO_COMPLEX); - case 4: REPORT(JSMSG_BAD_QUANTIFIER); - case 5: REPORT(JSMSG_BAD_QUANTIFIER); - case 6: REPORT(JSMSG_BAD_CLASS_RANGE); - case 7: REPORT(JSMSG_REGEXP_TOO_COMPLEX); - case 8: REPORT(JSMSG_BAD_CLASS_RANGE); - case 9: REPORT(JSMSG_BAD_QUANTIFIER); - case 10: REPORT(JSMSG_UNMATCHED_RIGHT_PAREN); - case 11: REPORT(JSMSG_REGEXP_TOO_COMPLEX); - case 12: REPORT(JSMSG_UNMATCHED_RIGHT_PAREN); - case 13: REPORT(JSMSG_REGEXP_TOO_COMPLEX); - case 14: REPORT(JSMSG_MISSING_PAREN); - case 15: REPORT(JSMSG_BAD_BACKREF); - case 16: REPORT(JSMSG_REGEXP_TOO_COMPLEX); - case 17: REPORT(JSMSG_REGEXP_TOO_COMPLEX); - default: - JS_NOT_REACHED("Precondition violation: unknown PCRE error code."); - } -#undef REPORT -} -#endif /* ENABLE_YARR_JIT */ - bool js::ParseRegExpFlags(JSContext *cx, JSString *flagStr, RegExpFlag *flagsOut) { diff --git a/js/src/vm/RegExpObject.h b/js/src/vm/RegExpObject.h index 1449d56..279f3c0 100644 --- a/js/src/vm/RegExpObject.h +++ b/js/src/vm/RegExpObject.h @@ -49,8 +49,6 @@ #include "yarr/Yarr.h" #if ENABLE_YARR_JIT #include "yarr/YarrJIT.h" -#else -#include "yarr/pcre/pcre.h" #endif namespace js { @@ -153,48 +151,39 @@ ResetRegExpObject(JSContext *cx, AlreadyIncRefed<RegExpPrivate> rep); /* Abstracts away the gross |RegExpPrivate| backend details. */ class RegExpPrivateCode { -#if ENABLE_YARR_JIT typedef JSC::Yarr::BytecodePattern BytecodePattern; typedef JSC::Yarr::ErrorCode ErrorCode; + typedef JSC::Yarr::YarrPattern YarrPattern; +#if ENABLE_YARR_JIT typedef JSC::Yarr::JSGlobalData JSGlobalData; typedef JSC::Yarr::YarrCodeBlock YarrCodeBlock; - typedef JSC::Yarr::YarrPattern YarrPattern; /* Note: Native code is valid only if |codeBlock.isFallBack() == false|. */ YarrCodeBlock codeBlock; - BytecodePattern *byteCode; -#else - JSRegExp *compiled; #endif + BytecodePattern *byteCode; public: RegExpPrivateCode() : #if ENABLE_YARR_JIT codeBlock(), - byteCode(NULL) -#else - compiled(NULL) #endif + byteCode(NULL) { } ~RegExpPrivateCode() { #if ENABLE_YARR_JIT codeBlock.release(); +#endif if (byteCode) Foreground::delete_<BytecodePattern>(byteCode); -#else - if (compiled) - jsRegExpFree(compiled); -#endif } #if ENABLE_YARR_JIT static inline bool isJITRuntimeEnabled(JSContext *cx); - void reportYarrError(JSContext *cx, TokenStream *ts, JSC::Yarr::ErrorCode error); -#else - void reportPCREError(JSContext *cx, int error); #endif + void reportYarrError(JSContext *cx, TokenStream *ts, JSC::Yarr::ErrorCode error); inline bool compile(JSContext *cx, JSLinearString &pattern, TokenStream *ts, uintN *parenCount, RegExpFlag flags); @@ -205,11 +194,7 @@ class RegExpPrivateCode int *output, size_t outputCount); static size_t getOutputSize(size_t pairCount) { -#if ENABLE_YARR_JIT return pairCount * 2; -#else - return pairCount * 3; /* Should be x2, but PCRE has... needs. */ -#endif } }; diff --git a/js/src/yarr/wtfbridge.h b/js/src/yarr/wtfbridge.h index ac41d08..fb8eb86 100644 --- a/js/src/yarr/wtfbridge.h +++ b/js/src/yarr/wtfbridge.h @@ -49,9 +49,7 @@ #include "jsprvtd.h" #include "vm/String.h" #include "assembler/wtf/Platform.h" -#if ENABLE_YARR_JIT #include "assembler/jit/ExecutableAllocator.h" -#endif namespace JSC { namespace Yarr { ++++++ seamonkey-2.7-source.tar.bz2 -> seamonkey-2.7.1-source.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/seamonkey/seamonkey-2.7-source.tar.bz2 /work/SRC/openSUSE:Factory/.seamonkey.new/seamonkey-2.7.1-source.tar.bz2 differ: char 11, line 1 -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org