From 10c70f82bad1ca19b336fdfd557b3c3ce20269e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= Date: Tue, 23 Aug 2011 19:40:10 +0200 Subject: [PATCH 1/5] =?UTF-8?q?Switch=20v8=20to=20the=20Tom=20Callaway?= =?UTF-8?q?=E2=80=99s=20.spec=20file.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + sources | 2 +- v8-3.2.10-always-false.patch | 14 + v8-3.3.10-enable-experimental.patch | 59 ++++ v8-3.3.10-language-matcher-fix.patch | 24 ++ v8-daily-tarball.sh | 94 ++++++ v8.spec | 481 +++++++++++++++++++++------ 7 files changed, 570 insertions(+), 105 deletions(-) create mode 100644 v8-3.2.10-always-false.patch create mode 100644 v8-3.3.10-enable-experimental.patch create mode 100644 v8-3.3.10-language-matcher-fix.patch create mode 100644 v8-daily-tarball.sh diff --git a/.gitignore b/.gitignore index 8019875..b944aad 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /v8-3.0.0.1.tar.gz /v8-3.5.1.tar.bz2 +/v8-3.3.10.tar.bz2 diff --git a/sources b/sources index 87d148c..ef53154 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -656952184c915b0af0062f9cbf3cc963 v8-3.5.1.tar.bz2 +bf7d1bd637b9fd28796cdc7c95ce04b5 v8-3.3.10.tar.bz2 diff --git a/v8-3.2.10-always-false.patch b/v8-3.2.10-always-false.patch new file mode 100644 index 0000000..92b30da --- /dev/null +++ b/v8-3.2.10-always-false.patch @@ -0,0 +1,14 @@ +diff -up v8-3.2.10/src/runtime.cc.always-false v8-3.2.10/src/runtime.cc +--- v8-3.2.10/src/runtime.cc.always-false 2011-06-10 11:05:03.000000000 -0400 ++++ v8-3.2.10/src/runtime.cc 2011-06-10 11:20:09.713526215 -0400 +@@ -4092,8 +4092,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_S + StrictModeFlag strict_mode = kNonStrictMode; + if (args.length() == 5) { + CONVERT_SMI_CHECKED(strict_unchecked, args[4]); +- RUNTIME_ASSERT(strict_unchecked == kStrictMode || +- strict_unchecked == kNonStrictMode); ++ // RUNTIME_ASSERT(strict_unchecked == kStrictMode || ++ // strict_unchecked == kNonStrictMode); + strict_mode = static_cast(strict_unchecked); + } + diff --git a/v8-3.3.10-enable-experimental.patch b/v8-3.3.10-enable-experimental.patch new file mode 100644 index 0000000..4c81e17 --- /dev/null +++ b/v8-3.3.10-enable-experimental.patch @@ -0,0 +1,59 @@ +diff -up v8-3.3.10/src/SConscript.experimental v8-3.3.10/src/SConscript +--- v8-3.3.10/src/SConscript.experimental 2011-08-10 11:55:38.000000000 -0400 ++++ v8-3.3.10/src/SConscript 2011-08-10 12:07:47.975380113 -0400 +@@ -133,6 +133,12 @@ SOURCES = { + zone.cc + extensions/gc-extension.cc + extensions/externalize-string-extension.cc ++ extensions/experimental/break-iterator.cc ++ extensions/experimental/collator.cc ++ extensions/experimental/i18n-extension.cc ++ extensions/experimental/i18n-locale.cc ++ extensions/experimental/i18n-utils.cc ++ extensions/experimental/language-matcher.cc + """), + 'arch:arm': Split(""" + arm/builtins-arm.cc +@@ -301,6 +307,10 @@ proxy.js + '''.split() + + ++I18N_LIBRARY_FILES = ''' ++extensions/experimental/i18n.js ++'''.split() ++ + def Abort(message): + print message + sys.exit(1) +@@ -328,6 +338,13 @@ def ConfigureObjectFiles(): + libraries_src = env.JS2C(['libraries.cc'], library_files, TYPE='CORE') + libraries_obj = context.ConfigureObject(env, libraries_src, CPPPATH=['.']) + ++ # Combine the experimental I18N JavaScript library files into a C++ file ++ # and compile it. ++ i18n_library_files = [ s for s in I18N_LIBRARY_FILES ] ++ i18n_library_files.append('macros.py') ++ i18n_libraries_src = env.JS2C(['i18n-libraries.cc'], i18n_library_files, TYPE='I18N') ++ i18n_libraries_obj = context.ConfigureObject(env, i18n_libraries_src, CPPPATH=['.']) ++ + # Combine the experimental JavaScript library files into a C++ file + # and compile it. + experimental_library_files = [ s for s in EXPERIMENTAL_LIBRARY_FILES ] +@@ -351,7 +368,7 @@ def ConfigureObjectFiles(): + mksnapshot_env = env.Copy() + mksnapshot_env.Replace(**context.flags['mksnapshot']) + mksnapshot_src = 'mksnapshot.cc' +- mksnapshot = mksnapshot_env.Program('mksnapshot', [mksnapshot_src, libraries_obj, experimental_libraries_obj, non_snapshot_files, empty_snapshot_obj], PDB='mksnapshot.exe.pdb') ++ mksnapshot = mksnapshot_env.Program('mksnapshot', [mksnapshot_src, libraries_obj, i18n_libraries_obj, experimental_libraries_obj, non_snapshot_files, empty_snapshot_obj], PDB='mksnapshot.exe.pdb') + if context.use_snapshot: + if context.build_snapshot: + snapshot_cc = env.Snapshot('snapshot.cc', mksnapshot, LOGFILE=File('snapshot.log').abspath) +@@ -360,7 +377,7 @@ def ConfigureObjectFiles(): + snapshot_obj = context.ConfigureObject(env, snapshot_cc, CPPPATH=['.']) + else: + snapshot_obj = empty_snapshot_obj +- library_objs = [non_snapshot_files, libraries_obj, experimental_libraries_obj, snapshot_obj] ++ library_objs = [non_snapshot_files, libraries_obj, i18n_libraries_obj, experimental_libraries_obj, snapshot_obj] + return (library_objs, d8_objs, [mksnapshot], preparser_objs) + + diff --git a/v8-3.3.10-language-matcher-fix.patch b/v8-3.3.10-language-matcher-fix.patch new file mode 100644 index 0000000..85500c1 --- /dev/null +++ b/v8-3.3.10-language-matcher-fix.patch @@ -0,0 +1,24 @@ +diff -up v8-3.3.10/src/extensions/experimental/language-matcher.cc.fix v8-3.3.10/src/extensions/experimental/language-matcher.cc +--- v8-3.3.10/src/extensions/experimental/language-matcher.cc.fix 2011-08-10 12:12:39.257368098 -0400 ++++ v8-3.3.10/src/extensions/experimental/language-matcher.cc 2011-08-10 12:12:47.150362828 -0400 +@@ -42,7 +42,7 @@ namespace internal { + const unsigned int LanguageMatcher::kLanguageWeight = 75; + const unsigned int LanguageMatcher::kScriptWeight = 20; + const unsigned int LanguageMatcher::kRegionWeight = 5; +-const unsigned int LanguageMatcher::kThreshold = 50; ++const int LanguageMatcher::kThreshold = 50; + const unsigned int LanguageMatcher::kPositionBonus = 1; + const char* const LanguageMatcher::kDefaultLocale = "root"; + +diff -up v8-3.3.10/src/extensions/experimental/language-matcher.h.fix v8-3.3.10/src/extensions/experimental/language-matcher.h +--- v8-3.3.10/src/extensions/experimental/language-matcher.h.fix 2011-08-10 12:13:15.147621253 -0400 ++++ v8-3.3.10/src/extensions/experimental/language-matcher.h 2011-08-10 12:13:24.311742395 -0400 +@@ -76,7 +76,7 @@ class LanguageMatcher { + static const unsigned int kRegionWeight; + + // LocaleID match score has to be over this number to accept the match. +- static const unsigned int kThreshold; ++ static const int kThreshold; + + // For breaking ties in priority queue. + static const unsigned int kPositionBonus; diff --git a/v8-daily-tarball.sh b/v8-daily-tarball.sh new file mode 100644 index 0000000..ea4a7b6 --- /dev/null +++ b/v8-daily-tarball.sh @@ -0,0 +1,94 @@ +#!/bin/bash + +# This script checks out v8 source from svn. + +LOCALDIR=`pwd` +TODAYSDATE=`date +%Y%m%d` +USAGE="Usage: v8-daily-tarball.sh [-hrv]" +VERBOSE=false + +while getopts "hv" opt; do + case $opt in + h ) printf "$USAGE\n" + printf "\nAvailable command line options:\n" + printf "%b\t-h\t\tthis help\n" + printf "%b\t-v\t\tverbose output\n\n" + exit 1 ;; + v ) VERBOSE=true + printf "[VERBOSE]: Enabled\n" ;; + \? ) printf "$USAGE\n" + exit 1 ;; + esac +done + +# If the directory is there, just nuke it and continue. +if [ -d v8-$TODAYSDATE ]; then + if [ "$VERBOSE" = "true" ]; then + printf "[VERBOSE]: Conflicting directory found, removing v8-$TODAYSDATE/\n" + fi + rm -rf v8-$TODAYSDATE/ + if [ "$VERBOSE" = "true" ]; then + printf "[VERBOSE]: Removed conflicting directory: v8-$TODAYSDATE/\n" + fi +fi + +printf "Checking out the source tree. This will take some time.\n" + +if [ "$VERBOSE" = "true" ]; then + svn checkout http://v8.googlecode.com/svn/trunk/ v8-$TODAYSDATE +else + svn --quiet checkout http://v8.googlecode.com/svn/trunk v8-$TODAYSDATE +fi + +# Determine SVN rev and Version of v8 +cd v8-$TODAYSDATE/ +SVNREV=`svnversion` +V8_VERSION=`head -n1 ChangeLog |cut -f2 -d: |sed 's| Version ||g'` +cd .. + +printf "V8 ($V8_VERSION) svn$SVNREV [$TODAYSDATE] checked out\n" + +FULLVER=`echo ${V8_VERSION}-${TODAYSDATE}svn${SVNREV}` + +# Get rid of .svn bits to save space +if [ "$VERBOSE" = "true" ]; then + printf "[VERBOSE]: Removing unnecessary .svn bits\n" +fi +find v8-$TODAYSDATE -depth -name .svn -type d -exec rm -rf {} \; + +# Now, lets look for the final target directory, without svnrev. +if [ -d v8-$FULLVER ]; then + if [ "$VERBOSE" = "true" ]; then + printf "[VERBOSE]: Removing conflicting directory: v8-$FULLVER/\n" + fi + rm -rf v8-$FULLVER/ + if [ "$VERBOSE" = "true" ]; then + printf "[VERBOSE]: Removed conflicting directory: v8-$FULLVER/\n" + fi +fi + +# At this point, we know the v8 target directory does not exist, time to rename the checkout +if [ "$VERBOSE" = "true" ]; then + printf "[VERBOSE]: Renaming checkout directory from: v8-$TODAYSDATE/ to: v8-$FULLVER/\n" +fi +mv v8-$TODAYSDATE/ v8-$FULLVER/ + +# Now, lets look for the tarball. +if [ -f v8-$FULLVER.tar.bz2 ]; then + if [ "$VERBOSE" = "true" ]; then + printf "[VERBOSE]: Found existing tarball matching v8-$FULLVER.tar.bz2, removing.\n" + fi + rm -f v8-$FULLVER.tar.bz2 + if [ "$VERBOSE" = "true" ]; then + printf "[VERBOSE]: Removed conflicting file: v8-$FULLVER.tar.bz2\n" + fi +fi + +if [ "$VERBOSE" = "true" ]; then + printf "[VERBOSE]: Creating tarball: v8-$FULLVER.tar.bz2\n" +fi +tar cfj v8-$FULLVER.tar.bz2 v8-$FULLVER + +# All done. +printf "Daily v8 source processed and ready: v8-$FULLVER.tar.bz2\n" +exit 0 diff --git a/v8.spec b/v8.spec index c6da902..fd08b99 100644 --- a/v8.spec +++ b/v8.spec @@ -1,152 +1,425 @@ -%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} -%global major_version 3 +# Hi Googlers! If you're looking in here for patches, nifty. +# You (and everyone else) are welcome to use any of my Chromium patches under the terms of the GPLv2 or later. +# You (and everyone else) are welcome to use any of my V8-specific patches under the terms of the BSD license. +# You (and everyone else) may NOT use my patches under any other terms. +# I hate to be a party-pooper here, but I really don't want to help Google make a proprietary browser. +# There are enough of those already. +# All copyrightable work in these spec files and patches is Copyright 2010 Tom Callaway -Name: v8 -Version: %{major_version}.5.1 -Release: 1%{?dist} -Summary: JavaScript Engine -Group: System Environment/Libraries -License: BSD -URL: http://code.google.com/p/v8 -# git clone git://github.com/%{name}/%{name}.git -# git archive --prefix=%{name}-%{version}/ %{version} \ -# >%{name}-%{version}.tar.bz2 -# #Missing licenses: -# rm v8-3.0.0.1/benchmarks/earley-boyer.js -# rm v8-3.0.0.1/benchmarks/raytrace.js -# tar czf v8-3.0.0.1.tar.gz v8-3.0.0.1 -Source0: %{name}-%{version}.tar.bz2 -Source1: v8-js2c -Patch0: v8-2.5.9-ccflags.patch -Patch1: v8-2.5.9-shebangs.patch -Patch2: v8-3.5.1-versioned-v8.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -ExclusiveArch: %{ix86} x86_64 %{arm} -BuildRequires: scons, readline-devel -%ifarch x86_64 -Provides: libv8.so.3()(64bit) -%else -Provides: libv8.so.3 -%endif +# For the 1.2 branch, we use 0s here +# For 1.3+, we use the three digit versions +%global somajor 3 +%global sominor 3 +%global sobuild 10 +%global sover %{somajor}.%{sominor}.%{sobuild} + +Name: v8 +Version: %{somajor}.%{sominor}.%{sobuild} +Release: 1%{?dist} +Summary: JavaScript Engine +Group: System Environment/Libraries +License: BSD +URL: http://code.google.com/p/v8 +# No tarballs, pulled from svn +# Checkout script is Source1 +Source0: v8-%{version}.tar.bz2 +Source1: v8-daily-tarball.sh +# Enable experimental i18n extension that chromium needs +Patch0: v8-3.3.10-enable-experimental.patch +# Disable comparison check that gcc 4.5 thinks is always false +Patch1: v8-3.2.10-always-false.patch +# Fix language-matcher.cc compile +Patch2: v8-3.3.10-language-matcher-fix.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +ExclusiveArch: %{ix86} x86_64 arm +BuildRequires: scons, readline-devel, libicu-devel %description V8 is Google's open source JavaScript engine. V8 is written in C++ and is used in Google Chrome, the open source browser from Google. V8 implements ECMAScript as specified in ECMA-262, 3rd edition. - %package devel -Group: Development/Libraries -Summary: Development headers and libraries for v8 -Requires: %{name} = %{version}-%{release} +Group: Development/Libraries +Summary: Development headers and libraries for v8 +Requires: %{name} = %{version}-%{release} %description devel -Development headers, libraries and tools for v8. - +Development headers and libraries for v8. %prep -%setup -q -%patch0 -p1 -b .ccflags -%patch1 -p1 -b .shebangs -%patch2 -p1 -b .versionedV8 -find \( -name '*.cc' -o -name '*.h' \) -print0 |xargs -0 chmod -x +%setup -q -n %{name}-%{version} +%patch0 -p1 -b .experimental +%patch1 -p1 -b .always-false +%patch2 -p1 -b .fix +# -fno-strict-aliasing is needed with gcc 4.4 to get past some ugly code +PARSED_OPT_FLAGS=`echo \'$RPM_OPT_FLAGS -fPIC -fno-strict-aliasing -Wno-unused-parameter -Wno-unused-but-set-variable\'| sed "s/ /',/g" | sed "s/',/', '/g"` +sed -i "s|'-O3',|$PARSED_OPT_FLAGS,|g" SConstruct %build -# Certain options enabled by -O2 causes binaries to crash immediately, for reasons yet unknown, -CCFLAGS="%{optflags} -fno-reorder-blocks -fno-strict-aliasing" \ - scons %{_smp_mflags} env='CCFLAGS: -fPIC' \ - library d8 cctests sample \ - library=shared soname=on protectheap=on console=readline sample=shell \ +export GCC_VERSION="44" +scons library=shared snapshots=on \ %ifarch x86_64 - arch=x64 +arch=x64 \ +%endif +visibility=default \ +env=CCFLAGS:"-fPIC" + +%if 0%{?fedora} > 15 +export ICU_LINK_FLAGS=`pkg-config --libs-only-l icu-i18n` +%else +export ICU_LINK_FLAGS=`pkg-config --libs-only-l icu` %endif +# When will people learn to create versioned shared libraries by default? +# first, lets get rid of the old .so file +rm -rf libv8.so libv8preparser.so +# Now, lets make it right. +g++ $RPM_OPT_FLAGS -fPIC -o libv8preparser.so.%{sover} -shared -Wl,-soname,libv8preparser.so.%{somajor} \ + obj/release/allocation.os \ + obj/release/hashmap.os \ + obj/release/preparse-data.os \ + obj/release/preparser-api.os \ + obj/release/preparser.os \ + obj/release/scanner-base.os \ + obj/release/token.os \ + obj/release/unicode.os -%check -# preparser tests fail, let's switch them off for now -mv -v test/preparser/testcfg.py{,.INACTIVE} -# Don't fail if tests fail, just run them and record them. -LD_LIBRARY_PATH="$PWD" tools/test.py --no-build --progress=verbose || /bin/true +# "obj/release/preparser-api.os" should not be included in the libv8.so file. +export RELEASE_BUILD_OBJS=`echo obj/release/*.os | sed 's|obj/release/preparser-api.os||g'` +%ifarch arm +g++ $RPM_OPT_FLAGS -fPIC -o libv8.so.%{sover} -shared -Wl,-soname,libv8.so.%{somajor} $RELEASE_BUILD_OBJS obj/release/extensions/*.os obj/release/extensions/experimental/*.os obj/release/arm/*.os $ICU_LINK_FLAGS +%endif +%ifarch %{ix86} +g++ $RPM_OPT_FLAGS -fPIC -o libv8.so.%{sover} -shared -Wl,-soname,libv8.so.%{somajor} $RELEASE_BUILD_OBJS obj/release/extensions/*.os obj/release/extensions/experimental/*.os obj/release/ia32/*.os $ICU_LINK_FLAGS +%endif +%ifarch x86_64 +g++ $RPM_OPT_FLAGS -fPIC -o libv8.so.%{sover} -shared -Wl,-soname,libv8.so.%{somajor} $RELEASE_BUILD_OBJS obj/release/extensions/*.os obj/release/extensions/experimental/*.os obj/release/x64/*.os $ICU_LINK_FLAGS +%endif + +# We need to do this so d8 can link against it. +ln -sf libv8.so.%{sover} libv8.so +ln -sf libv8preparser.so.%{sover} libv8preparser.so + +# This will fail to link d8 because it doesn't use the icu libs. +scons d8 \ +%ifarch x86_64 +arch=x64 \ +%endif +library=shared snapshots=on console=readline visibility=default || : + +# Sigh. I f*****g hate scons. +rm -rf d8 + +g++ $RPM_OPT_FLAGS -o d8 obj/release/d8-debug.os obj/release/d8-posix.os obj/release/d8-readline.os obj/release/d8.os obj/release/d8-js.os -lpthread -lreadline -lpthread -L. -lv8 $ICU_LINK_FLAGS %install -rm -rf $RPM_BUILD_ROOT -mkdir -p $RPM_BUILD_ROOT%{_includedir} -mkdir -p $RPM_BUILD_ROOT%{_libdir} -install -pm644 include/*.h $RPM_BUILD_ROOT%{_includedir} -install -p libv8-%{version}.so $RPM_BUILD_ROOT%{_libdir} -ln -sf libv8-%{version}.so $RPM_BUILD_ROOT%{_libdir}/libv8.so -ln -sf libv8-%{version}.so $RPM_BUILD_ROOT%{_libdir}/libv8.so.%{major_version} -install -p libv8-%{version}.so $RPM_BUILD_ROOT%{_libdir} -mkdir -p $RPM_BUILD_ROOT%{_bindir} -install -p d8 $RPM_BUILD_ROOT%{_bindir} -install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/js2c +rm -rf %{buildroot} +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_libdir} +install -p include/*.h %{buildroot}%{_includedir} +install -p libv8.so.%{sover} %{buildroot}%{_libdir} +install -p libv8preparser.so.%{sover} %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_bindir} +install -p -m0755 d8 %{buildroot}%{_bindir} -install -d $RPM_BUILD_ROOT%{python_sitelib} -install -pm644 tools/js2c.py $RPM_BUILD_ROOT%{python_sitelib} -install -pm644 tools/jsmin.py $RPM_BUILD_ROOT%{python_sitelib} +pushd %{buildroot}%{_libdir} +ln -sf libv8.so.%{sover} libv8.so +ln -sf libv8.so.%{sover} libv8.so.%{somajor} +ln -sf libv8.so.%{sover} libv8.so.%{somajor}.%{sominor} +ln -sf libv8preparser.so.%{sover} libv8preparser.so +ln -sf libv8preparser.so.%{sover} libv8preparser.so.%{somajor} +ln -sf libv8preparser.so.%{sover} libv8preparser.so.%{somajor}.%{sominor} +popd +chmod -x %{buildroot}%{_includedir}/v8*.h + +mkdir -p %{buildroot}%{_includedir}/v8/extensions/experimental/ +install -p src/extensions/*.h %{buildroot}%{_includedir}/v8/extensions/ +install -p src/extensions/experimental/*.h %{buildroot}%{_includedir}/v8/extensions/experimental/ + +chmod -x %{buildroot}%{_includedir}/v8/extensions/*.h +chmod -x %{buildroot}%{_includedir}/v8/extensions/experimental/*.h %clean -rm -rf $RPM_BUILD_ROOT - +rm -rf %{buildroot} %post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%postun -p /sbin/ldconfig %files %defattr(-,root,root,-) %doc AUTHORS ChangeLog LICENSE %{_bindir}/d8 -%{_bindir}/js2c -%{_libdir}/libv8-%{version}.so -%{_libdir}/libv8.so.%{major_version} - +%{_libdir}/*.so.* %files devel %defattr(-,root,root,-) %{_includedir}/*.h -%{_libdir}/libv8.so -%{python_sitelib}/*.py* - +%{_includedir}/v8/extensions/ +%{_libdir}/*.so %changelog -* Mon Aug 22 2011 Matěj Cepl - 3.5.1-1 -- new upstream release -- provides also libv8.so.3 to satisfy chromium from the spot's repo -- switch off preparser test +* Wed Aug 10 2011 Tom Callaway 3.3.10-1 +- tag 3.3.10 -* Mon Feb 07 2011 Fedora Release Engineering - 3.0.0.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild +* Fri Jun 10 2011 Tom Callaway 3.2.10-1 +- tag 3.2.10 -* Tue Dec 28 2010 Lubomir Rintel - 3.0.0.1-3 -- Export some more symbols for node.js +* Thu Apr 28 2011 Tom Callaway 3.1.8-1 +- "stable" v8 match for "stable" chromium (tag 3.1.8) -* Mon Dec 13 2010 Lubomir Rintel - 3.0.0.1-2 -- Remove files with broken licenses -- Fix mode of files in -debuginfo (this time for real) +* Tue Feb 22 2011 Tom Callaway 3.1.5-1.20110222svn6902 +- update to 3.1.5 +- enable experimental i18n icu stuff for chromium -* Sat Dec 11 2010 Lubomir Rintel - 3.0.0.1-1 -- Fix mode of a header file in -debuginfo -- Newer version +* Tue Jan 11 2011 Tom Callaway 3.0.7-1.20110111svn6276 +- update to 3.0.7 -* Fri Dec 10 2010 Lubomir Rintel - 2.5.9-2 -- Review fixes (Alex Hudson, #634909): -- No runnable scripts in python lib dir, wrap js2c -- Tidy up spaces/tabs -- Fix file permissions +* Tue Dec 14 2010 Tom "spot" Callaway 3.0.0-2.20101209svn5957 +- fix sloppy code where NULL is used -* Sat Dec 04 2010 Lubomir Rintel - 2.5.9-1 -- Newer version -- Style adjustments -- Use SONAME upstream uses -- Attempt to be less hackish for CFLAGS overrides -- Enable test suite +* Thu Dec 9 2010 Tom "spot" Callaway 3.0.0-1.20101209svn5957 +- update to 3.0.0 -* Sat Sep 18 2010 Lubomir Rintel - 2.4.4-1 -- Newer version +* Fri Oct 22 2010 Tom "spot" Callaway 2.5.1-1.20101022svn5692 +- update to 2.5.1 +- fix another fwrite with no return checking case + +* Thu Oct 14 2010 Tom "spot" Callaway 2.5.0-1.20101014svn5625 +- update to 2.5.0 + +* Mon Oct 4 2010 Tom "spot" Callaway 2.4.8-1.20101004svn5585 +- update to 2.4.8 + +* Tue Sep 14 2010 Tom "spot" Callaway 2.4.3-1.20100914svn5450 +- update to 2.4.3 + +* Tue Aug 31 2010 Tom "spot" Callaway 2.3.11-1.20100831svn5385 +- update to svn5385 + +* Fri Aug 27 2010 Tom "spot" Callaway 2.3.11-1.20100827svn5365 +- update to 2.3.11, svn5365 + +* Tue Aug 24 2010 Tom "spot" Callaway 2.3.10-1.20100824svn5332 +- update to 2.3.10, svn5332 + +* Thu Aug 18 2010 Tom "spot" Callaway 2.3.9-1.20100819svn5308 +- update to 2.3.9, svn5308 + +* Thu Aug 11 2010 Tom "spot" Callaway 2.3.7-1.20100812svn5251 +- update to svn5251 + +* Wed Aug 11 2010 Tom "spot" Callaway 2.3.7-1.20100811svn5248 +- update to 2.3.7, svn5248 + +* Mon Aug 10 2010 Tom "spot" Callaway 2.3.6-1.20100809svn5217 +- update to 2.3.6, svn5217 + +* Fri Aug 6 2010 Tom "spot" Callaway 2.3.5-1.20100806svn5198 +- update to 2.3.5, svn5198 + +* Mon Jul 26 2010 Tom "spot" Callaway 2.3.3-1.20100726svn5134 +- update to 2.3.3, svn5134 + +* Fri Jul 16 2010 Tom "spot" Callaway 2.3.0-1.20100716svn5088 +- update to 2.3.0, svn5088 + +* Tue Jul 6 2010 Tom "spot" Callaway 2.2.22-1.20100706svn5023 +- update to 2.2.22, svn5023 + +* Fri Jul 2 2010 Tom "spot" Callaway 2.2.21-1.20100702svn5010 +- update to svn5010 + +* Wed Jun 30 2010 Tom "spot" Callaway 2.2.21-1.20100630svn4993 +- update to 2.2.21, svn4993 +- include checkout script + +* Thu Jun 3 2010 Tom "spot" Callaway 2.2.14-1.20100603svn4792 +- update to 2.2.14, svn4792 + +* Tue Jun 1 2010 Tom "spot" Callaway 2.2.13-1.20100601svn4772 +- update to 2.2.13, svn4772 + +* Thu May 27 2010 Tom "spot" Callaway 2.2.12-1.20100527svn4747 +- update to 2.2.12, svn4747 + +* Tue May 25 2010 Tom "spot" Callaway 2.2.11-1.20100525svn4718 +- update to 2.2.11, svn4718 + +* Thu May 20 2010 Tom "spot" Callaway 2.2.10-1.20100520svn4684 +- update to svn4684 + +* Mon May 17 2010 Tom "spot" Callaway 2.2.10-1.20100517svn4664 +- update to 2.2.10, svn4664 + +* Thu May 13 2010 Tom "spot" Callaway 2.2.9-1.20100513svn4653 +- update to svn4653 + +* Mon May 10 2010 Tom "spot" Callaway 2.2.9-1.20100510svn4636 +- update to 2.2.9, svn4636 + +* Tue May 4 2010 Tom "spot" Callaway 2.2.7-1.20100504svn4581 +- update to 2.2.7, svn4581 + +* Mon Apr 19 2010 Tom "spot" Callaway 2.2.3-1.20100419svn4440 +- update to 2.2.3, svn4440 + +* Tue Apr 13 2010 Tom "spot" Callaway 2.2.2-1.20100413svn4397 +- update to 2.2.2, svn4397 + +* Thu Apr 8 2010 Tom "spot" Callaway 2.2.1-1.20100408svn4359 +- update to 2.2.1, svn4359 + +* Mon Mar 29 2010 Tom "spot" Callaway 2.2.0-1.20100329svn4309 +- update to 2.2.0, svn4309 + +* Thu Mar 25 2010 Tom "spot" Callaway 2.1.8-1.20100325svn4273 +- update to 2.1.8, svn4273 + +* Mon Mar 22 2010 Tom "spot" Callaway 2.1.5-1.20100322svn4204 +- update to 2.1.5, svn4204 + +* Mon Mar 15 2010 Tom "spot" Callaway 2.1.4-1.20100315svn4129 +- update to 2.1.4, svn4129 + +* Wed Mar 10 2010 Tom "spot" Callaway 2.1.0-1.20100310svn4088 +- update to 2.1.3, svn4088 + +* Thu Feb 18 2010 Tom "spot" Callaway 2.1.0-1.20100218svn3902 +- update to 2.1.0, svn3902 + +* Fri Jan 22 2010 Tom "spot" Callaway 2.0.6-1.20100122svn3681 +- update to 2.0.6, svn3681 + +* Tue Dec 29 2009 Tom "spot" Callaway 2.0.5-1.20091229svn3528 +- svn3528 + +* Mon Dec 21 2009 Tom "spot" Callaway 2.0.5-1.20091221svn3511 +- update to 2.0.5, svn3511 + +* Wed Dec 9 2009 Tom "spot" Callaway 2.0.3-1.20091209svn3443 +- update to 2.0.3, svn3443 + +* Tue Nov 24 2009 Tom "spot" Callaway 2.0.2-1.20091124svn3353 +- update to 2.0.2, svn3353 + +* Wed Nov 18 2009 Tom "spot" Callaway 2.0.0-1.20091118svn3334 +- update to 2.0.0, svn3334 + +* Tue Oct 27 2009 Tom "spot" Callaway 1.3.16-1.20091027svn3152 +- update to 1.3.16, svn3152 + +* Tue Oct 13 2009 Tom "spot" Callaway 1.3.15-1.20091013svn3058 +- update to svn3058 + +* Thu Oct 8 2009 Tom "spot" Callaway 1.3.15-1.20091008svn3036 +- update to 1.3.15, svn3036 + +* Tue Sep 29 2009 Tom "spot" Callaway 1.3.13-1.20090929svn2985 +- update to svn2985 +- drop unused parameter patch, figured out how to work around it with optflag mangling +- have I mentioned lately that scons is garbage? + +* Mon Sep 28 2009 Tom "spot" Callaway 1.3.13-1.20090928svn2980 +- update to 1.3.13, svn2980 + +* Wed Sep 16 2009 Tom "spot" Callaway 1.3.11-1.20090916svn2903 +- update to 1.3.11, svn2903 + +* Wed Sep 9 2009 Tom "spot" Callaway 1.3.9-1.20090909svn2862 +- update to 1.3.9, svn2862 + +* Thu Aug 27 2009 Tom "spot" Callaway 1.3.8-1.20090827svn2777 +- update to 1.3.8, svn2777 + +* Mon Aug 24 2009 Tom "spot" Callaway 1.3.6-1.20090824svn2747 +- update to 1.3.6, svn2747 + +* Tue Aug 18 2009 Tom "spot" Callaway 1.3.4-1.20090818svn2708 +- update to svn2708, build and package d8 + +* Fri Aug 14 2009 Tom "spot" Callaway 1.3.4-1.20090814svn2692 +- update to 1.3.4, svn2692 + +* Wed Aug 12 2009 Tom "spot" Callaway 1.3.3-1.20090812svn2669 +- update to 1.3.3, svn2669 + +* Mon Aug 10 2009 Tom "spot" Callaway 1.3.2-1.20090810svn2658 +- update to svn2658 + +* Fri Aug 7 2009 Tom "spot" Callaway 1.3.2-1.20090807svn2653 +- update to svn2653 + +* Wed Aug 5 2009 Tom "spot" Callaway 1.3.2-1.20090805svn2628 +- update to 1.3.2, svn2628 + +* Mon Aug 3 2009 Tom "spot" Callaway 1.3.1-1.20090803svn2607 +- update to svn2607 + +* Fri Jul 31 2009 Tom "spot" Callaway 1.3.1-1.20090731svn2602 +- update to svn2602 + +* Thu Jul 30 2009 Tom "spot" Callaway 1.3.1-1.20090730svn2592 +- update to 1.3.1, svn 2592 + +* Mon Jul 27 2009 Tom "spot" Callaway 1.3.0-1.20090727svn2543 +- update to 1.3.0, svn 2543 + +* Fri Jul 24 2009 Tom "spot" Callaway 1.2.14-1.20090724svn2534 +- update to svn2534 + +* Mon Jul 20 2009 Tom "spot" Callaway 1.2.14-1.20090720svn2510 +- update to svn2510 + +* Thu Jul 16 2009 Tom "spot" Callaway 1.2.14-1.20090716svn2488 +- update to svn2488 + +* Wed Jul 15 2009 Tom "spot" Callaway 1.2.14-1.20090715svn2477 +- update to 1.2.14, svn2477 + +* Mon Jul 13 2009 Tom "spot" Callaway 1.2.13-1.20090713svn2434 +- update to svn2434 + +* Sat Jul 11 2009 Tom "spot" Callaway 1.2.13-1.20090711svn2430 +- update to 1.2.13, svn2430 + +* Wed Jul 8 2009 Tom "spot" Callaway 1.2.12-1.20090708svn2391 +- update to 1.2.12, svn2391 + +* Sat Jul 4 2009 Tom "spot" Callaway 1.2.11-1.20090704svn2356 +- update to 1.2.11, svn2356 + +* Fri Jun 26 2009 Tom "spot" Callaway 1.2.9-1.20090626svn2284 +- update to svn2284 + +* Wed Jun 24 2009 Tom "spot" Callaway 1.2.9-1.20090624svn2262 +- update to 1.2.9, svn2262 + +* Thu Jun 18 2009 Tom "spot" Callaway 1.2.7-2.20090618svn2219 +- fix unused-parameter patch + +* Thu Jun 18 2009 Tom "spot" Callaway 1.2.7-1.20090618svn2219 +- update to 1.2.8, svn2219 + +* Mon Jun 8 2009 Tom "spot" Callaway 1.2.7-2.20090608svn2123 +- fix gcc44 compile for Fedora 11 + +* Mon Jun 8 2009 Tom "spot" Callaway 1.2.7-1.20090608svn2123 +- update to 1.2.7, svn2123 + +* Thu May 28 2009 Tom "spot" Callaway 1.2.5-1.20090528svn2072 +- update to newer svn checkout + +* Sun Feb 22 2009 Tom "spot" Callaway 1.0.1-1.20090222svn1332 +- update to newer svn checkout + +* Sun Sep 14 2008 Tom "spot" Callaway 0.2-2.20080914svn300 +- make a versioned shared library properly + +* Sun Sep 14 2008 Tom "spot" Callaway 0.2-1.20080914svn300 +- Initial package for Fedora -* Wed Sep 15 2010 Lubomir Rintel - 2.3.8-2 -- Package based on 2.3.11-1.20100831svn5385 by Tom "spot" Callaway From 7bc1fea71b8d6a85342a066678efd3af454acf3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= Date: Wed, 24 Aug 2011 23:23:43 +0200 Subject: [PATCH 2/5] Move Python files to the standard directories, add j2sc as well. --- v8.spec | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/v8.spec b/v8.spec index fd08b99..94aeb67 100644 --- a/v8.spec +++ b/v8.spec @@ -12,10 +12,12 @@ %global sominor 3 %global sobuild 10 %global sover %{somajor}.%{sominor}.%{sobuild} +%{!?python_sitelib: %global python_sitelib %(%{__python} \ + -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} Name: v8 Version: %{somajor}.%{sominor}.%{sobuild} -Release: 1%{?dist} +Release: 3%{?dist} Summary: JavaScript Engine Group: System Environment/Libraries License: BSD @@ -24,6 +26,7 @@ URL: http://code.google.com/p/v8 # Checkout script is Source1 Source0: v8-%{version}.tar.bz2 Source1: v8-daily-tarball.sh +Source2: v8-js2c # Enable experimental i18n extension that chromium needs Patch0: v8-3.3.10-enable-experimental.patch # Disable comparison check that gcc 4.5 thinks is always false @@ -143,6 +146,12 @@ install -p src/extensions/experimental/*.h %{buildroot}%{_includedir}/v8/extensi chmod -x %{buildroot}%{_includedir}/v8/extensions/*.h chmod -x %{buildroot}%{_includedir}/v8/extensions/experimental/*.h +# install Python JS minifier scripts for nodejs +mkdir -p %{buildroot}%{_datadir}/v8 +install -p -m0744 tools/jsmin.py %{buildroot}%{python_sitelib}/ +install -p -m0744 tools/j2sc.py %{buildroot}%{python_sitelib}/ +install -p %{SOURCE2} %{buildroot}%{_bindir}/js2c + %clean rm -rf %{buildroot} @@ -158,11 +167,21 @@ rm -rf %{buildroot} %files devel %defattr(-,root,root,-) +%{_bindir}/j2sc %{_includedir}/*.h %{_includedir}/v8/extensions/ %{_libdir}/*.so +%{python_sitelib}/j*.py %changelog +* Wed Aug 24 2011 Matěj Cepl - 3.3.10-3 +- A bit of cleanup, include also /usr/bin/j2sc when we have it. +- I don't see the reason why Python files shouldn't be in the + standard Python directories. + +* Wed Aug 27 2011 T.C. Hollingsworth 3.3.10-1 - tag 3.3.10 From aff3dfb96987955311e1b1aa4bab60815c0df79b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= Date: Wed, 24 Aug 2011 23:26:43 +0200 Subject: [PATCH 3/5] Fix changelog --- v8.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v8.spec b/v8.spec index 94aeb67..0681958 100644 --- a/v8.spec +++ b/v8.spec @@ -179,7 +179,7 @@ rm -rf %{buildroot} - I don't see the reason why Python files shouldn't be in the standard Python directories. -* Wed Aug 27 2011 T.C. Hollingsworth 3.3.10-1 From 1668f68f9341779689185ea466bb11fc0972fd9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= Date: Wed, 24 Aug 2011 23:26:43 +0200 Subject: [PATCH 4/5] Fix changelog --- v8.spec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/v8.spec b/v8.spec index 94aeb67..0313774 100644 --- a/v8.spec +++ b/v8.spec @@ -147,9 +147,9 @@ chmod -x %{buildroot}%{_includedir}/v8/extensions/*.h chmod -x %{buildroot}%{_includedir}/v8/extensions/experimental/*.h # install Python JS minifier scripts for nodejs -mkdir -p %{buildroot}%{_datadir}/v8 +install -d %{buildroot}%{python_sitelib} install -p -m0744 tools/jsmin.py %{buildroot}%{python_sitelib}/ -install -p -m0744 tools/j2sc.py %{buildroot}%{python_sitelib}/ +install -p -m0744 tools/js2c.py %{buildroot}%{python_sitelib}/ install -p %{SOURCE2} %{buildroot}%{_bindir}/js2c %clean @@ -167,11 +167,11 @@ rm -rf %{buildroot} %files devel %defattr(-,root,root,-) -%{_bindir}/j2sc +%{_bindir}/js2c %{_includedir}/*.h %{_includedir}/v8/extensions/ %{_libdir}/*.so -%{python_sitelib}/j*.py +%{python_sitelib}/j*.py* %changelog * Wed Aug 24 2011 Matěj Cepl - 3.3.10-3 @@ -179,7 +179,7 @@ rm -rf %{buildroot} - I don't see the reason why Python files shouldn't be in the standard Python directories. -* Wed Aug 27 2011 T.C. Hollingsworth 3.3.10-1 From 7bec737effd37c0aca2ac4b07092c949b5a510ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= Date: Sat, 27 Aug 2011 23:03:55 +0200 Subject: [PATCH 5/5] Fix jsmin.py which breaks nodejs building. --- v8.spec | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/v8.spec b/v8.spec index 0313774..172adaa 100644 --- a/v8.spec +++ b/v8.spec @@ -17,7 +17,7 @@ Name: v8 Version: %{somajor}.%{sominor}.%{sobuild} -Release: 3%{?dist} +Release: 4%{?dist} Summary: JavaScript Engine Group: System Environment/Libraries License: BSD @@ -26,13 +26,14 @@ URL: http://code.google.com/p/v8 # Checkout script is Source1 Source0: v8-%{version}.tar.bz2 Source1: v8-daily-tarball.sh -Source2: v8-js2c # Enable experimental i18n extension that chromium needs Patch0: v8-3.3.10-enable-experimental.patch # Disable comparison check that gcc 4.5 thinks is always false Patch1: v8-3.2.10-always-false.patch # Fix language-matcher.cc compile Patch2: v8-3.3.10-language-matcher-fix.patch +# Remove unnecessary shebangs +Patch3: v8-2.5.9-shebangs.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: %{ix86} x86_64 arm BuildRequires: scons, readline-devel, libicu-devel @@ -55,6 +56,7 @@ Development headers and libraries for v8. %patch0 -p1 -b .experimental %patch1 -p1 -b .always-false %patch2 -p1 -b .fix +%patch3 -p1 -b .shebang # -fno-strict-aliasing is needed with gcc 4.4 to get past some ugly code PARSED_OPT_FLAGS=`echo \'$RPM_OPT_FLAGS -fPIC -fno-strict-aliasing -Wno-unused-parameter -Wno-unused-but-set-variable\'| sed "s/ /',/g" | sed "s/',/', '/g"` @@ -149,8 +151,6 @@ chmod -x %{buildroot}%{_includedir}/v8/extensions/experimental/*.h # install Python JS minifier scripts for nodejs install -d %{buildroot}%{python_sitelib} install -p -m0744 tools/jsmin.py %{buildroot}%{python_sitelib}/ -install -p -m0744 tools/js2c.py %{buildroot}%{python_sitelib}/ -install -p %{SOURCE2} %{buildroot}%{_bindir}/js2c %clean rm -rf %{buildroot} @@ -167,13 +167,15 @@ rm -rf %{buildroot} %files devel %defattr(-,root,root,-) -%{_bindir}/js2c %{_includedir}/*.h %{_includedir}/v8/extensions/ %{_libdir}/*.so %{python_sitelib}/j*.py* %changelog +* Sat Aug 27 2011 Matěj Cepl - 3.3.10-4 +- Make jsmin.py working. + * Wed Aug 24 2011 Matěj Cepl - 3.3.10-3 - A bit of cleanup, include also /usr/bin/j2sc when we have it. - I don't see the reason why Python files shouldn't be in the