commit translation-update-upstream for openSUSE:Factory
![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
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 - sbrabec@suse.cz + +- 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: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de