# - 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_with qt4 #take the qt4 version
-
-%define ver 9.61
-%define shver %(echo %{ver} | tr -d .)
-%define buildid 2456
-
-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}
-Release: 2
+Version: 90.0.4480.107
+Release: 1
Epoch: 2
License: Distributable
Group: X11/Applications/Networking
-Source10: ftp://ftp.opera.com/pub/opera/linux/%{shver}/final/en/i386/shared/%{name}-%{version}.gcc4-shared-qt3.i386.tar.bz2
-# Source10-md5: fab34279f40b305a90e6c248f8cf83da
-Source11: ftp://ftp.opera.com/pub/opera/linux/%{shver}/final/en/x86_64/%{name}-%{version}.gcc4-shared-qt3.x86_64.tar.bz2
-# Source11-md5: ab7d0fa42a1579d8dcf0f865f43e5504
-Source12: ftp://ftp.opera.com/pub/opera/linux/%{shver}/final/en/ppc/shared/%{name}-%{version}.gcc4-shared-qt3.ppc.tar.bz2
-# Source12-md5: d1cad1fc8d1405e7b381a46830f6682a
-Source13: ftp://ftp.opera.com/pub/opera/linux/%{shver}/final/en/i386/%{name}-%{version}.gcc4-qt4.i386.tar.bz2
-# Source13-md5: ef895e80f26915fdedc0c5eaee486009
-Source0: %{name}.desktop
-Patch0: %{name}-wrapper.patch
-Patch1: %{name}-agent.patch
+Source10: https://ftp.opera.com/pub/opera/desktop/%{version}/linux/%{name}-stable_%{version}_amd64.deb
+# Source10-md5: cc09467c39c7eb871414027442c24625
+Source1: %{name}.sh
+Source2: find-lang.sh
+Patch1: %{name}-desktop.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
Obsoletes: opera-i18n
-ExclusiveArch: %{ix86} %{x8664} ppc
+ExclusiveArch: %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _plugindir %{_libdir}/opera/plugins
-%define _operadocdir %{_docdir}/%{name}-%{ver}
-# alternative arch for plugin32
-%define alt_arch i386
+%define find_lang sh find-lang.sh %{buildroot}
+
+%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
-linked with shared version of Qt.
+Opera is a fast, secure and user-friendly web browser. It includes web
+developer tools, news aggregation, and the ability to compress data
+via Opera Turbo on congested networks.
+
+%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 dynamicznie z Qt.
-%package plugin32
-Summary: Opera 32-bit plugins support
-Summary(pl.UTF-8): Obsługa 32-bitowych wtyczek Opery
-Group: X11/Applications/Networking
+%package l10n
+Summary: %{name} language packages
+Group: I18n
Requires: %{name} = %{epoch}:%{version}-%{release}
-Requires: browser-plugins >= 2.0
+BuildArch: noarch
-%description plugin32
-Opera 32-bit plugins support.
+%description l10n
+This package contains language packages for 56 languages:
-%description plugin32 -l pl.UTF-8
-Obsługa 32-bitowych wtyczek Opery.
+af, az, be, bg, bn, ca, cs, da, de, el, en-GB, es-419, es, fi, fil,
+fr-CA, fr, fy, gd, he, hi, hr, hu, id, it, ja, kk, ko, lt, lv, me, mk,
+ms, nb, nl, nn, pa, pl, pt-BR, pt-PT, ro, ru, sk, sr, sv, sw, ta, te,
+th, tr, uk, uz, vi, zh-CN, zh-TW, zu.
%prep
-%ifarch %{ix86}
-%if %{with qt4}
-%setup -q -T -b 13 -n %{name}-%{version}-%{buildid}.gcc4-qt4.i386
-%define _noautoreq 'libpng12.so.0(.*)'
-%else
-%setup -q -T -b 10 -n %{name}-%{version}-%{buildid}.gcc4-shared-qt3.i386
-%endif
-%endif
+%setup -qcT
%ifarch %{x8664}
-%setup -q -T -b 11 -n %{name}-%{version}-%{buildid}.gcc4-shared-qt3.x86_64
-%endif
-%ifarch ppc
-%setup -q -T -b 12 -n %{name}-%{version}-%{buildid}.gcc4-shared-qt3.ppc
-%endif
-%patch0 -p1
-%if "%{pld_release}" == "ti"
-%patch1 -p0
+SOURCE=%{S:10}
%endif
-%install
-rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_sysconfdir}}
+ar x $SOURCE
+tar xf control.tar.xz && rm control.tar.xz
+tar xf data.tar.xz && rm data.tar.xz
-%browser_plugins_add_browser %{name} -p %{_libdir}/%{name}/plugins -b <<'EOF'
-# opera does not use for .xpt files
-*.xpt
+version=$(awk '/Version:/{print $2}' control)
+test $version = %{version}
-# use mplayerplug-in-opera instead
-mplayerplug-in*
+mkdir -p lib doc
+%{__mv} usr/lib/*/%{name}/* lib/
+%{__mv} usr/share/icons .
+%{__mv} usr/share/pixmaps/%{name}.xpm .
+%{__mv} usr/share/applications/%{name}.desktop .
+%{__mv} usr/share/doc/opera-stable/* doc/
-# opera uses libjava.so to run java
-libjavaplugin_oji.so
-EOF
+%patch1 -p1
-%ifarch %{x8664}
-install -d $RPM_BUILD_ROOT%{_prefix}/lib/%{name}/plugins
-%browser_plugins_add_browser %{name} -a %{alt_arch} -p %{_prefix}/lib/%{name}/plugins -b <<'EOF'
-# opera does not use for .xpt files
-*.xpt
+%{__sed} -e 's#/usr/lib/opera#%{_libdir}/opera#g' %{_sourcedir}/%{name}.sh > %{name}.sh
+%{__sed} -e 's,@localedir@,%{_datadir}/%{name}/localization,' %{_sourcedir}/find-lang.sh > find-lang.sh
-# use mplayerplug-in-opera instead
-mplayerplug-in*
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_bindir},%{_libdir}/%{name}/plugins,%{_datadir}/%{name}} \
+ $RPM_BUILD_ROOT{%{_pixmapsdir},%{_iconsdir},%{_desktopdir}}
-# opera uses libjava.so to run java
-libjavaplugin_oji.so
+%browser_plugins_add_browser %{name} -p %{_libdir}/%{name}/plugins -b <<'EOF'
+# opera does not use for .xpt files
+*.xpt
EOF
-%endif
-sh install.sh \
- DESTDIR=$RPM_BUILD_ROOT \
- --prefix=%{_prefix} \
- --exec_prefix=%{_libdir}/%{name}/bin \
- --plugindir=%{_libdir}/%{name}/plugins \
- --docdir=%{_operadocdir}
+cp -a lib/localization lib/resources $RPM_BUILD_ROOT%{_datadir}/%{name}
+cp -a lib/* $RPM_BUILD_ROOT%{_libdir}/%{name}
+%{__rm} -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/{localization,resources}
+ln -s %{_datadir}/%{name}/localization $RPM_BUILD_ROOT%{_libdir}/%{name}/localization
+ln -s %{_datadir}/%{name}/resources $RPM_BUILD_ROOT%{_libdir}/%{name}/resources
-# install in kde etc.
-install %{SOURCE0} $RPM_BUILD_ROOT%{_desktopdir}
+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 etc/* $RPM_BUILD_ROOT%{_sysconfdir}
-install usr/share/pixmaps/*.xpm $RPM_BUILD_ROOT%{_pixmapsdir}
+# find locales
+%find_lang %{name}.lang
+# always package en-US
+%{__sed} -i -e '/en-US.pak/d' %{name}.lang
%clean
rm -rf $RPM_BUILD_ROOT
%post
+%update_icon_cache hicolor
+%update_desktop_database
%update_browser_plugins
%postun
if [ "$1" = 0 ]; then
- %update_browser_plugins
-fi
-
-%post plugin32
-%update_browser_plugins
-
-%postun plugin32
-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*
+%doc doc/copyright
+%{_browserpluginsconfdir}/browsers.d/%{name}.*
+%config(noreplace) %verify(not md5 mtime size) %{_browserpluginsconfdir}/blacklist.d/%{name}.*.blacklist
-# browser plugins v2
-%{_browserpluginsconfdir}/browsers.d/%{name}.%{_target_base_arch}
-%config(noreplace) %verify(not md5 mtime size) %{_browserpluginsconfdir}/blacklist.d/%{name}.%{_target_base_arch}.blacklist
-
-%attr(755,root,root) %{_bindir}/*
-%dir %{_libdir}/opera
-%dir %{_libdir}/opera/bin
-%attr(755,root,root) %{_libdir}/opera/bin/*
-%ifarch %{x8664}
-%exclude %{_libdir}/opera/bin/*-ia32-*
-%endif
-%dir %{_plugindir}
-%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
-%lang(be) %{_datadir}/opera/locale/be
-%lang(bg) %{_datadir}/opera/locale/bg
-%lang(cs) %{_datadir}/opera/locale/cs
-%lang(da) %{_datadir}/opera/locale/da
-%lang(de) %{_datadir}/opera/locale/de
-%lang(el) %{_datadir}/opera/locale/el
-%lang(en_GB) %{_datadir}/opera/locale/en-GB
-%lang(es) %{_datadir}/opera/locale/es-ES
-%lang(es_LA) %{_datadir}/opera/locale/es-LA
-%lang(et) %{_datadir}/opera/locale/et
-%lang(fi) %{_datadir}/opera/locale/fi
-%lang(fr) %{_datadir}/opera/locale/fr
-%lang(fr_CA) %{_datadir}/opera/locale/fr-CA
-%lang(fy) %{_datadir}/opera/locale/fy
-%lang(hi) %{_datadir}/opera/locale/hi
-%lang(hr) %{_datadir}/opera/locale/hr
-%lang(hu) %{_datadir}/opera/locale/hu
-%lang(id) %{_datadir}/opera/locale/id
-%lang(it) %{_datadir}/opera/locale/it
-%lang(ja) %{_datadir}/opera/locale/ja
-%lang(ka) %{_datadir}/opera/locale/ka
-%lang(ko) %{_datadir}/opera/locale/ko
-%lang(lt) %{_datadir}/opera/locale/lt
-%lang(mk) %{_datadir}/opera/locale/mk
-%lang(nb) %{_datadir}/opera/locale/nb
-%lang(nl) %{_datadir}/opera/locale/nl
-%lang(nn) %{_datadir}/opera/locale/nn
-%lang(pl) %{_datadir}/opera/locale/pl
-%lang(pt) %{_datadir}/opera/locale/pt
-%lang(pt_BR) %{_datadir}/opera/locale/pt-BR
-%lang(ru) %{_datadir}/opera/locale/ru
-%lang(sv) %{_datadir}/opera/locale/sv
-%lang(ta) %{_datadir}/opera/locale/ta
-%lang(te) %{_datadir}/opera/locale/te
-%lang(tr) %{_datadir}/opera/locale/tr
-%lang(uk) %{_datadir}/opera/locale/uk
-%lang(zh_CN) %{_datadir}/opera/locale/zh-cn
-%lang(zh_TW) %{_datadir}/opera/locale/zh-tw
+%attr(755,root,root) %{_bindir}/%{name}
%{_desktopdir}/*.desktop
-%{_mandir}/man1/opera.1*
-%{_pixmapsdir}/opera.xpm
-
-%ifarch %{x8664}
-%files plugin32
+%{_iconsdir}/hicolor/*/*/*.png
+
+%dir %{_datadir}/%{name}
+%{_datadir}/%{name}/resources
+%dir %{_datadir}/%{name}/localization
+%{_datadir}/%{name}/localization/en-US.pak
+
+%dir %{_libdir}/%{name}
+%{_libdir}/%{name}/icudtl.dat
+%{_libdir}/%{name}/snapshot_blob.bin
+%{_libdir}/%{name}/*.pak
+%{_libdir}/%{name}/localization
+%{_libdir}/%{name}/resources
+%attr(755,root,root) %{_libdir}/%{name}/chrome_crashpad_handler
+%attr(755,root,root) %{_libdir}/%{name}/libEGL.so
+%attr(755,root,root) %{_libdir}/%{name}/libffmpeg.so
+%attr(755,root,root) %{_libdir}/%{name}/libGLESv2.so
+%attr(755,root,root) %{_libdir}/%{name}/libvk_swiftshader.so
+%attr(755,root,root) %{_libdir}/%{name}/libvulkan.so.1
+%{_libdir}/%{name}/vk_swiftshader_icd.json
+%{_libdir}/%{name}/v8_context_snapshot.bin
+%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
+
+%files l10n -f %{name}.lang
%defattr(644,root,root,755)
-# browser plugins v2
-%{_browserpluginsconfdir}/browsers.d/%{name}.%{alt_arch}
-%config(noreplace) %verify(not md5 mtime size) %{_browserpluginsconfdir}/blacklist.d/%{name}.%{alt_arch}.blacklist
-%dir %{_prefix}/lib/%{name}
-%dir %{_prefix}/lib/%{name}/plugins
-%attr(755,root,root) %{_libdir}/%{name}/bin/*-ia32-*
-%endif