Hello community,
here is the log from the commit of package translation-update-upstream for
openSUSE:Factory checked in at 2014-05-22 20:37:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/translation-update-upstream (Old)
and /work/SRC/openSUSE:Factory/.translation-update-upstream.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "translation-update-upstream"
Changes:
--------
---
/work/SRC/openSUSE:Factory/translation-update-upstream/translation-update-upstream.changes
2014-04-30 15:00:45.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.translation-update-upstream.new/translation-update-upstream.changes
2014-05-22 20:37:46.000000000 +0200
@@ -1,0 +2,16 @@
+Tue May 6 23:37:37 CEST 2014 - [email protected]
+
+- New supplementary script: check-translation-completeness.sh
+ that creates statistics of translation completeness.
+- Merge latest upstream-collect.sh fixes from SLE11 SP3:
+ * Re-add all strings lost after removal from upstream
+ (bnc#807817#c15).
+ * Do incremental update by default to prevent loss of strings
+ removed from upstream (bnc#807817#c15).
+ * Fix errors in debug mode.
+- Merge latest translation-update-upstream-to-translation-update.sh
+ fixes from SLE11 SP3:
+ * rewrote to include strings from gnome-patch-translation
+ (bnc#807817, bnc#811265).
+
+-------------------------------------------------------------------
New:
----
check-translation-completeness.sh
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ translation-update-upstream.spec ++++++
--- /var/tmp/diff_new_pack.zP8mGo/_old 2014-05-22 20:37:48.000000000 +0200
+++ /var/tmp/diff_new_pack.zP8mGo/_new 2014-05-22 20:37:48.000000000 +0200
@@ -47,6 +47,7 @@
Source55: create-tlst.conf
Source56: translation-update-upstream-to-translation-update.sh
Source57: translation-update-static.tar.bz2
+Source58: check-translation-completeness.sh
# Configuration files for package maintainer tools:
Source60: upstream-gnome_gtp.tlst
Source61: upstream-gnome_gtp.hook
@@ -132,7 +133,7 @@
for LOCALE in $(set +x ; cd $RPM_BUILD_ROOT%{_datadir} ; ls -1
translation*/*/*/*.po | sed 's:.*/::;s:\.po$::' | sort -u) ; do
if ! test -d /usr/share/locale/$LOCALE ; then
for file in $RPM_BUILD_ROOT%{_datadir}/translation*/*/*/$LOCALE.po;
do
- # fake it so it looks like removed from %find_lang
+ # fake it so it looks like removed from %%find_lang
package=$(echo $file | sed -e 's,.*translation[^/]*/po/,,;
s,/[^/]*.po,,')
echo -n "removing translation
/usr/share/locale/$LOCALE/LC_MESSAGES/$package.mo: "
msgfmt -o - $file | msgunfmt -o - -| msgfmt --statistics -o
/dev/null -
++++++ check-translation-completeness.sh ++++++
#!/bin/bash
set -o errexit
# We need stable text format
export LANG=C
if ! test -d po-full ; then
echo >&2 "$0: You need \"po-full\" directory. Call this script only
after ./upstream-collect.sh"
exit 1
fi
cd po-full
ALL_LNG="$(
for PO in */*.po ; do
LNG=${PO%.po}
LNG=${LNG##*/}
echo "$LNG"
done |
sort -u |
tr '\n' ' '
)"
#echo >&2 "$0 DBG: ALL_LNG=\"$ALL_LNG\""
for DOMAIN in * ; do
for LNG in $ALL_LNG ; do
# Sanitize to not contain "," or ".":
LNG_SN=${LNG//,/__COMMA__}
LNG_SN=${LNG_SN//./__PERIOD__}
DOMAIN_SN=${DOMAIN//,/__COMMA__}
DOMAIN_SN=${DOMAIN_SN//./__PERIOD__}
echo -n "$LNG_SN,$DOMAIN_SN,"
PO=$DOMAIN/$LNG.po
if test -f "$PO" ; then
msgfmt --statistics -o /dev/null $PO 2>&1
else
msgfmt --statistics -o /dev/null ../pot/$DOMAIN.pot 2>&1
fi
done
done |
#tee ../check-translation-completeness-DBG1.log |
(
# "F1 translated messages, F2 fuzzy translations, F3 untranslated messages."
Some fields can be missing
IFS=,.
while read LNG DOMAIN F1 F2 F3 F4 ; do
LNG=${LNG//__COMMA__/,}
LNG=${LNG//__PERIOD__/.}
DOMAIN=${DOMAIN//__COMMA__/,}
DOMAIN=${DOMAIN//__PERIOD__/.}
TRANSLATED=0
UNTRANSLATED=0
FUZZY=0
if test -n "$F4" ; then
echo >&2 "$0: Too long output of \"msgfmt --statistics
-o /dev/null po-full/$DOMAIN/$LNG.po\": \"$F4\""
exit 1
fi
for STRING in "$F1" "$F2" "$F3" "$F4" ; do
STRING=${STRING# }
case "$STRING" in
*" translated message" )
TRANSLATED=${STRING% translated message}
;;
*" translated messages" )
TRANSLATED=${STRING% translated messages}
;;
*" fuzzy translation" )
FUZZY=${STRING% fuzzy translation}
;;
*" fuzzy translations" )
FUZZY=${STRING% fuzzy translations}
;;
*" untranslated message" )
UNTRANSLATED=${STRING% untranslated message}
;;
*" untranslated messages" )
UNTRANSLATED=${STRING% untranslated messages}
;;
"" )
;;
* )
echo >&2 "$0: Unknown format of \"msgfmt
--statistics -o /dev/null po-full/$DOMAIN/$LNG.po\": \"$STRING\""
exit 1
;;
esac
done
#echo >&2 -n "$0 DBG: LNG=$LNG DOMAIN=$DOMAIN F1=\"$F1\"
F2=\"$F2\" F3=\"$F3\" F4=\"$F4\" TRANSLATED=$TRANSLATED
UNTRANSLATED=$UNTRANSLATED FUZZY=$FUZZY"
let UNTRANSLATED+=FUZZY || :
let ALL=TRANSLATED+UNTRANSLATED || :
#echo >&2 " DBG: ALL=$ALL all_UNTRANSLATED=$UNTRANSLATED"
let PERCENTAGE=100"*"TRANSLATED/ALL || :
echo "\"$LNG\",\"$DOMAIN\",$PERCENTAGE,$UNTRANSLATED,$ALL"
done
) |
#tee ../check-translation-completeness-DBG2.log |
(
echo >../check-translation-completeness-by-domain.csv
"\"Language\",\"Domain\",\"Translated %\",\"Untranslated #\",\"All #\""
tee -a ../check-translation-completeness-by-domain.csv
) |
sort |
(
echo >../check-translation-completeness-by-language.csv
"\"Language\",\"Domain\",\"Translated %\",\"Untranslated #\",\"All #\""
tee -a ../check-translation-completeness-by-language.csv
) |
(
IFS=","
while read LNG DOMAIN PERCENTAGE UNTRANSLATED ALL ; do
LNG=${LNG//\"}
case $LNG in
ar )
LNG_NAME="Arabic"
;;
pt_BR )
LNG_NAME="Brazilian Portuguese"
;;
zh_CN )
LNG_NAME="Chinese Simplified"
;;
zh_TW )
LNG_NAME="Chinese Traditional"
;;
cs )
LNG_NAME="Czech"
;;
nl )
LNG_NAME="Dutch"
;;
fr )
LNG_NAME="French"
;;
de )
LNG_NAME="German"
;;
hu )
LNG_NAME="Hungarian"
;;
it )
LNG_NAME="Italian"
;;
ja )
LNG_NAME="Japanese"
;;
ko )
LNG_NAME="Korean"
;;
pl )
LNG_NAME="Polish"
;;
ru )
LNG_NAME="Russian"
;;
es )
LNG_NAME="Spanish"
;;
sv )
LNG_NAME="Swedish"
;;
* )
continue
;;
esac
echo "\"$LNG_NAME\",$DOMAIN,$PERCENTAGE,$UNTRANSLATED,$ALL"
done
) |
sort |
(
echo >../check-translation-completeness-supported.csv
"\"Language\",\"Domain\",\"Translated %\",\"Untranslated #\",\"All #\""
cat >../check-translation-completeness-supported.csv
)
cd ..
zip check-translation-completeness.zip check-translation-completeness*.csv
++++++ create-tlst-step2-create-gnome_gtp.sh ++++++
--- /var/tmp/diff_new_pack.zP8mGo/_old 2014-05-22 20:37:48.000000000 +0200
+++ /var/tmp/diff_new_pack.zP8mGo/_new 2014-05-22 20:37:48.000000000 +0200
@@ -17,19 +17,19 @@
done | sort -u >create-tlst-temp-osc-projects.lst
# branches tried for all apps:
-KNOWN_BRANCHES="gnome-3-4"
+KNOWN_BRANCHES="gnome-3-10"
# branches tried apps with the same name base:
# Do not forget hardcoded strings in the code below!
-APP_BRANCHES="|gimp-2-8|gtk-3-6|gtk-2-24|glib-2-34"
+APP_BRANCHES="|gimp-2-8|gtk-3-10|gtk-2-24|glib-2-38|glib-2-40"
# FIXME: support for libgda:release-3-0-branch gnome-background:gnome-2-22
echo "# This file was generated $(LANG=C LC_ALL=C date) by
create-tlst-step2-create-gnome_gtp.sh." >upstream-gnome_gtp.tlst
-echo "# package domain method repository
dir branch"
>>upstream-gnome_gtp.tlst
+echo "# package domain
method repository dir branch"
>>upstream-gnome_gtp.tlst
SPACES=' '
# listing of all GNOME GTP projects
-curl http://l10n.gnome.org/POT/ | sed -n 's:^.*href="\([^"]*\)/".*$:\1:p' |
sed '/^$/d' |
+curl https://l10n.gnome.org/POT/ | sed -n 's:^.*href="\([^"]*\)/".*$:\1:p' |
sed '/^$/d' |
(
while read ; do
BRANCH=${REPLY##*.}
@@ -46,12 +46,19 @@
for LBRANCH in $KNOWN_BRANCHES master ; do
echo gconf gconf2 GConf2 $LBRANCH
done
+ echo glib glib2 glib20 glib-2-38
echo glib glib2 glib20 master
+ echo gtk+ gtk2 gtk20 gtk-2-38
echo gtk+ gtk2 gtk20 master
+ echo gtk+ gtk2 gtk20-properties gtk-2-38
echo gtk+ gtk2 gtk20-properties master
+ echo gtk+ gtk3 gtk30 gtk-3-10
echo gtk+ gtk3 gtk30 master
+ echo gtk+ gtk3 gtk30-properties gtk-3-10
echo gtk+ gtk3 gtk30-properties master
+ echo libgweather libgweather libgweather-locations gnome-3-10
echo libgweather libgweather libgweather-locations master
+ echo gnome-phone-manager phonemgr gnome-phone-manager gnome-3-10
echo gnome-phone-manager phonemgr gnome-phone-manager master
echo network-manager-applet NetworkManager-gnome nm-applet master
# For other versions than sles10:
@@ -120,7 +127,7 @@
esac"
if $USE_IT ; then
BRANCH=${BRANCH/master/zzzz_master}
- echo
"$PACKAGE${SPACES:0:28-${#PACKAGE}}$DOMAIN${SPACES:0:47-${#DOMAIN}}gtp
l10n.gnome.org/POT
$PROJECT/$PO_DIR${SPACES:0:36-${#PROJECT}-${#PO_DIR}}$BRANCH"
+ echo
"$PACKAGE${SPACES:0:28-${#PACKAGE}}$DOMAIN${SPACES:0:47-${#DOMAIN}}gtp
l10n.gnome.org/POT
$PROJECT/$PO_DIR${SPACES:0:26-${#PROJECT}-${#PO_DIR}}$BRANCH"
fi
# Disabled for now. Final merge will happen in spec file.
++++++ translation-update-upstream-to-translation-update.sh ++++++
--- /var/tmp/diff_new_pack.zP8mGo/_old 2014-05-22 20:37:48.000000000 +0200
+++ /var/tmp/diff_new_pack.zP8mGo/_new 2014-05-22 20:37:48.000000000 +0200
@@ -14,12 +14,19 @@
exit 1
fi
+if ! test -d gnome-patch-translation ; then
+ echo "Please provide directory gnome-patch-translation with contents of"
+ echo "/usr/share/gnome-patch-translation from gnome-patch-translation RPM"
+ echo "on the target system."
+ exit 1
+fi
+
source
${0%translation-update-upstream-to-translation-update.sh}upstream-collect.conf
mkdir\
TRANSLATION_UPDATE TRANSLATION_UPDATE/translation-update
TRANSLATION_UPDATE/TUU\
- TRANSLATION_UPDATE/NOT_UPDATED TRANSLATION_UPDATE/NOT_UPDATED/po
TRANSLATION_UPDATE/NOT_UPDATED/po-mandatory\
- TRANSLATION_UPDATE/UPDATED TRANSLATION_UPDATE/UPDATED/po
TRANSLATION_UPDATE/UPDATED/po-mandatory\
+ TRANSLATION_UPDATE/NOT_UPDATED \
+ TRANSLATION_UPDATE/UPDATED \
TRANSLATION_UPDATE/complete TRANSLATION_UPDATE/rebuilt
# more tarballs are available => use the latest one
@@ -40,11 +47,105 @@
SNAPSHOT=$MSNAPSHOT
fi
-cd TRANSLATION_UPDATE/TUU
-cp -a ../../po-mandatory-full po-mandatory
-cp -a ../../po-full po
+# FIXME: It should list all gnome-patch-translation references, not only the
first on the line.
+# But there is a bug in the gnome-patch-translation: Only first reference
contain domain.
+# Hopefully, the output is complete even with it.
+sed -n 's%^#: \([^/]*\).*$%\1%p'
gnome-patch-translation/gnome-patch-translation.pot | sort -u >${0%.sh}-gpt.lst
+
+# Process translations to get complete sets of strings.
+cd po-full
+for DOMAIN in * ; do
+ if grep -q "^$DOMAIN\$" ../${0%.sh}-gpt.lst ; then
+ SUPPORTS_GPT=true
+ else
+ SUPPORTS_GPT=false
+ fi
+ for PO in $DOMAIN/*.po ; do
+ LNG=${PO##*/}
+ LNG=${LNG%.po}
+ mkdir -p
"../TRANSLATION_UPDATE/complete/translation-update/$DOMAIN/$LNG"
+
+ if test -f "../po-mandatory-full/$PO" ; then
+ if $SUPPORTS_GPT && test -f "../gnome-patch-translation/$LNG.po" ;
then
+ # mandatory strings take precedence over
gnome-patch-translation, but gnome-patch-translation takes precedence over
upstream.
+ msgcat --use-first "../po-mandatory-full/$PO"
"../gnome-patch-translation/$LNG.po" "$PO" -o
"../TRANSLATION_UPDATE/complete/translation-update/$DOMAIN/$LNG/$LNG.po.p1"
+ # There are mandatory strings. We must update.
+ mkdir -p "../TRANSLATION_UPDATE/complete/stamp-force/$DOMAIN"
+ echo "po-mandatory-full/$PO"
>"../TRANSLATION_UPDATE/complete/stamp-force/$DOMAIN/$LNG"
+ else
+ msgcat --use-first "../po-mandatory-full/$PO" "$PO" -o
"../TRANSLATION_UPDATE/complete/translation-update/$DOMAIN/$LNG/$LNG.po"
+ # There are mandatory strings. We must update.
+ mkdir -p "../TRANSLATION_UPDATE/complete/stamp-force/$DOMAIN"
+ touch "../TRANSLATION_UPDATE/complete/stamp-force/$DOMAIN/$LNG"
+ fi
+ else
+ if $SUPPORTS_GPT && test -f "../gnome-patch-translation/$LNG.po" ;
then
+ msgcat --use-first "../gnome-patch-translation/$LNG.po" "$PO"
-o "../TRANSLATION_UPDATE/complete/translation-update/$DOMAIN/$LNG/$LNG.po.p1"
+ # We don't know, whether strings from gnome-patch-translation
were updated. There is no check yet. We must update.
+ mkdir -p "../TRANSLATION_UPDATE/complete/stamp-force/$DOMAIN"
+ echo "po-full/$PO"
>"../TRANSLATION_UPDATE/complete/stamp-force/$DOMAIN/$LNG"
+ else
+ ln "$PO"
"../TRANSLATION_UPDATE/complete/translation-update/$DOMAIN/$LNG/$LNG.po"
+ fi
+ fi
+ done
+done
+
+cd ../po-mandatory-full
+for DOMAIN in * ; do
+ if grep -q "^$DOMAIN\$" ../${0%.sh}-gpt.lst ; then
+ SUPPORTS_GPT=true
+ else
+ SUPPORTS_GPT=false
+ fi
+ for PO in $DOMAIN/*.po ; do
+ LNG=${PO##*/}
+ LNG=${LNG%.po}
+ # There are mandatory strings. We must update.
+ mkdir -p
"../TRANSLATION_UPDATE/complete/translation-update/$DOMAIN/$LNG"
+ # Handle only po files not processed above.
+ if ! test -f "../po-full/$PO" ; then
+ mkdir -p "../TRANSLATION_UPDATE/complete/stamp-force/$DOMAIN"
+ if $SUPPORTS_GPT -a -f "../gnome-patch-translation/$LNG.po" ; then
+ # mandatory strings take precedence over
gnome-patch-translation, but gnome-patch-translation takes precedence over
upstream.
+ msgcat --use-first "$PO" "../gnome-patch-translation/$LNG.po"
-o "../TRANSLATION_UPDATE/complete/translation-update/$DOMAIN/$LNG/$LNG.po.p1"
+ echo "po-mandatory-full/$PO"
>"../TRANSLATION_UPDATE/complete/stamp-force/$DOMAIN/$LNG"
+ else
+ ln "$PO"
"../TRANSLATION_UPDATE/complete/translation-update/$DOMAIN/$LNG/$LNG.po"
+ touch "../TRANSLATION_UPDATE/complete/stamp-force/$DOMAIN/$LNG"
+ fi
+ fi
+ done
+done
+
+# Finish processing of po files that included strings from
gnome-patch-translation.
+cd ../TRANSLATION_UPDATE/complete/translation-update
+for POP1 in */*/*.po.p1 ; do
+ PO=${POP1%.p1}
+ DOMAIN=${PO%%/*}
+ LNG=${PO%/*}
+ LNG=${LNG#*/}
+
+ # Include only gnome-patch-translation strings from particular domain.
+ msgmerge --no-fuzzy-matching "$POP1" ../../../pot/$DOMAIN.pot -o "$PO.p2"
+ msgattrib --no-obsolete "$PO.p2" -o "$PO.p3"
+
+ # Put header from the most important source stored into stamp-force.
+ # Extract header. Broken pipe is an expected behavior. Redirect stderr to
/dev/null.
+ msgmerge --quiet --force-po ../../../$(<"../stamp-force/$DOMAIN/$LNG")
../../../msgheadermerge-empty.pot -o "$PO.p4"
+ msgattrib --no-obsolete --force-po "$PO.p4" -o "$PO.p5"
+ msgcat --use-first --force-po "$PO.p5" "$PO.p3" -o "$PO"
+
+ rm "$PO.p"*
+done
+
cd ../..
+# Now create a copy of all files to TUU (they will be moved later to
particular directories).
+cp -al complete/translation-update/* TUU/
+
+cd ..
+
osc ${OSC_APIURL:+--apiurl=$OSC_APIURL} ls
"${OSC_REPOSITORIES[OSC_MAIN_INDEX]}" >${0%.sh}-rebuilt.lst
if test -n "$OSC_PROPOSED_INDEX" ; then
osc ${OSC_APIURL:+--apiurl=$OSC_APIURL} ls
"${OSC_REPOSITORIES[OSC_PROPOSED_INDEX]}" >${0%.sh}-outdated.lst
@@ -52,7 +153,6 @@
echo -n '' >${0%.sh}-outdated.lst
fi
-SERIAL=0
for TLST in *.tlst ; do
exec <$WORK_DIR/$TLST
@@ -86,20 +186,14 @@
case $STATUS in
OK*)
echo " domain $REAL_DOMAIN is correctly updated, OK"
- if test -d TRANSLATION_UPDATE/TUU/po/$REAL_DOMAIN ;
then
- mv TRANSLATION_UPDATE/TUU/po/$REAL_DOMAIN
TRANSLATION_UPDATE/UPDATED/po/
- fi
- if test -d
TRANSLATION_UPDATE/TUU/po-mandatory/$REAL_DOMAIN ; then
- mv
TRANSLATION_UPDATE/TUU/po-mandatory/$REAL_DOMAIN
TRANSLATION_UPDATE/UPDATED/po-mandatory/
+ if test -d TRANSLATION_UPDATE/TUU/$REAL_DOMAIN ;
then
+ mv TRANSLATION_UPDATE/TUU/$REAL_DOMAIN
TRANSLATION_UPDATE/UPDATED/
fi
;;
*)
echo " domain $REAL_DOMAIN is not correctly
updated, needs to be added"
- if test -d TRANSLATION_UPDATE/TUU/po/$REAL_DOMAIN ;
then
- mv TRANSLATION_UPDATE/TUU/po/$REAL_DOMAIN
TRANSLATION_UPDATE/NOT_UPDATED/po/
- fi
- if test -d
TRANSLATION_UPDATE/TUU/po-mandatory/$REAL_DOMAIN ; then
- mv
TRANSLATION_UPDATE/TUU/po-mandatory/$REAL_DOMAIN
TRANSLATION_UPDATE/NOT_UPDATED/po-mandatory/
+ if test -d TRANSLATION_UPDATE/TUU/$REAL_DOMAIN ;
then
+ mv TRANSLATION_UPDATE/TUU/$REAL_DOMAIN
TRANSLATION_UPDATE/NOT_UPDATED/
fi
;;
esac
@@ -109,11 +203,8 @@
cat
${0%translation-update-upstream-to-translation-update.sh}upstream-collect.domain-map
|
while read PACKAGE_ REAL_DOMAIN STATUS ; do
if test "$PACKAGE" = "$PACKAGE_" ; then
- if test -d TRANSLATION_UPDATE/TUU/po/$REAL_DOMAIN ; then
- mv TRANSLATION_UPDATE/TUU/po/$REAL_DOMAIN
TRANSLATION_UPDATE/NOT_UPDATED/po/
- fi
- if test -d TRANSLATION_UPDATE/TUU/po-mandatory/$REAL_DOMAIN
; then
- mv TRANSLATION_UPDATE/TUU/po-mandatory/$REAL_DOMAIN
TRANSLATION_UPDATE/NOT_UPDATED/po-mandatory/
+ if test -d TRANSLATION_UPDATE/TUU/$REAL_DOMAIN ; then
+ mv TRANSLATION_UPDATE/TUU/$REAL_DOMAIN
TRANSLATION_UPDATE/NOT_UPDATED/
fi
fi
done
@@ -125,81 +216,48 @@
# If files remain in TUU, there is something wrong. Move them to NOT_UPDATED
and hope that domain is correct.
# It can happen when domain mapping process failed.
cd TRANSLATION_UPDATE/TUU
-for DIR in */* ; do
- if test "${DIR%/*}" = "po" ; then
- MANDATORY=false
- else
- MANDATORY=true
- fi
- echo "$(tput setf 4)Something went wrong, domain=${DIR#*/}
mandatory=$MANDATORY was not listed and processed$(tput init)"
+for DIR in * ; do
+ echo "$(tput setf 4)Something went wrong, domain=${DIR#*/} was not listed
and processed$(tput init)"
echo " assuming that it was not updated"
mv $DIR ../NOT_UPDATED/$DIR
done
-cd ../../TRANSLATION_UPDATE/NOT_UPDATED/po
-for PO in */*.po ; do
- LNG=${PO##*/}
- LNG=${LNG%.po}
- mkdir -p "../../complete/translation-update/${PO%/*}/$LNG"
- if test -f "../po-mandatory/$PO" ; then
- msgcat --use-first "../po-mandatory/$PO" "$PO" -o
"../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
- else
- ln "$PO" "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
- fi
+cd ../NOT_UPDATED
+for PO in */*/*.po ; do
+ DOMAIN=${PO%%/*}
+ LNG=${PO%/*}
+ LNG=${LNG#*/}
# Standard update: Pick only files with changes.
- if grep -q "^po/$PO\$" ../../../${0%.sh}-updates.lst ; then
- mkdir -p "../../translation-update/${PO%/*}/$LNG"
- ln "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
"../../translation-update/${PO%/*}/$LNG/${PO##*/}"
+ if grep -q "^po/$DOMAIN/$LNG.po\$" ../../${0%.sh}-updates.lst ; then
+ mkdir -p "../translation-update/$DOMAIN/$LNG"
+ ln "../complete/translation-update/$PO" "../translation-update/$PO"
fi
-done
-cd ../po-mandatory
-for PO in */*.po ; do
- LNG=${PO##*/}
- LNG=${LNG%.po}
# Mandatory update: Pick all files.
- if ! test -f "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}" ;
then
- mkdir -p "../../complete/translation-update/${PO%/*}/$LNG"
- ln "$PO" "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
- fi
- if ! test -f "../../translation-update/${PO%/*}/$LNG/${PO##*/}" ; then
- mkdir -p "../../translation-update/${PO%/*}/$LNG"
- ln "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
"../../translation-update/${PO%/*}/$LNG/${PO##*/}"
- fi
-done
-cd ../../../TRANSLATION_UPDATE/UPDATED/po
-for PO in */*.po ; do
- LNG=${PO##*/}
- LNG=${LNG%.po}
- mkdir -p "../../complete/translation-update/${PO%/*}/$LNG"
- if test -f "../po-mandatory/$PO" ; then
- msgcat --use-first "../po-mandatory/$PO" "$PO" -o
"../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
- else
- ln "$PO" "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
+ if test -f "../complete/stamp-force/$DOMAIN/$LNG" ; then
+ mkdir -p "../translation-update/$DOMAIN/$LNG"
+ ln -f "../complete/translation-update/$PO" "../translation-update/$PO"
fi
+done
+cd ../UPDATED
+for PO in */*/*.po ; do
+ DOMAIN=${PO%%/*}
+ LNG=${PO%/*}
+ LNG=${LNG#*/}
# Standard update: Pick only files with changes.
- if grep -q "^po/$PO\$" ../../../${0%.sh}-updates.lst ; then
- mkdir -p "../../rebuilt/translation-update/${PO%/*}/$LNG"
- ln "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
"../../rebuilt/translation-update/${PO%/*}/$LNG/${PO##*/}"
+ if grep -q "^po/$DOMAIN/$LNG.po\$" ../../${0%.sh}-updates.lst ; then
+ mkdir -p "../rebuilt/translation-update/$DOMAIN/$LNG"
+ ln "../complete/translation-update/$PO"
"../rebuilt/translation-update/$PO"
fi
-done
-cd ../po-mandatory
-for PO in */*.po ; do
- LNG=${PO##*/}
- LNG=${LNG%.po}
# Mandatory update: Pick all files.
- if ! test -f "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}" ;
then
- mkdir -p "../../complete/translation-update/${PO%/*}/$LNG"
- ln "$PO" "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
- fi
- if ! test -f "../../rebuilt/translation-update/${PO%/*}/$LNG/${PO##*/}" ;
then
- mkdir -p "../../rebuilt/translation-update/${PO%/*}/$LNG"
- ln "../../complete/translation-update/${PO%/*}/$LNG/${PO##*/}"
"../../rebuilt/translation-update/${PO%/*}/$LNG/${PO##*/}"
+ if test -f "../complete/stamp-force/$DOMAIN/$LNG" ; then
+ mkdir -p "../rebuilt/translation-update/$DOMAIN/$LNG"
+ ln -f "../complete/translation-update/$PO"
"../rebuilt/translation-update/$PO"
fi
done
-cd ../..
+cd ..
tar -jcf
../translation-update-from-translation-update-upstream-$SNAPSHOT.tar.bz2
translation-update
echo "Generated
translation-update-from-translation-update-upstream-$SNAPSHOT.tar.bz2
Please add it to the package translation-update"
++++++ upstream-collect.sh ++++++
--- /var/tmp/diff_new_pack.zP8mGo/_old 2014-05-22 20:37:48.000000000 +0200
+++ /var/tmp/diff_new_pack.zP8mGo/_new 2014-05-22 20:37:48.000000000 +0200
@@ -8,6 +8,11 @@
# Debug mode. Set to true if you want to keep working directories.
DEBUG=false
+# Incremental mode. With exception of bootstrapping or resetting the memory,
it should be true.
+# Non-incremental update cannot process a single package.
+# FIXME: The incremental mode does not drop obsolete packages. You
+# need to delete them manually afterwards using time stamp.
+INCREMENTAL=true
# Set to false to generate only pot files, true to collect po files.
COLLECT_UPSTREAM=true
# Number of CPUs. When > 1, then parallel processing of more po files is
possible.
@@ -100,7 +105,7 @@
rm -rf UPSTREAM
mkdir UPSTREAM
if ! test -d STAMPS ; then
- mkdir -p pot pot-tuu pot-diff po-full po-mandatory-full
+ mkdir -p pot pot-tuu pot-diff
mkdir OSC PACKAGES UPDATE STAMPS
rm -f upstream-collect.log
rm -f upstream-collect.domain-map.tmp
@@ -144,7 +149,7 @@
export PATH=~/.upstream-collect.tmp:$PATH
-if ! $FULL_PROCESS ; then
+if $INCREMENTAL ; then
# more tarballs are available => use the latest one
# FIXME: Fix 20090213.10 < 20090213.9
# (but it should not happen for people who update and submit)
@@ -153,44 +158,50 @@
done
if ! test -f STAMPS/UPDATE_old_tarball ; then
cd UPDATE
+ echo "$(tput setf 3)Unpacking: $ARCHIVE$(tput init)"
tar -jxf ../$ARCHIVE
# If it is not a full process, increment only release
# SNAPSHOT 20090213 -> 20090213.1, 20090213.1 -> 20090213.2
cd ..
touch STAMPS/UPDATE_old_tarball
fi
- SNAPSHOT=${ARCHIVE#translation-update-upstream-}
- SNAPSHOT=${SNAPSHOT%.tar.bz2}
- SNAPSHOT_PART1=${SNAPSHOT%.*}
- SNAPSHOT_PART2=${SNAPSHOT#*.}
- if test "$SNAPSHOT_PART1" = "$SNAPSHOT" ; then
- SNAPSHOT_PART2=1
+ SNAPSHOT_RELEASE=${ARCHIVE#translation-update-upstream-}
+ SNAPSHOT_RELEASE=${SNAPSHOT_RELEASE%.tar.bz2}
+ SNAPSHOT_RELEASE_PART1=${SNAPSHOT_RELEASE%.*}
+ SNAPSHOT_RELEASE_PART2=${SNAPSHOT_RELEASE#*.}
+ if test "$SNAPSHOT_RELEASE_PART1" = "$SNAPSHOT_RELEASE" ; then
+ SNAPSHOT_RELEASE_PART2=1
else
- let SNAPSHOT_PART2++
+ let SNAPSHOT_RELEASE_PART2++
fi
- SNAPSHOT=$SNAPSHOT_PART1.$SNAPSHOT_PART2
+ SNAPSHOT_RELEASE=$SNAPSHOT_RELEASE_PART1.$SNAPSHOT_RELEASE_PART2
for ARCHIVE_ in translation-update-mandatory-*.tar.bz2 ; do
ARCHIVE=$ARCHIVE_
done
if ! test -f STAMPS/UPDATE_old_mtarball ; then
cd UPDATE
+ echo "$(tput setf 3)Unpacking: $ARCHIVE$(tput init)"
tar -jxf ../$ARCHIVE
# If it is not a full process, increment only release
# SNAPSHOT 20090213 -> 20090213.1, 20090213.1 -> 20090213.2
cd ..
touch STAMPS/UPDATE_old_mtarball
fi
- MSNAPSHOT=${ARCHIVE#translation-update-mandatory-}
- MSNAPSHOT=${MSNAPSHOT%.tar.bz2}
- SNAPSHOT_PART1=${MSNAPSHOT%.*}
- SNAPSHOT_PART2=${MSNAPSHOT#*.}
- if test "$SNAPSHOT_PART1" = "$MSNAPSHOT" ; then
- SNAPSHOT_PART2=1
+ MSNAPSHOT_RELEASE=${ARCHIVE#translation-update-mandatory-}
+ MSNAPSHOT_RELEASE=${MSNAPSHOT_RELEASE%.tar.bz2}
+ SNAPSHOT_RELEASE_PART1=${MSNAPSHOT_RELEASE%.*}
+ SNAPSHOT_RELEASE_PART2=${MSNAPSHOT_RELEASE#*.}
+ if test "$SNAPSHOT_RELEASE_PART1" = "$MSNAPSHOT_RELEASE" ; then
+ SNAPSHOT_RELEASE_PART2=1
else
- let SNAPSHOT_PART2++
+ let SNAPSHOT_RELEASE_PART2++
fi
- MSNAPSHOT=$SNAPSHOT_PART1.$SNAPSHOT_PART2
+ MSNAPSHOT_RELEASE=$SNAPSHOT_RELEASE_PART1.$SNAPSHOT_RELEASE_PART2
+fi
+if ! $FULL_PROCESS ; then
+ SNAPSHOT=$SNAPSHOT_RELEASE
+ MSNAPSHOT=$MSNAPSHOT_RELEASE
fi
SERIAL=0
@@ -322,6 +333,8 @@
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE
domain=$DOMAIN method=$METHOD repository=$REPO directory=$DIR
branch=${BRANCH:(default)}: pot file update error, no way to update"
STATUS=POT_ERROR
mkdir -p
$WORK_DIR/STAMPS/$PACKAGE/$DOMAIN/$METHOD/${REPO//[\/:.]/_}/$REPODIR/${BRANCH:-__HEAD__}
+ # However we cannot do anything, build dir is successfully
processed.
+ touch $WORK_DIR/STAMPS/$PACKAGE/.builddir_ok
continue
fi
fi
@@ -338,6 +351,8 @@
echo >>$WORK_DIR/upstream-collect.log "package=$PACKAGE
domain=$DOMAIN method=$METHOD repository=$REPO directory=$DIR
branch=${BRANCH:(default)}: packaging error, package does not call
translation-update-upstream properly and intltool-update fails, no way to
update"
STATUS=TUU_BROKEN
mkdir -p
$WORK_DIR/STAMPS/$PACKAGE/$DOMAIN/$METHOD/${REPO//[\/:.]/_}/$REPODIR/${BRANCH:-__HEAD__}
+ # However we cannot do anything, build dir is successfully
processed.
+ touch $WORK_DIR/STAMPS/$PACKAGE/.builddir_ok
continue
fi
fi
@@ -388,7 +403,7 @@
CGIT_BRANCH=${BRANCH:+?id=$BRANCH}
CGIT_SERVER=${CGIT_URI#http://}
CGIT_SERVER=${CGIT_SERVER%%/*}
- curl $CGIT_URI/tree/${REPODIR#*/}$CGIT_BRANCH | sed -n
's:^.*src="/icons/text\.gif" .* href="\([^"]*\)".*$:\1:p' |
+ curl $CGIT_URI/tree/${REPODIR#*/}$CGIT_BRANCH | sed -n
's:^.*class='\''ls-blob[^'\'']*'\'' href='\''\([^'\'']*\)'\''.*$:\1:p' |
while read ; do
wget -N
http://$CGIT_SERVER${REPLY/\/tree\///plain/}
done
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]