[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