# Thanks to malcolmlewis for help with this script # Thanks to Tom "spot" Callaway for much of the patchwork # Thanks to jhaygood for most of the icu patch # norootforbuild %define svn_rev 41449 Name: chromium Summary: Google's opens source browser project #' Version: 5.0.353.0 Release: 3%{?_dist_release} License: BSD Group: Productivity/Networking/Web/Browsers Source0: %{name}.%{version}.svn%{svn_rev}.tar.lzma ## The following are included for source reasons only # Custom build tools for chromium, hammer is a fancy front-end for scons Source1: http://src.chromium.org/svn/trunk/tools/depot_tools.tar.gz %{?nosrc:NoSource: 0} %{?nosrc:NoSource: 1} # Script used to create the tar.lzma archive from the daily tarball downloadable at http://build.chromium.org/buildbot/archives/ Source2: repack_chromium_archive.sh # Script used to create the tar.lzma archive from a checked out source Source3: pack_chromium_source.sh Source10: chromium.desktop # Patch template which adds vendor to user agent ##!!Source20: chromium-vendor.patch.in Source20: chromium-vendor-vine.patch.in ##!!Source30: master_preferences Source30: master_preferences.vine Provides: chromium-browser = %{version} #Obsoletes: chromium-browser < %{version} ## Start Patches # Many changes to the gyp system so we can use system libraries # My first ever patch set. I hope I did well. Patch3: chromium-gyp-system-02-icu.patch Patch4: chromium-no-sqlite-debug.patch Patch5: chromium-gyp-system-04-nss-nspr.patch Patch7: chromium-codechanges-nss-nspr.patch Patch8: chromium-codechanges-zlib.patch Patch9: chromium-drop-sse.patch Patch10: chromium-fix-wrapper.patch Patch11: chromium-fix-home-kde4-path.patch Patch12: chromium-no-test-sources.patch Patch13: chromium-no-courgette.patch Patch14: chromium-master-prefs-path.patch # Vine #Patch40: chromium-5.0.353-no-ffmpeg-vine.patch ## Gentoo patches # Allow use of MP3/MPEG-4 audio/video tags with our system ffmpeg Patch50: http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/www-client/chromium/files/chromium-20100122-ubuntu-html5-video-mimetypes.patch BuildRequires: gcc gcc-c++ BuildRequires: libstdc++ libstdc++-devel BuildRequires: libevent ##!!BuildRequires: pkg-config BuildRequires: python ##!!BuildRequires: python-xml BuildRequires: python-pyxml BuildRequires: perl bison flex gperf ##!!BuildRequires: wdiff ##!!BuildRequires: update-desktop-files BuildRequires: desktop-file-utils BuildRequires: lzma ##!!BuildRequires: mozilla-nss-devel BuildRequires: nss-devel ##!!BuildRequires: alsa-devel BuildRequires: alsa-lib-devel BuildRequires: gtk2-devel BuildRequires: glib2-devel BuildRequires: cairo-devel >= 1.6 ##!!BuildRequires: mozilla-nspr-devel BuildRequires: nspr-devel ##!!BuildRequires: gconf2-devel BuildRequires: GConf2-devel BuildRequires: freetype2-devel ##!!BuildRequires: dbus-1-devel BuildRequires: dbus-devel BuildRequires: libxslt-devel BuildRequires: libxml2-devel BuildRequires: libjpeg-devel BuildRequires: zlib-devel BuildRequires: libpng-devel ##!!BuildRequires: libbz2-devel BuildRequires: bzip2-devel %if %{?_dist_release} == "vl6" BuildRequires: fdupes %endif ##!!BuildRequires: libexpat-devel BuildRequires: expat-devel ##!!BuildRequires: Mesa-devel BuildRequires: mesa-libGLU-devel %{?with_system_icu:BuildRequires: libicu-devel >= 4.0} BuildRequires: libevent-devel ##Vine Linux BuildRequires: libXScrnSaver-devel #BuildRequires: gle-devel #BuildRequires: webkit-gtk-devel #BuildRequires: scons %ifarch x86_64 Requires: nspluginwrapper %endif ##!!Requires: alsa Requires: alsa-lib # shouldn't be required to name all dependencies # Requires: mozilla-nss mozilla-nspr gtk2 glib2 cairo >= 1.6 freetype2 dbus-1 alsa v8 >= 1.3.15 BuildRoot: %{_tmppath}/%{name}-%{version}-root %description Chromium is the open-source project behind Google Chrome. We invite you to join us in our effort to help build a safer, faster, and more stable way for all Internet users to experience the web, and to create a powerful platform for developing a new generation of web applications. %prep [ -d %{name} ] && %__rm -rf %{name} lzma -cd %{SOURCE0} | tar xf - %setup -D -T -n %{name} # use system libicu only if >= 4.0 %{?with_system_icu:%patch3 -p1} %patch4 -p1 %patch5 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 #%patch40 -p1 -b .vine %patch50 -p0 -b .html5 # apply vendor patch after substitution %__sed "s:RPM_VERSION:%{version}-%{release}:" %{SOURCE20} | patch -p0 %build ## create make files PARSED_OPT_FLAGS=`echo \'$RPM_OPT_FLAGS -DUSE_SYSTEM_LIBEVENT -fPIC -fno-strict-aliasing \' | %__sed "s/ /',/g" | %__sed "s/',/', '/g"` for i in src/build/common.gypi; do %__sed -i "s|'-march=pentium4',||g" $i %__sed -i "s|'-msse2',||g" $i %__sed -i "s|'-mfpmath=sse',||g" $i %__sed -i "s|'-O<(debug_optimize)',||g" $i %__sed -i "s|'-m32',||g" $i %__sed -i "s|'-fno-exceptions',|$PARSED_OPT_FLAGS|g" $i %__sed -i "s|'-Werror'|'-Wno-error'|g" $i done # ' pushd src ./build/gyp_chromium -f make build/all.gyp \ -Duse_system_ffmpeg=1 \ -Duse_system_zlib=1 \ -Duse_system_libpng=1 \ -Duse_system_bzip2=1 \ -Duse_system_libjpeg=1 \ -Duse_system_libxml=1 \ -Duse_system_libxslt=1 \ -Duse_system_libevent=1 \ %{?with_system_icu:-Duse_system_icu=1} \ %{!?with_system_icu:-Duse_system_icu=0} \ %ifarch %{ix86} -Dtarget_arch=ia32 \ %endif %ifarch x86_64 -Dtarget_arch=x64 \ %endif %if %{?_dist_release} == "vl6" -Dno_strict_aliasing=1 -Dgcc_version=44 \ %endif -Drelease_extra_cflags=-fPIC \ ; #make -r %{?jobs:-j%jobs} chrome BUILDTYPE=Release #%__make -r -j5 chrome BUILDTYPE=Release %__make %{?_smp_mflags} chrome BUILDTYPE=Release %install %{__rm} -rf %{buildroot} ## Create install directories %{__mkdir_p} %{buildroot}%{_libdir}/%{name} %{__mkdir_p} %{buildroot}%{_bindir} %{__mkdir_p} %{buildroot}%{_datadir}/applications %{__mkdir_p} %{buildroot}%{_datadir}/pixmaps %{__mkdir_p} %{buildroot}%{_mandir}/man1 %{__mkdir_p} %{buildroot}%{_sysconfdir}/%{name} # chromium 'make' deposits us back at the top level build directory pushd src/out/Release ls -l # clean somechromium-codechanges-zlib.patch # clean debug junk %{__rm} -rf obj/ mksnapshot obj.target obj.host find ./ -type f -name '*.d' | while read i; do %__rm -f $i; done # clean NaCl stuff... maybe NaCl will be in its own package in the future. %{__rm} -f ncdecode_table ncdecode_tablegen # clean other temporary binaries used in the compilation of chromium %{__rm} -f protoc xdg-settings %{__cp} -rf * %{buildroot}%{_libdir}/%{name}/ # Man page [ ! -f %{name}.1 ] && %{__mv} chrome.1 %{name}.1 %__install -m 0644 %{name}.1 %{buildroot}%{_mandir}/man1 # Add startup file with plugins enabled %{__cat} > %{buildroot}%{_bindir}/%{name} < 5.0.353.0-3 - fixed to install master_preferences - dropped chromium-5.0.353-no-ffmpeg-vine.patch * Tue Mar 16 2010 Munehiro Yamamoto 5.0.353.0-2 - applied chromium-5.0.353-no-ffmpeg-vine.patch * Tue Mar 16 2010 Munehiro Yamamoto 5.0.353.0-1 - updated to snapshot 5.0.353.0 r41449 * Wed Mar 10 2010 bgmerrell@novell.com - Add master_preferences source file and install it to /etc/chromium. - Create a new patch (chromium-master-prefs-path.patch) which tells chromium to look in /etc/chromium for the master_preferences file (instead of looking in the default directory, which is the same directory as the 'chrome' binary). * Sun Feb 21 2010 Munehiro Yamamoto 5.0.335.0-1 - updated to snapshot 5.0.335.0 r39556 * Sat Feb 20 2010 Munehiro Yamamoto 5.0.330.0-2 - applied chromium-20100122-ubuntu-html5-video-mimetypes.patch from Gentoo * Wed Feb 17 2010 Munehiro Yamamoto 5.0.330.0-1 - updated to snapshot 5.0.330.0 r39074 * Wed Feb 17 2010 Munehiro Yamamoto 5.0.329.0-5 - use_system_ffmpeg * Tue Feb 16 2010 Munehiro Yamamoto 5.0.329.0-4 - added Requires: nspluginwrapper - fixed a symbolic link of plugins directory with nspluginwrapper * Tue Feb 16 2010 Munehiro Yamamoto 5.0.329.0-3 - replaced %%{SOUECE20} to chromium-vendor-vine.patch.in * Tue Feb 16 2010 Munehiro Yamamoto 5.0.329.0-2 - added BuildRequires: mesa-libGLU-devel - added BuildRequires: libstdc++34 libstdc++34-devel for vl5 * Tue Feb 16 2010 Munehiro Yamamoto 5.0.329.0-1 - built based on chromium-5.0.329.0-167.1.src.rpm of OpenSuse * Sun Nov 29 2009 - tittiatcoke@gmail.com - 4.0.260.0 - Update to 4.0.260 * Fri Nov 27 2009 - tittiatcoke@gmail.com - 4.0.259.0 - Update to 4.0.259 * Thu Nov 26 2009 - tittiatcoke@gmail.com - 4.0.258.0 - Update to 4.0.258 * Tue Nov 24 2009 - tittatcoke@gmai.com - 4.0.257.0 - In order to complete prevent the wrong v8 version to be used, the Chromium build has been changed to having an built-in v8 * Tue Nov 24 2009 - dbuck@example.com - 4.0.257.0 - Re-base patches. Fixed a few patch errors. Rename some patches to better correspond with function. Removed some patches. - Minor SPEC changes. I changed the v8 requirement to be exact, instead of greater than a specific version. * Sat Oct 24 2009 - Pavol Rusnak - 4.0.223.5 - don't create desktop files in wrapper, fix LD_LIBRARY_PATH (chromium-fix-wrapper.patch) * Tue Oct 20 2009 - Raymond Wooninck >tittiatcoke@gmail.com> - 4.0.223.5 - update to newer svn snapshot + Obsoletes fwrite patch (included upstream) * Fri Oct 16 2009 - Raymond Wooninck - 4.0.223.2 - update to newer svn snapshot + Requires newer version of v8 * Thu Oct 15 2009 - Pavol Rusnak - 4.0.222.6 - do not force SSE on x86 (drop-sse.patch) * Tue Oct 13 2009 - Raymond Wooninck - 4.0.222.6 - Update to newer svn snapshot - Fixed spec file in order to build - Included patch to build with system zlib * Mon Oct 12 2009 - Pavol Rusnak 4.0.222.2 - package renamed to chromium - cleaned up spec file * Tue Oct 6 2009 - dbuck - 4.0.222.2 - v8 is now built as a separate package, and is required - included many patches to use system libraries: v8, icu, libxml2, libxslt, libjpeg, libpng, libevent, bzip2, zlib, nspr, nss * Sun Oct 1 2009 - dbuck - 4.0.221.1 - included a newer DEP than is in svn, native_client@823. So things should compile cleanly now * Sun Aug 31 2009 - dbuck - 4.0.204.0 - initial build #% changelog * Sun Jan 24 2010 prusnak@suse.cz - added vendor to user agent (chromium-vendor.patch.in) * Sun Nov 29 2009 prusnak@suse.cz - added --enable-sync to wrapper to enable bookmark sync * Fri Nov 13 2009 tittiatcoke@gmail.com - update to 247.0 svn 31928 * Fri Oct 30 2009 tittiatcoke@gmail.com - update to 229.0 svn 30454 + Fix regression where popups and app frames lost their titlebars. + Makes it so that when a folder is open on the bookmark bar and the mouse moves over another folder, the menu for that folder is shown. + Lazily create the find bar. + Polish to the gmail checker sample. * New, crisper icons that are exactly 19x19 * Add a loading animation at the beginning before Gmail responds. * Fix a bug where we sometimes don't update the UI after a logout/login cycle. + Refactor widget methods to support desktop notifications, including GTK stubs. + Find-in-page should not ding while deleting characters. + Add SSL wrapper for linux and mac. This allows notifier to use chrome's SSL layer instead of OpenSSL. + Add three of the six extensions to PAC that Internet Explorer supports. + WebSocket support in chromium. (Run with --enable-web-sockets enables WebSocket features.) + Do not allow GTK File Chooser dialogs to return directories. + Fix the notifier SSL layer to make notifications work for Linux Bookmark sync. + linux: don't override mouse selection behavior in omnibox * Sun Oct 25 2009 tittiatcoke@gmail.com - Update to 224.4 svn 30027 + First cut at new page and browser action docs based on new API. Deleted old stuff. + Add suppression for new memory leak caused by WebKit merge 49830:49844 + Cleanup: change PIDs to base::ProcessId (or pid_t, as appropriate) + Minimize dependency of user scripts + Fixup the flip_framer eof-handling semantics now that we have the FIN bit in place + app depends on x11 because of active_window_watcher_x + Adding two images for the new Extension managment UI + Removing hard-coded Chrome Frame output path + Rearrange clipboard code + Fix crash bug when attempting to download a url with unsupported scheme, e.g. 'data:', by 'Alt + Click' + GTK: Change text for extension download UI + Ignore invalid urls on command line + Make dropped tabs animate from where they were dropped. + Make room for the full width of the tab placeholder. + Make tab dragging as smooth as glass. + Remove an annoying NOTIMPLEMNETED + Extensions: guarantee removal of BROWSER_WINDOW_READY registration + If we're in the middle of a drag, don't allow the user to middle click to close or right click for the context menu + "Fix" a NOTIMPLEMENTED on Linux by using the default password store + Remove +x bit from files that shouldn't have it + Fold first 3 channels of multichannel instead of 5. Use fixed point + Adding new image needed for the managment UI + Fix a race bug where content scripts would not apply to the first page load + Make escape remove a bookmark if it's just been added (but not if it already existed) + Fix bubbles deactivating the opaque frame + Allow ESC to cancel ALT+SHIFT+T in Toolbar + ake all pepper plugins default to windowless and transparent + Add styles for printing + Implement the new extension management UI + Add support for to automation interface load install and load extensions + GTK: theme the info bar border + Update V8 to version 1.3.16.1 + Introduce WebSecurityPolicy for security related methods + New button scheme...borders are separate from the inner contents so that they can be highlighted / depressed independently + When opening Chrome maximized with an application window already running, the Chrome window was not activated + Fix compatibility problems with FileZilla FTP Server + Remove the extension shelf on Linux + Fix the proxy host and port string to start with http:// if it does not already + Enable HTML5 databases for all extension renderer processes