-# TODO:
-# - move translations into a separate, noarch package
+# BRANCHES:
+# - HEAD - stable version
+# - DEVEL - development version
+# - WEEKLY - weekly development version
+# - 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
-
-%ifarch sparc64 sparc
-%undefine with_shared
-%endif
-
-%if %{with snap}
-%define ver 9.0
-%define sver %{ver}
-%define fix %{nil}
-%define dirrel 20051020
-%define reltype Preview-1
-%define magicstr %{nil}
-%else
-%define ver 8.51
-%define sver 8.51
-%define fix %{nil}
-%define dirrel 20051114
-%define reltype final
-%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 sparc64 sparc
-#%%define rel %{sparc_shared_rel}
-%define rel %{sparc_static_rel}
-%endif
-%ifarch ppc
-%define rel %{ppc_shared_rel}
-%endif
-%else
-%define type static
-%define rel %{x86_static_rel}
-%ifarch sparc sparc64
-%define rel %{sparc_static_rel}
-%endif
-%ifarch ppc
-%define rel %{ppc_static_rel}
-%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 0
-%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]
-%endif
-# is ix86; [endif]
-%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]
-%endif
-# is sparc; [endif]
-%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
-# with incall; [endif]
-Summary: World fastest web browser
-Summary(pl): Najszybsza przegl±darka WWW na ¶wiecie
+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:0.%{rel}.}1
+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/%{name}-%{sver}-%{x86_static_rel}-static-qt.i386-en.tar.bz2
-# Source0-md5: bd6bd9cfaf13b6509c8531d02a4c51a2
-%{!?with_distributable:NoSource: 0}
-%endif
-
-%if %{need_ix86_static_snap}
-Source100: http://snapshot.opera.com/unix/%{ver}-%{reltype}/%{magicstr}/intel-linux/%{name}-%{sver}-%{x86_static_rel}-static-qt.i386-en.tar.bz2
-%{!?with_distributable:NoSource: 100}
-%endif
-
-%if %{need_sparc_static}
-Source1: ftp://ftp.opera.com/pub/opera/linux/%{shver}/%{reltype}/en/sparc/%{name}-%{sver}-%{sparc_static_rel}-static-qt.sparc-en.tar.bz2
-# Source1-md5: ff5976406678e864116b1ff093a177b4
-%{!?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/%{name}-%{sver}-%{ppc_static_rel}-static-qt.ppc-en.tar.bz2
-# Source2-md5: 78c3b7d568b3e35a0f7cf3b55d2a6238
-%{!?with_distributable:NoSource: 2}
-%endif
-
-%if %{need_ppc_static_snap}
-Source102: http://snapshot.opera.com/unix/%{ver}-%{reltype}/%{magicstr}/ppc-linux/%{name}-%{sver}-%{ppc_static_rel}-static-qt.ppc-en.tar.bz2
-%{!?with_distributable:NoSource: 102}
-%endif
-
-%if %{need_ix86_shared}
-Source20: ftp://ftp.opera.com/pub/opera/linux/%{shver}/%{reltype}/en/i386/%{name}-%{sver}-%{x86_shared_rel}-shared-qt.i386-en.tar.bz2
-# Source20-md5: c9aa6c640406548fcc655a18227d9037
-%{!?with_distributable:NoSource: 20}
-%endif
-
-%if %{need_ix86_shared_snap}
-Source1020: http://snapshot.opera.com/unix/%{ver}-%{reltype}/%{magicstr}/intel-linux/%{name}-%{sver}-%{x86_shared_rel}-shared-qt.i386-en.tar.bz2
-# Source1020-md5: 2ee14fa46152665c42f0ef41436e43d0
-%{!?with_distributable:NoSource: 1020}
-%endif
-
-%if %{need_sparc_shared}
-Source21: ftp://ftp.opera.com/pub/opera/linux/%{shver}/%{reltype}/en/sparc/%{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/%{name}-%{sver}-%{ppc_shared_rel}-shared-qt.ppc-en.tar.bz2
-# Source22-md5: 36f9398664c70b14c748db736a25aa2a
-%{!?with_distributable:NoSource: 22}
-%endif
-
-%if %{need_ppc_shared_snap}
-Source1022: http://snapshot.opera.com/unix/%{ver}-%{reltype}/%{magicstr}/ppc-linux/%{name}-%{sver}-%{ppc_shared_rel}-shared-qt.ppc-en.tar.bz2
-# Source1022-md5: bb130afce8f1b2252f7f7b641942b48b
-%{!?with_distributable:NoSource: 1022}
-%endif
-
-Source4: %{name}.desktop
-
+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/
-ExclusiveArch: %{ix86} ppc sparc sparc64
+BuildRequires: rpm >= 4.4.9-56
+BuildRequires: rpmbuild(macros) >= 1.356
BuildRequires: sed >= 4.0
-Requires: freetype >= 2
-Requires: openmotif >= 2
+BuildRequires: xz
+Requires(post,postun): gtk-update-icon-cache
+Requires(post,postun): hicolor-icon-theme
+Requires: browser-plugins >= 2.0
+Requires: desktop-file-utils
+Provides: wwwbrowser
+Obsoletes: opera-i18n
+ExclusiveArch: %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _plugindir %{_libdir}/opera/plugins
-%define _operadocdir %{_docdir}/%{name}-%{ver}.%{rel}
-%define configfile %{_datadir}/opera/config/opera6rc
+%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
-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.
+%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 dynamicznie z Qt.
%prep
-%ifarch %{ix86}
-%setup -q -T -b %{?with_snap:10}%{?with_shared:2}0 -n %{name}-%{sver}-%{rel}-%{type}-qt.i386-en
-%endif
-%ifarch sparc sparc64
-%setup -q -T -b %{?with_snap:10}%{?with_shared:2}1 -n %{name}-%{sver}-%{rel}-%{type}-qt.sparc-en
-%endif
-%ifarch ppc
-%setup -q -T -b %{?with_snap:10}%{?with_shared:2}2 -n %{name}-%{sver}-%{rel}-%{type}-qt.ppc-en
+%setup -qcT
+%ifarch %{x8664}
+SOURCE=%{S:10}
%endif
-%install
-rm -rf $RPM_BUILD_ROOT
-
-install -d $RPM_BUILD_ROOT{/etc,%{_libdir},%{_mandir}/man1,%{_pixmapsdir},%{_desktopdir}}
-ln -s $RPM_BUILD_ROOT/etc $RPM_BUILD_ROOT%{_prefix}/etc
+ar x $SOURCE
+tar xf control.tar.gz && rm control.tar.gz
+tar xf data.tar.xz && rm data.tar.xz
-sed -i -e 's|/etc|$RPM_BUILD_ROOT%{_sysconfdir}|' install.sh
+version=$(awk '/Version:/{print $2}' control)
+test $version = %{version}
-echo y |\
-sh install.sh \
- --prefix=$RPM_BUILD_ROOT%{_prefix} \
- --wrapperdir=$RPM_BUILD_ROOT%{_bindir} \
- --docdir=$RPM_BUILD_ROOT%{_operadocdir} \
- --sharedir=$RPM_BUILD_ROOT%{_datadir}/opera \
- --exec_prefix=$RPM_BUILD_ROOT%{_libdir}/opera/bin \
- --plugindir=$RPM_BUILD_ROOT%{_plugindir}
+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/* .
-# man install
-install man/opera.1 $RPM_BUILD_ROOT%{_mandir}/man1
+%patch1 -p1
+%patch2 -p1
-# wrapper correction
-sed -i -e "s#$RPM_BUILD_ROOT##" $RPM_BUILD_ROOT%{_bindir}/opera
+sed -e 's#/usr/lib/opera#%{_libdir}/opera#g' %{_sourcedir}/%{name}.sh > %{name}.sh
-# install in kde etc.
-install images/opera.xpm $RPM_BUILD_ROOT%{_pixmapsdir}
+%install
+rm -rf $RPM_BUILD_ROOT
+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
+EOF
+
+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}
-install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}
+%clean
+rm -rf $RPM_BUILD_ROOT
-sed -i -e "s#$RPM_BUILD_ROOT##g" $RPM_BUILD_ROOT%{_datadir}/opera/java/*.policy
+%post
+%update_icon_cache hicolor
+%update_desktop_database
+%update_browser_plugins
-# always use latest possible wrapper
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/operamotifwrapper
-if [ -f "$RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/operamotifwrapper-3" ]; then
- ln -sf operamotifwrapper-3 $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/operamotifwrapper-1
- ln -sf operamotifwrapper-3 $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/operamotifwrapper-2
-elif [ -f "$RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/operamotifwrapper-2" ]; then
- ln -sf operamotifwrapper-2 $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/operamotifwrapper-1
- ln -sf operamotifwrapper-2 $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/operamotifwrapper-3
-elif [ -f "$RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/operamotifwrapper-1" ]; then
- ln -sf operamotifwrapper-1 $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/operamotifwrapper-2
- ln -sf operamotifwrapper-1 $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/operamotifwrapper-3
+%postun
+if [ "$1" = 0 ]; then
+ %update_icon_cache hicolor
+ %update_desktop_database
+ %update_browser_plugins
fi
-# clean unneeded files
-rm -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/config
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
%files
%defattr(644,root,root,755)
-%doc LICENSE bugreport
-%attr(755,root,root) %{_bindir}/*
-%dir %{_libdir}/opera
-%dir %{_libdir}/opera/bin
-%attr(755,root,root) %{_libdir}/opera/bin/*
-%dir %{_plugindir}
-%attr(755,root,root) %{_plugindir}/*
-%dir %{_datadir}/opera
-%{_datadir}/opera/*.*
-%{_datadir}/opera/images
-%{_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
-%{_pixmapsdir}/opera.xpm
-%{_desktopdir}/*.desktop
+%doc copyright
+%{_browserpluginsconfdir}/browsers.d/%{name}.*
+%config(noreplace) %verify(not md5 mtime size) %{_browserpluginsconfdir}/blacklist.d/%{name}.*.blacklist
-%{_mandir}/man1/opera.1*
-
-%config(noreplace) %verify(not md5 mtime size) /etc/opera*rc*
+%attr(755,root,root) %{_bindir}/%{name}
+%{_desktopdir}/*.desktop
+%{_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