Accepting request 316385 from home:rhabacker:branches:windows:mingw:win64

add language support

OBS-URL: https://build.opensuse.org/request/show/316385
OBS-URL: https://build.opensuse.org/package/show/windows:mingw:win64/mingw64-filesystem?expand=0&rev=91
This commit is contained in:
Fridrich Strba 2015-07-15 06:03:41 +00:00 committed by Git OBS Bridge
parent 88192a6102
commit bc79a82054
5 changed files with 437 additions and 4 deletions

128
languages Normal file
View File

@ -0,0 +1,128 @@
ar
as
ast
be
be@latin
bg
bn
bn_IN
ca
ca@valencia
cs
cs_CZ
da
de
de_AT
de_CH
de_DE
dz
el
el_GR
en
en@IPA
en@boldquot
en@quot
en@shaw
en_AU
en_CA
en_GB
en_NZ
en_US
eo
es
es_AR
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_SV
es_UY
es_VE
et
et_EE
eu
fa
fi
fi_FI
fr
fr_CA
fr_CH
fr_FR
ga
gl
gu
he
hi
hr
hu
ia
id
is
it
it_CH
it_IT
ja
ja_JP.EUC
ja_JP.SJIS
ja_JP.eucJP
kk
km
kn
ko
lt
lv
mai
mk
ml
mr
nb
nb_NO
nds
nds_DE
ne
nl
nl_BE
nn
nn_NO
or
pa
pl
pl_PL
pt
pt_BR
pt_PT
ro
ru
ru_RU
ru_UA.koi8u
sk
sl
sl_SI
sq
sr
sr@ije
sr@latin
sv
ta
te
th
tr
tr_TR
ug
uk
uk_UA
vi
wa
zh
zh_CN
zh_HK
zh_TW

21
languages.man Normal file
View File

@ -0,0 +1,21 @@
ca
cs
da
de
el
eo
es
fr
hu
it
ja
nl
pl
pt
pt_BR
ru
sk
sv
zh
zh_CN
zh_TW

View File

@ -54,6 +54,7 @@
%_mingw64_findprovides /usr/lib/rpm/mingw64-find-provides.sh
%_mingw64_findrequires /usr/lib/rpm/mingw64-find-requires.sh
%_mingw64_install_post /usr/lib/rpm/mingw64-install-post.sh
%_mingw64_find_lang /usr/lib/rpm/mingw64-find-lang.sh %{buildroot}
%_mingw64_debug_install_post \
/usr/lib/rpm/mingw64-find-debuginfo.sh %{_builddir}\

View File

