File update-list.sh of Package bundle-lang-common
#!/bin/sh
export LC_ALL=C
PACKAGESFILE=packages.txt
if test -z `which w3m`; then
echo "w3m is required to run this script."
exit 1
fi
# first check !extra stuff
giturl=http://gitorious.org/opensuse/package-lists/raw/master
curl -Ls $giturl:output/opensuse/kde4_cd-nobundles.i586.list | grep -- -lang > kde.list
curl -Ls $giturl:output/opensuse/kde4_cd-nobundles.x86_64.list | grep -- -lang >> kde.list
curl -Ls $giturl:output/opensuse/gnome_cd-nobundles.i586.list | grep -- -lang > gnome.list
curl -Ls $giturl:output/opensuse/gnome_cd-nobundles.x86_64.list | grep -- -lang >> gnome.list
grep -v ' kde$' packages.txt | grep -v ' gnome$' | grep -v ' common$' > new && mv new packages.txt
for i in `cat kde.list gnome.list | sort -u`; do
opt=gnome
if grep -q -x $i kde.list; then
opt=kde
if grep -q -x $i gnome.list; then
opt=common
fi
fi
grep -v "$i gnome-extra" packages.txt > new && mv new packages.txt
echo "$i $opt" >> packages.txt
done
LC_ALL=C sort -o packages.txt packages.txt
rm kde.list gnome.list
HANDLED=`grep -E "kde$|common$|gnome$" $PACKAGESFILE | sed "s, .*$,,g"`
grep -v gnome-extras$ $PACKAGESFILE > $PACKAGESFILE.new
factlist=`mktemp`
osc api /build/openSUSE:Factory/standard/i586/_repository | grep -- -lang | grep -v bundle-lang | cut -d\" -f2 | sed 's,\.rpm$,,g;s,-lang-.*$,-lang,g' | sort -u > $factlist
for package in `(osc api /build/GNOME:Factory/openSUSE_Factory/i586/_repository; osc api /build/GNOME:Apps/openSUSE_Factory/i586/_repository) | grep -- -lang | grep -v bundle-lang | cut -d\" -f2 | sed 's,\.rpm$,,g;s,-lang-.*$,-lang,g' | sort -u`; do
grep -qx $package $factlist || continue
echo $HANDLED | sed "s, ,\n,g" | grep -q "^$package$"
if test $? -ne 0; then
echo "$package gnome-extras" >> $PACKAGESFILE.new
fi
done
LANG=C sort -u -o $PACKAGESFILE $PACKAGESFILE.new
# always wrong
PACKAGES="konqueror-plugins-lang glade3-lang gtk-vnc2-lang gtkmm2-tutorial-lang pango-module-thai-lang"
# broken upstream (errors when relinking or missing translations)
PACKAGES="$PACKAGES genius-lang glabels-lang gwibber-lang pitivi-lang"
# being added to Factory
PACKAGES="$PACKAGES NetworkManager-strongswan-lang"
#transmission-qt-lang has .qm files
PACKAGES="$PACKAGES transmission-qt-lang"
# they have man pages - which cause file conflicts
PACKAGES="mc-lang nano-lang"
# temporaries go here
for pack in $PACKAGES f-spot-lang gnome-do-plugins-lang totem-lang gnome-phone-manager-lang gtkpod-lang rhythmbox-lang the-board-lang libpurple-lang tasks-lang hamster-applet-lang pidgin-lang pidgin-advanced-sound-notification-lang pidgin-birthday-reminder-lang pidgin-guifications-lang gstreamer-0_10-plugins-bad-lang cairo-clock-lang specto-lang wxWidgets-lang almanah-lang giggle-lang gobby-lang sushi-lang inkscape-lang gtkmm3-tutorial-lang; do
grep -v "^$pack " $PACKAGESFILE > $PACKAGESFILE.new && mv $PACKAGESFILE.new $PACKAGESFILE
done
rm -f $PACKAGESFILE.new
# tier1
languages="en de es it fr"
# tier2
languages="$languages ja zh nl cs pt pl ca ar"
# tier3
languages="$languages hu ko da sv ru" # ... Hebrew, Indian Languages (TBD), Zulu, Xhosa, Afrikaans, Northern Sotho
# cthiel invented
languages="$languages fi nb"
# agustin invented
languages="$languages el"
bundles="kde gnome common"
LC_ALL=C sort -o packages.txt packages.txt
uniq=`cut -d' ' -f1 packages.txt | uniq -d`
if test -n "$uniq"; then
echo "duplicates: $uniq"
fi
for spec in $bundles; do
filename=bundle-lang-$spec.spec
packages=`grep " $spec"'$' packages.txt | cut -d' ' -f1`
packages=`echo $packages`
{
sed -n -e '1,/#LANGUAGES/p' bundle-lang.spec.in
for lang in $languages; do
echo "%package $lang"
echo "License: License"
echo "Summary: summary"
echo "Group: group"
for pack in $packages; do
echo "Provides: $pack = %(rpm -q --queryformat '%{VERSION}' $pack)"
case $pack in
*-lang)
echo "Provides: locale(${pack/-lang/}:$lang)"
if test "$lang" = "pt"; then
# special case for bnc#160811
echo "Provides: locale(${pack/-lang/}:pt_BR)"
fi
;;
esac
done
echo ""
echo "%description $lang"
echo "-"
echo ""
done
sed -n -e '/#LANGUAGES/,$p' bundle-lang.spec.in
} | {
sed="s,@TAKEN_LANGUAGES@,$languages,"
for p in $packages; do
sed="$sed;s,@BREQUIRES@,@BREQUIRES@\nBuildRequires: $p,"
sed="$sed;s,@PACKAGES@,@PACKAGES@\npackages=\"\$packages $p\","
done
# sed="$sed;s,@PACKAGES@,$packages,"
sed="$sed;s,@SPEC@,$spec,g"
for lang in $languages; do
sed="$sed;s,#LANGUAGE_FILES,%files $lang -f taken.$lang\n\n#LANGUAGE_FILES,"
done
sed -e "$sed"
} > $filename.new
perl update_spec.pl $filename.new attributes > $filename
rm $filename.new
done
for changes in $bundles; do
if test "$changes" = "common"; then
continue;
fi
cp -lf bundle-lang-common.changes bundle-lang-$changes.changes
done
osc service localrun format_spec_file
echo "CHECKING"
for spec in bundle-lang-gnome bundle-lang-kde bundle-lang-common; do
osc buildinfo openSUSE:Factory $spec standard i586 $spec.spec | grep '<error>'
done