# - HEAD - stable version
# - DEVEL - development version
# - WEEKLY - weekly development version
-
-# TODO:
-# - move translations into a separate, noarch package
-# - drop those dozens of if statements and use branches for different sources
-# [ kestrel already on DEVEL ]
+# - NEXT - opera next
+#
+# NOTE: to avoid creating unreadable/unmaintainable spec:
+# - don't put static version here, create STATIC branch for that for example
+# - don't create useless bconds that for example limit SourceX: to current arch only
#
-%bcond_without shared # static or shared version
-%bcond_without distributable # distributable or not
-%bcond_without incall # include all tarballs into src.rpm (but splitted into shared/static)
-%bcond_with snap # snap version !DROPME!
-%bcond_with weekly # weekly snapshot version !DROPME!
-
-%ifarch sparc sparcv9
-%undefine with_shared
-%endif
-
-%if %{with weekly}
-%define ver 9.23
-%define sver %{ver}
-%define fix %{nil}
-%define dirrel 20070809
-%define reltype %{nil}
-%define magicstr 660
-%define with_snap 1
-%else
-%if %{with snap}
-%define ver 9.50
-%define sver %{ver}
-%define fix %{nil}
-%define dirrel 20070903
-%define reltype Alpha-1
-%define magicstr 1567
-%else
-%define ver 9.23
-%define sver 9.23
-%define fix %{nil}
-%define dirrel 20070809
-%define reltype final
-%define magicstr 660
-%endif
-%endif
-
-%define shver %(echo %{ver} | tr -d .)%{fix}
-%define x86_shared_rel %{dirrel}.5
-%define x86_static_rel %{dirrel}.1
-%define sparc_shared_rel %{dirrel}.2
-%define sparc_static_rel %{dirrel}.1
-%define ppc_shared_rel %{dirrel}.3
-%define ppc_static_rel %{dirrel}.1
-%if %{with shared}
-%define type shared
-# We should be able to build src.rpm also on not supported archs
-%define rel %{x86_shared_rel}
-%ifarch sparc sparcv9
-#%%define rel %{sparc_shared_rel}
-%define rel %{sparc_static_rel}
-%else
-%ifarch ppc
-%define rel %{ppc_shared_rel}
-%endif
-%endif
-%else
-%define type static
-%define rel %{x86_static_rel}
-%ifarch sparc sparcv9
-%define rel %{sparc_static_rel}
-%else
-%ifarch ppc
-%define rel %{ppc_static_rel}
-%endif
-%endif
-%endif
-
-# define to 0 and then redefine to avoid
-# not defined macros
-%define need_ix86_shared_snap 0
-%define need_sparc_shared_snap 0
-%define need_ppc_shared_snap 0
-%define need_ix86_static_snap 0
-%define need_sparc_static_snap 0
-%define need_ppc_static_snap 0
-
-%define need_ix86_shared 0
-%define need_sparc_shared 0
-%define need_ppc_shared 0
-%define need_ix86_static 0
-%define need_sparc_static 0
-%define need_ppc_static 0
-
-%if %{with incall}
-# with incall? [if]
-%if %{with snap}
-# with snap? [if]
-%if %{with shared}
-# with shared? [if]
-%define need_ix86_shared_snap 1
-%define need_sparc_shared_snap 0
-%define need_ppc_shared_snap 1
-%else
-# with shared: [else]
-%define need_ix86_static_snap 1
-%define need_sparc_static_snap 1
-%define need_ppc_static_snap 1
-%endif
-# with shared; [endif]
-%else
-# with snap: [else]
-%if %{with shared}
-# with shared? [if]
-%define need_ix86_shared 1
-#%%define need_sparc_shared 1
-%define need_sparc_static 1
-%define need_ppc_shared 1
-%else
-# with shared: [else]
-%define need_ix86_static 1
-%define need_sparc_static 1
-%define need_ppc_static 1
-%endif
-# with shared; [endif]
-%endif
-# with snap; [endif]
-%else
-# with incall: [else]
-%ifarch %{ix86}
-# is ix86? [if]
-%if %{with snap}
-# with snap? [if]
-%if %{with shared}
-# with shared? [if]
-%define need_ix86_shared_snap 1
-%else
-# with shared: [else]
-%define need_ix86_static_snap 1
-%endif
-# with shared; [endif]
-%else
-# with snap: [else]
-%if %{with shared}
-# with shared? [if]
-%define need_ix86_shared 1
-%else
-# with shared: [else]
-%define need_ix86_static 1
-%endif
-# with shared; [endif]
-%endif
-# with snap; [endif]
-%else
-# is ix86: [else]
-%ifarch sparc sparc64
-# is sparc? [if]
-%if %{with snap}
-# with snap? [if]
-%if %{with shared}
-# with shared? [if]
-%define need_sparc_shared_snap 1
-%else
-# with shared: [else]
-%define need_sparc_static_snap 1
-%endif
-# with shared; [endif]
-%else
-# with snap: [else]
-%if %{with shared}
-# with shared? [if]
-#%%define need_sparc_shared 1
-%define need_sparc_static 1
-%else
-# with shared: [else]
-%define need_sparc_static 1
-%endif
-# with shared; [endif]
-%endif
-# with snap; [endif]
-%else
-# is sparc: [else]
-%ifarch ppc
-# is ppc? [if]
-%if %{with snap}
-# with snap? [if]
-%if %{with shared}
-# with shared? [if]
-%define need_ppc_shared_snap 1
-%else
-# with shared: [else]
-%define need_ppc_static_snap 1
-%endif
-# with shared; [endif]
-%else
-# with snap: [else]
-%if %{with shared}
-# with shared? [if]
-%define need_ppc_shared 1
-%else
-# with shared: [else]
-%define need_ppc_static 1
-%endif
-# with shared; [endif]
-%endif
-# with snap; [endif]
-%endif
-# is ppc; [endif]
-%endif
-# is sparc; [endif]
-%endif
-# is ix86; [endif]
-%endif
-# with incall; [endif]
-
-%if %{with weekly}
-%define need_ppc_shared_snap 0
-%define need_ppc_static_snap 0
-%define need_sparc_shared_snap 0
-%define need_sparc_static_snap 0
-%endif
-%define _rel 1
-Summary: World fastest web browser
+Summary: Opera browser
+Summary(hu.UTF-8): A világ leggyorsabb webböngészője
Summary(pl.UTF-8): Najszybsza przeglądarka WWW na świecie
Name: opera
-Version: %{ver}%{fix}
-Release: %{?with_snap:1.%{rel}.}%{_rel}
+Version: 31.0.1889.174
+Release: 0.7
Epoch: 2
-License: Distributable for PLD until 31 Dec 2006 - http://distribute.opera.com/ (otherwise restricted, see file LICENSE)
+License: Distributable
Group: X11/Applications/Networking
-
-%if %{need_ix86_static}
-Source0: ftp://ftp.opera.com/pub/opera/linux/%{shver}/%{reltype}/en/i386/static/%{name}-%{sver}-%{x86_static_rel}-static-qt.i386-en.tar.bz2
-# Source0-md5: 0c721abff854df6c8ec7746956a37f55
-%{!?with_distributable:NoSource: 0}
-%endif
-
-%if %{need_ix86_static_snap}
-%if %{with weekly}
-Source30100: http://snapshot.opera.com/unix/Weekly-%{magicstr}/intel-linux/%{name}-%{sver}-%{x86_static_rel}-static-qt.i386-en-%{magicstr}.tar.bz2
-%else
-Source100: http://snapshot.opera.com/unix/%{ver}-%{reltype}/intel-linux/%{name}-%{sver}-%{x86_static_rel}-static-qt.i386-en-%{magicstr}.tar.bz2
-%endif
-%{!?with_distributable:NoSource: 100}
-%endif
-
-%if %{need_sparc_static}
-Source1: ftp://ftp.opera.com/pub/opera/linux/%{shver}/%{reltype}/en/sparc/static/%{name}-%{sver}-%{sparc_static_rel}-static-qt.sparc-en.tar.bz2
-# Source1-md5: 98a84755df7d74812e8b8fa20d09d929
-%{!?with_distributable:NoSource: 1}
-%endif
-
-%if %{need_sparc_static_snap}
-Source101: http://snapshot.opera.com/unix/%{ver}-%{reltype}/%{magicstr}/sparc-linux/%{name}-%{sver}-%{sparc_static_rel}-static-qt.sparc-en.tar.bz2
-# Source101-md5: 913ccb28106f9f5acd3d94c8dc71ae1
-%{!?with_distributable:NoSource: 101}
-%endif
-
-%if %{need_ppc_static}
-Source2: ftp://ftp.opera.com/pub/opera/linux/%{shver}/%{reltype}/en/ppc/static/%{name}-%{sver}-%{ppc_static_rel}-static-qt.ppc-en.tar.bz2
-# Source2-md5: 132fa2d85a2e0c2840b8bf2d27cfc93d
-%{!?with_distributable:NoSource: 2}
-%endif
-
-%if %{need_ppc_static_snap}
-%if %{with weekly}
-Source30102: http://snapshot.opera.com/unix/Weekly-%{magicstr}/ppc-linux/%{name}-%{sver}-%{ppc_static_rel}-static-qt.ppc-en-%{magicstr}.tar.bz2
-%else
-Source102: http://snapshot.opera.com/unix/%{ver}-%{reltype}/%{magicstr}/ppc-linux/%{name}-%{sver}-%{ppc_static_rel}-static-qt.ppc-en.tar.bz2
-%endif
-%{!?with_distributable:NoSource: 102}
-%endif
-
-%if %{need_ix86_shared}
-Source20: ftp://ftp.opera.com/pub/opera/linux/%{shver}/%{reltype}/en/i386/shared/%{name}-%{sver}-%{x86_shared_rel}-shared-qt.i386-en.tar.bz2
-# Source20-md5: fe3c699c4509788276a94e325cd1bc5b
-%{!?with_distributable:NoSource: 20}
-%endif
-
-%if %{need_ix86_shared_snap}
-%if %{with weekly}
-Source301020: http://snapshot.opera.com/unix/Weekly-%{magicstr}/intel-linux/%{name}-%{sver}-%{x86_shared_rel}-shared-qt.i386-en-%{magicstr}.tar.bz2
-# Source301020-md5: fe3c699c4509788276a94e325cd1bc5b
-%else
-Source1020: http://snapshot.opera.com/unix/%{ver}-%{reltype}/intel-linux/%{name}-%{sver}-%{x86_shared_rel}-shared-qt.i386-%{magicstr}.tar.bz2
-# Source1020-md5: 8655d3c4623db40076507f03987158ae
-%{!?with_distributable:NoSource: 1020}
-%endif
-%endif
-
-%if %{need_sparc_shared}
-Source21: ftp://ftp.opera.com/pub/opera/linux/%{shver}/%{reltype}/en/sparc/shared/gcc-2.95/%{name}-%{sver}-%{sparc_shared_rel}-shared-qt.sparc-en.tar.bz2
-# Source21-md5: 883df8058672cf52678a07d714dcfce
-%{!?with_distributable:NoSource: 21}
-%endif
-
-%if %{need_sparc_shared_snap}
-Source1021: http://snapshot.opera.com/unix/%{ver}-%{reltype}/%{magicstr}/sparc-linux/%{name}-%{sver}-%{sparc_shared_rel}-shared-qt.sparc-en.tar.bz2
-# Source1021-md5: e190021f5530de3f711006cd9f6bb339
-%{!?with_distributable:NoSource: 1021}
-%endif
-
-%if %{need_ppc_shared}
-Source22: ftp://ftp.opera.com/pub/opera/linux/%{shver}/%{reltype}/en/ppc/shared/gcc-2.95/%{name}-%{sver}-%{ppc_shared_rel}-shared-qt.ppc-en.tar.bz2
-# Source22-md5: 2f9bf50540fac7ed63f2984a13b1010d
-%{!?with_distributable:NoSource: 22}
-%endif
-
-%if %{need_ppc_shared_snap}
-%if %{with weekly}
-Source301022: http://snapshot.opera.com/unix/Weekly-%{magicstr}/ppc-linux/%{name}-%{sver}-%{ppc_shared_rel}-shared-qt.ppc-en-%{magicstr}.tar.bz2
-# Source301022-md5: 65293d788e18d0c23cccac71b9fe567c
-%else
-Source1022: http://snapshot.opera.com/unix/%{ver}-%{reltype}/ppc-linux/%{name}-%{sver}-%{ppc_shared_rel}-shared-qt.ppc-%{magicstr}.tar.bz2
-# Source1022-md5: 94b4d77cdcdf42a40ebe2d682892bb9a
-%{!?with_distributable:NoSource: 1022}
-%endif
-%endif
-
-%ifarch %{x8664}
-Source23: http://snapshot.opera.com/unix/9.50-Alpha-1/x86_64-linux/%{name}-%{version}-%{dirrel}.2-shared-qt.x86_64-%{magicstr}.tar.bz2
-# Source23-md5: 40b850632dbb729a0bb16a1c450d97e5
-%{!?with_distributable:NoSource: 23}
-%endif
-
-Source4: %{name}.desktop
-Patch0: %{name}-wrapper.patch
+Source10: ftp://ftp.opera.com/pub/opera/desktop/%{version}/linux/%{name}-stable_%{version}_amd64.deb
+# Source10-md5: 71d13017ca60bbf4619dc3faf58fd94e
+Source0: %{name}.desktop
+Source1: %{name}.sh
+Patch1: %{name}-desktop.patch
+Patch2: pepper_flash_config.patch
URL: http://www.opera.com/
+BuildRequires: rpm >= 4.4.9-56
BuildRequires: rpmbuild(macros) >= 1.356
BuildRequires: sed >= 4.0
+BuildRequires: xz
+Requires(post,postun): gtk-update-icon-cache
+Requires(post,postun): hicolor-icon-theme
Requires: browser-plugins >= 2.0
-Requires: freetype >= 2
+Requires: desktop-file-utils
Provides: wwwbrowser
-ExclusiveArch: %{ix86} %{x8664} ppc sparc sparcv9
+Obsoletes: opera-i18n
+ExclusiveArch: %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _plugindir %{_libdir}/opera/plugins
-%define _operadocdir %{_docdir}/%{name}-%{ver}
+%define _enable_debug_packages 0
+%define no_install_post_strip 1
%description
Opera is world fastest web browser. It supports most of nowaday
-extensions of HTML. And it is quite stable. This version is %{?with_shared:shared}%{!?with_shared:statically}
-linked with Qt.
+extensions of HTML. And it is quite stable. This version is linked
+with shared version of Qt.
+
+%description -l hu.UTF-8
+Opera a világ leggyorsabb webböngészője. A manapság elterjedt
+HTML-kiterjesztések túlnyomó többségét támogatja. És elég stabili is.
+Ez a verzió a Qt megosztott verziójához linkelődik.
%description -l pl.UTF-8
Opera jest najszybszą przeglądarką WWW na świecie. Obsługuje większość
dzisiejszych rozszerzeń HTML-a. Dodatkowo jest w miarę stabilna. Ta
-wersja jest skonsolidowana %{?with_shared:dynamicznie}%{!?with_shared:statycznie} z Qt.
+wersja jest skonsolidowana dynamicznie z Qt.
%prep
-%ifarch %{ix86}
-%setup -q -T -b %{?with_weekly:30}%{?with_snap:10}%{?with_shared:2}0 -n %{name}-%{sver}-%{rel}-%{type}-qt.i386%{!?with_snap:-en}%{?magicstr:-%{magicstr}}
-%endif
+%setup -qcT
%ifarch %{x8664}
-%setup -q -T -b 23 -n %{name}-%{version}-%{dirrel}.2-shared-qt.x86_64-%{magicstr}
-%endif
-%ifarch sparc sparcv9
-%setup -q -T -b %{?with_weekly:30}%{?with_snap:10}%{?with_shared:2}1 -n %{name}-%{sver}-%{rel}-%{type}-qt.sparc%{!?with_snap:-en}-en%{?magicstr:-%{magicstr}}
-%endif
-%ifarch ppc
-%setup -q -T -b %{?with_weekly:30}%{?with_snap:10}%{?with_shared:2}2 -n %{name}-%{sver}-%{rel}-%{type}-qt.ppc-en%{!?with_snap:-en}%{?magicstr:-%{magicstr}}
+SOURCE=%{S:10}
%endif
-%patch0 -p1
+
+ar x $SOURCE
+tar xf control.tar.gz && rm control.tar.gz
+tar xf data.tar.xz && rm data.tar.xz
+
+version=$(awk '/Version:/{print $2}' control)
+test $version = %{version}
+
+mv usr/lib/*/%{name}/* .
+mv usr/share/icons .
+mv usr/share/pixmaps/%{name}.xpm .
+mv usr/share/applications/%{name}.desktop .
+mv usr/share/doc/opera-stable/* .
+
+%patch1 -p1
+%patch2 -p1
+
+sed -e 's#/usr/lib/opera#%{_libdir}/opera#g' %{_sourcedir}/%{name}.sh > %{name}.sh
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_sysconfdir}}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_bindir},%{_libdir}/%{name}/plugins,%{_datadir}/%{name}} \
+ $RPM_BUILD_ROOT{%{_pixmapsdir},%{_iconsdir},%{_desktopdir}}
%browser_plugins_add_browser %{name} -p %{_libdir}/%{name}/plugins -b <<'EOF'
# opera does not use for .xpt files
*.xpt
-
-# use mplayerplug-in-opera instead
-mplayerplug-in*
-
-# opera uses libjava.so to run java
-libjavaplugin_oji.so
EOF
-sh install.sh \
- DESTDIR=$RPM_BUILD_ROOT \
- --prefix=%{_prefix} \
- --exec_prefix=%{_libdir}/%{name}/bin \
- --plugindir=%{_libdir}/%{name}/plugins \
- --docdir=%{_operadocdir}
-
-# install in kde etc.
-install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}
-
-%if %{with snap}
-install etc/* $RPM_BUILD_ROOT%{_sysconfdir}
-install usr/share/pixmaps/*.xpm $RPM_BUILD_ROOT%{_pixmapsdir}
-%else
-mv -f $RPM_BUILD_ROOT%{_datadir}/%{name}/config/* $RPM_BUILD_ROOT%{_sysconfdir}
-install images/opera.xpm $RPM_BUILD_ROOT%{_pixmapsdir}
-%endif
+cp -a localization resources $RPM_BUILD_ROOT%{_datadir}/%{name}
+cp -p *.pak *.bin *.dat $RPM_BUILD_ROOT%{_libdir}/%{name}
+cp -a lib $RPM_BUILD_ROOT%{_libdir}/%{name}
+ln -s %{_datadir}/%{name}/localization $RPM_BUILD_ROOT%{_libdir}/%{name}/localization
+ln -s %{_datadir}/%{name}/resources $RPM_BUILD_ROOT%{_libdir}/%{name}/resources
+install -p %{name} $RPM_BUILD_ROOT%{_libdir}/%{name}
+install -p %{name}_sandbox $RPM_BUILD_ROOT%{_libdir}/%{name}
+install -p %{name}_crashreporter $RPM_BUILD_ROOT%{_libdir}/%{name}
+install -p %{name}_autoupdate $RPM_BUILD_ROOT%{_libdir}/%{name}
+cp -p %{name}_autoupdate.* $RPM_BUILD_ROOT%{_libdir}/%{name}
+install -p %{name}.sh $RPM_BUILD_ROOT%{_bindir}/%{name}
+cp -p %{name}.desktop $RPM_BUILD_ROOT%{_desktopdir}
+cp -a icons/* $RPM_BUILD_ROOT%{_iconsdir}
%clean
rm -rf $RPM_BUILD_ROOT
%post
+%update_icon_cache hicolor
+%update_desktop_database
%update_browser_plugins
%postun
if [ "$1" = 0 ]; then
+ %update_icon_cache hicolor
+ %update_desktop_database
%update_browser_plugins
fi
%files
%defattr(644,root,root,755)
-%doc LICENSE
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/opera*rc*
-
-# browser plugins v2
+%doc copyright
%{_browserpluginsconfdir}/browsers.d/%{name}.*
%config(noreplace) %verify(not md5 mtime size) %{_browserpluginsconfdir}/blacklist.d/%{name}.*.blacklist
-%attr(755,root,root) %{_bindir}/*
-%dir %{_libdir}/opera
-%dir %{_libdir}/opera/bin
-%attr(755,root,root) %{_libdir}/opera/bin/*
-%dir %{_plugindir}
-%if ! %{with snap}
-%attr(755,root,root) %{_plugindir}/*
-%{_datadir}/opera/images
-%endif
-%dir %{_datadir}/opera
-%{_datadir}/opera/*.*
-%{_datadir}/opera/ini
-%{_datadir}/opera/java
-%{_datadir}/opera/skin
-%{_datadir}/opera/styles
-%dir %{_datadir}/opera/locale
-%{_datadir}/opera/locale/en
-%{_datadir}/opera/locale/english.lng
+%attr(755,root,root) %{_bindir}/%{name}
%{_desktopdir}/*.desktop
-%{_mandir}/man1/opera.1*
-%{_pixmapsdir}/opera.xpm
+%{_iconsdir}/hicolor/*/*/*.png
+
+%dir %{_datadir}/%{name}
+%dir %{_datadir}/%{name}/resources
+%{_datadir}/%{name}/resources/*.ico
+%{_datadir}/%{name}/resources/*.json
+%{_datadir}/%{name}/resources/dictionaries.xml
+%{_datadir}/%{name}/resources/inspector
+%{_datadir}/%{name}/localization
+
+%dir %{_libdir}/%{name}
+%{_libdir}/%{name}/icudtl.dat
+%{_libdir}/%{name}/natives_blob.bin
+%{_libdir}/%{name}/snapshot_blob.bin
+%{_libdir}/%{name}/*.pak
+%{_libdir}/%{name}/localization
+%{_libdir}/%{name}/resources
+%dir %{_libdir}/%{name}/lib
+%attr(755,root,root) %{_libdir}/%{name}/lib/libffmpeg.so.*
+%attr(755,root,root) %{_libdir}/%{name}/lib/libmalloc_wrapper.so
+%dir %{_libdir}/%{name}/plugins
+
+%attr(755,root,root) %{_libdir}/%{name}/%{name}
+%attr(755,root,root) %{_libdir}/%{name}/%{name}_crashreporter
+
+%attr(755,root,root) %{_libdir}/%{name}/%{name}_autoupdate
+%{_libdir}/%{name}/%{name}_autoupdate.licenses
+%{_libdir}/%{name}/%{name}_autoupdate.version
+
+# These unique permissions are intentional and necessary for the sandboxing
+%attr(4555,root,root) %{_libdir}/%{name}/%{name}_sandbox