From 29b5832c3d525d04b17dded854c16256419114bf Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Mon, 9 Jul 2012 21:37:14 -0400 Subject: [PATCH 1/2] 3.10.8 --- sources | 2 +- v8.spec | 164 +++++++++++++++++++++++++++++++++----------------------- 2 files changed, 99 insertions(+), 67 deletions(-) diff --git a/sources b/sources index ef53154..746efba 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -bf7d1bd637b9fd28796cdc7c95ce04b5 v8-3.3.10.tar.bz2 +7320523ca2eaafa55d657d8230a6d970 v8-3.10.8.tar.bz2 diff --git a/v8.spec b/v8.spec index 3c2ef0f..06d83a0 100644 --- a/v8.spec +++ b/v8.spec @@ -1,42 +1,39 @@ # 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 +# You (and everyone else) are welcome to use any of my Chromium spec files and +# patches under the terms of the GPLv2 or later. +# You (and everyone else) are welcome to use any of my V8-specific spec files +# and patches under the terms of the BSD license. +# You (and everyone else) may NOT use my spec files or 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 2011 +# Tom Callaway # 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 sominor 10 +%global sobuild 8 %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: 4%{?dist} -Summary: JavaScript Engine -Group: System Environment/Libraries -License: BSD -URL: http://code.google.com/p/v8 +# %%global svnver 20110721svn8716 + +Name: v8 +Version: %{somajor}.%{sominor}.%{sobuild} +Release: 1%{?dist} +Epoch: 1 +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 -# 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 +Source0: v8-%{version}.tar.bz2 +Source1: v8-daily-tarball.sh +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 @@ -44,22 +41,18 @@ 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} = %{epoch}:%{version}-%{release} %description devel Development headers and libraries for v8. %prep %setup -q -n %{name}-%{version} -%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"` +PARSED_OPT_FLAGS=`echo \'$RPM_OPT_FLAGS -fPIC -fno-strict-aliasing -Wno-unused-parameter -Wno-error=strict-overflow -Wno-unused-but-set-variable\'| sed "s/ /',/g" | sed "s/',/', '/g"` sed -i "s|'-O3',|$PARSED_OPT_FLAGS,|g" SConstruct # clear spurious executable bits @@ -69,17 +62,23 @@ find . \( -name \*.cc -o -name \*.h -o -name \*.py \) -a -executable \ chmod -x $FILE done - %build +mkdir -p obj/release/ export GCC_VERSION="44" scons library=shared snapshots=on \ %ifarch x86_64 arch=x64 \ %endif +%ifarch armv7hl armv7hnl +armeabi=hard \ +%endif +%ifarch armv5tel armv6l armv7l +armeabi=soft \ +%endif visibility=default \ env=CCFLAGS:"-fPIC" -%if 0%{?fedora} > 15 +%if 0%{?fedora} >= 16 export ICU_LINK_FLAGS=`pkg-config --libs-only-l icu-i18n` %else export ICU_LINK_FLAGS=`pkg-config --libs-only-l icu` @@ -90,26 +89,34 @@ export ICU_LINK_FLAGS=`pkg-config --libs-only-l icu` 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 + obj/release/allocation.os \ + obj/release/bignum.os \ + obj/release/bignum-dtoa.os \ + obj/release/cached-powers.os \ + obj/release/diy-fp.os \ + obj/release/dtoa.os \ + obj/release/fast-dtoa.os \ + obj/release/fixed-dtoa.os \ + obj/release/preparse-data.os \ + obj/release/preparser-api.os \ + obj/release/preparser.os \ + obj/release/scanner.os \ + obj/release/strtod.os \ + obj/release/token.os \ + obj/release/unicode.os \ + obj/release/utils.os # "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 +%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/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 +g++ $RPM_OPT_FLAGS -fPIC -o libv8.so.%{sover} -shared -Wl,-soname,libv8.so.%{somajor} $RELEASE_BUILD_OBJS obj/release/extensions/*.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 +g++ $RPM_OPT_FLAGS -fPIC -o libv8.so.%{sover} -shared -Wl,-soname,libv8.so.%{somajor} $RELEASE_BUILD_OBJS obj/release/extensions/*.os obj/release/x64/*.os $ICU_LINK_FLAGS %endif # We need to do this so d8 can link against it. @@ -121,12 +128,18 @@ scons d8 \ %ifarch x86_64 arch=x64 \ %endif +%ifarch armv7hl armv7hnl +armeabi=hard \ +%endif +%ifarch armv5tel armv6l armv7l +armeabi=soft \ +%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 +g++ $RPM_OPT_FLAGS -o d8 obj/release/d8.os -lreadline -lpthread -L. -lv8 $ICU_LINK_FLAGS %install rm -rf %{buildroot} @@ -149,16 +162,17 @@ popd chmod -x %{buildroot}%{_includedir}/v8*.h -mkdir -p %{buildroot}%{_includedir}/v8/extensions/experimental/ +mkdir -p %{buildroot}%{_includedir}/v8/extensions/ 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 # install Python JS minifier scripts for nodejs install -d %{buildroot}%{python_sitelib} +sed -i 's|/usr/bin/python2.4|/usr/bin/env python|g' tools/jsmin.py +sed -i 's|/usr/bin/python2.4|/usr/bin/env python|g' tools/js2c.py install -p -m0744 tools/jsmin.py %{buildroot}%{python_sitelib}/ +install -p -m0744 tools/js2c.py %{buildroot}%{python_sitelib}/ chmod -R -x %{buildroot}%{python_sitelib}/*.py* %clean @@ -182,20 +196,38 @@ rm -rf %{buildroot} %{python_sitelib}/j*.py* %changelog -* Sat Aug 27 2011 Matěj Cepl - 3.3.10-4 -- Make jsmin.py working. +* Fri Jul 6 2012 Tom Callaway 1:3.10.8-1 +- update to 3.10.8 (chromium 20) -* 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. +* Tue Jun 12 2012 Tom Callaway 1:3.9.24-1 +- update to 3.9.24 (chromium 19) -* Wed Aug 23 2011 T.C. Hollingsworth 1:3.7.12.6 +- rebuild for icu-49 + +* Fri Mar 30 2012 Dennis Gilmore 1:3.7.12-5 +- make sure the right arm abi is used in the second call of scons + +* Thu Mar 29 2012 Dennis Gilmore 1:3.7.12-4 +- use correct arm macros +- use the correct abis for hard and soft float + +* Tue Mar 20 2012 Tom Callaway 3.7.12-3 +- merge changes from Fedora spec file, sync, add epoch + +* Fri Feb 17 2012 Tom Callaway 3.7.12-2 +- add -Wno-error=strict-overflow for gcc 4.7 (hack, hack, hack) + +* Mon Feb 13 2012 Tom Callaway 3.7.12-1 +- update to 3.7.12 + +* Thu Nov 3 2011 Tom Callaway 3.5.10-1 +- update to 3.5.10 + +* Mon Sep 26 2011 Tom Callaway 3.4.14-2 +- final 3.4.14 tag - include JavaScript minifier scripts in -devel -* Wed Aug 10 2011 Tom Callaway 3.3.10-1 -- tag 3.3.10 - * Fri Jun 10 2011 Tom Callaway 3.2.10-1 - tag 3.2.10 From 22544c5ce2cbfb762decb6627df963c74274b162 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Mon, 10 Dec 2012 15:19:24 -0500 Subject: [PATCH 2/2] 3.13.7.5 --- sources | 2 +- v8.spec | 30 ++++++++++++++++++++---------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/sources b/sources index 746efba..5c74ba3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7320523ca2eaafa55d657d8230a6d970 v8-3.10.8.tar.bz2 +9355d2a122f127471bdec26c4634c890 v8-3.13.7.5.tar.bz2 diff --git a/v8.spec b/v8.spec index 06d83a0..40e327d 100644 --- a/v8.spec +++ b/v8.spec @@ -12,25 +12,24 @@ # For the 1.2 branch, we use 0s here # For 1.3+, we use the three digit versions +# Hey, now there are four digits. What do they mean? Popsicle. %global somajor 3 -%global sominor 10 -%global sobuild 8 +%global sominor 13 +%global sobuild 7 +%global sotiny 5 %global sover %{somajor}.%{sominor}.%{sobuild} # %%global svnver 20110721svn8716 Name: v8 -Version: %{somajor}.%{sominor}.%{sobuild} +Version: %{somajor}.%{sominor}.%{sobuild}.%{sotiny} Release: 1%{?dist} Epoch: 1 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 +Source0: http://commondatastorage.googleapis.com/chromium-browser-official/v8-%{version}.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) ExclusiveArch: %{ix86} x86_64 %{arm} BuildRequires: scons, readline-devel, libicu-devel @@ -124,6 +123,7 @@ 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. +# Don't build d8 shared. Stupid Google. Hate. scons d8 \ %ifarch x86_64 arch=x64 \ @@ -134,12 +134,14 @@ armeabi=hard \ %ifarch armv5tel armv6l armv7l armeabi=soft \ %endif -library=shared snapshots=on console=readline visibility=default || : +snapshots=on console=readline visibility=default || : +# library=shared snapshots=on console=readline visibility=default || : # Sigh. I f*****g hate scons. -rm -rf d8 +# But gyp is worse. +# rm -rf d8 -g++ $RPM_OPT_FLAGS -o d8 obj/release/d8.os -lreadline -lpthread -L. -lv8 $ICU_LINK_FLAGS +# g++ $RPM_OPT_FLAGS -o d8 obj/release/d8.os -lreadline -lpthread -L. -lv8 $ICU_LINK_FLAGS %install rm -rf %{buildroot} @@ -196,6 +198,14 @@ rm -rf %{buildroot} %{python_sitelib}/j*.py* %changelog +* Tue Dec 4 2012 Tom Callaway - 1:3.13.7.5-1 +- update to 3.13.7.5 (needed for chromium 23) +- Resolves multiple security issues (CVE-2012-5120, CVE-2012-5128) +- d8 is now using a static libv8, resolves bz 881973) + +* Sun Jul 22 2012 Fedora Release Engineering - 1:3.10.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + * Fri Jul 6 2012 Tom Callaway 1:3.10.8-1 - update to 3.10.8 (chromium 20)