[packages/opera] use find lang to package locale files
glen
glen at pld-linux.org
Sun Sep 6 10:32:18 CEST 2015
commit d0b669b1e3c629db1c95d2457710bfd90ea2d49d
Author: Elan Ruusamäe <glen at delfi.ee>
Date: Sun Sep 6 11:31:34 2015 +0300
use find lang to package locale files
find-lang.sh | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
opera.spec | 18 ++++++++++++++----
2 files changed, 69 insertions(+), 4 deletions(-)
---
diff --git a/opera.spec b/opera.spec
index 647941f..d028676 100644
--- a/opera.spec
+++ b/opera.spec
@@ -14,13 +14,14 @@ 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: 31.0.1889.174
-Release: 0.7
+Release: 0.8
Epoch: 2
License: Distributable
Group: X11/Applications/Networking
Source10: ftp://ftp.opera.com/pub/opera/desktop/%{version}/linux/%{name}-stable_%{version}_amd64.deb
# Source10-md5: 71d13017ca60bbf4619dc3faf58fd94e
Source1: %{name}.sh
+Source2: find-lang.sh
Patch1: %{name}-desktop.patch
Patch2: pepper_flash_config.patch
URL: http://www.opera.com/
@@ -37,6 +38,8 @@ Obsoletes: opera-i18n
ExclusiveArch: %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define find_lang sh find-lang.sh %{buildroot}
+
%define _enable_debug_packages 0
%define no_install_post_strip 1
@@ -77,7 +80,8 @@ mv usr/share/doc/opera-stable/* .
%patch1 -p1
%patch2 -p1
-sed -e 's#/usr/lib/opera#%{_libdir}/opera#g' %{_sourcedir}/%{name}.sh > %{name}.sh
+%{__sed} -e 's#/usr/lib/opera#%{_libdir}/opera#g' %{_sourcedir}/%{name}.sh > %{name}.sh
+%{__sed} -e 's, at localedir@,%{_datadir}/%{name}/localization,' %{_sourcedir}/find-lang.sh > find-lang.sh
%install
rm -rf $RPM_BUILD_ROOT
@@ -103,6 +107,11 @@ install -p %{name}.sh $RPM_BUILD_ROOT%{_bindir}/%{name}
cp -p %{name}.desktop $RPM_BUILD_ROOT%{_desktopdir}
cp -a icons/* $RPM_BUILD_ROOT%{_iconsdir}
+# 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
@@ -118,7 +127,7 @@ if [ "$1" = 0 ]; then
%update_browser_plugins
fi
-%files
+%files -f %{name}.lang
%defattr(644,root,root,755)
%doc copyright
%{_browserpluginsconfdir}/browsers.d/%{name}.*
@@ -134,7 +143,8 @@ fi
%{_datadir}/%{name}/resources/*.json
%{_datadir}/%{name}/resources/dictionaries.xml
%{_datadir}/%{name}/resources/inspector
-%{_datadir}/%{name}/localization
+%dir %{_datadir}/%{name}/localization
+%{_datadir}/%{name}/localization/en-US.pak
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/icudtl.dat
diff --git a/find-lang.sh b/find-lang.sh
new file mode 100755
index 0000000..6762c18
--- /dev/null
+++ b/find-lang.sh
@@ -0,0 +1,55 @@
+#!/bin/sh
+PROG=${0##*/}
+if [ $# = 2 ]; then
+ # for using same syntax as rpm own find-lang
+ RPM_BUILD_ROOT=$1
+ shift
+fi
+dir=$RPM_BUILD_ROOT at localedir@
+langfile=$1
+tmp=$(mktemp) || exit 1
+rc=0
+
+find $dir -name '*.pak' > $tmp
+
+echo '%defattr(644,root,root,755)' > $langfile
+while read file; do
+ lang=${file##*/}
+ lang=${lang%.pak}
+ case "$lang" in
+ zh-TW)
+ lang=zh_TW
+ ;;
+ zh-CN)
+ lang=zh_CN
+ ;;
+ en-US|en-GB)
+ lang=en
+ ;;
+ pt-BR)
+ lang=pt_BR
+ ;;
+ fr-CA)
+ lang=fr_CA
+ ;;
+ pt-PT)
+ lang=pt
+ ;;
+ es-419)
+ lang=es_LA
+ ;;
+ *-*)
+ echo >&2 "ERROR: Need mapping for $lang!"
+ rc=1
+ ;;
+ esac
+ echo "%lang($lang) ${file#$RPM_BUILD_ROOT}" >> $langfile
+done < $tmp
+
+if [ "$(grep -Ev '(^%defattr|^$)' $langfile | wc -l)" -le 0 ]; then
+ echo >&2 "$PROG: Error: international files not found!"
+ rc=1
+fi
+
+rm -f $tmp
+exit $rc
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/opera.git/commitdiff/910a9273c5b60178f2bfa67042ecf6889bcc30dc
More information about the pld-cvs-commit
mailing list