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]

Reply via email to