@ -33,6 +33,9 @@ Source5: mingw64-find-provides.sh
Source6: mingw64-scripts.sh
Source7: mingw64-rpmlint.config
Source8: mingw64-install-post.sh
Source9: mingw64-find-lang.sh
Source10: languages
Source11: languages.man
Requires: mingw64-cross-breakpad-tools
Requires: rpm
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -118,16 +121,30 @@ mkdir -p %{buildroot}%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/man/man{
# NB. NOT _libdir
mkdir -p %{buildroot}%{_libexecdir}/rpm
install -m 0755 %{SOURCE3} %{buildroot}%{_libexecdir}/rpm
install -m 0755 mingw64-find-requires.sh %{buildroot}%{_libexecdir}/rpm
install -m 0755 %{SOURCE4} %{buildroot}%{_libexecdir}/rpm
install -m 0755 %{SOURCE5} %{buildroot}%{_libexecdir}/rpm
install -m 0755 %{SOURCE8} %{buildroot}%{_libexecdir}/rpm
install -m 0755 %{SOURCE9} %{buildroot}%{_libexecdir}/rpm
# Create the locale directories:
while read LANG ; do
mkdir -p %{buildroot}%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/locale/$LANG/LC_MESSAGES
mkdir -p %{buildroot}%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/help/$LANG
done < %{SOURCE10}
# Create the locale directories for man:
while read LANG ; do
mkdir -p %{buildroot}%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/man/$LANG
for sec in 1 2 3 4 5 6 7 8 9 n; do
mkdir -p %{buildroot}%{_prefix}/x86_64-w64-mingw32/sys-root/mingw/share/man/$LANG/man$sec
done
done < %{SOURCE11}
%files
%defattr(-,root,root,-)
%doc COPYING
%{_sysconfdir}/rpm/macros.mingw64
%{_sysconfdir}/profile.d/mingw64.sh
%{_sysconfdir}/rpmlint/mingw64-rpmlint.config
%config %{_sysconfdir}/rpm/macros.mingw64
%config %{_sysconfdir}/profile.d/mingw64.sh
%config %{_sysconfdir}/rpmlint/mingw64-rpmlint.config
%{_bindir}/mingw64-*
%{_libexecdir}/mingw64-scripts
%{_prefix}/x86_64-w64-mingw32/

266
mingw64-find-lang.sh Normal file
View File

@ -0,0 +1,266 @@
#!/bin/sh
#mingw64-findlang - automagically generate list of language specific files
#for inclusion in an rpm spec file.
#This does assume that the *.mo files are under .../locale/...
#Run with no arguments gets a usage message.
#mingw64-findlang is copyright (c) 1998 by W. L. Estes <wlestes@uncg.edu>
#Redistribution and use of this software are hereby permitted for any
#purpose as long as this notice and the above copyright notice remain
#in tact and are included with any redistribution of this file or any
#work based on this file.
# 2015-07-03 Ralf Habacker <ralf.habacker@freenet.de>
# * adapted to mingw32
# 2004-06-20 Arkadiusz Miśkiewicz <arekm@pld-linux.org>
# * merge PLD changes, kde, all-name (mkochano,pascalek@PLD)
# 1999-10-19 Artur Frysiak <wiget@pld-linux.org>
# * added support for GNOME help files
# * start support for KDE help files
usage () {
cat <<EOF
Usage: $0 TOP_DIR PACKAGE_NAME [prefix]
where TOP_DIR is
the top of the tree containing the files to be processed--should be
\$RPM_BUILD_ROOT usually. TOP_DIR gets sed'd out of the output list.
PACKAGE_NAME is the %{name} of the package. This should also be
the basename of the .mo files. the output is written to
PACKAGE_NAME.lang unless \$3 is given in which case output is written
to \$3 (note that \$3 is appended to if given).
Additional options:
--without-gnome do not find GNOME help files
--without-kde do not find KDE help files
--with-qt find Qt translation files
--with-man find localized man pages
--all-name match all package/domain names
--without-mo do not find locale files
EOF
exit 1
}
if [ -z "$1" ] ; then usage
elif [ $1 = / ] ; then echo $0: expects non-/ argument for '$1' 1>&2
elif [ ! -d $1 ] ; then
echo $0: $1: no such directory
exit 1
else TOP_DIR="`echo $1|sed -e 's:/$::'`"
fi
shift
if [ -z "$1" ] ; then usage
else NAME=$1
fi
shift
GNOME=
KDE=
QT=#
MAN=#
MO=
MO_NAME=$NAME.lang
ALL_NAME=#
NO_ALL_NAME=
ONLY_C=#
NO_C=#
while test $# -gt 0 ; do
case "${1}" in
--with-gnome )
GNOME=
shift
;;
--with-kde )
KDE=
shift
;;
--without-gnome )
GNOME=#
shift
;;
--without-kde )
KDE=#
shift
;;
--with-qt )
QT=
shift
;;
--with-man )
MAN=
shift
;;
--without-mo )
MO=#
shift
;;
--all-name )
ALL_NAME=
NO_ALL_NAME=#
shift
;;
--with-only-C )
ONLY_C=
shift
;;
--without-C )
NO_C=
shift
;;
* )
MO_NAME=${1}
shift
;;
esac
done
if ! test -s $MO_NAME ; then
echo "%defattr (644, root, root, 755)" > $MO_NAME
fi
MO_NAME_NEW=$MO_NAME.tmp.$$
rm -f $MO_NAME_NEW
# remove languages we do not yet support - but give out statistics
find "$TOP_DIR/usr/x86_64-w64-mingw32/sys-root/mingw/share/locale/" -maxdepth 1 -type d | sed 's:'"$TOP_DIR"/usr/x86_64-w64-mingw32/sys-root/mingw/share/locale/'::; /^$/d' | while read dir; do
if ! rpm -ql mingw32-filesystem | egrep -q "/usr/x86_64-w64-mingw32/sys-root/mingw/share/locale/$dir"$; then
find $TOP_DIR/usr/x86_64-w64-mingw32/sys-root/mingw/share/locale/$dir -name *.mo | sed 's:'"$TOP_DIR"'::' | while read file; do
echo -n "removing translation $file: "
msgunfmt "$TOP_DIR/$file" | msgfmt --statistics -o /dev/null -
done
rm -rf $TOP_DIR/usr/x86_64-w64-mingw32/sys-root/mingw/share/locale/$dir
fi
done
find $TOP_DIR/usr/x86_64-w64-mingw32/sys-root/mingw/share/help/ -maxdepth 1 -type d | sed 's:'"$TOP_DIR"/usr/x86_64-w64-mingw32/sys-root/mingw/share/help/'::; /^$/d' | while read dir; do
if ! rpm -ql mingw32-filesystem | egrep -q "/share/help/$dir"$; then
echo "removing help translation /share/help/$dir"
rm -rf $TOP_DIR/usr/x86_64-w64-mingw32/sys-root/mingw/share/help/$dir
fi
done
find "$TOP_DIR" -type f -o -type l|sed '
s:'"$TOP_DIR"'::
'"$ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3:
'"$NO_ALL_NAME$MO"'s:\(.*/locale/\)\([^/_]\+\)\(.*/'"$NAME"'\.mo$\):%lang(\2) \1\2\3:
s:^\([^%].*\)::
'"$ONLY_C"'/%lang(C)/!d
'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' > $MO_NAME_NEW
find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/'"$NAME"'\)$:%lang(\2) %doc \1\2\3\4/:
'"$ALL_NAME$GNOME"'s:\(.*/share/help/\)\([^/_]\+\)\([^/]*\)\(/[a-zA-Z0-9.\_\-]\+\)$:%lang(\2) %doc \1\2\3\4/:
s:^\([^%].*\)::
'"$ONLY_C"'/%lang(C)/!d
'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'$\):%lang(C) %dir %doc \1:
'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'/[a-zA-Z0-9.\_\-]/.\+\)::
'"$NO_ALL_NAME$GNOME"'s:\(.*/gnome/help/'"$NAME"'\/\)\([^/_]\+\):%lang(\2) %doc \1\2:
'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+$\):%lang(C) %dir %doc \1:
'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]/.\+\)::
'"$ALL_NAME$GNOME"'s:\(.*/gnome/help/[a-zA-Z0-9.\_\-]\+\/\)\([^/_]\+\):%lang(\2) %doc \1\2:
s:%lang(.*) .*/gnome/help/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+/.*::
s:^\([^%].*\)::
'"$ONLY_C"'/%lang(C)/!d
'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'$\):%dir \1:
'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+$\):%dir \1:
s:^\([^%].*\)::
/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type f|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$GNOME"'s:\(.*/omf/'"$NAME"'/'"$NAME"'-\([^/.]\+\)\.omf\):%lang(\2) \1:
'"$ALL_NAME$GNOME"'s:\(.*/omf/[a-zA-Z0-9.\_\-]\+/[a-zA-Z0-9.\_\-]\+-\([^/.]\+\)\.omf\):%lang(\2) \1:
s:^[^%].*::
'"$ONLY_C"'/%lang(C)/!d
'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
KDE3_HTML=`kde-config --expandvars --install html 2>/dev/null`
if [ x"$KDE3_HTML" != x -a -d "$TOP_DIR$KDE3_HTML" ]; then
find "$TOP_DIR$KDE3_HTML" -type d|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'/\)::
'"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3:
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\)::
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
s:^\([^%].*\)::
'"$ONLY_C"'/%lang(C)/!d
'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
fi
KDE4_HTML=`kde4-config --expandvars --install html 2>/dev/null`
if [ x"$KDE4_HTML" != x -a -d "$TOP_DIR$KDE4_HTML" ]; then
find "$TOP_DIR$KDE4_HTML" -type d|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'/\)::
'"$NO_ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/'"$NAME"'\)$:%lang(\2) \1\2\3:
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+/\)::
'"$ALL_NAME$KDE"'s:\(.*/HTML/\)\([^/_]\+\)\(.*/[a-zA-Z0-9.\_\-]\+$\):%lang(\2) \1\2\3:
s:^\([^%].*\)::
'"$ONLY_C"'/%lang(C)/!d
'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
fi
find "$TOP_DIR" -type f -o -type l|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$QT"'s:\(.*/'"$NAME"'_\([a-zA-Z]\{2\}\([_@].*\)\?\)\.qm$\):%lang(\2) \1:
'"$ALL_NAME$QT"'s:\(.*/[^/_]\+_\([a-zA-Z]\{2\}[_@].*\)\.qm$\):%lang(\2) \1:
'"$ALL_NAME$QT"'s:\(.*/[^/_]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1:
'"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}[_@].*\)\.qm$\):%lang(\2) \1:
'"$ALL_NAME$QT"'s:^\([^%].*/[^/]\+_\([a-zA-Z]\{2\}\)\.qm$\):%lang(\2) \1:
s:^[^%].*::
'"$ONLY_C"'/%lang(C)/!d
'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type d|sed '
s:'"$TOP_DIR"'::
'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/\)::
'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1*:
s:^\([^%].*\)::
'"$ONLY_C"'/%lang(C)/!d
'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
find "$TOP_DIR" -type f -o -type l|sed '
s:'"$TOP_DIR"'::
'"$NO_ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/'"$NAME"'\.[a-z0-9].*\):%lang(\2) \1*:
s:^\([^%].*\)::
'"$ONLY_C"'/%lang(C)/!d
'"$NO_C"'/%lang(C)/d
s:%lang(C) ::
/^$/d' >> $MO_NAME_NEW
if ! grep -q / $MO_NAME_NEW; then
echo "No translations found for ${NAME} in ${TOP_DIR}"
rm -f $MO_NAME_NEW
exit 1
fi
sort -u $MO_NAME_NEW >> $MO_NAME
rm -f $MO_NAME_NEW
exit 0