summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Masłowski <mtjm@mtjm.eu>2011-11-26 11:56:56 +0100
committerMichał Masłowski <mtjm@mtjm.eu>2011-11-26 11:56:56 +0100
commit0fc7a60c47b41bf54d1f1429fddb6baddb80007c (patch)
tree77f6cc6477ba82a940d83258ffc98e2f26e40284
parent47ed35d319764a0de3a242524e037319bd1a52bd (diff)
parent6a642c093f29814cdd0fdefeee3ab9400eae490f (diff)
Merge branch 'master' of ssh://parabolagnulinux.org:1863/home/parabola/abslibre-pre-mips64el
Conflicts: community/ncdu/PKGBUILD extra/gcin/PKGBUILD extra/maxima/PKGBUILD extra/sbcl/PKGBUILD kde-unstable/calligra/PKGBUILD kde-unstable/kdebase-workspace/PKGBUILD
-rw-r--r--community-staging/gpsdrive/PKGBUILD69
-rw-r--r--community-staging/gpsdrive/gpsd-2.96.patch44
-rw-r--r--community-staging/gpsdrive/gpsdrive.install4
-rw-r--r--community-staging/performous/PKGBUILD48
-rw-r--r--community-staging/performous/boost-filesystem-v3.patch135
-rw-r--r--community-staging/pingus/ChangeLog21
-rw-r--r--community-staging/pingus/PKGBUILD31
-rw-r--r--community-staging/pingus/pingus.desktop9
-rw-r--r--community-testing/courier-authlib/PKGBUILD63
-rw-r--r--community-testing/courier-authlib/authdaemond.rc.d48
-rw-r--r--community-testing/courier-authlib/courier-authlib.install32
-rw-r--r--community-testing/courier-imap/PKGBUILD94
-rw-r--r--community-testing/courier-imap/courier-imap.conf.d18
-rw-r--r--community-testing/courier-imap/courier-imap.install16
-rw-r--r--community-testing/courier-imap/courier-imap.pam5
-rw-r--r--community-testing/courier-imap/courier-imap.rc.d62
-rw-r--r--community-testing/courier-imap/imapd-ssl.rc.d47
-rw-r--r--community-testing/courier-imap/imapd.rc.d47
-rw-r--r--community-testing/courier-imap/pop3d-ssl.rc.d47
-rw-r--r--community-testing/courier-imap/pop3d.rc.d47
-rw-r--r--community-testing/courier-maildrop/PKGBUILD46
-rw-r--r--community-testing/courier-mta/PKGBUILD143
-rw-r--r--community-testing/courier-mta/courier-mta.conf.d18
-rw-r--r--community-testing/courier-mta/courier-mta.install61
-rw-r--r--community-testing/courier-mta/courier-mta.rc.d60
-rw-r--r--community-testing/courier-mta/courier-webmail-cleancache.cron.hourly6
-rw-r--r--community-testing/courier-mta/courier.rc.d45
-rw-r--r--community-testing/courier-mta/esmtpd-msa.rc.d45
-rw-r--r--community-testing/courier-mta/esmtpd-ssl.rc.d45
-rw-r--r--community-testing/courier-mta/esmtpd.rc.d45
-rw-r--r--community-testing/courier-mta/imapd-ssl.rc.d45
-rw-r--r--community-testing/courier-mta/imapd.rc.d45
-rw-r--r--community-testing/courier-mta/pop3d-ssl.rc.d45
-rw-r--r--community-testing/courier-mta/pop3d.rc.d45
-rw-r--r--community-testing/courier-mta/webmaild.rc.d45
-rw-r--r--community-testing/freeradius/PKGBUILD44
-rw-r--r--community-testing/freeradius/freeradius.install22
-rw-r--r--community-testing/freeradius/krb5-build-fix.patch21
-rwxr-xr-xcommunity-testing/freeradius/radiusd43
-rw-r--r--community-testing/librep/PKGBUILD33
-rw-r--r--community-testing/librep/librep.install18
-rw-r--r--community-testing/mailutils/PKGBUILD46
-rw-r--r--community-testing/mailutils/mailutils.install20
-rw-r--r--community-testing/ntop/PKGBUILD44
-rwxr-xr-xcommunity-testing/ntop/ntop38
-rw-r--r--community-testing/ntop/ntop.conf.d5
-rw-r--r--community-testing/ntop/ntop.install8
-rw-r--r--community-testing/sage-mathematics/PKGBUILD105
-rw-r--r--community-testing/sage-mathematics/SAGE-notebook.desktop19
-rw-r--r--community-testing/sage-mathematics/sage-mathematics.install56
-rw-r--r--community-testing/smalltalk/PKGBUILD42
-rw-r--r--community-testing/xemacs/PKGBUILD65
-rw-r--r--community-testing/xemacs/xemacs-21.5.29-optimization-bug.patch14
-rw-r--r--community-testing/xemacs/xemacs.desktop34
-rw-r--r--community-testing/xemacs/xemacs.install35
-rw-r--r--community-testing/xkbsel/PKGBUILD31
-rw-r--r--community-testing/xkbsel/build-fix.patch24
-rw-r--r--community/fb-client/PKGBUILD7
-rw-r--r--community/gputils/PKGBUILD18
-rw-r--r--community/leafnode/PKGBUILD7
-rw-r--r--community/leafnode/leafnode.install3
-rw-r--r--community/mythtv/PKGBUILD10
-rw-r--r--community/ncdu/PKGBUILD33
-rw-r--r--community/open-vm-tools-modules/PKGBUILD10
-rw-r--r--community/open-vm-tools/PKGBUILD10
-rw-r--r--community/pigeonhole/PKGBUILD6
-rw-r--r--extra/gcin/PKGBUILD12
-rw-r--r--extra/gcin/qt4-lib64.patch17
-rw-r--r--extra/maxima/PKGBUILD10
-rw-r--r--extra/mysql/PKGBUILD8
-rw-r--r--extra/sbcl/PKGBUILD6
-rw-r--r--kde-unstable/kactivities/PKGBUILD34
-rw-r--r--kde-unstable/kactivities/fix-activities.patch156
-rw-r--r--kde-unstable/kdeaccessibility-jovie/PKGBUILD34
-rw-r--r--kde-unstable/kdeaccessibility-jovie/kdeaccessibility-jovie.install11
-rw-r--r--kde-unstable/kdeaccessibility-kaccessible/PKGBUILD30
-rw-r--r--kde-unstable/kdeaccessibility-kmag/PKGBUILD33
-rw-r--r--kde-unstable/kdeaccessibility-kmag/kdeaccessibility-kmag.install11
-rw-r--r--kde-unstable/kdeaccessibility-kmousetool/PKGBUILD33
-rw-r--r--kde-unstable/kdeaccessibility-kmousetool/kdeaccessibility-kmousetool.install11
-rw-r--r--kde-unstable/kdeaccessibility-kmouth/PKGBUILD33
-rw-r--r--kde-unstable/kdeaccessibility-kmouth/kdeaccessibility-kmouth.install11
-rw-r--r--kde-unstable/kdeadmin/PKGBUILD80
-rw-r--r--kde-unstable/kdeadmin/kdeadmin.install11
-rw-r--r--kde-unstable/kdeadmin/syslog-path.patch11
-rw-r--r--kde-unstable/kdeartwork/PKGBUILD104
-rw-r--r--kde-unstable/kdebase-konsole/PKGBUILD30
-rw-r--r--kde-unstable/kdebase-runtime/PKGBUILD43
-rw-r--r--kde-unstable/kdebase-runtime/kdebase-runtime.install12
-rw-r--r--kde-unstable/kdebase-workspace/kdm-xinitrd.patch18
-rw-r--r--kde-unstable/kdebase/PKGBUILD120
-rw-r--r--kde-unstable/kdebase/kdebase-dolphin.install11
-rw-r--r--kde-unstable/kdebase/kdebase-konqueror.install12
-rw-r--r--kde-unstable/kdebase/kdebase.install11
-rw-r--r--kde-unstable/kdebindings-kimono/PKGBUILD32
-rw-r--r--kde-unstable/kdebindings-kross/PKGBUILD52
-rw-r--r--kde-unstable/kdebindings-perlkde/PKGBUILD31
-rw-r--r--kde-unstable/kdebindings-perlqt/PKGBUILD31
-rw-r--r--kde-unstable/kdebindings-python/PKGBUILD34
-rw-r--r--kde-unstable/kdebindings-qtruby/PKGBUILD31
-rw-r--r--kde-unstable/kdebindings-qyoto/PKGBUILD31
-rw-r--r--kde-unstable/kdebindings-smokegen/PKGBUILD30
-rw-r--r--kde-unstable/kdebindings-smokekde/PKGBUILD32
-rw-r--r--kde-unstable/kdebindings-smokeqt/PKGBUILD32
-rw-r--r--kde-unstable/kdeedu-analitza/PKGBUILD30
-rw-r--r--kde-unstable/kdeedu-blinken/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-blinken/kdeedu-blinken.install11
-rw-r--r--kde-unstable/kdeedu-cantor/PKGBUILD34
-rw-r--r--kde-unstable/kdeedu-cantor/kdeedu-cantor.install12
-rw-r--r--kde-unstable/kdeedu-kalgebra/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install12
-rw-r--r--kde-unstable/kdeedu-kalzium/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install11
-rw-r--r--kde-unstable/kdeedu-kanagram/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install11
-rw-r--r--kde-unstable/kdeedu-kbruch/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install11
-rw-r--r--kde-unstable/kdeedu-kgeography/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install11
-rw-r--r--kde-unstable/kdeedu-khangman/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-khangman/kdeedu-khangman.install11
-rw-r--r--kde-unstable/kdeedu-kig/PKGBUILD34
-rw-r--r--kde-unstable/kdeedu-kig/kdeedu-kig.install12
-rw-r--r--kde-unstable/kdeedu-kiten/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kiten/kdeedu-kiten.install11
-rw-r--r--kde-unstable/kdeedu-klettres/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-klettres/kdeedu-klettres.install11
-rw-r--r--kde-unstable/kdeedu-kmplot/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install12
-rw-r--r--kde-unstable/kdeedu-kstars/PKGBUILD32
-rw-r--r--kde-unstable/kdeedu-kstars/kdeedu-kstars.install11
-rw-r--r--kde-unstable/kdeedu-ktouch/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install11
-rw-r--r--kde-unstable/kdeedu-kturtle/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install11
-rw-r--r--kde-unstable/kdeedu-kwordquiz/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install12
-rw-r--r--kde-unstable/kdeedu-marble/PKGBUILD32
-rw-r--r--kde-unstable/kdeedu-marble/kdeedu-marble.install12
-rw-r--r--kde-unstable/kdeedu-parley/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-parley/kdeedu-parley.install12
-rw-r--r--kde-unstable/kdeedu-rocs/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-step/PKGBUILD31
-rw-r--r--kde-unstable/kdeedu-step/kdeedu-step.install11
-rw-r--r--kde-unstable/kdegames/PKGBUILD515
-rw-r--r--kde-unstable/kdegames/kdegames-kbattleship.install24
-rw-r--r--kde-unstable/kdegames/kdegames-kfourinline.install12
-rw-r--r--kde-unstable/kdegames/kdegames-kigo.install12
-rw-r--r--kde-unstable/kdegames/kdegames-kolf.install12
-rw-r--r--kde-unstable/kdegames/kdegames-kpatience.install12
-rw-r--r--kde-unstable/kdegames/kdegames-kreversi.install22
-rw-r--r--kde-unstable/kdegames/kdegames-kspaceduel.install12
-rw-r--r--kde-unstable/kdegames/kdegames-ksquares.install22
-rw-r--r--kde-unstable/kdegames/kdegames-ktuberling.install12
-rw-r--r--kde-unstable/kdegames/kdegames-lskat.install12
-rw-r--r--kde-unstable/kdegames/kdegames-palapeli.install13
-rw-r--r--kde-unstable/kdegames/kdegames.install11
-rw-r--r--kde-unstable/kdegraphics-gwenview/PKGBUILD32
-rw-r--r--kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install12
-rw-r--r--kde-unstable/kdegraphics-kamera/PKGBUILD30
-rw-r--r--kde-unstable/kdegraphics-kcolorchooser/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install11
-rw-r--r--kde-unstable/kdegraphics-kgamma/PKGBUILD33
-rw-r--r--kde-unstable/kdegraphics-kolourpaint/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install12
-rw-r--r--kde-unstable/kdegraphics-kruler/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install12
-rw-r--r--kde-unstable/kdegraphics-ksaneplugin/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-ksnapshot/PKGBUILD32
-rw-r--r--kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install12
-rw-r--r--kde-unstable/kdegraphics-mobipocket/PKGBUILD32
-rw-r--r--kde-unstable/kdegraphics-mobipocket/kdegraphics-mobipocket.install11
-rw-r--r--kde-unstable/kdegraphics-okular/PKGBUILD34
-rw-r--r--kde-unstable/kdegraphics-okular/kdegraphics-okular.install12
-rw-r--r--kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-svgpart/PKGBUILD31
-rw-r--r--kde-unstable/kdegraphics-thumbnailers/PKGBUILD31
-rw-r--r--kde-unstable/kdelibs/PKGBUILD56
-rw-r--r--kde-unstable/kdelibs/archlinux-menu.patch22
-rw-r--r--kde-unstable/kdelibs/kde-applications-menu.patch22
-rw-r--r--kde-unstable/kdelibs/kdelibs.install13
-rw-r--r--kde-unstable/kdemultimedia/PKGBUILD108
-rw-r--r--kde-unstable/kdemultimedia/kdemultimedia-dragonplayer.install12
-rw-r--r--kde-unstable/kdemultimedia/kdemultimedia.install11
-rw-r--r--kde-unstable/kdemultimedia/mplayerthumbs.config2
-rw-r--r--kde-unstable/kdenetwork/PKGBUILD110
-rw-r--r--kde-unstable/kdenetwork/kdenetwork-kget.install12
-rw-r--r--kde-unstable/kdenetwork/kdenetwork-kopete.install12
-rw-r--r--kde-unstable/kdenetwork/kdenetwork-kppp.install12
-rw-r--r--kde-unstable/kdenetwork/kdenetwork.install11
-rw-r--r--kde-unstable/kdepim-runtime/PKGBUILD32
-rw-r--r--kde-unstable/kdepim-runtime/kdepim-runtime.install12
-rw-r--r--kde-unstable/kdepim/PKGBUILD253
-rw-r--r--kde-unstable/kdepim/kdepim-kleopatra.install12
-rw-r--r--kde-unstable/kdepim/kdepim-kmail.install12
-rw-r--r--kde-unstable/kdepim/kdepim-korganizer.install12
-rw-r--r--kde-unstable/kdepim/kdepim.install11
-rw-r--r--kde-unstable/kdepimlibs/PKGBUILD32
-rw-r--r--kde-unstable/kdepimlibs/kdepimlibs.install11
-rw-r--r--kde-unstable/kdeplasma-addons/PKGBUILD619
-rw-r--r--kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install12
-rw-r--r--kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install (renamed from kde-unstable/calligra/calligra-plan.install)1
-rw-r--r--kde-unstable/kdesdk-kate/PKGBUILD58
-rw-r--r--kde-unstable/kdesdk-kate/kdebase-kwrite.install12
-rw-r--r--kde-unstable/kdesdk-kate/kdesdk-kate.install13
-rw-r--r--kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch11
-rw-r--r--kde-unstable/kdesdk/PKGBUILD258
-rw-r--r--kde-unstable/kdesdk/fix-python2-path.patch32
-rw-r--r--kde-unstable/kdesdk/kdesdk-cervisia.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-kcachegrind.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-kompare.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-kuiviewer.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-lokalize.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-okteta.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk-umbrello.install12
-rw-r--r--kde-unstable/kdesdk/kdesdk.install11
-rw-r--r--kde-unstable/kdetoys/PKGBUILD56
-rw-r--r--kde-unstable/kdetoys/kdetoys.install11
-rw-r--r--kde-unstable/kdeutils-filelight/PKGBUILD35
-rw-r--r--kde-unstable/kdeutils-filelight/kdeutils-filelight.install12
-rw-r--r--kde-unstable/kdeutils-kcalc/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kcalc/kdeutils-kcalc.install11
-rw-r--r--kde-unstable/kdeutils-kcharselect/PKGBUILD32
-rw-r--r--kde-unstable/kdeutils-kdf/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kdf/kdeutils-kdf.install11
-rw-r--r--kde-unstable/kdeutils-kfloppy/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kfloppy/kdeutils-kfloppy.install12
-rw-r--r--kde-unstable/kdeutils-kgpg/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kgpg/kdeutils-kgpg.install12
-rw-r--r--kde-unstable/kdeutils-kremotecontrol/PKGBUILD35
-rw-r--r--kde-unstable/kdeutils-kremotecontrol/kdeutils-kremotecontrol.install11
-rw-r--r--kde-unstable/kdeutils-ktimer/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-ktimer/kdeutils-ktimer.install11
-rw-r--r--kde-unstable/kdeutils-kwallet/PKGBUILD33
-rw-r--r--kde-unstable/kdeutils-kwallet/kdeutils-kwallet.install12
-rw-r--r--kde-unstable/kdeutils-printer-applet/PKGBUILD38
-rw-r--r--kde-unstable/kdeutils-superkaramba/PKGBUILD31
-rw-r--r--kde-unstable/kdeutils-superkaramba/kdeutils-superkaramba.install12
-rw-r--r--kde-unstable/kdeutils-sweeper/PKGBUILD33
-rw-r--r--kde-unstable/kdewebdev/PKGBUILD66
-rw-r--r--kde-unstable/kdewebdev/kdewebdev-kimagemapeditor.install12
-rw-r--r--kde-unstable/kdewebdev/kdewebdev.install11
-rw-r--r--kde-unstable/libkdcraw/PKGBUILD32
-rw-r--r--kde-unstable/libkdcraw/libkdcraw.install11
-rw-r--r--kde-unstable/libkdeedu/PKGBUILD31
-rw-r--r--kde-unstable/libkdeedu/libkdeedu.install11
-rw-r--r--kde-unstable/libkexiv2/PKGBUILD31
-rw-r--r--kde-unstable/libkipi/PKGBUILD32
-rw-r--r--kde-unstable/libkipi/libkipi.install11
-rw-r--r--kde-unstable/libksane/PKGBUILD32
-rw-r--r--kde-unstable/libksane/libksane.install11
-rw-r--r--staging/hugin/PKGBUILD34
-rw-r--r--staging/hugin/hugin.install15
-rw-r--r--testing/apr-util/PKGBUILD28
-rw-r--r--testing/avahi/PKGBUILD75
-rw-r--r--testing/avahi/gnome-nettool.pngbin0 -> 4509 bytes
-rw-r--r--testing/avahi/install21
-rw-r--r--testing/avahi/rc.d.patch11
-rw-r--r--testing/bison/PKGBUILD39
-rw-r--r--testing/bison/bison-2.5-undefined-reference.patch11
-rw-r--r--testing/bison/bison.install16
-rw-r--r--testing/gdbm/PKGBUILD57
-rw-r--r--testing/gdbm/gdbm-1.10-zeroheaders.patch33
-rw-r--r--testing/gdbm/gdbm.install21
-rw-r--r--testing/lighttpd/PKGBUILD67
-rw-r--r--testing/lighttpd/lighttpd.conf12
-rw-r--r--testing/lighttpd/lighttpd.logrotate.d6
-rw-r--r--testing/lighttpd/lighttpd.rc.d132
-rw-r--r--testing/links/PKGBUILD47
-rw-r--r--testing/links/links.desktop7
-rw-r--r--testing/man-db/1361_1360.diff25
-rw-r--r--testing/man-db/PKGBUILD60
-rw-r--r--testing/man-db/convert-mans11
-rwxr-xr-xtesting/man-db/man-db.cron.daily39
-rw-r--r--testing/man-db/man-db.install22
-rw-r--r--testing/mutt/PKGBUILD48
-rw-r--r--testing/mutt/install8
-rw-r--r--testing/ocaml/PKGBUILD57
-rw-r--r--testing/ocaml/fix-ocaml-binutils-2.21.patch66
-rw-r--r--testing/perl/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch83
-rw-r--r--testing/perl/ChangeLog66
-rw-r--r--testing/perl/PKGBUILD109
-rw-r--r--testing/perl/fix-h2ph-and-tests.patch104
-rw-r--r--testing/perl/perl.install10
-rw-r--r--testing/perl/perlbin.csh15
-rwxr-xr-xtesting/perl/perlbin.sh18
-rw-r--r--testing/perl/provides.pl286
-rw-r--r--testing/php/PKGBUILD365
-rw-r--r--testing/php/apache.conf13
-rw-r--r--testing/php/logrotate.d.php-fpm6
-rw-r--r--testing/php/php-fpm.conf.in.patch80
-rw-r--r--testing/php/php.ini.patch126
-rw-r--r--testing/php/rc.d.php-fpm158
-rw-r--r--testing/python/PKGBUILD81
-rw-r--r--testing/python/gdbm-magic-values.patch13
-rw-r--r--testing/ruby/PKGBUILD46
-rw-r--r--testing/subversion/PKGBUILD100
-rw-r--r--testing/subversion/subversion-perl-bindings.patch12
-rw-r--r--testing/subversion/subversion.rpath.fix.patch10
-rw-r--r--testing/subversion/subversion.suppress.deprecation.warnings.patch22
-rw-r--r--testing/subversion/svn11
-rw-r--r--testing/subversion/svnmerge.py2370
-rwxr-xr-xtesting/subversion/svnserve42
-rw-r--r--testing/subversion/svnserve.conf7
-rw-r--r--testing/syslog-ng/PKGBUILD53
-rw-r--r--testing/syslog-ng/syslog-ng.conf92
-rw-r--r--testing/syslog-ng/syslog-ng.logrotate7
-rwxr-xr-xtesting/syslog-ng/syslog-ng.rc66
-rw-r--r--testing/ypserv/PKGBUILD37
-rwxr-xr-xtesting/ypserv/yppasswd34
-rwxr-xr-xtesting/ypserv/ypserv34
-rw-r--r--testing/zsh/PKGBUILD58
-rw-r--r--testing/zsh/modules.patch11
-rw-r--r--testing/zsh/zsh.install11
314 files changed, 13995 insertions, 97 deletions
diff --git a/community-staging/gpsdrive/PKGBUILD b/community-staging/gpsdrive/PKGBUILD
new file mode 100644
index 000000000..0901a0fd6
--- /dev/null
+++ b/community-staging/gpsdrive/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 59398 2011-11-24 09:02:36Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=gpsdrive
+pkgver=2.11
+pkgrel=11
+pkgdesc="A car (bike, ship, plane) navigation system"
+arch=("i686" "x86_64")
+url="http://www.gpsdrive.de/"
+license=('GPL2')
+depends=('gtk2' 'gpsd' 'libxml2' 'curl' 'python2' 'boost-libs' 'gdal' 'mapnik' 'postgresql-libs' 'openstreetmap-map-icons-svn'
+ 'perl-date-manip' 'perl-timedate' 'perl-dbi' 'perl-file-slurp' 'perl-www-mechanize' 'perl-libwww' 'perl-uri'
+ 'perl-text-query' 'perl-www-curl' 'perl-xml-parser' 'perl-xml-simple' 'perl-xml-twig' 'perl-xml-writer'
+ ) # already in core ('sqlite3')
+makedepends=('cmake>=2.4.4' 'boost' 'cfitsio')
+install="gpsdrive.install"
+source=("http://www.gpsdrive.de/packages/${pkgname}-${pkgver}.tar.gz"
+ "gpsd-2.96.patch")
+md5sums=('6eeeca8e5c647115bea836d1f8fb6e0c'
+ '5769e12c6d8932fb721212434c64f505')
+
+build() {
+ cd "$srcdir"
+
+ # python2 fix
+ for file in $(find . -name '*.py' -print); do
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' $file
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+
+ rm -rf build
+ mkdir build
+ cd build
+
+ # fix the mapnik default values
+ sed -i 's|"/usr/lib/mapnik/0.7/input/"|"/usr/lib/mapnik/input/"|' "${srcdir}/gpsdrive-${pkgver}/src/gpsdrive_config.c"
+ sed -i 's|"/usr/share/fonts/truetype/ttf-dejavu/"|"/usr/share/fonts/TTF/"|' "${srcdir}/gpsdrive-${pkgver}/src/gpsdrive_config.c"
+
+ export CFLAGS=-I/usr/include/gdk-pixbuf-2.0/
+ export CPPFLAGS=-I/usr/include/gdk-pixbuf-2.0/
+ export CXXFLAGS=-I/usr/include/gdk-pixbuf-2.0/
+ export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+ unset LDFLAGS
+
+ # see DefineOptions.cmake for a list of common options and defaults
+ # cmake -L for a more in-depth listing
+ cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX="/usr" \
+ -DWITH_SCRIPTS=ON \
+ -DWITH_MAPNIK=ON \
+ -DWITH_POSTGIS=ON \
+ -DWITH_GDAL=ON \
+ -DWITH_BASEMAPS=ON \
+ -DWITH_FRIENDSD=ON \
+ -DWITH_KISMET=ON \
+ -DWITH_NAVIGATION=ON \
+ -DWITH_SPEECH=OFF \
+ -DWITH_DBUS=OFF \
+ -DLIBGPS_OLD=OFF \
+ "$srcdir/gpsdrive-$pkgver"
+ (cd "$srcdir/gpsdrive-$pkgver" && patch -p1 <$srcdir/gpsd-2.96.patch)
+ make
+}
+
+package() {
+ cd "$srcdir/build"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community-staging/gpsdrive/gpsd-2.96.patch b/community-staging/gpsdrive/gpsd-2.96.patch
new file mode 100644
index 000000000..bc6c7475f
--- /dev/null
+++ b/community-staging/gpsdrive/gpsd-2.96.patch
@@ -0,0 +1,44 @@
+diff -wbBur gpsdrive-2.11/src/gps_handler.c gpsdrive-2.11.my/src/gps_handler.c
+--- gpsdrive-2.11/src/gps_handler.c 2010-06-24 19:53:32.000000000 +0000
++++ gpsdrive-2.11.my/src/gps_handler.c 2011-04-18 13:21:33.000000000 +0000
+@@ -264,7 +264,8 @@
+ #define GPS_TIMER 500
+
+ static gint gps_timeout_source = 0;
+-static struct gps_data_t *gpsdata;
++static struct gps_data_t __gd;
++static struct gps_data_t *gpsdata = &__gd;
+
+ /* SYMBOLS USED IN LIBGPS:
+ *
+@@ -410,9 +411,10 @@
+ */
+ gps_query (gpsdata, "oys\n");
+ #else
+- if (gps_waiting(gpsdata))
++ if (gps_waiting(gpsdata, 1000000))
+ {
+- gps_poll (gpsdata);
++ gps_read (gpsdata);
++ gps_hook_cb(gpsdata, NULL);
+ }
+ #endif
+
+@@ -447,7 +449,7 @@
+ }
+
+ /* try to open connection */
+- gpsdata = gps_open (local_config.gpsd_server, local_config.gpsd_port);
++ gpsdata = gps_open (local_config.gpsd_server, local_config.gpsd_port, gpsdata) ? NULL : &__gd;
+ if (!gpsdata)
+ {
+ g_print ("Can't connect to gps daemon on %s:%s, disabling GPS support!\n",
+@@ -466,7 +468,7 @@
+ gps_sats = g_new (gps_satellite_struct, MAXCHANNELS);
+
+ /* set hook function to handle gps data */
+- gps_set_raw_hook (gpsdata, (gpointer) gps_hook_cb);
++// gps_set_raw_hook (gpsdata, (gpointer) gps_hook_cb);
+
+ #ifndef LIBGPS_OLD
+ /* enable watch mode to get data stream from gpsd */
diff --git a/community-staging/gpsdrive/gpsdrive.install b/community-staging/gpsdrive/gpsdrive.install
new file mode 100644
index 000000000..8ea63912e
--- /dev/null
+++ b/community-staging/gpsdrive/gpsdrive.install
@@ -0,0 +1,4 @@
+post_install() {
+ echo "Don't forget to generate geoinfo.db with geoinfo.pl script"
+ echo "Also you can check http://wiki.archlinux.org/index.php/GpsDrive"
+}
diff --git a/community-staging/performous/PKGBUILD b/community-staging/performous/PKGBUILD
new file mode 100644
index 000000000..8a77149f1
--- /dev/null
+++ b/community-staging/performous/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 59406 2011-11-24 14:52:47Z lcarlier $
+# Maintainer : Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
+
+pkgname=performous
+pkgver=0.6.1
+pkgrel=11
+pkgdesc='A free game like "Singstar", "Rockband" or "Stepmania"'
+arch=('i686' 'x86_64')
+url="http://performous.org/"
+license=('GPL')
+depends=('boost-libs>=1.48' 'imagemagick' 'glew>=1.7.0' 'libxml++' 'portaudio' 'portmidi' 'opencv' 'librsvg')
+#depends=('boost-libs>=1.48' 'sdl' 'jack' 'imagemagick' 'ffmpeg' 'glew>=1.7.0' 'libxml++' 'portaudio' 'portmidi' \
+# 'opencv' 'librsvg' 'libjpeg' 'libpng' 'cairo')
+makedepends=('cmake' 'pkgconfig' 'help2man' 'boost>=1.48')
+optdepends=('performous-freesongs: free songs for performous')
+source=(http://sourceforge.net/projects/$pkgname/files/$pkgname/$pkgver/Performous-$pkgver-Source.tar.bz2
+ boost-filesystem-v3.patch
+ ffmpeg-0.8.patch::"http://performous.git.sourceforge.net/git/gitweb.cgi?p=performous/performous;a=patch;h=18449f6e56451f68b980c8359a4d1dc06f82db1a")
+md5sums=('451a759de77984b5a699e91107fe52e2'
+ '42a8c825d80b0de16bd5752d2a80e585'
+ 'ff0ffa681dfaa09c4f42133a65309bf0')
+
+build() {
+ cd ${srcdir}/Performous-${pkgver}-Source
+
+ # fix to built against boost 1.46 and later, upstream (git) now support v3
+ patch -Np1 -i ../boost-filesystem-v3.patch
+ # fix with ffmpeg-0.8
+ patch -Np1 -i ../ffmpeg-0.8.patch
+
+ mkdir -p build
+ cd build
+
+ # fix config loading with libxml++
+ export LDFLAGS=${LDFLAGS/-Wl,--as-needed/}
+
+ cmake -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr ..
+
+ make
+}
+
+package() {
+ cd ${srcdir}/Performous-${pkgver}-Source/build
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community-staging/performous/boost-filesystem-v3.patch b/community-staging/performous/boost-filesystem-v3.patch
new file mode 100644
index 000000000..22dd07213
--- /dev/null
+++ b/community-staging/performous/boost-filesystem-v3.patch
@@ -0,0 +1,135 @@
+diff --git a/game/backgrounds.cc b/game/backgrounds.cc
+index 7fd3cd0..cdedefb 100644
+--- a/game/backgrounds.cc
++++ b/game/backgrounds.cc
+@@ -55,8 +55,13 @@ void Backgrounds::reload_internal(fs::path const& parent) {
+ for (fs::directory_iterator dirIt(parent), dirEnd; m_loading && dirIt != dirEnd; ++dirIt) {
+ fs::path p = dirIt->path();
+ if (fs::is_directory(p)) { reload_internal(p); continue; }
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string name = p.leaf(); // File basename
+ std::string path = p.directory_string(); // Path without filename
++#else
++ std::string name = p.filename().string(); // File basename
++ std::string path = p.string(); // Path without filename
++#endif
+ path.erase(path.size() - name.size());
+ if (!regex_match(name.c_str(), match, expression)) continue;
+ {
+diff --git a/game/cache.cc b/game/cache.cc
+index 69974e2..0f1edd0 100644
+--- a/game/cache.cc
++++ b/game/cache.cc
+@@ -9,7 +9,11 @@ namespace cache {
+ fs::path constructSVGCacheFileName(fs::path const& svgfilename, double factor){
+ fs::path cache_filename;
+ std::string const lod = (boost::format("%.2f") % factor).str();
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string const cache_basename = svgfilename.filename() + ".cache_" + lod + ".png";
++#else
++ std::string const cache_basename = svgfilename.filename().string() + ".cache_" + lod + ".png";
++#endif
+
+ if (isThemeResource(svgfilename)) {
+ std::string const theme_name = (config["game/theme"].s().empty() ? "default" : config["game/theme"].s());
+diff --git a/game/filemagic.hh b/game/filemagic.hh
+index bf87ded..29e81fe 100644
+--- a/game/filemagic.hh
++++ b/game/filemagic.hh
+@@ -71,7 +71,11 @@ namespace filemagic {
+ // For now, just check the extension an assume it's not lying.
+
+ // Get file extension in lower case
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string ext = filename.extension();
++#else
++ std::string ext = filename.extension().string();
++#endif
+ // somehow this does not convert the extension to lower case:
+ //std::for_each(ext.begin(), ext.end(), static_cast<int(*)(int)>(std::tolower));
+ std::transform(ext.begin(), ext.end(), ext.begin(), ::tolower );
+diff --git a/game/fs.cc b/game/fs.cc
+index e34a784..767a7ab 100644
+--- a/game/fs.cc
++++ b/game/fs.cc
+@@ -128,7 +128,11 @@ std::string getThemePath(std::string const& filename) {
+
+ bool isThemeResource(fs::path filename){
+ try {
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string themefile = getThemePath(filename.filename());
++#else
++ std::string themefile = getThemePath(filename.filename().string());
++#endif
+ return themefile == filename;
+ } catch (...) { return false; }
+ }
+diff --git a/game/songparser-ini.cc b/game/songparser-ini.cc
+index 38e163b..db15d79 100644
+--- a/game/songparser-ini.cc
++++ b/game/songparser-ini.cc
+@@ -104,7 +104,11 @@ void SongParser::iniParseHeader() {
+ // Search the dir for the music files
+ for (boost::filesystem::directory_iterator dirIt(s.path), dirEnd; dirIt != dirEnd; ++dirIt) {
+ boost::filesystem::path p = dirIt->path();
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string name = p.leaf(); // File basename (notes.txt)
++#else
++ std::string name = p.filename().string(); // File basename (notes.txt)
++#endif
+ if (regex_match(name.c_str(), match, midifile)) {
+ s.midifilename = name;
+ } else if (regex_match(name.c_str(), match, audiofile_background)) {
+diff --git a/game/songparser.cc b/game/songparser.cc
+index 2b7b9b4..ac9f3f6 100644
+--- a/game/songparser.cc
++++ b/game/songparser.cc
+@@ -100,7 +100,11 @@ SongParser::SongParser(Song& s):
+
+ for (boost::filesystem::directory_iterator dirIt(s.path), dirEnd; dirIt != dirEnd; ++dirIt) {
+ boost::filesystem::path p = dirIt->path();
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string name = p.leaf(); // File basename
++#else
++ std::string name = p.filename().string(); // File basename
++#endif
+ if (m_song.cover.empty() && regex_match(name.c_str(), match, coverfile)) {
+ m_song.cover = name;
+ } else if (m_song.background.empty() && regex_match(name.c_str(), match, backgroundfile)) {
+diff --git a/game/songs.cc b/game/songs.cc
+index 62ab26d..afab383 100644
+--- a/game/songs.cc
++++ b/game/songs.cc
+@@ -67,8 +67,13 @@ void Songs::reload_internal(fs::path const& parent) {
+ for (fs::directory_iterator dirIt(parent), dirEnd; m_loading && dirIt != dirEnd; ++dirIt) {
+ fs::path p = dirIt->path();
+ if (fs::is_directory(p)) { reload_internal(p); continue; }
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string name = p.leaf(); // File basename (notes.txt)
+ std::string path = p.directory_string(); // Path without filename
++#else
++ std::string name = p.filename().string(); // File basename (notes.txt)
++ std::string path = p.string(); // Path without filename
++#endif
+ path.erase(path.size() - name.size());
+ if (!regex_match(name.c_str(), match, expression)) continue;
+ try {
+diff --git a/tools/ss_helpers.hh b/tools/ss_helpers.hh
+index 58e19dc..8895d94 100644
+--- a/tools/ss_helpers.hh
++++ b/tools/ss_helpers.hh
+@@ -10,7 +10,11 @@ extern "C" void xmlLogger(void* logger, char const* msg, ...) { if (logger) *(st
+ void enableXMLLogger(std::ostream& os = std::cerr) { xmlSetGenericErrorFunc(&os, xmlLogger); }
+ void disableXMLLogger() { xmlSetGenericErrorFunc(NULL, xmlLogger); }
+
++#if BOOST_FILESYSTEM_VERSION < 3
+ std::string filename(boost::filesystem::path const& p) { return *--p.end(); }
++#else
++std::string filename(boost::filesystem::path const& p) { return p.filename().string(); }
++#endif
+
+ /** Fix Singstar's b0rked XML **/
+ std::string xmlFix(std::vector<char> const& data) {
+--
+1.7.4.1
+
diff --git a/community-staging/pingus/ChangeLog b/community-staging/pingus/ChangeLog
new file mode 100644
index 000000000..c182f92eb
--- /dev/null
+++ b/community-staging/pingus/ChangeLog
@@ -0,0 +1,21 @@
+2010-03-18 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * pingus 0.7.2-8
+ * Rebuilt against boost 1.41.0
+
+2010-02-23 Eric Belanger <eric@archlinux.org>
+
+ * pingus 0.7.2-7
+ * Rebuilt against boost 1.42.0
+
+2010-01-20 Eric Belanger <eric@archlinux.org>
+
+ * pingus 0.7.2-6
+ * Rebuilt against libpng 1.4/libjpeg 8
+
+2009-07-13 Eric Belanger <eric@archlinux.org>
+
+ * pingus 0.7.2-2
+ * Rebuilt against boost 1.39
+ * Added gcc 4.4 patch
+ * Added ChangeLog
diff --git a/community-staging/pingus/PKGBUILD b/community-staging/pingus/PKGBUILD
new file mode 100644
index 000000000..d37f588f7
--- /dev/null
+++ b/community-staging/pingus/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59408 2011-11-24 15:18:25Z lcarlier $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=pingus
+pkgver=0.7.5
+pkgrel=2
+pkgdesc="A Lemmings clone, i.e. a level-based puzzle game."
+arch=('i686' 'x86_64')
+url="http://pingus.seul.org"
+license=('GPL')
+depends=('sdl_image' 'sdl_mixer' 'libgl' 'boost-libs>=1.48')
+makedepends=('scons' 'boost>=1.48' 'mesa')
+source=(http://pingus.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2 pingus.desktop)
+md5sums=('68e0bd1327e0eedcaab64d64528540ba'
+ '9eec34047bdcff49e08f41e81764e20c')
+sha1sums=('65493f9c9914bb401dbcfe1fe6bf2fad2388b755'
+ '579a1144f161ce89e6e024cea37210149b89c0c0')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ scons prefix=/usr
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make install DESTDIR="${pkgdir}" PREFIX="/usr"
+
+ install -D -m644 "${srcdir}/pingus.desktop" "${pkgdir}/usr/share/applications/pingus.desktop"
+}
diff --git a/community-staging/pingus/pingus.desktop b/community-staging/pingus/pingus.desktop
new file mode 100644
index 000000000..276db36a4
--- /dev/null
+++ b/community-staging/pingus/pingus.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Pingus
+Comment=A free Lemmings[tm] clone
+Exec=pingus
+Terminal=false
+Type=Application
+Categories=Application;Game;LogicGame
+Icon=/usr/share/pingus/images/core/editor/actions.png
diff --git a/community-testing/courier-authlib/PKGBUILD b/community-testing/courier-authlib/PKGBUILD
new file mode 100644
index 000000000..99e43c8c3
--- /dev/null
+++ b/community-testing/courier-authlib/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 53167 2009-09-26 09:48:47Z allan $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=courier-authlib
+pkgver=0.63.0
+pkgrel=5
+pkgdesc="Authentification library for the courier mailserver(s)"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://courier-mta.org/authlib/"
+backup=('etc/authlib/authdaemonrc' 'etc/authlib/authldaprc' \
+ 'etc/authlib/authmysqlrc' 'etc/authlib/authpgsqlrc')
+depends=('openssl' 'gdbm' 'perl' 'libtool' 'expect')
+makedepends=('pam' 'expect' 'libldap' 'libmysqlclient' 'postgresql-libs>=8.3.0')
+optdepends=('libmysqlclient' 'libldap' 'postgresql-libs')
+conflicts=('courier-imap-mysql' 'courier-imap-pgsql' 'courier-imap-ldap')
+provides=('courier-imap-mysql' 'courier-imap-pgsql' 'courier-imap-ldap')
+options=(!libtool)
+install=${pkgname}.install
+source=(http://downloads.sourceforge.net/project/courier/authlib/${pkgver}/${pkgname}-${pkgver}.tar.bz2
+ authdaemond.rc.d)
+md5sums=('411a927d178f783a1e8fab9964ce0dd2'
+ '911ee9f40d70fafc6bb4cc636c5ad531')
+
+build() {
+ #export MAKEFLAGS="-j1"
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libdir=/usr/lib \
+ --libexecdir=/usr/lib \
+ --with-db=gdbm \
+ --with-mailuser=courier --with-mailgroup=courier \
+ --with-authpam --with-authpwd --with-authshadow \
+ --with-authldap --with-authmysql --with-authpgsql \
+ --with-authuserdb --with-authcram --with-authdaemon
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ ###############################################################################
+ # post_installation ---- rename the config file and change ownerschip
+ for distfile in ${pkgdir}/etc/authlib/*.dist; do
+ chown 72:72 ${distfile}
+ mv ${distfile} ${pkgdir}/etc/authlib/`basename ${distfile} .dist`
+ done
+ # copy the .schema; mostly refered to as courier.schema -> rename it
+ install -Dm 444 authldap.schema \
+ ${pkgdir}/etc/openldap/schema/courier.schema
+ ###############################################################################
+ # Install daemon, that wraps couriers bashscript
+ install -Dm 755 ${srcdir}/authdaemond.rc.d ${pkgdir}/etc/rc.d/authdaemond
+ chown -R 72:72 ${pkgdir}/var/spool/authdaemon
+ mkdir ${pkgdir}/var/spool/courier
+ chown -R 72:72 ${pkgdir}/var/spool/courier
+ # docs say we can remove .a files after make
+ find ${pkgdir} -name '*\.a' -exec rm -f {} \;
+}
diff --git a/community-testing/courier-authlib/authdaemond.rc.d b/community-testing/courier-authlib/authdaemond.rc.d
new file mode 100644
index 000000000..ff4abb182
--- /dev/null
+++ b/community-testing/courier-authlib/authdaemond.rc.d
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+start() {
+ stat_busy "Starting Authdaemond"
+ /usr/sbin/authdaemond start &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ ln -s /var/spool/authdaemon/pid /var/run/authdaemond.pid
+ add_daemon authdaemond
+ stat_done
+ fi
+}
+
+stop() {
+ stat_busy "Stopping Authdaemond"
+ /usr/sbin/authdaemond stop &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/authdaemond.pid
+ rm_daemon authdaemond
+ # housecleaning; just like kids'n toys - don't care when it's needed anymore
+ rm -f /var/spool/authdaemon/{pid.lock,pid,socket} &> /dev/null
+ stat_done
+ fi
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ # calling 'stop' and 'start' without the $0 fails...
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/courier-authlib/courier-authlib.install b/community-testing/courier-authlib/courier-authlib.install
new file mode 100644
index 000000000..cbccc636b
--- /dev/null
+++ b/community-testing/courier-authlib/courier-authlib.install
@@ -0,0 +1,32 @@
+# arg 1: the new package version
+post_install() {
+ # creates group and user on virgin systems
+ if [ -z "`grep '^courier::' /etc/group`" ]; then
+ groupadd -g 72 courier >& /dev/null
+ fi
+ if [ -z "`grep '^courier:' /etc/passwd`" ]; then
+ useradd -u 72 -d /var/spool/courier -g courier -s /bin/false courier &>/dev/null
+ fi
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+# arg 1: the old package version
+pre_remove() {
+ userdel courier &> /dev/null
+ groupdel courier &> /dev/null
+}
+
+
+post_remove() {
+ /bin/true
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/community-testing/courier-imap/PKGBUILD b/community-testing/courier-imap/PKGBUILD
new file mode 100644
index 000000000..5c248e738
--- /dev/null
+++ b/community-testing/courier-imap/PKGBUILD
@@ -0,0 +1,94 @@
+# $Id: PKGBUILD 59416 2011-11-24 17:03:59Z stephane $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: tobias <tobias@archlinux.org>
+# Committer: Manolis Tzanidakis <manolis@archlinux.org>
+
+pkgname=courier-imap
+pkgver=4.9.3
+pkgrel=5
+pkgdesc="IMAP(s)/POP3(s) Server"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.courier-mta.org/imap/"
+depends=('courier-maildrop>=2.5.0' 'gcc-libs' 'gamin' 'gdbm' 'openssl')
+backup=('etc/courier-imap/imapd.cnf' 'etc/courier-imap/pop3d.cnf' \
+ 'etc/courier-imap/imapd' 'etc/courier-imap/imapd-ssl' \
+ 'etc/courier-imap/pop3d' 'etc/courier-imap/pop3d-ssl'\
+ 'etc/conf.d/courier-imap')
+conflicts=('courier-mta')
+provides=('imap-server' 'pop3-server')
+options=('!libtool')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/project/courier/imap/${pkgver}/${pkgname}-${pkgver}.tar.bz2
+ courier-imap.conf.d
+ courier-imap.rc.d
+ imapd.rc.d
+ imapd-ssl.rc.d
+ pop3d.rc.d
+ pop3d-ssl.rc.d)
+md5sums=('703ddbb090569436dbda61d0d62b1eb8'
+ '3e08f017f6c5a52dea28f6f0dbd50b86'
+ '500c37831974f4676b67e650c67a59f6'
+ '6574c8046e44698efa7452c4b445d88e'
+ '437167a58efddc523f25180df284da20'
+ '1be23fb224bde93b23da6e771bd1cf01'
+ 'a326309b02fed3d7226d9aac88add7f2')
+
+# MIGRATION NOTE:
+# In 2012, support for courier-imap.conf.d and courier-imap.rc.d will be removed.
+# Remove those files and this note and also courier-imap.install
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # fix a tiny bug
+ sed -i -e \
+ 's|--with-authchangepwdir=/var/tmp/dev/null|--with-authchangepwdir=$libexecdir/authlib|' \
+ configure && chmod 755 configure
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/courier-imap \
+ --libexecdir=/usr/lib/courier-imap \
+ --localstatedir=/var/spool/courier-imap \
+ --disable-root-check \
+ --enable-unicode \
+ --enable-workarounds-for-imap-client-bugs \
+ --with-piddir=/var/run/courier \
+ --with-trashquota \
+ --with-db=gdbm \
+ --with-trashquota \
+ --with-mailuser=courier --with-mailgroup=courier
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # cleanup - provided by courier-maildrop
+ rm ${pkgdir}/usr/bin/{deliverquota,maildirmake}
+ rm ${pkgdir}/usr/share/man/man1/maildirmake*
+ rm ${pkgdir}/usr/share/man/man8/deliverquota*
+ find ${pkgdir} -name '*\.a' -exec -rm -f {} \;
+ ###############################################################################
+ # this is what usually "make install-configure" does
+ # *.dist files get rid of "dist"
+ for distfile in ${pkgdir}/etc/courier-imap/*.dist; do
+ mv ${distfile} ${pkgdir}/etc/courier-imap/$(basename ${distfile} .dist)
+ done
+ sed -i 's|TLS_CERTFILE=/usr/share/|TLS_CERTFILE=/etc/courier-imap/|' \
+ ${pkgdir}/etc/courier-imap/*-ssl
+ for pamfile in imap/*.pam; do
+ sed -i "s|/lib/security/||;s|pam_pwdb|pam_unix|" ${pamfile}
+ install -Dm 644 ${pamfile} \
+ ${pkgdir}/etc/pam.d/$(basename ${pamfile} .pam | sed "s/d$//")
+ done
+ # install thingies
+ install -D -m 755 ${srcdir}/courier-imap.rc.d ${pkgdir}/etc/rc.d/courier-imap
+ install -D -m 755 ${srcdir}/imapd.rc.d ${pkgdir}/etc/rc.d/imapd
+ install -D -m 755 ${srcdir}/imapd-ssl.rc.d ${pkgdir}/etc/rc.d/imapd-ssl
+ install -D -m 755 ${srcdir}/pop3d.rc.d ${pkgdir}/etc/rc.d/pop3d
+ install -D -m 755 ${srcdir}/pop3d-ssl.rc.d ${pkgdir}/etc/rc.d/pop3d-ssl
+ install -D -m 644 ${srcdir}/courier-imap.conf.d ${pkgdir}/etc/conf.d/courier-imap
+}
diff --git a/community-testing/courier-imap/courier-imap.conf.d b/community-testing/courier-imap/courier-imap.conf.d
new file mode 100644
index 000000000..66049470d
--- /dev/null
+++ b/community-testing/courier-imap/courier-imap.conf.d
@@ -0,0 +1,18 @@
+#
+# Parameters to be passed to courier-imap
+#
+#
+# Select the service you want started with courier-imap
+#
+# Available options :
+# imapd pop3d imapd-ssl pop3d-ssl
+#
+CI_DAEMONS="imapd pop3d imapd-ssl pop3d-ssl"
+
+# If you want authdaemond to be automatically started and
+# stopped by courier-imap, set this to "true"
+AUTO_AUTHDAEMON="false"
+
+# Courier will start this many seconds after autodaemond if
+# AUTO_AUTHDAEMON is set to "true"
+AUTO_AUTHDAEMON_LAG=2
diff --git a/community-testing/courier-imap/courier-imap.install b/community-testing/courier-imap/courier-imap.install
new file mode 100644
index 000000000..9046777a7
--- /dev/null
+++ b/community-testing/courier-imap/courier-imap.install
@@ -0,0 +1,16 @@
+post_upgrade() {
+ echo "Please migrate to the new daemon format:"
+ echo "/etc/rc.d/courier-imap has been split into separate daemons:"
+ echo " imapd, imads-ssl, pop3d, pop3d-ssl"
+ echo "This elimates the need for /etc/conf.d/courier-imap"
+ echo "Update your /etc/rc.conf and manually add the desired daemons. Make sure"
+ echo "you first start authdaemond before any other of these daemons."
+ echo "Example prior to this change:"
+ echo " DAEMONS=( ... courier-imap ...)"
+ echo "Example after this change:"
+ echo " DAEMONS=( ... authdaemond imapd imapd-ssl pop3d pop3d-ssl ... )"
+ echo "This allows better control over the daemons and will generate"
+ echo "correct entries in /run/daemons"
+ echo "An old configuration will keep working but please do migrate in time"
+ echo "as support for this will be removed some time in 2012."
+}
diff --git a/community-testing/courier-imap/courier-imap.pam b/community-testing/courier-imap/courier-imap.pam
new file mode 100644
index 000000000..fa52db541
--- /dev/null
+++ b/community-testing/courier-imap/courier-imap.pam
@@ -0,0 +1,5 @@
+#%PAM-1.0
+auth required pam_unix.so nullok
+account required pam_unix.so
+password required pam_unix.so
+session required pam_unix.so
diff --git a/community-testing/courier-imap/courier-imap.rc.d b/community-testing/courier-imap/courier-imap.rc.d
new file mode 100644
index 000000000..8876fe401
--- /dev/null
+++ b/community-testing/courier-imap/courier-imap.rc.d
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+CI_DAEMONS=
+[ -f /etc/conf.d/courier-imap ] && . /etc/conf.d/courier-imap
+[ -z $AUTO_AUTHDAEMON_LAG ] && AUTO_AUTHDAEMON_LAG=2
+[ -z $AUTO_AUTHDAEMON ] && AUTO_AUTHDAEMON="false"
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if [ "$AUTO_AUTHDAEMON" == "true" ]; then
+ /etc/rc.d/authdaemond start
+ sleep ${AUTO_AUTHDAEMON_LAG}
+ fi
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+ for daemon in $CI_DAEMONS; do
+ stat_busy "Starting Courier ${daemon}"
+ /usr/lib/courier-imap/${daemon}.rc start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon $daemon
+ stat_done
+ fi
+ done
+ ;;
+ stop)
+ for daemon in $CI_DAEMONS; do
+ stat_busy "Stopping Courier ${daemon}"
+ /usr/lib/courier-imap/$daemon.rc stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon $daemon
+ stat_done
+ fi
+ done
+ if [ "$AUTO_AUTHDAEMON" == "true" ]; then
+ /etc/rc.d/authdaemond stop
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+~
+~
diff --git a/community-testing/courier-imap/imapd-ssl.rc.d b/community-testing/courier-imap/imapd-ssl.rc.d
new file mode 100644
index 000000000..6730d452c
--- /dev/null
+++ b/community-testing/courier-imap/imapd-ssl.rc.d
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier imapd-ssl"
+ /usr/lib/courier-imap/imapd-ssl.rc start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon imapd-ssl
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier imapd-ssl"
+ /usr/lib/courier-imap/imapd-ssl.rc stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon imapd-ssl
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+~
+~
diff --git a/community-testing/courier-imap/imapd.rc.d b/community-testing/courier-imap/imapd.rc.d
new file mode 100644
index 000000000..867b52b78
--- /dev/null
+++ b/community-testing/courier-imap/imapd.rc.d
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier imapd"
+ /usr/lib/courier-imap/imapd.rc start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon imapd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier imapd"
+ /usr/lib/courier-imap/imapd.rc stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon imapd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+~
+~
diff --git a/community-testing/courier-imap/pop3d-ssl.rc.d b/community-testing/courier-imap/pop3d-ssl.rc.d
new file mode 100644
index 000000000..aab0f6a95
--- /dev/null
+++ b/community-testing/courier-imap/pop3d-ssl.rc.d
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier pop3d-ssl"
+ /usr/lib/courier-imap/pop3d-ssl.rc start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon pop3d-ssl
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier pop3d-ssl"
+ /usr/lib/courier-imap/pop3d-ssl.rc stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon pop3d-ssl
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+~
+~
diff --git a/community-testing/courier-imap/pop3d.rc.d b/community-testing/courier-imap/pop3d.rc.d
new file mode 100644
index 000000000..7b73c5a7a
--- /dev/null
+++ b/community-testing/courier-imap/pop3d.rc.d
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier pop3d"
+ /usr/lib/courier-imap/pop3d.rc start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon pop3d
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier pop3d"
+ /usr/lib/courier-imap/pop3d.rc stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon pop3d
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+~
+~
diff --git a/community-testing/courier-maildrop/PKGBUILD b/community-testing/courier-maildrop/PKGBUILD
new file mode 100644
index 000000000..a2cd7edb0
--- /dev/null
+++ b/community-testing/courier-maildrop/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 57086 2009-10-31 13:13:36Z allan $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=courier-maildrop
+_srcname=maildrop
+pkgver=2.5.4
+pkgrel=3
+pkgdesc="mail delivery agent - procmail like but nicer syntax"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://courier-mta.org/maildrop/"
+depends=('courier-authlib>=0.63.0' 'gamin' 'pcre' 'gdbm')
+conflicts=('courier-mta')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/project/courier/${_srcname}/${pkgver}/${_srcname}-${pkgver}.tar.bz2)
+md5sums=('5770345cdceae28bdc24809e7adb3426')
+
+build() {
+ cd ${srcdir}/${_srcname}-${pkgver}
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/courier \
+ --localstatedir=/var \
+ --mandir=/usr/share/man \
+ --with-db=gdbm \
+ --with-devel
+ make LDFLAGS+=-lstdc++
+}
+
+package() {
+ cd ${srcdir}/${_srcname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+ chmod u+s ${pkgdir}/usr/bin/maildrop
+ cd ${pkgdir}/usr/share/maildrop/html
+ for files in *; do
+ install -Dm644 ${files} ${pkgdir}/usr/share/htmldoc/${files}
+ done
+ rm -rf ${pkgdir}/usr/share/maildrop
+
+ # docs say we can remove .a files after make
+ cd ${pkgdir}
+ find ${pkgdir} -name '*\.a' -exec rm -f {} \;
+}
diff --git a/community-testing/courier-mta/PKGBUILD b/community-testing/courier-mta/PKGBUILD
new file mode 100644
index 000000000..82df2e28f
--- /dev/null
+++ b/community-testing/courier-mta/PKGBUILD
@@ -0,0 +1,143 @@
+# $Id: PKGBUILD 75460 2010-04-01 16:56:22Z giovanni $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+# ----------- NOTE TO ALL USERS ------------
+# Go read http://www.courier-mta.org/install.html b4 running or building courier
+
+pkgname=courier-mta
+pkgver=0.66.3
+pkgrel=5
+pkgdesc="IMAP(s)/POP3(s) and SMTP Server with ML-manager, webmail and webconfig"
+arch=(i686 x86_64)
+license=('GPL2')
+backup=('etc/courier/imapd.cnf' 'etc/courier/pop3d.cnf' \
+ 'etc/courier/imapd' 'etc/courier/imapd-ssl' \
+ 'etc/courier/pop3d' 'etc/courier/pop3d-ssl' \
+ 'etc/courier/courierd' 'etc/courier/sqwebmaild' \
+ 'etc/courier/esmtpd' 'etc/courier/esmtpd-ssl' \
+ 'etc/courier/esmtpd.cnf' 'etc/courier/esmtpd-msa' \
+ 'etc/courier/webadmin/password' 'etc/courier/esmtpauthclient' \
+ 'etc/conf.d/courier-mta')
+url="http://courier-mta.org"
+depends=('courier-authlib>=0.63.0' 'gamin' 'gcc-libs' 'gdbm' 'pcre' 'mime-types' 'ca-certificates')
+optdepends=('libldap')
+makedepends=('apache>=2.2.9-3' 'pam>=1.0.1-2' 'expect' 'gnupg' 'libldap' 'gamin')
+provides=('smtp-server' 'smtp-forwarder' 'imap-server' 'pop3-server' 'courier-imap' 'courier-maildrop')
+conflicts=('courier-imap' 'smtp-forwarder' 'smtp-server' 'imap-server' 'courier-maildrop' 'ucspi-tcp')
+options=('!libtool')
+install=courier-mta.install
+source=(http://downloads.sourceforge.net/project/courier/courier/${pkgver}/courier-${pkgver}.tar.bz2
+ courier.rc.d
+ courier-mta.rc.d
+ courier-mta.conf.d
+ esmtpd.rc.d
+ esmtpd-ssl.rc.d
+ esmtpd-msa.rc.d
+ imapd.rc.d
+ imapd-ssl.rc.d
+ pop3d.rc.d
+ pop3d-ssl.rc.d
+ webmaild.rc.d)
+md5sums=('3b28f14afe3db09b74b4845323c3e982'
+ '9055ba622efd37603186ce1f37277224'
+ '5cbeb5c323706058e545f74ad7752ebe'
+ 'f3ff70b40c7a1f7a017e8c4cc4d92f4f'
+ 'caabce8c7b66296b602316aa5af5d4c5'
+ '1c8b1b66ebafa4ff09ffc0106a9dc82c'
+ 'dae6c7d5ff0cce0fba5729fedf2a9051'
+ 'd0cc5eab5d3e0ec33dadd0392421f63e'
+ '5873a96aa149edda281730010fb4db34'
+ 'faa09e06a5dc41ee89ab1f8fa6886b63'
+ '520501daa66c0a94f2e9844ce4919a09'
+ '33a93f400c3e87bcd207295b7d7333ca')
+
+# MIGRATION NOTE:
+# In 2012, support for courier-mta.conf.d and courier-mta.rc.d will be removed.
+# Remove those files and this note and also courier-mta.install
+
+build() {
+ cd ${srcdir}/courier-${pkgver}
+
+ # fix a tiny bug
+ sed -i -e \
+ 's|--with-authchangepwdir=/var/tmp/dev/null|--with-authchangepwdir=$libexecdir/authlib|' \
+ configure && chmod 755 configure
+
+ # courier is more about configuring than compiling :-), lets start the mess
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/courier \
+ --libdir=/usr/lib \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var/spool/courier \
+ --disable-root-check \
+ --enable-unicode \
+ --enable-workarounds-for-imap-client-bugs \
+ --enable-mimetypes=/etc/mime.types \
+ --with-piddir=/var/run/courier \
+ --with-locking-method=lockf \
+ --with-trashquota \
+ --with-db=gdbm \
+ --with-trashquota \
+ --with-random=/dev/urandom --without-ispell \
+ --with-mailuser=courier --with-mailgroup=courier \
+ --with-certdb=/etc/ssl/certs/
+ make
+}
+
+package() {
+ cd ${srcdir}/courier-${pkgver}
+
+ #chown mail.mail ${pkgdir}/var/spool/courier
+ make DESTDIR=${pkgdir} install
+ # docs say we can get rid of those after make
+ find ${pkgdir} -name '*\.a' -exec -rm -f {} \;
+ # install the perftest-script for testings
+ install -Dm755 courier/perftest1 ${pkgdir}/usr/lib/courier/perftest1
+ ###############################################################################
+ # this is what usually "make install-configure" does
+ # *.dist files get rid of "dist"
+ for distfile in ${pkgdir}/etc/courier/*.dist; do
+ mv ${distfile} ${pkgdir}/etc/courier/$(basename ${distfile} .dist)
+ done
+ # install pam files according to the layout used in Archlinux
+ for pamfile in ${pkgdir}/etc/courier/*.authpam; do
+ sed -i 's|/lib/security/pam_pwdb\.so|pam_unix.so|' ${pamfile}
+ #echo "password required pam_unix.so" >> $pamfile
+ install -Dm 644 ${pamfile} \
+ ${pkgdir}/etc/pam.d/$(basename ${pamfile} .authpam | sed "s/d$//")
+ rm -f ${pamfile}
+ done
+
+ ###############################################################################
+ # Arch Linux specific tweaks to make things easier for the user
+ # create passwordfile for webadmin -> standard archwebadmin
+ sed -i 's|/etc/courier/webadmin/password|$(DESTDIR)/etc/courier/webadmin/password|g' Makefile
+ yes "archwebadmin" | make DESTDIR=${pkgdir} install-webadmin-password
+ # arch specific scripts
+ install -Dm 644 ${srcdir}/${pkgname}.conf.d ${pkgdir}/etc/conf.d/courier-mta
+ install -Dm 755 ${srcdir}/${pkgname}.rc.d ${pkgdir}/etc/rc.d/courier-mta
+ install -D -m 755 ${srcdir}/courier.rc.d ${pkgdir}/etc/rc.d/courier
+ install -D -m 755 ${srcdir}/imapd.rc.d ${pkgdir}/etc/rc.d/imapd
+ install -D -m 755 ${srcdir}/imapd-ssl.rc.d ${pkgdir}/etc/rc.d/imapd-ssl
+ install -D -m 755 ${srcdir}/pop3d.rc.d ${pkgdir}/etc/rc.d/pop3d
+ install -D -m 755 ${srcdir}/pop3d-ssl.rc.d ${pkgdir}/etc/rc.d/pop3d-ssl
+ install -D -m 755 ${srcdir}/esmtpd.rc.d ${pkgdir}/etc/rc.d/esmtpd
+ install -D -m 755 ${srcdir}/esmtpd-ssl.rc.d ${pkgdir}/etc/rc.d/esmtpd-ssl
+ install -D -m 755 ${srcdir}/esmtpd-msa.rc.d ${pkgdir}/etc/rc.d/esmtpd-msa
+ install -D -m 755 ${srcdir}/webmaild.rc.d ${pkgdir}/etc/rc.d/webmaild
+ #install -Dm 655 ${srcdir}/courier-webmail-cleancache.cron.hourly \
+ # ${pkgdir}/etc/cron.hourly/courier-webmail-cleancache
+ # bug http://bugs.archlinux.org/task/5154
+ find ${pkgdir}/usr/lib -name '*\.a' -exec rm -f {} \;
+ # fixing some permissions
+ chown -R courier:courier ${pkgdir}/usr/lib/courier/modules
+ rm -r ${pkgdir}/var/run
+ #chown -R courier:courier ${pkgdir}/var/run/courier
+ chown root:root ${pkgdir}/usr/{.,bin,lib,sbin,share}
+ # make a link to /usr/sbin/sendmail
+ install -dm 755 ${pkgdir}/usr/sbin
+ cd ${pkgdir}/usr/sbin
+ ln -s ../bin/sendmail ./sendmail
+}
diff --git a/community-testing/courier-mta/courier-mta.conf.d b/community-testing/courier-mta/courier-mta.conf.d
new file mode 100644
index 000000000..5856a5cda
--- /dev/null
+++ b/community-testing/courier-mta/courier-mta.conf.d
@@ -0,0 +1,18 @@
+#
+# Parameters to be passed to courier-imap
+#
+#
+# Select the service you want started with courier-imap
+#
+# Available options :
+# esmtpd imapd pop3d esmtpd-ssl imapd-ssl pop3d-ssl webmaild
+#
+CI_DAEMONS="courier esmtpd imapd pop3d"
+
+# If you want authdaemond to be automatically started and
+# stopped by courier-imap, set this to "true"
+AUTO_AUTHDAEMON="false"
+
+# Courier will start this many seconds after autodaemond if
+# AUTO_AUTHDAEMON is set to "true"
+AUTO_AUTHDAEMON_LAG=2
diff --git a/community-testing/courier-mta/courier-mta.install b/community-testing/courier-mta/courier-mta.install
new file mode 100644
index 000000000..e835e3efd
--- /dev/null
+++ b/community-testing/courier-mta/courier-mta.install
@@ -0,0 +1,61 @@
+# arg 1: the new package version
+post_install() {
+ cat << EOM
+ --> if you are using LDAP services to provide lookup in sqwebmail or aliases
+ --> then you have to install:
+ libldap
+EOM
+ # create the *.dat files
+ makealiases
+ makesmtpaccess
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+ echo "Please migrate to the new daemon format:"
+ echo "/etc/rc.d/courier-imap has been split into separate daemons:"
+ echo " imapd, imads-ssl, pop3d, pop3d-ssl"
+ echo "This elimates the need for /etc/conf.d/courier-imap"
+ echo "Update your /etc/rc.conf and manually add the desired daemons. Make sure"
+ echo "you first start authdaemond before any other of these daemons."
+ echo "Example prior to this change:"
+ echo " DAEMONS=( ... courier-mta ...)"
+ echo "Example after this change:"
+ echo " DAEMONS=( ... authdaemond courier esmtpd esmtpd-ssl imapd imapd-ssl"
+ echo " pop3d pop3d-ssl webmaild ... )"
+ echo "This allows better control over the daemons and will generate"
+ echo "correct entries in /run/daemons"
+ echo "An old configuration will keep working but please do migrate in time"
+ echo "as support for this will be removed some time in 2012."
+}
+
+
+pre_remove() {
+ # manual backup, since courier is always processing the whole directory
+ # - so it would process "system" AND "system.pacsave" -> bad
+ [ ! -d /etc/courier/_backup ] && mkdir /etc/courier/_backup
+ cp /etc/courier/aliases/system /etc/courier/_backup/aliases.system
+ cp /etc/courier/smtpaccess/default /etc/courier/_backup/smtpaccess.default
+ cat << EOM
+ --> the /etc/courier/aliases/system and the /etc/courier/smtpaccess/default
+ --> files have been backed up to /etc/courier/_backup since the *.pacsave
+ --> files cannot stay in place. Read about couriers alias handling from the
+ --> documentation!
+EOM
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/community-testing/courier-mta/courier-mta.rc.d b/community-testing/courier-mta/courier-mta.rc.d
new file mode 100644
index 000000000..416946a5a
--- /dev/null
+++ b/community-testing/courier-mta/courier-mta.rc.d
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/courier-mta ] && . /etc/conf.d/courier-mta
+[ -z $AUTO_AUTHDAEMON_LAG ] && AUTO_AUTHDAEMON_LAG=2
+[ -z $AUTO_AUTHDAEMON ] && AUTO_AUTHDAEMON="false"
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if [ "$AUTO_AUTHDAEMON" == "true" ]; then
+ /etc/rc.d/authdaemond start
+ sleep ${AUTO_AUTHDAEMON_LAG}
+ fi
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+ for daemon in $CI_DAEMONS; do
+ stat_busy "Starting Courier ${daemon}"
+ /usr/sbin/${daemon} start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon $daemon
+ stat_done
+ fi
+ done
+ ;;
+ stop)
+ for daemon in $CI_DAEMONS; do
+ stat_busy "Stopping Courier ${daemon}"
+ /usr/sbin/${daemon} stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon $daemon
+ stat_done
+ fi
+ done
+ if [ "$AUTO_AUTHDAEMON" == "true" ]; then
+ /etc/rc.d/authdaemond stop
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/courier-mta/courier-webmail-cleancache.cron.hourly b/community-testing/courier-mta/courier-webmail-cleancache.cron.hourly
new file mode 100644
index 000000000..6c541321e
--- /dev/null
+++ b/community-testing/courier-mta/courier-webmail-cleancache.cron.hourly
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# Cleans the cache of the sqwebmail server
+if [ -x /usr/share/sqwebmail/cleancache.pl ]; then
+ su -c "/usr/share/sqwebmail/cleancache.pl" bin
+fi
diff --git a/community-testing/courier-mta/courier.rc.d b/community-testing/courier-mta/courier.rc.d
new file mode 100644
index 000000000..7c581a24a
--- /dev/null
+++ b/community-testing/courier-mta/courier.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier daemon"
+ /usr/sbin/courier start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon courier
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier daemon"
+ /usr/sbin/courier stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon courier
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/courier-mta/esmtpd-msa.rc.d b/community-testing/courier-mta/esmtpd-msa.rc.d
new file mode 100644
index 000000000..31458aca8
--- /dev/null
+++ b/community-testing/courier-mta/esmtpd-msa.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier esmtpd-msa"
+ /usr/sbin/esmtpd-msa start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon esmtpd-msa
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier esmtpd-msa"
+ /usr/sbin/esmtpd-msa stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon esmtpd-msa
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/courier-mta/esmtpd-ssl.rc.d b/community-testing/courier-mta/esmtpd-ssl.rc.d
new file mode 100644
index 000000000..2a13be03f
--- /dev/null
+++ b/community-testing/courier-mta/esmtpd-ssl.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier esmtpd-ssl"
+ /usr/sbin/esmtpd-ssl start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon esmtpd-ssl
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier esmtpd-ssl"
+ /usr/sbin/esmtpd-ssl stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon esmtpd-ssl
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/courier-mta/esmtpd.rc.d b/community-testing/courier-mta/esmtpd.rc.d
new file mode 100644
index 000000000..dbaa9d680
--- /dev/null
+++ b/community-testing/courier-mta/esmtpd.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier esmtpd"
+ /usr/sbin/esmtpd start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon esmtpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier esmtpd"
+ /usr/sbin/esmtpd stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon esmtpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/courier-mta/imapd-ssl.rc.d b/community-testing/courier-mta/imapd-ssl.rc.d
new file mode 100644
index 000000000..3dc74cfdf
--- /dev/null
+++ b/community-testing/courier-mta/imapd-ssl.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier imapd-ssl"
+ /usr/sbin/imapd-ssl start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon imapd-ssl
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier imapd-ssl"
+ /usr/sbin/imapd-ssl stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon imapd-ssl
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/courier-mta/imapd.rc.d b/community-testing/courier-mta/imapd.rc.d
new file mode 100644
index 000000000..8bce59f6c
--- /dev/null
+++ b/community-testing/courier-mta/imapd.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier imapd"
+ /usr/sbin/imapd start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon imapd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier imapd"
+ /usr/sbin/imapd stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon imapd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/courier-mta/pop3d-ssl.rc.d b/community-testing/courier-mta/pop3d-ssl.rc.d
new file mode 100644
index 000000000..6e7ae4e12
--- /dev/null
+++ b/community-testing/courier-mta/pop3d-ssl.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier pop3d-ssl"
+ /usr/sbin/pop3d-ssl start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon pop3d-ssl
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier pop3d-ssl"
+ /usr/sbin/pop3d-ssl stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon pop3d-ssl
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/courier-mta/pop3d.rc.d b/community-testing/courier-mta/pop3d.rc.d
new file mode 100644
index 000000000..25f8379ba
--- /dev/null
+++ b/community-testing/courier-mta/pop3d.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier pop3d"
+ /usr/sbin/pop3d start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon pop3d
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier pop3d"
+ /usr/sbin/pop3d stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon pop3d
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/courier-mta/webmaild.rc.d b/community-testing/courier-mta/webmaild.rc.d
new file mode 100644
index 000000000..835cc2bf0
--- /dev/null
+++ b/community-testing/courier-mta/webmaild.rc.d
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+
+ [ -d /var/run/courier ] || mkdir -p /var/run/courier
+ chown courier:courier /var/run/courier
+
+ if ck_daemon authdaemond; then
+ echo "ERROR: authdaemond is not running"
+ stat_fail
+ exit 1
+ fi
+
+ stat_busy "Starting Courier webmaild"
+ /usr/sbin/webmaild start
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon webmaild
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Courier webmaild"
+ /usr/sbin/webmaild stop > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon webmaild
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/freeradius/PKGBUILD b/community-testing/freeradius/PKGBUILD
new file mode 100644
index 000000000..bb36556ba
--- /dev/null
+++ b/community-testing/freeradius/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 59422 2011-11-24 17:04:51Z stephane $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jason R Begley (jayray@digitalgoat.com>
+
+pkgname=freeradius
+pkgver=2.1.12
+pkgrel=2
+pkgdesc="The premier open source RADIUS server"
+arch=('i686' 'x86_64')
+url="http://www.freeradius.org/"
+license=("GPL")
+depends=('openssl' 'krb5' 'pth' 'libldap>=2.4.18' 'net-snmp' 'pam'
+ 'postgresql-libs>=9.0.3' 'libtool' 'libmysqlclient' 'gdbm' 'shadow')
+optdepends=('libpcap' 'unixodbc' 'python2')
+options=('!libtool' 'emptydirs' '!makeflags')
+install=$pkgname.install
+source=(ftp://ftp.freeradius.org/pub/radius/freeradius-server-$pkgver.tar.bz2
+ radiusd
+ krb5-build-fix.patch)
+md5sums=('862d3a2c11011e61890ba84fa636ed8c'
+ 'f1a6530b1b69d2fa793aa45b2de379bb'
+ 'c6a61de7576933f59154a53bfc12a2d2')
+
+build() {
+ cd $srcdir/freeradius-server-$pkgver
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+ sed -i 's/ -DKRB5_DEPRECATED//' src/modules/rlm_krb5/Makefile.in
+ patch -p1 <$srcdir/krb5-build-fix.patch
+ ./configure --with-system-libtool --with-system-libltdl \
+ --prefix=/usr --enable-heimdal-krb5 \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib/freeradius
+ make
+}
+
+package() {
+ cd $srcdir/freeradius-server-$pkgver
+ make install R=$pkgdir
+ install -D -m755 ../radiusd $pkgdir/etc/rc.d/radiusd
+ chmod o+r $pkgdir/etc/raddb/*
+ mv $pkgdir/etc/raddb $pkgdir/etc/raddb.default
+ rm -rf $pkgdir/var/run
+}
diff --git a/community-testing/freeradius/freeradius.install b/community-testing/freeradius/freeradius.install
new file mode 100644
index 000000000..c3b9f9415
--- /dev/null
+++ b/community-testing/freeradius/freeradius.install
@@ -0,0 +1,22 @@
+post_install() {
+ groupadd -r radiusd
+ useradd -r -m -d /var/lib/radiusd -g radiusd -s /bin/false radiusd
+
+ touch /var/log/radius/radius.log
+ chown -R radiusd.radiusd /var/log/radius/radius.log
+
+ [ -d /etc/raddb ] || cp -a /etc/raddb.default /etc/raddb
+
+ /bin/true
+}
+
+pre_remove() {
+ /etc/rc.d/radiusd stop
+ /bin/true
+}
+
+post_remove() {
+ userdel radiusd
+ groupdel radiusd
+ /bin/true
+}
diff --git a/community-testing/freeradius/krb5-build-fix.patch b/community-testing/freeradius/krb5-build-fix.patch
new file mode 100644
index 000000000..11dae7090
--- /dev/null
+++ b/community-testing/freeradius/krb5-build-fix.patch
@@ -0,0 +1,21 @@
+diff -wbBur freeradius-server-2.1.10/src/modules/rlm_krb5/rlm_krb5.c freeradius-server-2.1.10.my/src/modules/rlm_krb5/rlm_krb5.c
+--- freeradius-server-2.1.10/src/modules/rlm_krb5/rlm_krb5.c 2010-09-28 11:03:56.000000000 +0000
++++ freeradius-server-2.1.10.my/src/modules/rlm_krb5/rlm_krb5.c 2011-04-29 09:26:10.000000000 +0000
+@@ -375,7 +375,7 @@
+ * Heimdal krb5 verification
+ */
+ radlog(L_AUTH, "rlm_krb5: Parsed name is: %s@%s\n",
+- *userP->name.name_string.val,
++ "-" /* *userP->name.name_string.val*/,
+ userP->realm);
+
+ krb5_cc_default(context, &id);
+@@ -390,7 +390,7 @@
+
+ radlog(L_AUTH, "rlm_krb5: failed verify_user: %s (%s@%s )",
+ error_message(ret),
+- *userP->name.name_string.val,
++ "-" /* *userP->name.name_string.val */,
+ userP->realm);
+
+ return RLM_MODULE_REJECT;
diff --git a/community-testing/freeradius/radiusd b/community-testing/freeradius/radiusd
new file mode 100755
index 000000000..bf872b6f2
--- /dev/null
+++ b/community-testing/freeradius/radiusd
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/radiusd`
+case "$1" in
+ start)
+ stat_busy "Starting radiusd Server"
+
+ [ -d /var/run/radiusd ] || mkdir -p /var/run/radiusd
+ [ -f /var/run/radiusd/radiusd.pid ] || touch /var/run/radiusd/radiusd.pid
+ chown -R radiusd.radiusd /var/run/radiusd
+
+ [ -z "$PID" ] && /usr/sbin/radiusd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/radiusd.pid
+ add_daemon radiusd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping radiusd Server"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/radiusd.pid
+ rm_daemon radiusd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/librep/PKGBUILD b/community-testing/librep/PKGBUILD
new file mode 100644
index 000000000..b84b8b68e
--- /dev/null
+++ b/community-testing/librep/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 59424 2011-11-24 17:05:01Z stephane $
+# Maintainer: stefan-husmann@t-online.de
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=librep
+pkgver=0.92.1b
+pkgrel=2
+pkgdesc="A Lisp system for UNIX"
+license=('GPL2')
+arch=('i686' 'x86_64')
+url="http://sawfish.wikia.com/wiki/Librep"
+depends=('gmp' 'gdbm' 'libffi')
+install=${pkgname}.install
+options=('!emptydirs' '!libtool')
+source=(http://download.tuxfamily.org/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+sha1sums=('f75e1197646bbf1594fc4765802aab0bffe1bb02')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --disable-static \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/$pkgname \
+ --with-readline
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # create some directories or make install fails
+# install -d $pkgdir/usr/{share/aclocal,lib/pkgconfig}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community-testing/librep/librep.install b/community-testing/librep/librep.install
new file mode 100644
index 000000000..7e1b990bf
--- /dev/null
+++ b/community-testing/librep/librep.install
@@ -0,0 +1,18 @@
+info_dir=usr/share/info
+info_files=(librep.info)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/community-testing/mailutils/PKGBUILD b/community-testing/mailutils/PKGBUILD
new file mode 100644
index 000000000..ce4c6c567
--- /dev/null
+++ b/community-testing/mailutils/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 59426 2011-11-24 17:05:12Z stephane $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=mailutils
+pkgver=2.2
+pkgrel=4
+pkgdesc="MUA command line tool (mailx)"
+arch=(i686 x86_64)
+url="http://www.gnu.org/software/mailutils/"
+license=('GPL')
+depends=('libldap' 'pam' 'gnutls' 'guile')
+makedepends=('python2' 'emacs')
+optdepends=('python2')
+conflicts=('libsieve')
+install=mailutils.install
+options=(zipman !emptydirs)
+source=(http://ftp.gnu.org/gnu/mailutils/mailutils-$pkgver.tar.bz2)
+md5sums=('834d2f616b922856127ecfe6c2de7d1a')
+
+build() {
+ cd "$srcdir/mailutils-$pkgver"
+
+ py2=`pacman -Q python2 | cut -d\ -f2 | cut -d. -f1-2`
+ py3=`pacman -Q python | cut -d\ -f2 | cut -d. -f1-2`
+
+ export PYTHON=/usr/bin/python2
+ export PYTHON_CONFIG=/usr/bin/python2-config
+ export CFLAGS="$CFLAGS `pkg-config --cflags python-$py2`"
+ export LDFLAGS="$LDFLAGS `pkg-config --libs python-$py2`"
+
+ [ -f Makefile ] || ./configure --prefix=/usr --with-gdbm --with-gnutls \
+ --libexecdir=/usr/lib/$pkgname --without-fribidi \
+ --without-tcp-wrappers
+# [ -z "$py3" ] || find -type f -name Makefile -exec sed -i "s|python$py3|python$py2|" {} \;
+ make -j1
+}
+
+package() {
+ cd "$srcdir/mailutils-$pkgver"
+ make -j1 DESTDIR=$pkgdir install
+ rm -f $pkgdir/usr/share/info/dir
+ mv $pkgdir/usr/bin/mail $pkgdir/usr/bin/gnu-mail
+ mv $pkgdir/usr/share/man/man1/mail.1 $pkgdir/usr/share/man/man1/gnu-mail.1
+ chown -R root:root $pkgdir
+}
diff --git a/community-testing/mailutils/mailutils.install b/community-testing/mailutils/mailutils.install
new file mode 100644
index 000000000..03b451b3e
--- /dev/null
+++ b/community-testing/mailutils/mailutils.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(mailutils.info mailutils.info-1 mailutils.info-2)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/community-testing/ntop/PKGBUILD b/community-testing/ntop/PKGBUILD
new file mode 100644
index 000000000..05e45e745
--- /dev/null
+++ b/community-testing/ntop/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 59428 2011-11-24 17:05:26Z stephane $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=ntop
+pkgver=4.1.0
+pkgrel=2
+pkgdesc='A network traffic probe that shows the network usage.'
+arch=('i686' 'x86_64')
+url='http://www.ntop.org/'
+license=('GPL')
+depends=('libevent' 'libpcap' 'gd' 'glib' 'libxml2' 'openssl' 'rrdtool' 'pcre' 'geoip' 'lua')
+options=('!libtool' '!makeflags')
+install='ntop.install'
+source=("http://sourceforge.net/projects/${pkgname}/files/${pkgname}/Stable/${pkgname}-${pkgver}.tar.gz"
+ 'ntop'
+ 'ntop.conf.d')
+md5sums=('116df99cf548431393991ea15443c52f'
+ '7b0d7bb57432e768ff387e9f7236f87c'
+ '6a9371de1dcf31d8ef13a4cf349c02b3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./autogen.sh --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --disable-snmp
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install-recursive
+
+ install -dm0755 -o nobody -g nobody "${pkgdir}/var/lib/ntop"
+ install -dm0755 -o nobody -g nobody "${pkgdir}/var/lib/ntop/rrd"
+
+ install -Dm0755 "${srcdir}/ntop" "${pkgdir}/etc/rc.d/ntop"
+ install -Dm0644 "${srcdir}/ntop.conf.d" "${pkgdir}/etc/conf.d/ntop"
+
+ for _f in "${pkgdir}/usr/lib/ntop/plugins/"*.so; do
+ _plug="$(basename ${_f})"
+ ln -sf "../../lib${_plug}" "${_f}"
+ done
+}
diff --git a/community-testing/ntop/ntop b/community-testing/ntop/ntop
new file mode 100755
index 000000000..2f0dbcbdd
--- /dev/null
+++ b/community-testing/ntop/ntop
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/ntop ] && . /etc/conf.d/ntop
+
+case "$1" in
+ start)
+ stat_busy "Starting ntop daemon"
+ /usr/bin/ntop -d ${NTOP_ARGS} 2>&1 >> ${NTOP_LOG}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon ntop
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping ntop daemon"
+ killall /usr/bin/ntop &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ntop
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/ntop/ntop.conf.d b/community-testing/ntop/ntop.conf.d
new file mode 100644
index 000000000..28e2a3166
--- /dev/null
+++ b/community-testing/ntop/ntop.conf.d
@@ -0,0 +1,5 @@
+# Parameters to be passed to ntop.
+NTOP_ARGS="-i eth0 -w 3000"
+
+# Location of the log file.
+NTOP_LOG="/var/log/ntop.log"
diff --git a/community-testing/ntop/ntop.install b/community-testing/ntop/ntop.install
new file mode 100644
index 000000000..8d8063751
--- /dev/null
+++ b/community-testing/ntop/ntop.install
@@ -0,0 +1,8 @@
+post_install() {
+ /bin/cat <<EOF
+==> Before running the daemon script for the first time, you need to run
+ ntop as the root user to set an administrator password.
+==> If you attempt to run ntop as a daemon without setting a password, a
+ FATAL ERROR message is generated and ntop stops.
+EOF
+}
diff --git a/community-testing/sage-mathematics/PKGBUILD b/community-testing/sage-mathematics/PKGBUILD
new file mode 100644
index 000000000..d240ce248
--- /dev/null
+++ b/community-testing/sage-mathematics/PKGBUILD
@@ -0,0 +1,105 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Osman Ugus <ugus11@yahoo.com>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Special thanks to Nareto for moving the compile from the .install to the PKGBUILD
+
+pkgname=sage-mathematics
+pkgver=4.7.2
+pkgrel=2
+pkgdesc='SAGE: Open Source Mathematics Software, a viable free alternative to Magma, Maple, Mathematica, and Matlab.'
+url='http://www.sagemath.org'
+arch=('i686' 'x86_64')
+license=('GPL')
+#depends=('readline')
+depends=('ppl')
+makedepends=('gcc-fortran' 'gcc-libs' 'desktop-file-utils' 'imagemagick' 'texlive-core')
+optdepends=('imagemagick: some plotting functionality benefits from it'
+ 'texlive-core: some plotting functionality benefits from it, also to use SageTeX'
+ 'sage-mathematics-spkgs: original packages used to build additional packages')
+options=('!makeflags')
+install="${pkgname}.install"
+source=("http://sage.math.washington.edu/home/release/sage-${pkgver}/sage-${pkgver}.tar"
+ 'SAGE-notebook.desktop')
+md5sums=('b3073997e6c7ec00a269f84ff2e54973'
+ 'dc391f12b7d17dd37326343ec0e99bbd')
+
+build() {
+ cd sage-${pkgver}
+
+ # modularization of sage, sort of :)
+ # fixes the following error:
+ # bash: symbol lookup error: bash: undefined symbol: rl_filename_rewrite_hook
+ # remove this hack when sage uses a readline 6.1 or greater, or when sage uses its own internal bash
+ # this is for people who have custom kernels (sage works this around by checking uname -r)
+ #mkdir -p spkg/installed
+ #touch spkg/installed/readline-6.1
+ mkdir -p spkg/installed
+ touch spkg/installed/ppl-0.11.2
+
+ # fix "missing sage.all error" during build
+ unset CFLAGS
+ unset CXXFLAGS
+
+ # fix build errors
+ unset LDFLAGS
+
+ # enable multiple threads while building, is this really needed? check if uses MAKEFLAGS
+ export SAGE_BUILD_THREADS=$(lscpu | awk '/^CPU\(s\):/ { print $2 }')
+ export MAKE="make -j${SAGE_BUILD_THREADS}"
+
+ # use archlinux's fortran rather then the one that ships with sage to compile sage's fortran
+ export SAGE_FORTRAN='/usr/bin/gfortran'
+ export SAGE_FORTRAN_LIB='/usr/lib/libgfortran.so'
+
+ # disable building with debugging support
+ export SAGE_DEBUG='no'
+
+ # enable fat binaries (disables processor specific optimizations)
+ # comment out if you're only building it for yourself
+ export SAGE_FAT_BINARY='yes'
+
+ # can't write to root in a clean chroot
+ export DOT_SAGE='/build/src/'
+
+ # only build sage, no documents
+ #make build
+ make
+}
+
+<< COMMENT
+check() {
+ cd sage-${pkgver}
+
+ # uncomment if we want to run all the tests (warning: very long)
+ #make ptestlong
+}
+COMMENT
+
+package() {
+ cd sage-${pkgver}
+
+ # cp because make install is experimental and will corrupt the install
+ install -d ${pkgdir}/opt/sage
+ cp -r * ${pkgdir}/opt/sage
+
+ # move SageTeX files to more appropriate directory
+ install -d ${pkgdir}/usr/share
+ mv ${pkgdir}/opt/sage/local/share/texmf \
+ ${pkgdir}/usr/share
+
+ desktop-file-install ${srcdir}/SAGE-notebook.desktop \
+ --dir ${pkgdir}/usr/share/applications
+
+ # create link to main binary
+ install -d ${pkgdir}/usr/bin
+ ln -s /opt/sage/sage ${pkgdir}/usr/bin/sage
+
+ # remove build logs
+ rm -f ${pkgdir}/opt/sage/install.log
+ rm -rf ${pkgdir}/opt/sage/spkg/logs
+
+ # remove source packages, since they are rarely needed, they are 300mb in size (compressed)
+ # no need to package them together, put into sage-mathematics-spkgs
+ rm -f ${pkgdir}/opt/sage/spkg/base/*spkg
+ rm -f ${pkgdir}/opt/sage/spkg/standard/*spkg
+}
diff --git a/community-testing/sage-mathematics/SAGE-notebook.desktop b/community-testing/sage-mathematics/SAGE-notebook.desktop
new file mode 100644
index 000000000..26a35d3ac
--- /dev/null
+++ b/community-testing/sage-mathematics/SAGE-notebook.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+Version=1.0
+Name=SAGE
+Comment=SAGE NOTEBOOK
+Comment[en_US]=SAGE NOTEBOOK
+Exec=/opt/sage/sage -notebook
+GenericName=
+GenericName[de]=
+Icon=/opt/sage/data/extcode/notebook/images/sageicon.png
+MimeType=
+Name[de]=SAGE
+StartupNotify=true
+Terminal=true
+Type=Application
+Categories=Science;Math;
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
+GenericName[en_US]=
diff --git a/community-testing/sage-mathematics/sage-mathematics.install b/community-testing/sage-mathematics/sage-mathematics.install
new file mode 100644
index 000000000..6caa5299e
--- /dev/null
+++ b/community-testing/sage-mathematics/sage-mathematics.install
@@ -0,0 +1,56 @@
+post_install() {
+ cd /opt/sage
+
+ # set HOME because when sage updates its sage_root (after being moved) it will write files to ~/.sage with root ownership
+ # the files it writes to ~/.sage can be safely ignored
+ HOME=/tmp ./sage -c
+
+ # add sagemath user for the daemon
+ useradd -r -c 'Sage daemon' -d /opt/sage -s /bin/false sagemath
+
+ # Update LaTeX db to point to SageTeX
+ if [ -f /usr/bin/texhash ]; then
+ /usr/bin/texhash /usr/share/texmf
+ else
+ echo 'Warning: could not find /usr/bin/texhash'
+ echo 'SageTeX has been installed but you need to run:'
+ echo '# texhash /usr/share/texmf'
+ echo 'So that LaTeX will be able to find it.'
+ fi
+
+echo '
+ ___
+/ (_) o |
+\__ _ _ __ |
+/ / |/ | | / \_| | |
+\___/ | |_/|/\__/ \_/|/o
+ /| /|
+ \| \|
+ ________________________________
+< sage-mathematics, I mean, MOO! >
+ --------------------------------
+ \ ^__^
+ \ (oo)\_______
+ (__)\ )\/\
+ ||----w |
+ || ||
+'
+
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ # Update LaTeX db to remove SageTeX entries
+ if [ -f /usr/bin/texhash ]; then
+ /usr/bin/texhash /usr/share/texmf
+ fi
+
+ # remove the sagemath daemon user
+ userdel sagemath
+
+ # clean up left overs
+ rm -rf /opt/sage
+}
diff --git a/community-testing/smalltalk/PKGBUILD b/community-testing/smalltalk/PKGBUILD
new file mode 100644
index 000000000..7934fe193
--- /dev/null
+++ b/community-testing/smalltalk/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 59432 2011-11-24 17:05:44Z stephane $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: mrshpot <mrshpot at gmail dot com>
+# Contributor: Michael Fellinger <m.fellinger@gmail.com>
+
+pkgname=smalltalk
+pkgver=3.2.4
+pkgrel=3
+pkgdesc='A free implementation of Smalltalk-80 by the GNU project'
+url='http://smalltalk.gnu.org/'
+license=('GPL' 'LGPL')
+arch=('i686' 'x86_64')
+options=('!libtool')
+
+depends=('gmp' 'libffi' 'libsigsegv' 'readline')
+makedepends=('gdbm' 'gtk2' 'sqlite3' 'tk' 'zip')
+
+source=("ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('a36a7c9beddca08dc492b500738efc82')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/smalltalk \
+ --with-imagedir=/var/lib/smalltalk \
+ --enable-gtk=yes \
+ --with-system-libffi \
+ --with-system-libsigsegv \
+ --with-readline \
+ --with-tcl --with-tk \
+ --with-x --without-emacs
+ make
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="$pkgdir" install
+
+ # fix manpage symlink
+ rm -f $pkgdir/usr/share/man/man1/gst-reload.1
+ ln -s gst-load.1 $pkgdir/usr/share/man/man1/gst-reload.1
+}
diff --git a/community-testing/xemacs/PKGBUILD b/community-testing/xemacs/PKGBUILD
new file mode 100644
index 000000000..304fb9dad
--- /dev/null
+++ b/community-testing/xemacs/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 59434 2011-11-24 17:05:59Z stephane $
+# Maintainer: juergen <juergen@archlinux.org>
+# Contributor : Stéphane Gaudreault <stephane@archlinux.org>
+
+pkgname=xemacs
+pkgver=21.5.31
+pkgrel=3
+pkgdesc="An highly customizable open source text editor and application development system forked from GNU Emacs"
+arch=('i686' 'x86_64')
+url="http://www.xemacs.org/"
+license=('GPL')
+depends=('db' 'libpng' 'libtiff' 'gpm' 'desktop-file-utils' 'libxaw' 'gdbm' 'giflib')
+optdepends=('xorg-fonts-75dpi: X bitmap fonts needed for the interface'
+ 'xorg-fonts-100dpi: X bitmap fonts needed for the interface')
+makedepends=('xbitmaps')
+install=xemacs.install
+source=(http://ftp.xemacs.org/pub/xemacs/beta/$pkgname-$pkgver.tar.gz
+ xemacs.desktop
+ xemacs-21.5.29-optimization-bug.patch)
+md5sums=('0185fe905d0b8d8d094d9b60cf262d4a'
+ 'a4d3d5c0aa2c7ce7bec491f809ca3694'
+ 'eb061b10ea3bbe1026df5326ae1618e3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+# Fix problem caused by improper optimization with GCC>=4.1.2 on i686
+# (and possibly other arches). See
+# http://tracker.xemacs.org/XEmacs/its/issue354
+# for the upstream bug report.
+ patch -Np0 -i ../xemacs-21.5.29-optimization-bug.patch
+
+ ./configure --build="${CHOST}" --prefix=/usr --with-dynamic \
+ --without-postgresql --with-athena=xaw \
+ --enable-database=berkdb --without-ldap \
+ --enable-menubars=lucid --enable-scrollbars=lucid \
+ --enable-widgets=athena --enable-dialogs=athena \
+ --enable-external-widget \
+ --with-jpeg --with-png --with-tiff \
+ --with-ncurses --with-pop --with-xfs --disable-sound \
+ --infodir=/usr/share/info \
+ --with-mule \
+ --mandir=/usr/share/man/man1
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make -j1 prefix="${pkgdir}/usr" mandir="${pkgdir}/usr/share/man/man1" infodir="${pkgdir}/usr/share/info" install gzip-el
+
+ rm "${pkgdir}"/usr/bin/{b2m,ctags,etags}
+ rm "${pkgdir}"/usr/share/man/man1/{ctags.1,etags.1}
+
+ # fix FS#7927
+ install -d -m755 "${pkgdir}/usr/share/pixmaps"
+ install -D -m644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+ ln -sf /usr/share/xemacs-${pkgver%.*}-b${pkgver##*.}/etc/xemacs-icon.xpm "${pkgdir}/usr/share/pixmaps/xemacs-icon.xpm"
+
+ # correct permissions
+ chown -R root:root "${pkgdir}"
+
+ rm "${pkgdir}"/usr/share/info/{info.info,texinfo.info-2,cl.info,texinfo.info-1,texinfo.info,standards.info,widget.info}
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/community-testing/xemacs/xemacs-21.5.29-optimization-bug.patch b/community-testing/xemacs/xemacs-21.5.29-optimization-bug.patch
new file mode 100644
index 000000000..32a1a02c2
--- /dev/null
+++ b/community-testing/xemacs/xemacs-21.5.29-optimization-bug.patch
@@ -0,0 +1,14 @@
+Work around a GCC optimization bug as described in
+http://tracker.xemacs.org/XEmacs/its/issue354
+
+--- src/dumper.c.~1~ 2008-01-26 09:54:11.000000000 +0100
++++ src/dumper.c 2008-05-03 10:17:03.000000000 +0200
+@@ -2584,7 +2584,7 @@
+ #endif /* !WIN32_NATIVE */
+
+
+-static int
++int
+ pdump_file_try (Wexttext *exe_path)
+ {
+ Wexttext *w = exe_path + wext_strlen (exe_path);
diff --git a/community-testing/xemacs/xemacs.desktop b/community-testing/xemacs/xemacs.desktop
new file mode 100644
index 000000000..257c56947
--- /dev/null
+++ b/community-testing/xemacs/xemacs.desktop
@@ -0,0 +1,34 @@
+[Desktop Entry]
+Name=XEmacs Text Editor
+Name[bg]=редактор XEmacs
+Name[ca]=Editor XEmacs
+Name[cs]=Editor XEmacs
+Name[da]=XEmacs tekstredigerer
+Name[de]=XEmacs Texteditor
+Name[eo]=La redaktilo XEmakso
+Name[es]=Emacs para X
+Name[et]=Emacs X'i kasutajaliidesega
+Name[fi]=XEmacs editori
+Name[fr]=Éditeur XEmacs
+Name[hu]=XEmacs szövegszerkesztő
+Name[is]=XEmacs-ritill
+Name[it]=Emacs per X
+Name[ja]=XEmacs テキスト・エディター
+Name[mk]=Софистицираниот XEmacs уредувач
+Name[no]=XEmacs-tekstredigerer
+Name[pt]=Editor XEmacs
+Name[ro]=Editorul XEmacs
+Name[ru]=Редактор XEmacs
+Name[sk]=Editor XEmacs
+Name[sl]=Urejevalnik XEmacs
+Name[uk]=Редактор XEmacs
+GenericName=Text Editor
+Comment=Edit text
+MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
+Exec=xemacs %f
+Icon=/usr/share/pixmaps/xemacs-icon.xpm
+Type=Application
+Terminal=false
+Categories=Development;TextEditor;
+Encoding=UTF-8
+StartupWMClass=Emacs
diff --git a/community-testing/xemacs/xemacs.install b/community-testing/xemacs/xemacs.install
new file mode 100644
index 000000000..a04ee187f
--- /dev/null
+++ b/community-testing/xemacs/xemacs.install
@@ -0,0 +1,35 @@
+infodir=usr/share/info
+filelist=(beta.info.gz custom.info.gz
+ emodules.info.gz external-widget.info.gz
+ internals.info-1.gz internals.info-2.gz
+ internals.info-3.gz internals.info-4.gz
+ internals.info-5.gz internals.info.gz
+ lispref.info-1.gz lispref.info-10.gz
+ lispref.info-2.gz lispref.info-3.gz
+ lispref.info-4.gz lispref.info-5.gz
+ lispref.info-6.gz lispref.info-7.gz
+ lispref.info-8.gz lispref.info-9.gz
+ lispref.info.gz new-users-guide.info.gz
+ term.info.gz termcap.info.gz
+ xemacs-faq.info-1.gz xemacs-faq.info-2.gz
+ xemacs-faq.info.gz xemacs.info-1.gz
+ xemacs.info-2.gz xemacs.info-3.gz
+ xemacs.info-4.gz xemacs.info.gz)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+ update-desktop-database -q
+}
diff --git a/community-testing/xkbsel/PKGBUILD b/community-testing/xkbsel/PKGBUILD
new file mode 100644
index 000000000..e936ca9eb
--- /dev/null
+++ b/community-testing/xkbsel/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 59436 2011-11-24 17:06:08Z stephane $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xkbsel
+pkgver=0.13
+pkgrel=5
+pkgdesc="framework for defining, selecting and indicating XKB keyboard mappings"
+arch=('i686' 'x86_64')
+url="http://www.meduna.org/sw_xkbsel_en.html"
+license=('GPL')
+depends=('gdbm' 'libxaw')
+makedepends=('patch' 'xkeyboard-config')
+source=(http://www.meduna.org/code/$pkgname-$pkgver.tar.gz
+ build-fix.patch)
+md5sums=('c82196344ef920a072f413df85b9dc00'
+ 'dee0f7de8618d9eff073942f0e08f030')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ patch -Np1 <../build-fix.patch
+ export CFLAGS="$CFLAGS -I/usr/include/gdbm -DHAVE_NDBM_H"
+ export LDFLAGS="-lgdbm -lgdbm_compat"
+
+ ./configure --prefix=/usr --localstatedir=/var/lib --sysconfdir=/etc/xkbsel \
+ --build=`uname -m` --host=`uname -m` --target=`uname -m` \
+ --mandir=/usr/share/man
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community-testing/xkbsel/build-fix.patch b/community-testing/xkbsel/build-fix.patch
new file mode 100644
index 000000000..02021db47
--- /dev/null
+++ b/community-testing/xkbsel/build-fix.patch
@@ -0,0 +1,24 @@
+diff -wbBur xkbsel-0.13/configure xkbsel-0.13.my/configure
+--- xkbsel-0.13/configure 2000-04-09 13:37:02.000000000 +0400
++++ xkbsel-0.13.my/configure 2006-07-24 17:13:10.000000000 +0400
+@@ -6118,7 +6118,7 @@
+ { echo "configure: error: "Cannot find library containing dbm_open"" 1>&2; exit 1; }
+ fi
+
+-x11xkbdir=$ac_x_libraries/X11/xkb
++x11xkbdir=/usr/share/X11/xkb
+ test -d $x11xkbdir || { echo "configure: error: "Directory $x11xkbdir does not exist"" 1>&2; exit 1; }
+
+
+diff -wbBur xkbsel-0.13/libs/Makefile.in xkbsel-0.13.my/libs/Makefile.in
+--- xkbsel-0.13/libs/Makefile.in 2000-04-09 13:51:01.000000000 +0400
++++ xkbsel-0.13.my/libs/Makefile.in 2006-07-24 17:11:52.000000000 +0400
+@@ -452,7 +452,7 @@
+
+
+ install-data-local:
+- $(mkinstalldirs) ${sysxkmdir}
++ $(mkinstalldirs) $(DESTDIR)${sysxkmdir}
+
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/community/fb-client/PKGBUILD b/community/fb-client/PKGBUILD
index c629faea3..26dfe6bc5 100644
--- a/community/fb-client/PKGBUILD
+++ b/community/fb-client/PKGBUILD
@@ -1,6 +1,6 @@
# Maintainer: Florian "Bluewind" Pritz <flo@xssn.at>
pkgname=fb-client
-pkgver=0.9
+pkgver=0.9.1
pkgrel=1
pkgdesc="Client for paste.xinu.at"
arch=('i686' 'x86_64' 'mips64el')
@@ -8,8 +8,9 @@ url="http://paste.xinu.at"
license=('GPL3')
depends=('curl')
optdepends=('xclip: for automatically copying the URL into the clipboard')
-source=(http://paste.xinu.at/data/client/fb-$pkgver.tar.gz)
-md5sums=('51d65d794e9bad66e06e252f90ce92fb')
+source=(http://paste.xinu.at/data/client/fb-$pkgver.tar.gz{,.sig})
+md5sums=('dcb979b6d31ea56fde107251b92aaaca'
+ '08b1ac48b3da676621655d80c4c6a66d')
build() {
cd "$srcdir/fb-$pkgver"
diff --git a/community/gputils/PKGBUILD b/community/gputils/PKGBUILD
index e80d6270d..9930f47ab 100644
--- a/community/gputils/PKGBUILD
+++ b/community/gputils/PKGBUILD
@@ -1,25 +1,27 @@
+# $Id: PKGBUILD 59445 2011-11-24 21:56:56Z ebelanger $
# Contributor: Johannes Martin <honzor@gmx.net>
# Contributor: JJDaNiMoTh <jjdanimoth.aur@gmail.com>
# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=gputils
-pkgver=0.13.7
-pkgrel=2
+pkgver=0.14.0
+pkgrel=1
pkgdesc="PIC Programming Utilities"
arch=('i686' 'x86_64' 'mips64el')
url="http://gputils.sourceforge.net/"
license=('GPL')
+depends=('glibc')
source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
-md5sums=('242e33919e9c318d6ac58b6db291d20e')
+md5sums=('04780834e30fc50f0bd92cc4c91cf11b')
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
- ./configure --prefix=/usr || return 1
- make || return 1
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install || return 1
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
}
diff --git a/community/leafnode/PKGBUILD b/community/leafnode/PKGBUILD
index eb14ece2a..7afa1252e 100644
--- a/community/leafnode/PKGBUILD
+++ b/community/leafnode/PKGBUILD
@@ -1,10 +1,9 @@
-# $Id: PKGBUILD 58812 2011-11-18 15:35:58Z spupykin $
+# $Id: PKGBUILD 59410 2011-11-24 15:33:29Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
-# You need an news user and group to build this package
pkgname=leafnode
pkgver=1.11.8
-pkgrel=2
+pkgrel=4
pkgdesc="implements a store & forward NNTP proxy (client and server) with IPv4 and IPv6"
arch=('i686' 'x86_64' 'mips64el')
url="http://leafnode.sourceforge.net/"
@@ -23,6 +22,8 @@ build() {
./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc/leafnode \
--with-user=9 \
--with-group=13
+ sed -i 's|#define NEWS_USER .*|#define NEWS_USER "news"|' config.h
+ sed -i 's|#define NEWS_GROUP .*|#define NEWS_GROUP "news"|' config.h
make
make DESTDIR=$pkgdir install
chown -R root.root $pkgdir
diff --git a/community/leafnode/leafnode.install b/community/leafnode/leafnode.install
index f1a046e1c..5f8a74c04 100644
--- a/community/leafnode/leafnode.install
+++ b/community/leafnode/leafnode.install
@@ -10,6 +10,5 @@ post_install() {
}
post_remove() {
- echo "-- Deleting spool directory"
- rm -rf var/spool/news
+ echo "-- Don't forget to remove /var/spool/news directory"
}
diff --git a/community/mythtv/PKGBUILD b/community/mythtv/PKGBUILD
index 207484ee1..d4530b4de 100644
--- a/community/mythtv/PKGBUILD
+++ b/community/mythtv/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 58529 2011-11-13 16:01:47Z andrea $
+# $Id: PKGBUILD 59400 2011-11-24 09:36:19Z jconder $
# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Juergen Hoetzel <juergen@archlinux.org>
@@ -7,16 +7,16 @@
pkgname=mythtv
pkgver=0.24.1
-pkgrel=2
+pkgrel=3
epoch=1
pkgdesc="A Homebrew PVR project"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.mythtv.org/"
license=('GPL')
depends=('lame' 'libavc1394' 'libiec61883' 'libpulse' 'libvdpau' 'libxinerama'
- 'libxvmc' 'lirc-utils' 'mesa' 'mysql-clients' 'mysql-python'
- 'perl-dbd-mysql' 'perl-libwww' 'perl-net-upnp' 'python-lxml' 'qt'
- 'wget')
+ 'libxvmc' 'libxxf86vm' 'lirc-utils' 'mesa' 'mysql-clients'
+ 'mysql-python' 'perl-dbd-mysql' 'perl-libwww' 'perl-net-upnp'
+ 'python-lxml' 'qt' 'wget')
makedepends=('yasm')
optdepends=('xmltv: to download tv listings')
backup=('etc/conf.d/mythbackend')
diff --git a/community/ncdu/PKGBUILD b/community/ncdu/PKGBUILD
index d28851085..24876e435 100644
--- a/community/ncdu/PKGBUILD
+++ b/community/ncdu/PKGBUILD
@@ -1,21 +1,28 @@
+# $Id: PKGBUILD 59391 2011-11-24 07:32:15Z bisson $
+
# Contributor: lp76 <l.peduto@gmail.com>
-# Maintainer: Daenyth <Daenyth+Arch AT gmail DOT com>
+# Contributor: Daenyth <Daenyth+Arch AT gmail DOT com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
pkgname=ncdu
-pkgver=1.7
+pkgver=1.8
pkgrel=1
-pkgdesc="An NCurses version of the famous old 'du' unix command"
-arch=('i686' 'x86_64' 'mips64el')
-url="http://dev.yorhel.nl/ncdu/"
-license=('MIT')
+pkgdesc='Disk usage analyzer with an ncurses interface'
+url='http://dev.yorhel.nl/ncdu/'
+license=('custom:MIT')
depends=('ncurses')
-source=(http://dev.yorhel.nl/download/$pkgname-$pkgver.tar.gz)
-md5sums=('172047c29d232724cc62e773e82e592a')
+arch=('i686' 'x86_64' 'mips64el')
+source=("http://dev.yorhel.nl/download/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('3d98e78cf7035e32333d263d301d12e9b4352598')
build() {
- cd $srcdir/$pkgname-$pkgver
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
- ./configure --prefix=/usr || return 1
- make || return 1
- make DESTDIR=$pkgdir install || return 1
- install -Dm644 COPYING $pkgdir/usr/share/licenses/$pkgname/LICENSE
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
diff --git a/community/open-vm-tools-modules/PKGBUILD b/community/open-vm-tools-modules/PKGBUILD
index b374841e9..c6f2c3af8 100644
--- a/community/open-vm-tools-modules/PKGBUILD
+++ b/community/open-vm-tools-modules/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 58558 2011-11-14 12:47:57Z spupykin $
+# $Id: PKGBUILD 59404 2011-11-24 12:19:55Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Krzysztof Raczkowski <raczkow@gmail.com>
pkgname=open-vm-tools-modules
-pkgver=2011.10.26
-_pkgsubver=514583
-pkgrel=3
+pkgver=2011.11.20
+_pkgsubver=535097
+pkgrel=1
pkgdesc="kernel modules for the open source implementation of VMware Tools"
arch=('i686' 'x86_64' 'mips64el')
url="http://open-vm-tools.sourceforge.net/"
@@ -16,7 +16,7 @@ install=$pkgname.install
options=('!strip')
source=("http://downloads.sourceforge.net/open-vm-tools/open-vm-tools-$pkgver-${_pkgsubver}.tar.gz"
"modprobe.conf")
-md5sums=('06f299375a91fbcba9d16b5007490023'
+md5sums=('428d803f6fe3424af88768fc2f88f9ae'
'ac9b8e3cb798f5056ca92767ec705117')
build() {
diff --git a/community/open-vm-tools/PKGBUILD b/community/open-vm-tools/PKGBUILD
index b8bdab9c5..75fb0e9c7 100644
--- a/community/open-vm-tools/PKGBUILD
+++ b/community/open-vm-tools/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 58319 2011-11-11 11:55:59Z spupykin $
+# $Id: PKGBUILD 59402 2011-11-24 12:19:04Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Krzysztof Raczkowski <raczkow@gmail.com>
pkgname=open-vm-tools
-pkgver=2011.10.26
-_pkgsubver=514583
-pkgrel=2
+pkgver=2011.11.20
+_pkgsubver=535097
+pkgrel=1
pkgdesc="The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools."
arch=('i686' 'x86_64' 'mips64el')
url="http://open-vm-tools.sourceforge.net/"
@@ -24,7 +24,7 @@ source=(http://switch.dl.sourceforge.net/$pkgname/$pkgname-$pkgver-${_pkgsubver}
tools.conf
vmware-guestd
xautostart.conf)
-md5sums=('06f299375a91fbcba9d16b5007490023'
+md5sums=('428d803f6fe3424af88768fc2f88f9ae'
'06f7448e274db2a911f582e276088fc9'
'199508b0d3fe6fa9b726d09170bf51f1'
'8c333a979578bdc0c3134c1dd6bb7353'
diff --git a/community/pigeonhole/PKGBUILD b/community/pigeonhole/PKGBUILD
index de6de2e74..609531264 100644
--- a/community/pigeonhole/PKGBUILD
+++ b/community/pigeonhole/PKGBUILD
@@ -8,8 +8,8 @@ _dcpkgver=2.0.16
# Make sure to bump pkgrel if changing this.
pkgname=pigeonhole
-pkgver=0.2.4
-pkgrel=3
+pkgver=0.2.5
+pkgrel=1
pkgdesc="Fully rewritten Sieve implementation for Dovecot v2.0"
arch=('i686' 'x86_64' 'mips64el')
url="http://pigeonhole.dovecot.org/"
@@ -20,7 +20,7 @@ conflicts=('dovecot-sieve' 'pigeonhole-hg')
source=("http://www.rename-it.nl/dovecot/2.0/dovecot-2.0-$pkgname-$pkgver.tar.gz"
"dovecot.conf")
options=('!libtool')
-md5sums=('11d396b901db774799d07db6e4dd805b'
+md5sums=('f50151dd20eb5acbac2b546e586f2d43'
'564b771c339f69a477c06babf53e11c2')
build() {
diff --git a/extra/gcin/PKGBUILD b/extra/gcin/PKGBUILD
index c1d48b9b3..121bfc29e 100644
--- a/extra/gcin/PKGBUILD
+++ b/extra/gcin/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 140668 2011-10-18 00:42:56Z bisson $
+# $Id: PKGBUILD 143496 2011-11-25 03:20:54Z bisson $
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Contributor: damir <damir@archlinux.org>
pkgname=gcin
-pkgver=1.7.0
+pkgver=2.1.0
pkgrel=1
pkgdesc='Input method server supporting various input methods'
-arch=('i686' 'x86_64' 'mips64el')
-license=('LGPL')
url='http://hyperrate.com/dir.php?eid=67'
+license=('LGPL')
+arch=('i686' 'x86_64' 'mips64el')
depends=('gtk2' 'libxtst')
makedepends=('qt' 'gtk3' 'anthy' 'libchewing')
optdepends=('qt: support for qt4 input method'
@@ -18,8 +18,8 @@ optdepends=('qt: support for qt4 input method'
'libchewing: support for chewing input method')
source=("http://www.csie.nctu.edu.tw/~cp76/gcin/download/${pkgname}-${pkgver}.tar.xz"
'qt4-lib64.patch')
-sha1sums=('151d1286dc54d7f7fa230d37e89d3d0fe0845258'
- '4307b0d7d6dc10f15909c94973c4357caf31de7e')
+sha1sums=('9ab09afece8d94faacdcadb150f87c0337108857'
+ '4b121e9a86a2ca25869c69b7d4d9623a0c8f55fc')
install=install
diff --git a/extra/gcin/qt4-lib64.patch b/extra/gcin/qt4-lib64.patch
index 13cb3dc15..abc15950e 100644
--- a/extra/gcin/qt4-lib64.patch
+++ b/extra/gcin/qt4-lib64.patch
@@ -1,15 +1,6 @@
diff -aur old/configure new/configure
---- old/configure 2011-06-08 16:00:37.000000000 +0200
-+++ new/configure 2011-07-05 08:02:33.223601351 +0200
-@@ -164,7 +164,7 @@
-
- LIB='lib'
- if [ -d /lib64 ]; then
--LIB='lib64'
-+LIB='lib'
- fi
-
- QT_IM='N'
+--- old/configure 2011-11-07 06:51:12.000000000 +1100
++++ new/configure 2011-11-25 14:02:10.819256960 +1100
@@ -188,7 +188,7 @@
@@ -20,8 +11,8 @@ diff -aur old/configure new/configure
pkg-config --libs QtCore QtGui > /dev/null 2> /dev/null
if [ $? = 0 ]; then
diff -aur old/qt4-im/Makefile new/qt4-im/Makefile
---- old/qt4-im/Makefile 2011-06-08 15:03:50.000000000 +0200
-+++ new/qt4-im/Makefile 2011-07-05 08:04:15.717731695 +0200
+--- old/qt4-im/Makefile 2011-06-08 23:03:50.000000000 +1000
++++ new/qt4-im/Makefile 2011-11-25 14:05:28.844110772 +1100
@@ -1,5 +1,5 @@
include ../config.mak
-QT=qt4
diff --git a/extra/maxima/PKGBUILD b/extra/maxima/PKGBUILD
index c83528dd4..e0ce6b0e1 100644
--- a/extra/maxima/PKGBUILD
+++ b/extra/maxima/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 142503 2011-11-10 20:08:23Z ronald $
+# $Id: PKGBUILD 143491 2011-11-24 21:29:37Z juergen $
# Maintainer: Ronald van Haren <ronald.archlinux.org>
# Contributor: Damir Perisa <damir@archlinux.org>
pkgname=maxima
pkgver=5.25.1
-pkgrel=1
+pkgrel=2
pkgdesc="Maxima - a sophisticated computer algebra system"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
@@ -12,7 +12,7 @@ url="http://maxima.sourceforge.net"
if [ "${CARCH}" == "mips64el" ] ; then
depends=('clisp' 'texinfo' 'sh')
else
- depends=('sbcl=1.0.52' 'texinfo' 'sh')
+ depends=('sbcl=1.0.53' 'texinfo' 'sh')
fi
makedepends=('python2')
optdepends=('gnuplot: plotting capabilities' 'rlwrap: readline support via /usr/bin/rmaxima' 'tk: graphical xmaxima interface')
@@ -43,11 +43,11 @@ build() {
package() {
cd ${srcdir}/${pkgname}-${pkgver}
make DESTDIR=${pkgdir} install
-
+
# install some freedesktop.org compatibility
install -Dm644 ${srcdir}/${pkgname}.desktop \
${pkgdir}/usr/share/applications/${pkgname}.desktop
-
+
# make sure, we have a nice icon for the desktop file at the right place ;)
install -d ${pkgdir}/usr/share/pixmaps/
ln -s /usr/share/maxima/${pkgver}/xmaxima/maxima-new.png \
diff --git a/extra/mysql/PKGBUILD b/extra/mysql/PKGBUILD
index af721f337..4be16689a 100644
--- a/extra/mysql/PKGBUILD
+++ b/extra/mysql/PKGBUILD
@@ -1,21 +1,21 @@
-# $Id: PKGBUILD 141055 2011-10-22 18:07:50Z andrea $
+# $Id: PKGBUILD 143260 2011-11-24 07:38:10Z andrea $
# Maintainer:
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
pkgbase=mysql
pkgname=('libmysqlclient' 'mysql-clients' 'mysql')
-pkgver=5.5.17
+pkgver=5.5.18
pkgrel=1
arch=('i686' 'x86_64' 'mips64el')
license=('GPL')
-url="http://www.mysql.com/"
+url="https://www.mysql.com/products/community/"
makedepends=('cmake' 'openssl' 'zlib')
options=('!libtool')
source=("http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.5/${pkgbase}-${pkgver}.tar.gz"
'mysqld'
'my.cnf')
-md5sums=('dcb6a06e68c5e8f30f57b15300730c9c'
+md5sums=('38b65815249f3bcacf3b0ee85171c486'
'2234207625baa29b2ff7d7b4f088abce'
'1c949c0dbea5206af0db14942d9927b6')
diff --git a/extra/sbcl/PKGBUILD b/extra/sbcl/PKGBUILD
index 70ea00d74..ef51d1d45 100644
--- a/extra/sbcl/PKGBUILD
+++ b/extra/sbcl/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 141251 2011-10-27 12:54:01Z juergen $
+# $Id: PKGBUILD 143489 2011-11-24 20:44:47Z juergen $
# Contributor: John Proctor <jproctor@prium.net>
# Contributor: Daniel White <daniel@whitehouse.id.au>
# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
# Contributor: Leslie Polzer (skypher)
pkgname=sbcl
-pkgver=1.0.52
+pkgver=1.0.53
pkgrel=1
pkgdesc="Steel Bank Common Lisp"
url="http://www.sbcl.org/"
@@ -20,7 +20,7 @@ install=sbcl.install
source=("http://downloads.sourceforge.net/project/sbcl/sbcl/$pkgver/$pkgname-$pkgver-source.tar.bz2"
"arch-fixes.lisp"
"mips-arch.h.diff")
-md5sums=('e9e186637155184ec662b5a37634b457'
+md5sums=('28bdb8d65b240bcc45370f19b781f9b8'
'7ac0c1936547f4278198b8bf7725204d'
'a456535d65d6c5b85b1b646f11455fce')
diff --git a/kde-unstable/kactivities/PKGBUILD b/kde-unstable/kactivities/PKGBUILD
new file mode 100644
index 000000000..e60a143e9
--- /dev/null
+++ b/kde-unstable/kactivities/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 143306 2011-11-24 16:13:52Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kactivities
+pkgver=4.7.80
+pkgrel=2
+arch=('i686' 'x86_64')
+pkgdesc='API for using and interacting with Activities'
+url='http://kde.org/'
+license=('GPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+ 'fix-activities.patch')
+sha1sums=('c619c5d6e3e2ef79d0cebf52bf18d1b467dc24f9'
+ '6eb890958726856cf4ddb172acd46ba08f7a5088')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ patch -p1 -i "${srcdir}"/fix-activities.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kactivities/fix-activities.patch b/kde-unstable/kactivities/fix-activities.patch
new file mode 100644
index 000000000..5cf62c48c
--- /dev/null
+++ b/kde-unstable/kactivities/fix-activities.patch
@@ -0,0 +1,156 @@
+--- kactivities-4.7.80/service/ActivityManager.cpp~ 2011-11-24 16:05:52.777981854 +0000
++++ kactivities-4.7.80/service/ActivityManager.cpp 2011-11-24 16:06:32.721637122 +0000
+@@ -75,14 +75,14 @@
+ QHash < WId, SharedInfo::WindowData > & _windows,
+ QHash < KUrl, SharedInfo::ResourceData > & _resources
+ )
+- : haveSessions(false),
+- config("activitymanagerrc"),
+- windows(_windows),
+- resources(_resources),
++ : config("activitymanagerrc"),
++ windows(_windows),
++ resources(_resources),
+ #ifdef HAVE_NEPOMUK
+- m_nepomukInitCalled(false),
++ m_nepomukInitCalled(false),
+ #endif
+- q(parent)
++ q(parent),
++ ksmserverInterface(0)
+ {
+ // Initializing config
+ connect(&configSyncTimer, SIGNAL(timeout()),
+@@ -116,20 +116,26 @@
+ this, SLOT(activeWindowChanged(WId)));
+
+ //listen to ksmserver for starting/stopping
++ QDBusServiceWatcher *watcher = new QDBusServiceWatcher("org.kde.ksmserver",
++ QDBusConnection::sessionBus(),
++ QDBusServiceWatcher::WatchForRegistration);
++ connect(watcher, SIGNAL(serviceRegistered(QString)), this, SLOT(sessionServiceRegistered()));
++ sessionServiceRegistered();
++}
++
++void ActivityManagerPrivate::sessionServiceRegistered()
++{
++ delete ksmserverInterface;
+ ksmserverInterface = new QDBusInterface("org.kde.ksmserver", "/KSMServer", "org.kde.KSMServerInterface");
+ if (ksmserverInterface->isValid()) {
+ ksmserverInterface->setParent(this);
+ connect(ksmserverInterface, SIGNAL(subSessionOpened()), this, SLOT(startCompleted()));
+ connect(ksmserverInterface, SIGNAL(subSessionClosed()), this, SLOT(stopCompleted()));
+ connect(ksmserverInterface, SIGNAL(subSessionCloseCanceled()), this, SLOT(stopCancelled())); //spelling fail :)
+- haveSessions = true;
+ } else {
+- kDebug() << "couldn't connect to ksmserver! session stuff won't work";
+- //note: in theory it's nice to try again later
+- //but in practice, ksmserver is either there or it isn't (killing it logs you out)
+- //so in this case there's no point. :)
+- ksmserverInterface->deleteLater();
++ delete ksmserverInterface;
+ ksmserverInterface = 0;
++ kDebug() << "couldn't connect to ksmserver! session stuff won't work";
+ }
+ }
+
+@@ -519,26 +525,24 @@
+ {
+ bool called = false;
+ // start the starting :)
+- if (haveSessions) {
+- QDBusInterface kwin("org.kde.kwin", "/KWin", "org.kde.KWin");
+- if (kwin.isValid()) {
+- QDBusMessage reply = kwin.call("startActivity", id);
+- if (reply.type() == QDBusMessage::ErrorMessage) {
+- kDebug() << "dbus error:" << reply.errorMessage();
++ QDBusInterface kwin("org.kde.kwin", "/KWin", "org.kde.KWin");
++ if (kwin.isValid()) {
++ QDBusMessage reply = kwin.call("startActivity", id);
++ if (reply.type() == QDBusMessage::ErrorMessage) {
++ kDebug() << "dbus error:" << reply.errorMessage();
++ } else {
++ QList<QVariant> ret = reply.arguments();
++ if (ret.length() == 1 && ret.first().toBool()) {
++ called = true;
+ } else {
+- QList<QVariant> ret = reply.arguments();
+- if (ret.length() == 1 && ret.first().toBool()) {
+- called = true;
+- } else {
+- kDebug() << "call returned false; probably ksmserver is busy";
+- setActivityState(transitioningActivity, ActivityManager::Stopped);
+- transitioningActivity.clear();
+- return; //assume we're mid-logout and just don't touch anything
+- }
++ kDebug() << "call returned false; probably ksmserver is busy";
++ setActivityState(transitioningActivity, ActivityManager::Stopped);
++ transitioningActivity.clear();
++ return; //assume we're mid-logout and just don't touch anything
+ }
+- } else {
+- kDebug() << "couldn't get kwin interface";
+ }
++ } else {
++ kDebug() << "couldn't get kwin interface";
+ }
+
+ if (!called) {
+@@ -585,25 +589,23 @@
+ {
+ bool called = false;
+ // start the stopping :)
+- if (haveSessions) {
+- QDBusInterface kwin("org.kde.kwin", "/KWin", "org.kde.KWin");
+- if (kwin.isValid()) {
+- QDBusMessage reply = kwin.call("stopActivity", id);
+- if (reply.type() == QDBusMessage::ErrorMessage) {
+- kDebug() << "dbus error:" << reply.errorMessage();
++ QDBusInterface kwin("org.kde.kwin", "/KWin", "org.kde.KWin");
++ if (kwin.isValid()) {
++ QDBusMessage reply = kwin.call("stopActivity", id);
++ if (reply.type() == QDBusMessage::ErrorMessage) {
++ kDebug() << "dbus error:" << reply.errorMessage();
++ } else {
++ QList<QVariant> ret = reply.arguments();
++ if (ret.length() == 1 && ret.first().toBool()) {
++ called = true;
+ } else {
+- QList<QVariant> ret = reply.arguments();
+- if (ret.length() == 1 && ret.first().toBool()) {
+- called = true;
+- } else {
+- kDebug() << "call returned false; probably ksmserver is busy";
+- stopCancelled();
+- return; //assume we're mid-logout and just don't touch anything
+- }
++ kDebug() << "call returned false; probably ksmserver is busy";
++ stopCancelled();
++ return; //assume we're mid-logout and just don't touch anything
+ }
+- } else {
+- kDebug() << "couldn't get kwin interface";
+ }
++ } else {
++ kDebug() << "couldn't get kwin interface";
+ }
+
+ if (!called) {
+--- kactivities-4.7.80/service/ActivityManager_p.h~ 2011-11-24 16:06:01.618054620 +0000
++++ kactivities-4.7.80/service/ActivityManager_p.h 2011-11-24 16:06:32.721637122 +0000
+@@ -68,7 +68,6 @@
+
+ //opening/closing activity (ksmserver can only handle one at a time)
+ QString transitioningActivity;
+- bool haveSessions; //whether ksmserver's available
+
+ // Configuration
+ QTimer configSyncTimer;
+@@ -106,6 +105,7 @@
+
+ void backstoreAvailable();
+ void syncActivitiesWithNepomuk();
++ void sessionServiceRegistered();
+
+ private:
+ ActivityManager * const q;
diff --git a/kde-unstable/kdeaccessibility-jovie/PKGBUILD b/kde-unstable/kdeaccessibility-jovie/PKGBUILD
new file mode 100644
index 000000000..c57d0deef
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-jovie/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 143326 2011-11-24 16:14:16Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-jovie
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='A text to speech application'
+url='http://kde.org/applications/utilities/jovie/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdebase-runtime' 'speech-dispatcher')
+makedepends=('cmake' 'automoc4')
+replaces=('kdeaccessibility-kttsd')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/jovie-${pkgver}.tar.bz2")
+sha1sums=('d5ae86d01279fdf7b8102f9d516749b0ddfb531b')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../jovie-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-jovie/kdeaccessibility-jovie.install b/kde-unstable/kdeaccessibility-jovie/kdeaccessibility-jovie.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-jovie/kdeaccessibility-jovie.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeaccessibility-kaccessible/PKGBUILD b/kde-unstable/kdeaccessibility-kaccessible/PKGBUILD
new file mode 100644
index 000000000..0e90b4e79
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kaccessible/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143328 2011-11-24 16:14:18Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-kaccessible
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='Provides accessibility services like focus tracking and a screenreader'
+url='http://accessibility.kde.org/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdelibs' 'speech-dispatcher')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kaccessible-${pkgver}.tar.bz2")
+sha1sums=('6d3235dde870414af9548c6fe1b1d25dd101d436')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kaccessible-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-kmag/PKGBUILD b/kde-unstable/kdeaccessibility-kmag/PKGBUILD
new file mode 100644
index 000000000..084ce52af
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmag/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 143330 2011-11-24 16:14:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-kmag
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='Screen Magnifier'
+url='http://kde.org/applications/utilities/kmag/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kmag-${pkgver}.tar.bz2")
+sha1sums=('549bd0c71e95f7526bb6766ba4d262ac372b6e1c')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmag-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-kmag/kdeaccessibility-kmag.install b/kde-unstable/kdeaccessibility-kmag/kdeaccessibility-kmag.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmag/kdeaccessibility-kmag.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeaccessibility-kmousetool/PKGBUILD b/kde-unstable/kdeaccessibility-kmousetool/PKGBUILD
new file mode 100644
index 000000000..f052a35a8
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmousetool/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 143332 2011-11-24 16:14:23Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-kmousetool
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='Clicks the mouse for you, reducing the effects of RSI'
+url='http://kde.org/applications/utilities/kmousetool/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kmousetool-${pkgver}.tar.bz2")
+sha1sums=('a5a3190ba645d1930ca561560f2f37f91dc550c9')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmousetool-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-kmousetool/kdeaccessibility-kmousetool.install b/kde-unstable/kdeaccessibility-kmousetool/kdeaccessibility-kmousetool.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmousetool/kdeaccessibility-kmousetool.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeaccessibility-kmouth/PKGBUILD b/kde-unstable/kdeaccessibility-kmouth/PKGBUILD
new file mode 100644
index 000000000..72c7247b4
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmouth/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 143334 2011-11-24 16:14:25Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeaccessibility-kmouth
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='Speech Synthesizer Frontend'
+url='http://kde.org/applications/utilities/kmouth/'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kmouth-${pkgver}.tar.bz2")
+sha1sums=('175b2a58241a42689d73396d02f2836d57978e5e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmouth-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility-kmouth/kdeaccessibility-kmouth.install b/kde-unstable/kdeaccessibility-kmouth/kdeaccessibility-kmouth.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeaccessibility-kmouth/kdeaccessibility-kmouth.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeadmin/PKGBUILD b/kde-unstable/kdeadmin/PKGBUILD
new file mode 100644
index 000000000..da2c8b6de
--- /dev/null
+++ b/kde-unstable/kdeadmin/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 143336 2011-11-24 16:14:27Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeadmin
+pkgname=('kdeadmin-kcron'
+ 'kdeadmin-ksystemlog'
+ 'kdeadmin-kuser'
+ 'kdeadmin-system-config-printer-kde')
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeadmin')
+makedepends=('cmake' 'automoc4' 'kdebindings-python' 'system-config-printer-common')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'syslog-path.patch')
+sha1sums=('3e06dff48271e78eec67bcda644476bcf0efa554'
+ '20095ce6e0f3e5b6800a7c6e52de6fddba62c031')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ patch -p1 -i ${srcdir}/syslog-path.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_strigi-analyzer=OFF \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdeadmin-kcron() {
+ pkgdesc='Configure and schedule tasks'
+ depends=('kdelibs')
+ cd $srcdir/build/kcron
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcron
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-ksystemlog() {
+ pkgdesc='System log viewer tool'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/system/ksystemlog/"
+ cd $srcdir/build/ksystemlog
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksystemlog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-kuser() {
+ pkgdesc='User Manager'
+ depends=('kdepim-runtime')
+ url="http://kde.org/applications/system/kuser/"
+ install='kdeadmin.install'
+ cd $srcdir/build/kuser
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kuser
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-system-config-printer-kde() {
+ pkgdesc='Configure local and remote Printers'
+ depends=('kdebindings-python' 'system-config-printer-common' 'python2-pyqt')
+ url="http://kde.org/applications/system/printerapplet/"
+ cd $srcdir/build/system-config-printer-kde
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/share/apps/system-config-printer-kde/{system-config-printer-kde,authconn}.py
+ sed -i 's|#!/usr/bin/python|#!/usr/bin/python2|' \
+ "${pkgdir}"/usr/share/apps/system-config-printer-kde/pysmb.py
+}
diff --git a/kde-unstable/kdeadmin/kdeadmin.install b/kde-unstable/kdeadmin/kdeadmin.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeadmin/kdeadmin.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeadmin/syslog-path.patch b/kde-unstable/kdeadmin/syslog-path.patch
new file mode 100644
index 000000000..8a9142bf6
--- /dev/null
+++ b/kde-unstable/kdeadmin/syslog-path.patch
@@ -0,0 +1,11 @@
+--- kdeadmin-4.6.0/ksystemlog/src/modes/system/systemConfiguration.h~ 2011-01-27 14:24:29.840000005 +0100
++++ kdeadmin-4.6.0/ksystemlog/src/modes/system/systemConfiguration.h 2011-01-27 14:24:53.803333335 +0100
+@@ -39,7 +39,7 @@
+ SystemConfiguration() :
+ GenericLogModeConfiguration(
+ QLatin1String( SYSTEM_LOG_MODE_ID ),
+- QStringList() << QLatin1String( "/var/log/syslog" ),
++ QStringList() << QLatin1String( "/var/log/messages.log" ),
+ QList<int>() << INFORMATION_LOG_LEVEL_ID
+ ) {
+
diff --git a/kde-unstable/kdeartwork/PKGBUILD b/kde-unstable/kdeartwork/PKGBUILD
new file mode 100644
index 000000000..4113014a1
--- /dev/null
+++ b/kde-unstable/kdeartwork/PKGBUILD
@@ -0,0 +1,104 @@
+# $Id: PKGBUILD 143338 2011-11-24 16:14:29Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeartwork
+pkgname=('kdeartwork-aurorae'
+ 'kdeartwork-colorschemes'
+ 'kdeartwork-desktopthemes'
+ 'kdeartwork-emoticons'
+ 'kdeartwork-iconthemes'
+ 'kdeartwork-kscreensaver'
+ 'kdeartwork-sounds'
+ 'kdeartwork-styles'
+ 'kdeartwork-wallpapers'
+ 'kdeartwork-weatherwallpapers')
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeartwork')
+makedepends=('cmake' 'automoc4' 'xscreensaver' 'eigen' 'kdebase-workspace'
+ 'libkexiv2')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('1b046764a5ca6481d6ce5648b0e180eec7cd08c0')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeartwork-aurorae() {
+ pkgdesc='An Aurorae theme based on the Oxygen plasma theme'
+ cd $srcdir/build/aurorae
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-colorschemes() {
+ pkgdesc='KDE color schemes'
+ replaces=('kdeaccessibility-colorschemes')
+ cd $srcdir/build/ColorSchemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-desktopthemes() {
+ pkgdesc='KDE desktop themes'
+ cd $srcdir/build/desktopthemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-emoticons() {
+ pkgdesc='KDE emoticons'
+ cd $srcdir/build/emoticons
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-iconthemes() {
+ pkgdesc='KDE icon themes'
+ replaces=('kdeaccessibility-iconthemes')
+ cd $srcdir/build/IconThemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-kscreensaver() {
+ pkgdesc='KDE screensaver'
+ depends=('kdebase-workspace' 'libkexiv2')
+ cd $srcdir/build/kscreensaver
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-sounds() {
+ pkgdesc='KDE sounds'
+ cd $srcdir/build/sounds
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-styles() {
+ pkgdesc='KDE styles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/styles
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/kwin-styles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-wallpapers() {
+ pkgdesc='KDE wallpapers'
+ cd $srcdir/build/wallpapers
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/HighResolutionWallpapers
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-weatherwallpapers() {
+ pkgdesc='KDE weather wallpapers'
+ cd $srcdir/build/WeatherWallpapers
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdebase-konsole/PKGBUILD b/kde-unstable/kdebase-konsole/PKGBUILD
new file mode 100644
index 000000000..9b0e14d2b
--- /dev/null
+++ b/kde-unstable/kdebase-konsole/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143340 2011-11-24 16:14:32Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebase-konsole
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://kde.org/applications/system/konsole/'
+pkgdesc="Terminal"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/konsole-${pkgver}.tar.bz2")
+sha1sums=('47305f7eeabeefd71e518314b04d18b7a9724c39')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../konsole-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebase-runtime/PKGBUILD b/kde-unstable/kdebase-runtime/PKGBUILD
new file mode 100644
index 000000000..d329f4d40
--- /dev/null
+++ b/kde-unstable/kdebase-runtime/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 143284 2011-11-24 16:13:21Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdebase-runtime
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="KDE Base Runtime Environment"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+depends=('kdelibs' 'ntrack' 'smbclient' 'libssh' 'libcanberra' 'oxygen-icons'
+ 'xorg-xauth')
+makedepends=('pkg-config' 'cmake' 'automoc4' 'kdepimlibs' 'openslp' 'doxygen'
+ 'xine-lib')
+optdepends=('htdig: to build the search index in khelpcenter'
+ 'rarian: needed by khelpcenter'
+ 'gdb: drkonq crash handler')
+install="${pkgname}.install"
+source=("http://download.kde.org/unstable/${pkgver}/src/kde-runtime-${pkgver}.tar.bz2")
+sha1sums=('a9c0be087a2cd96d84c1fec1b4f726e9cbcc3327')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kde-runtime-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/build"
+ make DESTDIR="$pkgdir" install
+ rm -f "${pkgdir}/usr/share/icons/hicolor/index.theme"
+ ln -sf /usr/lib/kde4/libexec/kdesu "${pkgdir}/usr/bin/"
+
+ # Fix Python2 path
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' \
+ "${pkgdir}"/usr/bin/nepomuk-simpleresource-rcgen
+}
diff --git a/kde-unstable/kdebase-runtime/kdebase-runtime.install b/kde-unstable/kdebase-runtime/kdebase-runtime.install
new file mode 100644
index 000000000..3f06b8deb
--- /dev/null
+++ b/kde-unstable/kdebase-runtime/kdebase-runtime.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdebase-workspace/kdm-xinitrd.patch b/kde-unstable/kdebase-workspace/kdm-xinitrd.patch
deleted file mode 100644
index f5fc0e571..000000000
--- a/kde-unstable/kdebase-workspace/kdm-xinitrd.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- kde-workspace-4.7.2/kdm/kfrontend/genkdmconf.c~ 2011-10-04 22:11:24.787771512 +0000
-+++ kde-workspace-4.7.2/kdm/kfrontend/genkdmconf.c 2011-10-04 22:13:58.612702824 +0000
-@@ -742,6 +742,15 @@
- "[ -f /etc/xprofile ] && . /etc/xprofile\n"
- "[ -f $HOME/.xprofile ] && . $HOME/.xprofile\n"
- "\n"
-+"# run all system xinitrc shell scripts.\n"
-+"if [ -d /etc/X11/xinit/xinitrc.d ]; then\n"
-+" for i in /etc/X11/xinit/xinitrc.d/* ; do\n"
-+" if [ -x \"$i\" ]; then\n"
-+" . \"$i\"\n"
-+" fi\n"
-+" done\n"
-+"fi\n"
-+"\n"
- "if [ -d /etc/X11/Xresources ]; then\n"
- " for i in /etc/X11/Xresources/*; do\n"
- " [ -f $i ] && xrdb -merge $i\n"
diff --git a/kde-unstable/kdebase/PKGBUILD b/kde-unstable/kdebase/PKGBUILD
new file mode 100644
index 000000000..70263f6aa
--- /dev/null
+++ b/kde-unstable/kdebase/PKGBUILD
@@ -0,0 +1,120 @@
+# $Id: PKGBUILD 143310 2011-11-24 16:13:59Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdebase
+pkgname=('kdebase-dolphin'
+ 'kdebase-kdepasswd'
+ 'kdebase-kdialog'
+ 'kdebase-keditbookmarks'
+ 'kdebase-kfind'
+ 'kdebase-konq-plugins'
+ 'kdebase-konqueror'
+ 'kdebase-lib'
+ 'kdebase-plasma')
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+makedepends=('kdelibs' 'cmake' 'automoc4' 'tidyhtml')
+source=("http://download.kde.org/unstable/${pkgver}/src/kde-baseapps-${pkgver}.tar.bz2")
+sha1sums=('51782a7e569479ea0eff5e2ed93bc9813111a4cc')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../kde-baseapps-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdebase-dolphin() {
+ pkgdesc='File Manager'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ optdepends=('kdegraphics-svgpart: thumbailers for SVG files'
+ 'kdegraphics-thumbnailers: thumbnailers for graphics file'
+ 'ruby: servicemenu installation')
+ url="http://kde.org/applications/system/dolphin/"
+ install=kdebase-dolphin.install
+ cd $srcdir/build/dolphin
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/dolphin
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdepasswd() {
+ pkgdesc='Change Password'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ cd $srcdir/build/kdepasswd
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdepasswd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdialog() {
+ pkgdesc='A utility for displaying dialog boxes from shell scripts'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kdialog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-keditbookmarks() {
+ pkgdesc='Bookmark Organizer and Editor'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/keditbookmarks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kfind() {
+ pkgdesc='Find Files/Folders'
+ depends=('kdebase-runtime' 'kdebase-lib')
+ url="http://kde.org/applications/utilities/kfind/"
+ install='kdebase.install'
+ cd $srcdir/build/kfind
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfind
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-konq-plugins() {
+ pkgdesc='Extra plugins for Konqueror'
+ depends=('kdebase-konqueror' 'tidyhtml')
+ replaces=('konq-plugins')
+ install='kdebase.install'
+ cd $srcdir/build/konq-plugins
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-konqueror() {
+ pkgdesc='KDE File Manager & Web Browser'
+ depends=('kdebase-dolphin' 'kdebase-keditbookmarks')
+ optdepends=('kwebkitpart: to enable webkit engine')
+ url="http://kde.org/applications/internet/konqueror/"
+ install='kdebase-konqueror.install'
+ conflicts=('kdebase-nsplugins')
+ replaces=('kdebase-nsplugins')
+ for i in konqueror doc/konqueror nsplugins; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+}
+
+package_kdebase-lib() {
+ pkgdesc='KDE libraries for the basic desktop applications'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/lib
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-plasma() {
+ pkgdesc='Display the contents of folders (User´s home folder as default)'
+ depends=('kdebase-workspace' 'kdebase-lib')
+ cd $srcdir/build/plasma
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdebase/kdebase-dolphin.install b/kde-unstable/kdebase/kdebase-dolphin.install
new file mode 100644
index 000000000..660593cf5
--- /dev/null
+++ b/kde-unstable/kdebase/kdebase-dolphin.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdebase/kdebase-konqueror.install b/kde-unstable/kdebase/kdebase-konqueror.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdebase/kdebase-konqueror.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdebase/kdebase.install b/kde-unstable/kdebase/kdebase.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdebase/kdebase.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdebindings-kimono/PKGBUILD b/kde-unstable/kdebindings-kimono/PKGBUILD
new file mode 100644
index 000000000..e09b59b09
--- /dev/null
+++ b/kde-unstable/kdebindings-kimono/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143342 2011-11-24 16:14:33Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-kimono
+pkgver=4.7.80
+pkgrel=1
+pkgdesc=".NET/Mono bindings for the KDE libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-qyoto' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost' 'kdepimlibs')
+conflicts=('kdebindings-csharp')
+source=("http://download.kde.org/unstable/${pkgver}/src/kimono-${pkgver}.tar.bz2")
+sha1sums=('a60e0e77618cc29592537e3c1254f1141cfb1bee')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kimono-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Soprano=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-kross/PKGBUILD b/kde-unstable/kdebindings-kross/PKGBUILD
new file mode 100644
index 000000000..3348d88f6
--- /dev/null
+++ b/kde-unstable/kdebindings-kross/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 143344 2011-11-24 16:14:36Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=kdebindings-kross
+pkgname=('kdebindings-kross-python'
+# 'kdebindings-kross-ruby'
+ 'kdebindings-kross-java')
+pkgver=4.7.80
+pkgrel=1
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+makedepends=('kdelibs' 'cmake' 'automoc4' 'python2' 'java-environment')
+source=("http://download.kde.org/unstable/${pkgver}/src/kross-interpreters-${pkgver}.tar.bz2")
+sha1sums=('52adafe42de134c6bc53855dbc464df2a1190efd')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kross-interpreters-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_ruby=OFF \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdebindings-kross-python() {
+ pkgdesc="Python2 language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'python2')
+
+ cd "${srcdir}"/build/python
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdebindings-kross-java() {
+ pkgdesc="Java language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'java-environment')
+
+ cd "${srcdir}"/build/java
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdebindings-kross-ruby() {
+ pkgdesc="Ruby language interpreters to enable in-process scripting with Kross"
+ depends=('kdelibs' 'ruby')
+
+ cd "${srcdir}"/build/ruby
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-perlkde/PKGBUILD b/kde-unstable/kdebindings-perlkde/PKGBUILD
new file mode 100644
index 000000000..ff15152b2
--- /dev/null
+++ b/kde-unstable/kdebindings-perlkde/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143346 2011-11-24 16:14:39Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-perlkde
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Perl bindings for the KDE libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-perlqt' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'kdepimlibs'
+ 'kdegraphics-okular' 'kdesdk-kate')
+source=("http://download.kde.org/unstable/${pkgver}/src/perlkde-${pkgver}.tar.bz2")
+sha1sums=('2e5c317f26ccbc1e251fb53b30eae364a5153543')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../perlkde-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-perlqt/PKGBUILD b/kde-unstable/kdebindings-perlqt/PKGBUILD
new file mode 100644
index 000000000..bed48ab40
--- /dev/null
+++ b/kde-unstable/kdebindings-perlqt/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143298 2011-11-24 16:13:43Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-perlqt
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Perl bindings for the Qt libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+source=("http://download.kde.org/unstable/${pkgver}/src/perlqt-${pkgver}.tar.bz2")
+sha1sums=('1f147d9554999b539b7c81da0fb4522f05f7c7d4')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../perlqt-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-python/PKGBUILD b/kde-unstable/kdebindings-python/PKGBUILD
new file mode 100644
index 000000000..021c5ee02
--- /dev/null
+++ b/kde-unstable/kdebindings-python/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 143300 2011-11-24 16:13:45Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-python
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="KDE bindings for Python"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdepim-runtime' 'python2-pyqt' 'qscintilla' 'boost-libs')
+makedepends=('cmake' 'automoc4' 'boost')
+source=("http://download.kde.org/unstable/${pkgver}/src/pykde4-${pkgver}.tar.bz2")
+sha1sums=('b67905a73566ad99b3bf1238b87f333c3ebb1fc5')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../pykde4-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # Use the python2 executable
+ find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
diff --git a/kde-unstable/kdebindings-qtruby/PKGBUILD b/kde-unstable/kdebindings-qtruby/PKGBUILD
new file mode 100644
index 000000000..b3976602d
--- /dev/null
+++ b/kde-unstable/kdebindings-qtruby/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143304 2011-11-24 16:13:50Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-qtruby
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Qt bindings for ruby"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt' 'ruby')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+conflicts=('kdebindings-ruby')
+source=("http://download.kde.org/unstable/${pkgver}/src/qtruby-${pkgver}.tar.bz2")
+sha1sums=('ca1e73b375449d36ee52ae3012e70f2fa149f751')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../qtruby-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-qyoto/PKGBUILD b/kde-unstable/kdebindings-qyoto/PKGBUILD
new file mode 100644
index 000000000..cfb9d378d
--- /dev/null
+++ b/kde-unstable/kdebindings-qyoto/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143302 2011-11-24 16:13:48Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-qyoto
+pkgver=4.7.80
+pkgrel=1
+pkgdesc=".NET/Mono bindings for the Qt libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt' 'mono')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+conflicts=('kdebindings-csharp')
+source=("http://download.kde.org/unstable/${pkgver}/src/qyoto-${pkgver}.tar.bz2")
+sha1sums=('e1e4ab189e16ad33e3d19a457aee8540437c4af9')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../qyoto-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-smokegen/PKGBUILD b/kde-unstable/kdebindings-smokegen/PKGBUILD
new file mode 100644
index 000000000..ac12f5f64
--- /dev/null
+++ b/kde-unstable/kdebindings-smokegen/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143288 2011-11-24 16:13:26Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokegen
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="A general purpose C++ parser with a plugin infrastructure"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/unstable/${pkgver}/src/smokegen-${pkgver}.tar.bz2")
+sha1sums=('da6dd73b0650c0f6e749435c3ae822c236224b00')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokegen-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-smokekde/PKGBUILD b/kde-unstable/kdebindings-smokekde/PKGBUILD
new file mode 100644
index 000000000..63ca984c4
--- /dev/null
+++ b/kde-unstable/kdebindings-smokekde/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143296 2011-11-24 16:13:40Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokekde
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Language independent library for KDE bindings"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebindings-smokeqt')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost'
+ 'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/unstable/${pkgver}/src/smokekde-${pkgver}.tar.bz2")
+sha1sums=('579e87eaf1067593d27396fe092434f7fc7b4c09')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokekde-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-smokeqt/PKGBUILD b/kde-unstable/kdebindings-smokeqt/PKGBUILD
new file mode 100644
index 000000000..2490b2493
--- /dev/null
+++ b/kde-unstable/kdebindings-smokeqt/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143290 2011-11-24 16:13:28Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdebindings-smokeqt
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Language independent library for Qt bindings"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kdebindings')
+depends=('kdebase-runtime' 'qimageblitz' 'qscintilla' 'kdebindings-smokegen')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/unstable/${pkgver}/src/smokeqt-${pkgver}.tar.bz2")
+sha1sums=('cad6c93aef4374012de9958d9ac38e3993a799b2')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../smokeqt-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Qwt5=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-analitza/PKGBUILD b/kde-unstable/kdeedu-analitza/PKGBUILD
new file mode 100644
index 000000000..7ddcbb258
--- /dev/null
+++ b/kde-unstable/kdeedu-analitza/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143324 2011-11-24 16:14:14Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-analitza
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="A library to add mathematical features to your program"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/analitza-${pkgver}.tar.bz2")
+sha1sums=('db2b8fd3f14f03c128255d078670c1273a3b6657')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../analitza-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-blinken/PKGBUILD b/kde-unstable/kdeedu-blinken/PKGBUILD
new file mode 100644
index 000000000..f39a11290
--- /dev/null
+++ b/kde-unstable/kdeedu-blinken/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143348 2011-11-24 16:14:42Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-blinken
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Memory Enhancement Game"
+url="http://kde.org/applications/education/blinken/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/blinken-${pkgver}.tar.bz2")
+sha1sums=('9215dc4d2b40b8f9173f95f06cf77c5099a733cb')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../blinken-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-blinken/kdeedu-blinken.install b/kde-unstable/kdeedu-blinken/kdeedu-blinken.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-blinken/kdeedu-blinken.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-cantor/PKGBUILD b/kde-unstable/kdeedu-cantor/PKGBUILD
new file mode 100644
index 000000000..2d6dbeb81
--- /dev/null
+++ b/kde-unstable/kdeedu-cantor/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 143350 2011-11-24 16:14:44Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-cantor
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="KDE Frontend to Mathematical Software"
+url="http://kde.org/applications/education/cantor/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libspectre' 'kdeedu-analitza')
+makedepends=('cmake' 'automoc4' 'r')
+optdepends=('maxima: Maxima backend'
+ 'octave: Octave backend'
+ 'r: R backend')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/cantor-${pkgver}.tar.bz2")
+sha1sums=('7ea3094de5323b51f8f8aa1c559b1cbb8c5fbea4')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../cantor-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-cantor/kdeedu-cantor.install b/kde-unstable/kdeedu-cantor/kdeedu-cantor.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-cantor/kdeedu-cantor.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kalgebra/PKGBUILD b/kde-unstable/kdeedu-kalgebra/PKGBUILD
new file mode 100644
index 000000000..fb5280713
--- /dev/null
+++ b/kde-unstable/kdeedu-kalgebra/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143352 2011-11-24 16:14:47Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kalgebra
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Graph Calculator"
+url="http://kde.org/applications/education/kalgebra/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu' 'kdeedu-analitza')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kalgebra-${pkgver}.tar.bz2")
+sha1sums=('705bba4e1faf35b4d09d6ac487171cef9f54f642')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kalgebra-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install b/kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kalzium/PKGBUILD b/kde-unstable/kdeedu-kalzium/PKGBUILD
new file mode 100644
index 000000000..7604114fd
--- /dev/null
+++ b/kde-unstable/kdeedu-kalzium/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143354 2011-11-24 16:14:49Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kalzium
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Periodic Table of Elements"
+url="http://kde.org/applications/education/kalzium/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdelibs' 'avogadro' 'ocaml' 'facile')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kalzium-${pkgver}.tar.bz2")
+sha1sums=('d6dbca03628ed96a256c3c603fae220a97d6fec3')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kalzium-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install b/kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kanagram/PKGBUILD b/kde-unstable/kdeedu-kanagram/PKGBUILD
new file mode 100644
index 000000000..7924b79b3
--- /dev/null
+++ b/kde-unstable/kdeedu-kanagram/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143356 2011-11-24 16:14:52Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kanagram
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Letter Order Game"
+url="http://kde.org/applications/education/kanagram/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kanagram-${pkgver}.tar.bz2")
+sha1sums=('eb7d0cf7eeae5ab5520cb67cf52b73f08ec6bd57')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kanagram-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install b/kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kbruch/PKGBUILD b/kde-unstable/kdeedu-kbruch/PKGBUILD
new file mode 100644
index 000000000..7ab43f309
--- /dev/null
+++ b/kde-unstable/kdeedu-kbruch/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143358 2011-11-24 16:14:54Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kbruch
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Exercise Fractions"
+url="http://kde.org/applications/education/kbruch/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kbruch-${pkgver}.tar.bz2")
+sha1sums=('46d735c58ed5bf7a871d92633f1d42b418da7815')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kbruch-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install b/kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kgeography/PKGBUILD b/kde-unstable/kdeedu-kgeography/PKGBUILD
new file mode 100644
index 000000000..6aca74f87
--- /dev/null
+++ b/kde-unstable/kdeedu-kgeography/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143360 2011-11-24 16:14:56Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kgeography
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Geography Trainer"
+url="http://kde.org/applications/education/kgeography/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kgeography-${pkgver}.tar.bz2")
+sha1sums=('5b71a2f5a66b996cd6741422045d217e4dc275a1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kgeography-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install b/kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-khangman/PKGBUILD b/kde-unstable/kdeedu-khangman/PKGBUILD
new file mode 100644
index 000000000..5f450e478
--- /dev/null
+++ b/kde-unstable/kdeedu-khangman/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143362 2011-11-24 16:15:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-khangman
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Hangman Game"
+url="http://kde.org/applications/education/khangman/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/khangman-${pkgver}.tar.bz2")
+sha1sums=('3e4e14a145e35ec4a433f6db1bbbf4bc3804953c')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../khangman-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-khangman/kdeedu-khangman.install b/kde-unstable/kdeedu-khangman/kdeedu-khangman.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-khangman/kdeedu-khangman.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kig/PKGBUILD b/kde-unstable/kdeedu-kig/PKGBUILD
new file mode 100644
index 000000000..f83a2bf20
--- /dev/null
+++ b/kde-unstable/kdeedu-kig/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 143364 2011-11-24 16:15:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kig
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Interactive Geometry"
+url="http://kde.org/applications/education/kig/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kig-${pkgver}.tar.bz2")
+sha1sums=('9ac87b12dde1108782e5d4c332e550759ffd769d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kig-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # Use the python2 executable
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' "${pkgdir}"/usr/bin/pykig.py
+}
diff --git a/kde-unstable/kdeedu-kig/kdeedu-kig.install b/kde-unstable/kdeedu-kig/kdeedu-kig.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kig/kdeedu-kig.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kiten/PKGBUILD b/kde-unstable/kdeedu-kiten/PKGBUILD
new file mode 100644
index 000000000..98bb48051
--- /dev/null
+++ b/kde-unstable/kdeedu-kiten/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143366 2011-11-24 16:15:06Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kiten
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Japanese Reference/Study Tool"
+url="http://kde.org/applications/education/kiten/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kiten-${pkgver}.tar.bz2")
+sha1sums=('60fb150e05185990da7fadf2002390938e9fef9e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kiten-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kiten/kdeedu-kiten.install b/kde-unstable/kdeedu-kiten/kdeedu-kiten.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kiten/kdeedu-kiten.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-klettres/PKGBUILD b/kde-unstable/kdeedu-klettres/PKGBUILD
new file mode 100644
index 000000000..0a13bd752
--- /dev/null
+++ b/kde-unstable/kdeedu-klettres/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143368 2011-11-24 16:15:10Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-klettres
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Learn The Alphabet"
+url="http://kde.org/applications/education/klettres/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/klettres-${pkgver}.tar.bz2")
+sha1sums=('ef205da0317630d455d34c6f53f541b2a06038ea')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../klettres-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-klettres/kdeedu-klettres.install b/kde-unstable/kdeedu-klettres/kdeedu-klettres.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-klettres/kdeedu-klettres.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kmplot/PKGBUILD b/kde-unstable/kdeedu-kmplot/PKGBUILD
new file mode 100644
index 000000000..75fc53cba
--- /dev/null
+++ b/kde-unstable/kdeedu-kmplot/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143370 2011-11-24 16:15:14Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kmplot
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Mathematical Function Plotter"
+url="http://kde.org/applications/education/kmplot/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kmplot-${pkgver}.tar.bz2")
+sha1sums=('7009619d0d11bd6be7acac095f386ff219ccd506')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kmplot-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install b/kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kstars/PKGBUILD b/kde-unstable/kdeedu-kstars/PKGBUILD
new file mode 100644
index 000000000..38d5b4939
--- /dev/null
+++ b/kde-unstable/kdeedu-kstars/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143372 2011-11-24 16:15:18Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kstars
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Desktop Planetarium"
+url="http://kde.org/applications/education/kstars/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'eigen' 'cfitsio' 'libindi')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kstars-${pkgver}.tar.bz2")
+sha1sums=('ac705e13f83db3017e5ad6a615c264be69259f21')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kstars-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Xplanet=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kstars/kdeedu-kstars.install b/kde-unstable/kdeedu-kstars/kdeedu-kstars.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kstars/kdeedu-kstars.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-ktouch/PKGBUILD b/kde-unstable/kdeedu-ktouch/PKGBUILD
new file mode 100644
index 000000000..62f000d1e
--- /dev/null
+++ b/kde-unstable/kdeedu-ktouch/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143374 2011-11-24 16:15:21Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-ktouch
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Touch Typing Tutor"
+url="http://kde.org/applications/education/ktouch/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/ktouch-${pkgver}.tar.bz2")
+sha1sums=('ebba0f8d22ca06db2488d1059b41432fce6b7a67')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ktouch-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install b/kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kturtle/PKGBUILD b/kde-unstable/kdeedu-kturtle/PKGBUILD
new file mode 100644
index 000000000..06635be37
--- /dev/null
+++ b/kde-unstable/kdeedu-kturtle/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143376 2011-11-24 16:15:26Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kturtle
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Educational Programming Environment"
+url="http://kde.org/applications/education/kturtle/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kturtle-${pkgver}.tar.bz2")
+sha1sums=('85e087446b2e6633658ad71e8d64c446a1029b6b')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kturtle-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install b/kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-kwordquiz/PKGBUILD b/kde-unstable/kdeedu-kwordquiz/PKGBUILD
new file mode 100644
index 000000000..3e2415ee6
--- /dev/null
+++ b/kde-unstable/kdeedu-kwordquiz/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143378 2011-11-24 16:15:29Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-kwordquiz
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Flash Card Trainer"
+url="http://kde.org/applications/education/kwordquiz/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kwordquiz-${pkgver}.tar.bz2")
+sha1sums=('6bca16d9ad9d0df0517bec8b944f8e61c89f16c6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kwordquiz-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install b/kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-marble/PKGBUILD b/kde-unstable/kdeedu-marble/PKGBUILD
new file mode 100644
index 000000000..cd5efacfd
--- /dev/null
+++ b/kde-unstable/kdeedu-marble/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143314 2011-11-24 16:14:04Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-marble
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Desktop Globe"
+url="http://kde.org/applications/education/marble/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4' 'gpsd')
+optdepends=('gpsd: gps support')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/marble-${pkgver}.tar.bz2")
+sha1sums=('e525f3bca3bef13a3506f5b295847e62fd69e4b2')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../marble-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-marble/kdeedu-marble.install b/kde-unstable/kdeedu-marble/kdeedu-marble.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-marble/kdeedu-marble.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-parley/PKGBUILD b/kde-unstable/kdeedu-parley/PKGBUILD
new file mode 100644
index 000000000..51199cf74
--- /dev/null
+++ b/kde-unstable/kdeedu-parley/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143380 2011-11-24 16:15:34Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-parley
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Vocabulary Trainer"
+url="http://kde.org/applications/education/parley/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/parley-${pkgver}.tar.bz2")
+sha1sums=('be0824a60c1c33e19b1399d5995d7f9692a98a3f')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../parley-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-parley/kdeedu-parley.install b/kde-unstable/kdeedu-parley/kdeedu-parley.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-parley/kdeedu-parley.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeedu-rocs/PKGBUILD b/kde-unstable/kdeedu-rocs/PKGBUILD
new file mode 100644
index 000000000..33e77fd6a
--- /dev/null
+++ b/kde-unstable/kdeedu-rocs/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143382 2011-11-24 16:15:38Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-rocs
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Rocs Graph Theory"
+url="http://kde.org/applications/education/rocs/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'boost-libs')
+makedepends=('cmake' 'automoc4' 'boost')
+source=("http://download.kde.org/unstable/${pkgver}/src/rocs-${pkgver}.tar.bz2")
+sha1sums=('dca8675203a9c9d9d384d0b236507cb3380cf75e')
+options=('!makeflags')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../rocs-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-step/PKGBUILD b/kde-unstable/kdeedu-step/PKGBUILD
new file mode 100644
index 000000000..df3186e81
--- /dev/null
+++ b/kde-unstable/kdeedu-step/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143384 2011-11-24 16:15:43Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeedu-step
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Interactive Physical Simulator"
+url="http://kde.org/applications/education/step/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libqalculate' 'gsl' 'eigen')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/step-${pkgver}.tar.bz2")
+sha1sums=('fd2f8f931d74c050feec57f6cf6a9e484dc59fd9')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../step-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-step/kdeedu-step.install b/kde-unstable/kdeedu-step/kdeedu-step.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-step/kdeedu-step.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/PKGBUILD b/kde-unstable/kdegames/PKGBUILD
new file mode 100644
index 000000000..5ef47f9ca
--- /dev/null
+++ b/kde-unstable/kdegames/PKGBUILD
@@ -0,0 +1,515 @@
+# $Id: PKGBUILD 143386 2011-11-24 16:15:52Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdegames
+pkgname=('kdegames-bomber'
+ 'kdegames-bovo'
+ 'kdegames-granatier'
+ 'kdegames-kajongg'
+ 'kdegames-kapman'
+ 'kdegames-katomic'
+ 'kdegames-kbattleship'
+ 'kdegames-kblackbox'
+ 'kdegames-kblocks'
+ 'kdegames-kbounce'
+ 'kdegames-kbreakout'
+ 'kdegames-kdiamond'
+ 'kdegames-kfourinline'
+ 'kdegames-kgoldrunner'
+ 'kdegames-kigo'
+ 'kdegames-killbots'
+ 'kdegames-kiriki'
+ 'kdegames-kjumpingcube'
+ 'kdegames-klines'
+ 'kdegames-klickety'
+ 'kdegames-kmahjongg'
+ 'kdegames-kmines'
+ 'kdegames-knetwalk'
+ 'kdegames-kolf'
+ 'kdegames-kollision'
+ 'kdegames-konquest'
+ 'kdegames-kpatience'
+ 'kdegames-kreversi'
+ 'kdegames-kshisen'
+ 'kdegames-ksirk'
+ 'kdegames-kspaceduel'
+ 'kdegames-ksquares'
+ 'kdegames-ksudoku'
+ 'kdegames-ktron'
+ 'kdegames-ktuberling'
+ 'kdegames-kubrick'
+ 'kdegames-libkdegames'
+ 'kdegames-libkmahjongg'
+ 'kdegames-lskat'
+ 'kdegames-palapeli')
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegames')
+makedepends=('cmake' 'automoc4' 'ggz-client-libs' 'twisted' 'kdebindings-python'
+ 'openal')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('11583e33d6a8ad6eb1a5f98d11338940083bfea4')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package_kdegames-bomber() {
+ pkgdesc='Arcade Bombing Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/bomber/"
+ install='kdegames.install'
+ cd $srcdir/build/bomber
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/bomber
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-bovo() {
+ pkgdesc='Five-in-a-row Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/bovo/"
+ install='kdegames.install'
+ cd $srcdir/build/bovo
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/bovo
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-granatier() {
+ pkgdesc='Granatier'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'openal')
+ url="http://kde.org/applications/games/granatier/"
+ install='kdegames.install'
+ cd $srcdir/build/granatier
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/granatier
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kajongg() {
+ pkgdesc='The ancient Chinese board game for 4 players'
+ depends=('kdegames-libkdegames' 'kdegames-libkmahjongg' 'kdebindings-python' 'twisted')
+ install='kdegames.install'
+ cd $srcdir/build/kajongg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kajongg
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
+
+package_kdegames-kapman() {
+ pkgdesc='Eat pills escaping ghosts'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kapman/"
+ install='kdegames.install'
+ cd $srcdir/build/kapman
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kapman
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-katomic() {
+ pkgdesc='Sokoban-like Logic Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/katomic/"
+ install='kdegames.install'
+ cd $srcdir/build/katomic
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/katomic
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbattleship() {
+ pkgdesc='Battleship Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/kbattleship/"
+ install='kdegames-kbattleship.install'
+ cd $srcdir/build/kbattleship
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbattleship
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kbattleship/src/module.dsc \
+ $pkgdir/usr/share/ggz/kbattleship.dsc
+}
+
+package_kdegames-kblackbox() {
+ pkgdesc='Blackbox Logic Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kblackbox/"
+ install='kdegames.install'
+ cd $srcdir/build/kblackbox
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kblackbox
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kblocks() {
+ pkgdesc='Falling Blocks Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kblocks/"
+ install='kdegames.install'
+ cd $srcdir/build/kblocks
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kblocks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbounce() {
+ pkgdesc='Ball Bouncing Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kbounce/"
+ install='kdegames.install'
+ cd $srcdir/build/kbounce
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbounce
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbreakout() {
+ pkgdesc='Breakout-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kbreakout/"
+ install='kdegames.install'
+ cd $srcdir/build/kbreakout
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbreakout
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kdiamond() {
+ pkgdesc='Three-in-a-row game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kdiamond/"
+ install='kdegames.install'
+ cd $srcdir/build/kdiamond
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdiamond
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kfourinline() {
+ pkgdesc='Four-in-a-row Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kfourinline/"
+ install='kdegames-kfourinline.install'
+ cd $srcdir/build/kfourinline
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfourinline
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kgoldrunner() {
+ pkgdesc='A game of action and puzzle-solving'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'openal')
+ url="http://kde.org/applications/games/kgoldrunner/"
+ install='kdegames.install'
+ cd $srcdir/build/kgoldrunner
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kgoldrunner
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kigo() {
+ pkgdesc='Go Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'gnugo')
+ url="http://kde.org/applications/games/kigo/"
+ install='kdegames-kigo.install'
+ cd $srcdir/build/kigo
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kigo
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-killbots() {
+ pkgdesc='Killbots'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/killbots/"
+ install='kdegames.install'
+ cd $srcdir/build/killbots
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/killbots
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kiriki() {
+ pkgdesc='Yahtzee-like Dice Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kiriki/"
+ install='kdegames.install'
+ cd $srcdir/build/kiriki
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kiriki
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kjumpingcube() {
+ pkgdesc='Territory Capture Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kjumpingcube/"
+ install='kdegames.install'
+ cd $srcdir/build/kjumpingcube
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kjumpingcube
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klickety() {
+ pkgdesc='Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ replaces=('kdegames-ksame')
+ conflicts=('kdegames-ksame')
+ url="http://kde.org/applications/games/ksame/"
+ install='kdegames.install'
+ cd $srcdir/build/klickety
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klickety
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klines() {
+ pkgdesc='Tactical Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/klines/"
+ install='kdegames.install'
+ cd $srcdir/build/klines
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmahjongg() {
+ pkgdesc='Mahjongg Solitaire'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+ url="http://kde.org/applications/games/kmahjongg/"
+ install='kdegames.install'
+ cd $srcdir/build/kmahjongg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmahjongg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmines() {
+ pkgdesc='Minesweeper-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kmines/"
+ install='kdegames.install'
+ cd $srcdir/build/kmines
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-knetwalk() {
+ pkgdesc='Network Construction Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/knetwalk/"
+ install='kdegames.install'
+ cd $srcdir/build/knetwalk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/knetwalk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kolf() {
+ pkgdesc='Miniature Golf'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kolf/"
+ install='kdegames-kolf.install'
+ cd $srcdir/build/kolf
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kolf
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kollision() {
+ pkgdesc='A simple ball dodging game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kollision/"
+ install='kdegames.install'
+ cd $srcdir/build/kollision
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kollision
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-konquest() {
+ pkgdesc='Galactic Strategy Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/konquest/"
+ install='kdegames.install'
+ cd $srcdir/build/konquest
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/konquest
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kpatience() {
+ pkgdesc='Patience Card Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kpatience/"
+ install='kdegames-kpatience.install'
+ replaces=('kdegames-kpat')
+ cd $srcdir/build/kpat
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kpat
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kreversi() {
+ pkgdesc='Reversi Board Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/kreversi/"
+ install='kdegames-kreversi.install'
+ cd $srcdir/build/kreversi
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kreversi
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kreversi/module.dsc \
+ $pkgdir/usr/share/ggz/kreversi.dsc
+}
+
+package_kdegames-kshisen() {
+ pkgdesc='Shisen-Sho Mahjongg-like Tile Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+ url="http://kde.org/applications/games/kshisen/"
+ install='kdegames.install'
+ cd $srcdir/build/kshisen
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kshisen
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksirk() {
+ pkgdesc='World Domination Strategy Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ksirk/"
+ install='kdegames.install'
+ cd $srcdir/build/ksirk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksirk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kspaceduel() {
+ pkgdesc='Space Arcade Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kspaceduel/"
+ install='kdegames-kspaceduel.install'
+ cd $srcdir/build/kspaceduel
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kspaceduel
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksquares() {
+ pkgdesc='Connect the dots to create squares'
+ depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+ url="http://kde.org/applications/games/ksquares/"
+ install='kdegames-ksquares.install'
+ cd $srcdir/build/ksquares
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksquares
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/ksquares/src/module.dsc \
+ $pkgdir/usr/share/ggz/ksquares.dsc
+}
+
+package_kdegames-ksudoku() {
+ pkgdesc='KSudoku, Sudoku game & more for KDE'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ksudoku/"
+ install='kdegames.install'
+ cd $srcdir/build/ksudoku
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksudoku
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktron() {
+ pkgdesc='Tron-like Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ktron/"
+ install='kdegames.install'
+ cd $srcdir/build/ktron
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktron
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktuberling() {
+ pkgdesc='Picture Game for Children'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/ktuberling/"
+ install='kdegames-ktuberling.install'
+ cd $srcdir/build/ktuberling
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktuberling
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kubrick() {
+ pkgdesc='A 3-D game based on Rubik´s Cube'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/kubrick/"
+ install='kdegames.install'
+ cd $srcdir/build/kubrick
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kubrick
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-libkdegames() {
+ pkgdesc='KDE game library'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/libkdegames
+ make DESTDIR=$pkgdir install
+ for i in $srcdir/${pkgbase}-${pkgver}/cmake/modules/*.cmake; do
+ install -D -m644 $i $pkgdir/usr/share/apps/cmake/modules/$(basename $i)
+ done
+}
+
+package_kdegames-libkmahjongg() {
+ pkgdesc='Library used for loading and rendering of Mahjongg tilesets'
+ groups=()
+ depends=('kdelibs')
+ cd $srcdir/build/libkmahjongg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-lskat() {
+ pkgdesc='Card Game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/lskat/"
+ install='kdegames-lskat.install'
+ cd $srcdir/build/lskat
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/lskat
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegames-palapeli() {
+ pkgdesc='Jigsaw puzzle game'
+ depends=('kdebase-runtime' 'kdegames-libkdegames')
+ url="http://kde.org/applications/games/palapeli/"
+ install='kdegames-palapeli.install'
+ cd $srcdir/build/palapeli
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/palapeli
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdegames/kdegames-kbattleship.install b/kde-unstable/kdegames/kdegames-kbattleship.install
new file mode 100644
index 000000000..ac4516ed0
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kbattleship.install
@@ -0,0 +1,24 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+ ggz-config -i -f -m usr/share/ggz/kbattleship.dsc >& /dev/null
+}
+
+pre_remove() {
+ if [ -f usr/share/ggz/kbattleship.dsc ]; then
+ ggz-config -r -m usr/share/ggz/kbattleship.dsc >& /dev/null
+ fi
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
diff --git a/kde-unstable/kdegames/kdegames-kfourinline.install b/kde-unstable/kdegames/kdegames-kfourinline.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kfourinline.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kigo.install b/kde-unstable/kdegames/kdegames-kigo.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kigo.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kolf.install b/kde-unstable/kdegames/kdegames-kolf.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kolf.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kpatience.install b/kde-unstable/kdegames/kdegames-kpatience.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kpatience.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kreversi.install b/kde-unstable/kdegames/kdegames-kreversi.install
new file mode 100644
index 000000000..4623e6e49
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kreversi.install
@@ -0,0 +1,22 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ ggz-config -i -f -m usr/share/ggz/kreversi.dsc >& /dev/null
+}
+
+pre_remove() {
+ if [ -f usr/share/ggz/kreversi.dsc ]; then
+ ggz-config -r -m usr/share/ggz/kreversi.dsc >& /dev/null
+ fi
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
diff --git a/kde-unstable/kdegames/kdegames-kspaceduel.install b/kde-unstable/kdegames/kdegames-kspaceduel.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kspaceduel.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-ksquares.install b/kde-unstable/kdegames/kdegames-ksquares.install
new file mode 100644
index 000000000..5a619897d
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-ksquares.install
@@ -0,0 +1,22 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ ggz-config -i -f -m usr/share/ggz/ksquares.dsc >& /dev/null
+}
+
+pre_remove() {
+ if [ -f usr/share/ggz/ksquares.dsc ]; then
+ ggz-config -r -m usr/share/ggz/ksquares.dsc >& /dev/null
+ fi
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
diff --git a/kde-unstable/kdegames/kdegames-ktuberling.install b/kde-unstable/kdegames/kdegames-ktuberling.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-ktuberling.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-lskat.install b/kde-unstable/kdegames/kdegames-lskat.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-lskat.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-palapeli.install b/kde-unstable/kdegames/kdegames-palapeli.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-palapeli.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegames/kdegames.install b/kde-unstable/kdegames/kdegames.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-gwenview/PKGBUILD b/kde-unstable/kdegraphics-gwenview/PKGBUILD
new file mode 100644
index 000000000..377064424
--- /dev/null
+++ b/kde-unstable/kdegraphics-gwenview/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143388 2011-11-24 16:15:56Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-gwenview
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="A fast and easy to use image viewer for KDE"
+url="http://kde.org/applications/graphics/gwenview/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-lib' 'libkipi')
+makedepends=('cmake' 'automoc4')
+optdepends=('kipi-plugins: extra plugins to share photos')
+install=$pkgname.install
+source=("http://download.kde.org/unstable/${pkgver}/src/gwenview-${pkgver}.tar.bz2")
+sha1sums=('7d8a9a99f28b36e8acbd42815929e91c4b9f94eb')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../gwenview-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install b/kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-kamera/PKGBUILD b/kde-unstable/kdegraphics-kamera/PKGBUILD
new file mode 100644
index 000000000..ab9286568
--- /dev/null
+++ b/kde-unstable/kdegraphics-kamera/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 143390 2011-11-24 16:15:58Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kamera
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Configure Kamera"
+url="http://kde.org/applications/graphics/kamera/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'gphoto2')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kamera-${pkgver}.tar.bz2")
+sha1sums=('10a794c4e8e3d26df808d6ea76c9231574f5635a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kamera-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kcolorchooser/PKGBUILD b/kde-unstable/kdegraphics-kcolorchooser/PKGBUILD
new file mode 100644
index 000000000..d907e2a73
--- /dev/null
+++ b/kde-unstable/kdegraphics-kcolorchooser/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143392 2011-11-24 16:16:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kcolorchooser
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Color Chooser"
+url="http://kde.org/applications/graphics/kcolorchooser/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kcolorchooser-${pkgver}.tar.bz2")
+sha1sums=('611ed0489f2b913d8bba4938bb250e5c93f7bc10')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kcolorchooser-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install b/kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-kgamma/PKGBUILD b/kde-unstable/kdegraphics-kgamma/PKGBUILD
new file mode 100644
index 000000000..4bc017e9d
--- /dev/null
+++ b/kde-unstable/kdegraphics-kgamma/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 143394 2011-11-24 16:16:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kgamma
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="A monitor calibration tool"
+url="http://kde.org/applications/graphics/kgamma/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+# note on libxxf86vm:
+# not detected by namcap because libgl depends on it
+# but nvidia providing libgl does not depend on libxxf86vm
+depends=('kdebase-runtime' 'libxxf86vm')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kgamma-${pkgver}.tar.bz2")
+sha1sums=('76ed0d777f6cde5c6c2facf39cebba4d3e60b8aa')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kgamma-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kolourpaint/PKGBUILD b/kde-unstable/kdegraphics-kolourpaint/PKGBUILD
new file mode 100644
index 000000000..4be57e33d
--- /dev/null
+++ b/kde-unstable/kdegraphics-kolourpaint/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143396 2011-11-24 16:16:05Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kolourpaint
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Paint Program"
+url="http://kde.org/applications/graphics/kolourpaint/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kolourpaint-${pkgver}.tar.bz2")
+sha1sums=('7d2e2eee77fe9307eef18cb5accd476fbb55fa57')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kolourpaint-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install b/kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-kruler/PKGBUILD b/kde-unstable/kdegraphics-kruler/PKGBUILD
new file mode 100644
index 000000000..cc36025a5
--- /dev/null
+++ b/kde-unstable/kdegraphics-kruler/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143398 2011-11-24 16:16:06Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-kruler
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Screen Ruler"
+url="http://kde.org/applications/graphics/kruler/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kruler-${pkgver}.tar.bz2")
+sha1sums=('efbd6ceef6645ab14eb0a6b4e142a1c6cbfaa47e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kruler-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install b/kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-ksaneplugin/PKGBUILD b/kde-unstable/kdegraphics-ksaneplugin/PKGBUILD
new file mode 100644
index 000000000..d084c5851
--- /dev/null
+++ b/kde-unstable/kdegraphics-ksaneplugin/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143400 2011-11-24 16:16:09Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-ksaneplugin
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="A scan plugin that implements the scanning"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('libksane')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/ksaneplugin-${pkgver}.tar.bz2")
+sha1sums=('57af20b3a7f6973e3a4e881522443ccf40f39e2e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ksaneplugin-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-ksnapshot/PKGBUILD b/kde-unstable/kdegraphics-ksnapshot/PKGBUILD
new file mode 100644
index 000000000..1efef8d49
--- /dev/null
+++ b/kde-unstable/kdegraphics-ksnapshot/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143402 2011-11-24 16:16:11Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-ksnapshot
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Screen Capture Program"
+url="http://kde.org/applications/graphics/ksnapshot/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdelibs' 'libkipi')
+makedepends=('cmake' 'automoc4')
+optdepends=('kipi-plugins')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/ksnapshot-${pkgver}.tar.bz2")
+sha1sums=('5016877111e974fb745e33a36900fa2be4665279')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ksnapshot-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install b/kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-mobipocket/PKGBUILD b/kde-unstable/kdegraphics-mobipocket/PKGBUILD
new file mode 100644
index 000000000..77dd2876a
--- /dev/null
+++ b/kde-unstable/kdegraphics-mobipocket/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143404 2011-11-24 16:16:13Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-mobipocket
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="A collection of plugins to handle mobipocket files"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/mobipocket-${pkgver}.tar.bz2")
+sha1sums=('1da0a6d283b0ee361afeb27b0e03901581b86e8a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../mobipocket-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-mobipocket/kdegraphics-mobipocket.install b/kde-unstable/kdegraphics-mobipocket/kdegraphics-mobipocket.install
new file mode 100644
index 000000000..660593cf5
--- /dev/null
+++ b/kde-unstable/kdegraphics-mobipocket/kdegraphics-mobipocket.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-okular/PKGBUILD b/kde-unstable/kdegraphics-okular/PKGBUILD
new file mode 100644
index 000000000..554ca1f62
--- /dev/null
+++ b/kde-unstable/kdegraphics-okular/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 143292 2011-11-24 16:13:32Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-okular
+pkgver=4.7.80
+pkgrel=1
+pkgdesc='Document Viewer'
+arch=('i686' 'x86_64')
+url="http://kde.org/applications/graphics/okular/"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz' 'poppler-qt' 'chmlib' 'djvulibre'
+ 'ebook-tools' 'libspectre')
+makedepends=('cmake' 'automoc4')
+optdepends=('kdegraphics-mobipocket: mobipocket support')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/okular-${pkgver}.tar.bz2")
+sha1sums=('971562ce741fc6d4afb6c80dc405984b77ef7bfa')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../okular-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-okular/kdegraphics-okular.install b/kde-unstable/kdegraphics-okular/kdegraphics-okular.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-okular/kdegraphics-okular.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD b/kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD
new file mode 100644
index 000000000..cab45048e
--- /dev/null
+++ b/kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143406 2011-11-24 16:16:15Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-strigi-analyzer
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Strigi analyzers for various graphics file formats"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('3a7dbc47de312d08d804bbfa394bc9c2a454cd5c')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-svgpart/PKGBUILD b/kde-unstable/kdegraphics-svgpart/PKGBUILD
new file mode 100644
index 000000000..930d12fa0
--- /dev/null
+++ b/kde-unstable/kdegraphics-svgpart/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143408 2011-11-24 16:16:17Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-svgpart
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="A KPart for viewving SVGs"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/svgpart-${pkgver}.tar.bz2")
+sha1sums=('41f05ccdb5a903fc2b91a685477271b3b4c8d72e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../svgpart-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-thumbnailers/PKGBUILD b/kde-unstable/kdegraphics-thumbnailers/PKGBUILD
new file mode 100644
index 000000000..d6a0d8de2
--- /dev/null
+++ b/kde-unstable/kdegraphics-thumbnailers/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143410 2011-11-24 16:16:19Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdegraphics-thumbnailers
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Thumbnailers for various graphics file formats"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('libkexiv2' 'libkdcraw')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('b690cdf4175ea0ecefc5ae21c054d460e3ce508e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdelibs/PKGBUILD b/kde-unstable/kdelibs/PKGBUILD
new file mode 100644
index 000000000..86a31d841
--- /dev/null
+++ b/kde-unstable/kdelibs/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 143279 2011-11-24 16:13:15Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdelibs
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="KDE Core Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('strigi' 'attica' 'libxss' 'xz' 'soprano' 'krb5' 'grantlee'
+ 'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt'
+ 'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'docbook-xsl'
+ 'phonon' 'upower' 'udisks' 'libxcursor')
+makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'hspell')
+replaces=('kdelibs-experimental')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+ 'kde-applications-menu.patch' 'archlinux-menu.patch')
+sha1sums=('0dac96f3d7445bde8e2e7066986ca5656d441b02'
+ '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
+ '63a850ab4196b9d06934f2b4a13acd9f7739bc67')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ # avoid file conflict with gnome-menus
+ patch -p1 -i "${srcdir}"/kde-applications-menu.patch
+ # add Archlinux menu entry
+ patch -p1 -i "${srcdir}"/archlinux-menu.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DKDE_DISTRIBUTION_TEXT='Arch Linux' \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSCONF_INSTALL_DIR=/etc \
+ -DHTML_INSTALL_DIR=/usr/share/doc/kde/html \
+ -DKDE_DEFAULT_HOME='.kde4' \
+ -DWITH_FAM=OFF
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+
+ # cert bundle seems to be hardcoded
+ # link it to the one from ca-certificates
+ rm -f "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+ ln -sf /etc/ssl/certs/ca-certificates.crt "${pkgdir}"/usr/share/apps/kssl/ca-bundle.crt
+}
diff --git a/kde-unstable/kdelibs/archlinux-menu.patch b/kde-unstable/kdelibs/archlinux-menu.patch
new file mode 100644
index 000000000..546784fa2
--- /dev/null
+++ b/kde-unstable/kdelibs/archlinux-menu.patch
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/applications.menu 2010-01-31 19:28:11.000000000 +0000
++++ kdelibs-4.3.98/kded/applications.menu 2010-01-31 22:25:53.556043077 +0000
+@@ -16,11 +16,19 @@
+ </DefaultLayout>
+ <Layout>
+ <Merge type="menus"/>
++ <Menuname>Arch Linux</Menuname>
+ <Menuname>Applications</Menuname>
+ <Merge type="files"/>
+ </Layout>
+
+ <Menu>
++ <Name>Arch Linux</Name>
++ <Directory>Archlinux.directory</Directory>
++ <Include>
++ <Category>Archlinux</Category>
++ </Include>
++ </Menu>
++ <Menu>
+ <Name>Applications</Name>
+ <Directory>kde-unknown.directory</Directory>
+ <OnlyUnallocated/>
diff --git a/kde-unstable/kdelibs/kde-applications-menu.patch b/kde-unstable/kdelibs/kde-applications-menu.patch
new file mode 100644
index 000000000..4b513298a
--- /dev/null
+++ b/kde-unstable/kdelibs/kde-applications-menu.patch
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/CMakeLists.txt 2009-10-02 14:55:17.000000000 +0000
++++ kdelibs-4.3.98/kded/CMakeLists.txt 2010-01-31 22:16:13.946933892 +0000
+@@ -69,7 +69,7 @@
+ if (WIN32)
+ install( FILES applications.menu DESTINATION ${SHARE_INSTALL_PREFIX}/xdg/menus )
+ else (WIN32)
+-install( FILES applications.menu DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus )
++install( FILES applications.menu DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus RENAME kde-applications.menu )
+ endif (WIN32)
+ install( FILES kdedmodule.desktop DESTINATION ${SERVICETYPES_INSTALL_DIR} )
+ install( FILES kded.upd DESTINATION ${DATA_INSTALL_DIR}/kconf_update )
+--- kdelibs-4.3.98/kded/kbuildsycoca.cpp 2009-12-04 23:10:18.000000000 +0000
++++ kdelibs-4.3.98/kded/kbuildsycoca.cpp 2010-01-31 22:16:13.962766572 +0000
+@@ -302,7 +302,7 @@
+ if (!m_trackId.isEmpty())
+ g_vfolder->setTrackId(m_trackId);
+
+- VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true);
++ VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true);
+
+ KServiceGroup::Ptr entry = g_bsgf->addNew("/", kdeMenu->directoryFile, KServiceGroup::Ptr(), false);
+ entry->setLayoutInfo(kdeMenu->layoutList);
diff --git a/kde-unstable/kdelibs/kdelibs.install b/kde-unstable/kdelibs/kdelibs.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/kde-unstable/kdelibs/kdelibs.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdemultimedia/PKGBUILD b/kde-unstable/kdemultimedia/PKGBUILD
new file mode 100644
index 000000000..29264c7ee
--- /dev/null
+++ b/kde-unstable/kdemultimedia/PKGBUILD
@@ -0,0 +1,108 @@
+# $Id: PKGBUILD 143412 2011-11-24 16:16:21Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdemultimedia
+pkgname=('kdemultimedia-dragonplayer'
+ 'kdemultimedia-ffmpegthumbs'
+ 'kdemultimedia-juk'
+ 'kdemultimedia-kioslave'
+ 'kdemultimedia-kmix'
+ 'kdemultimedia-kscd'
+ 'kdemultimedia-mplayerthumbs')
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdemultimedia')
+makedepends=('cmake' 'automoc4' 'kdelibs' 'tunepimp' 'ffmpeg' 'mplayer'
+ 'pulseaudio' 'libmusicbrainz3')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'mplayerthumbs.config')
+sha1sums=('44b9adf781fcbebe1214fc87b006bf13ddd8b702'
+ 'ba016fa2563c14ffcba852c62506b66bfc6ee683')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdemultimedia-dragonplayer() {
+ pkgdesc='Video Player'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/multimedia/dragonplayer/"
+ install='kdemultimedia-dragonplayer.install'
+ cd $srcdir/build/dragonplayer
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/dragonplayer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-ffmpegthumbs() {
+ pkgdesc='Video Files (ffmpegthumbs)'
+ depends=('kdebase-runtime' 'ffmpeg')
+ install='kdemultimedia.install'
+ cd $srcdir/build/ffmpegthumbs
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-juk() {
+ pkgdesc='Music Player'
+ depends=('kdebase-runtime' 'tunepimp')
+ url="http://kde.org/applications/multimedia/juk"
+ install='kdemultimedia.install'
+ cd $srcdir/build/juk
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/juk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-kioslave() {
+ pkgdesc='Audio CD Browser'
+ depends=('kdelibs' 'libmusicbrainz3' 'cdparanoia')
+ conflicts=('kdemultimedia-libkcddb' 'kdemultimedia-libkcompactdisc')
+ replaces=('kdemultimedia-libkcddb' 'kdemultimedia-libkcompactdisc')
+ for i in kioslave doc/kioslave libkcddb libkcompactdisc; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+}
+
+package_kdemultimedia-kmix() {
+ pkgdesc='Sound Mixer'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/multimedia/kmix"
+ install='kdemultimedia.install'
+ cd $srcdir/build/kmix
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmix
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-kscd() {
+ pkgdesc='CD Player'
+ depends=('kdebase-runtime' 'libmusicbrainz3')
+ url="http://kde.org/applications/multimedia/kscd"
+ install='kdemultimedia.install'
+ cd $srcdir/build/kscd
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcontrol/cddbretrieval
+ make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-mplayerthumbs() {
+ pkgdesc='Video Files (MPlayerThumbs)'
+ depends=('kdebase-runtime' 'mplayer')
+ replaces=('mplayerthumbs')
+ conflicts=('mplayerthumbs')
+ cd $srcdir/build/mplayerthumbs
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/mplayerthumbs.config $pkgdir/usr/share/config/mplayerthumbs
+}
diff --git a/kde-unstable/kdemultimedia/kdemultimedia-dragonplayer.install b/kde-unstable/kdemultimedia/kdemultimedia-dragonplayer.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdemultimedia/kdemultimedia-dragonplayer.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdemultimedia/kdemultimedia.install b/kde-unstable/kdemultimedia/kdemultimedia.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdemultimedia/kdemultimedia.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdemultimedia/mplayerthumbs.config b/kde-unstable/kdemultimedia/mplayerthumbs.config
new file mode 100644
index 000000000..761a17953
--- /dev/null
+++ b/kde-unstable/kdemultimedia/mplayerthumbs.config
@@ -0,0 +1,2 @@
+[MPlayerThumbsCfg]
+backend=0
diff --git a/kde-unstable/kdenetwork/PKGBUILD b/kde-unstable/kdenetwork/PKGBUILD
new file mode 100644
index 000000000..4b0cc1dc1
--- /dev/null
+++ b/kde-unstable/kdenetwork/PKGBUILD
@@ -0,0 +1,110 @@
+# $Id: PKGBUILD 143414 2011-11-24 16:16:24Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdenetwork
+pkgname=('kdenetwork-filesharing'
+ 'kdenetwork-kdnssd'
+ 'kdenetwork-kget'
+ 'kdenetwork-kopete'
+ 'kdenetwork-kppp'
+ 'kdenetwork-krdc'
+ 'kdenetwork-krfb')
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdenetwork')
+makedepends=('cmake' 'automoc4' 'boost' 'speex' 'ortp' 'libotr' 'ppp'
+ 'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn'
+ 'v4l-utils' 'libidn' 'rdesktop' 'qimageblitz' 'libxdamage' 'libgadu'
+ 'telepathy-qt4' 'libktorrent' 'libmms' 'mediastreamer')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('3ea7ab56d36260db9deaef2585feee80311ccfdc')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMOZPLUGIN_INSTALL_DIR=/usr/lib/mozilla/plugins/ \
+ -DWITH_Xmms=OFF \
+ -DWITH_LibMeanwhile=OFF
+ make
+}
+
+package_kdenetwork-filesharing() {
+ pkgdesc='Konqueror properties dialog plugin to share a directory with the local network'
+ depends=('kdelibs' 'smbclient')
+ install='kdenetwork.install'
+ cd $srcdir/build/filesharing
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kdnssd() {
+ pkgdesc='Monitors the network for DNS-SD services'
+ depends=('kdelibs')
+ cd $srcdir/build/kdnssd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kget() {
+ pkgdesc='Download Manager'
+ depends=('kdebase-workspace' 'kdebase-lib' 'libktorrent' 'libmms')
+ url="http://kde.org/applications/internet/kget/"
+ install='kdenetwork-kget.install'
+ cd $srcdir/build/kget
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kget
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kopete() {
+ pkgdesc='Instant Messenger'
+ depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libmsn'
+ 'libidn' 'qimageblitz' 'libgadu' 'mediastreamer')
+ url="http://kde.org/applications/internet/kopete/"
+ install='kdenetwork-kopete.install'
+ cd $srcdir/build/kopete
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kopete
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kppp() {
+ pkgdesc='Internet Dial-Up Tool'
+ depends=('kdebase-runtime' 'ppp')
+ url="http://kde.org/applications/internet/kppp/"
+ install='kdenetwork-kppp.install'
+ cd $srcdir/build/kppp
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kppp
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-krdc() {
+ pkgdesc='Remote Desktop Client'
+ depends=('kdebase-runtime' 'libvncserver' 'rdesktop' 'telepathy-qt4')
+ optdepends=('kdebase-keditbookmarks: to edit bookmarks')
+ url="http://kde.org/applications/internet/krdc/"
+ cd $srcdir/build/krdc
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/krdc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-krfb() {
+ pkgdesc='Desktop Sharing'
+ # note on libxdamage:
+ # not detected by namcap because libgl depends on it
+ # but nvidia providing libgl does not depend on libxdamage
+ depends=('kdebase-runtime' 'libvncserver' 'libxdamage')
+ cd $srcdir/build/krfb
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/krfb
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdenetwork/kdenetwork-kget.install b/kde-unstable/kdenetwork/kdenetwork-kget.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdenetwork/kdenetwork-kget.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdenetwork/kdenetwork-kopete.install b/kde-unstable/kdenetwork/kdenetwork-kopete.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdenetwork/kdenetwork-kopete.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdenetwork/kdenetwork-kppp.install b/kde-unstable/kdenetwork/kdenetwork-kppp.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdenetwork/kdenetwork-kppp.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdenetwork/kdenetwork.install b/kde-unstable/kdenetwork/kdenetwork.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdenetwork/kdenetwork.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepim-runtime/PKGBUILD b/kde-unstable/kdepim-runtime/PKGBUILD
new file mode 100644
index 000000000..51dc56b29
--- /dev/null
+++ b/kde-unstable/kdepim-runtime/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143286 2011-11-24 16:13:23Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepim-runtime
+pkgver=4.7.80
+pkgrel=1
+pkgdesc='KDE PIM Runtime Environment'
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdepimlibs' 'kdebase-runtime')
+makedepends=('cmake' 'automoc4' 'boost')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('54de62929a8293d7a514e505ce63a46c7514a9e6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdepim-runtime/kdepim-runtime.install b/kde-unstable/kdepim-runtime/kdepim-runtime.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/kde-unstable/kdepim-runtime/kdepim-runtime.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/kde-unstable/kdepim/PKGBUILD b/kde-unstable/kdepim/PKGBUILD
new file mode 100644
index 000000000..d29e3c7f6
--- /dev/null
+++ b/kde-unstable/kdepim/PKGBUILD
@@ -0,0 +1,253 @@
+# $Id: PKGBUILD 143416 2011-11-24 16:16:27Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdepim
+pkgname=('kdepim-akonadiconsole'
+ 'kdepim-akregator'
+ 'kdepim-blogilo'
+ 'kdepim-console'
+ 'kdepim-kaddressbook'
+ 'kdepim-kalarm'
+ 'kdepim-kjots'
+ 'kdepim-kleopatra'
+ 'kdepim-kmail'
+ 'kdepim-knode'
+ 'kdepim-knotes'
+ 'kdepim-kontact'
+ 'kdepim-korganizer'
+ 'kdepim-kresources'
+ 'kdepim-ktimetracker'
+ 'kdepim-libkdepim'
+ 'kdepim-wizards')
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://pim.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdepim')
+makedepends=('cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss' 'pilot-link'
+ 'kde-agent')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('e1b6f42a864a9be2263a9ac2cd21367af39fd532')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DKDEPIM_BUILD_MOBILE=OFF
+ make
+}
+
+package_kdepim-akonadiconsole() {
+ pkgdesc='Akonadi Management and Debugging Console'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/akonadiconsole
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-akregator() {
+ pkgdesc='A Feed Reader for KDE'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/akregator/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/akregator
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-blogilo() {
+ pkgdesc='A KDE Blogging Client'
+ depends=('kdepim-runtime')
+ url="http://kde.org/applications/internet/blogilo/"
+ replaces=('blogilo')
+ conflicts=('blogilo')
+ install='kdepim.install'
+ cd "${srcdir}"/build/blogilo
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/blogilo
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-console() {
+ pkgdesc='Command line tool for accessing calendar files'
+ depends=('kdepim-runtime')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/console
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kaddressbook() {
+ pkgdesc='Contact Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kaddressbook/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kalarm() {
+ pkgdesc='Personal Alarm Scheduler'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kalarm/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kalarm
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kalarm
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kjots() {
+ pkgdesc='Note Taker'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kjots/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kjots
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kleopatra() {
+ pkgdesc='Certificate Manager and Unified Crypto GUI'
+ depends=('kdepim-libkdepim')
+ install=kdepim-kleopatra.install
+ url="http://kde.org/applications/utilities/kleopatra/"
+ cd "${srcdir}"/build/kleopatra
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kleopatra
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kmail() {
+ pkgdesc='Mail Client'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/kmail/"
+ install='kdepim-kmail.install'
+ conflicts=('kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve'
+ 'kdepim-mimelib' 'kdepim-plugins')
+ replaces=('kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve'
+ 'kdepim-mimelib' 'kdepim-plugins')
+ for i in kmail doc/kmail kmailcvt ksendemail libksieve mailcommon \
+ mailfilteragent ontologies kontact/plugins/kmail; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-knode() {
+ pkgdesc='News Reader'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/knode/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knode
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-knotes() {
+ pkgdesc='Popup Notes'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/knotes/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knotes
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kontact() {
+ pkgdesc='Personal Information Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kontact/"
+ install='kdepim.install'
+ conflcits=('kdepim-kontactinterfaces')
+ replaces=('kdepim-kontactinterfaces')
+ for i in kontact/src doc/kontact \
+ kontact/plugins/summary kontact/plugins/specialdates; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-korganizer() {
+ pkgdesc='Calendar and Scheduling Program'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/korganizer"
+ install='kdepim-korganizer.install'
+ cd "${srcdir}"/build/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/korganizer
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kresources() {
+ pkgdesc='KDE PIM resources'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ cd "${srcdir}"/build/kresources
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-ktimetracker() {
+ pkgdesc='Personal Time Tracker'
+ depends=('kdepim-kresources')
+ url="http://kde.org/applications/utilities/ktimetracker/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/ktimetracker
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-libkdepim() {
+ pkgdesc='Library for KDE PIM'
+ groups=()
+ depends=('kde-agent' 'kdepim-runtime')
+ url='http://pim.kde.org'
+ conflicts=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ replaces=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ for i in akonadi_next calendarsupport calendarviews incidenceeditor-ng \
+ kdgantt2 libkdepim libkdepimdbusinterfaces libkleo libkpgp \
+ messagecomposer messagecore messagelist messageviewer icons \
+ strigi-analyzer templateparser plugins/messageviewer \
+ plugins/ktexteditor; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-wizards() {
+ pkgdesc='KDE Groupware Wizard'
+ depends=('kdepim-kresources')
+ url='http://pim.kde.org'
+ cd "${srcdir}"/build/wizards
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdepim/kdepim-kleopatra.install b/kde-unstable/kdepim/kdepim-kleopatra.install
new file mode 100644
index 000000000..5787df72f
--- /dev/null
+++ b/kde-unstable/kdepim/kdepim-kleopatra.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepim/kdepim-kmail.install b/kde-unstable/kdepim/kdepim-kmail.install
new file mode 100644
index 000000000..5787df72f
--- /dev/null
+++ b/kde-unstable/kdepim/kdepim-kmail.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepim/kdepim-korganizer.install b/kde-unstable/kdepim/kdepim-korganizer.install
new file mode 100644
index 000000000..5787df72f
--- /dev/null
+++ b/kde-unstable/kdepim/kdepim-korganizer.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepim/kdepim.install b/kde-unstable/kdepim/kdepim.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdepim/kdepim.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdepimlibs/PKGBUILD b/kde-unstable/kdepimlibs/PKGBUILD
new file mode 100644
index 000000000..d706eecbb
--- /dev/null
+++ b/kde-unstable/kdepimlibs/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143281 2011-11-24 16:13:17Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepimlibs
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="KDE PIM Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+depends=('kdelibs' 'gpgme' 'akonadi' 'libical' 'prison')
+makedepends=('cmake' 'automoc4' 'boost' 'cyrus-sasl' 'openldap')
+install='kdepimlibs.install'
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('8c32406b85cf9677b7bebeb61cf50621dd034787')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdepimlibs/kdepimlibs.install b/kde-unstable/kdepimlibs/kdepimlibs.install
new file mode 100644
index 000000000..99262607c
--- /dev/null
+++ b/kde-unstable/kdepimlibs/kdepimlibs.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/kde-unstable/kdeplasma-addons/PKGBUILD b/kde-unstable/kdeplasma-addons/PKGBUILD
new file mode 100644
index 000000000..21270b2f6
--- /dev/null
+++ b/kde-unstable/kdeplasma-addons/PKGBUILD
@@ -0,0 +1,619 @@
+# $Id: PKGBUILD 143418 2011-11-24 16:16:32Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeplasma-addons
+pkgname=('kdeplasma-addons-applets-bball'
+ 'kdeplasma-addons-applets-binary-clock'
+ 'kdeplasma-addons-applets-blackboard'
+ 'kdeplasma-addons-applets-bookmarks'
+ 'kdeplasma-addons-applets-bubblemon'
+ 'kdeplasma-addons-applets-calculator'
+ 'kdeplasma-addons-applets-charselect'
+ 'kdeplasma-addons-applets-comic'
+ 'kdeplasma-addons-applets-community'
+ 'kdeplasma-addons-applets-dict'
+ 'kdeplasma-addons-applets-eyes'
+ 'kdeplasma-addons-applets-fifteenpuzzle'
+ 'kdeplasma-addons-applets-filewatcher'
+ 'kdeplasma-addons-applets-frame'
+ 'kdeplasma-addons-applets-fuzzy-clock'
+ 'kdeplasma-addons-applets-icontasks'
+ 'kdeplasma-addons-applets-incomingmsg'
+ 'kdeplasma-addons-applets-kdeobservatory'
+ 'kdeplasma-addons-applets-kimpanel'
+ 'kdeplasma-addons-applets-knowledgebase'
+ 'kdeplasma-addons-applets-kolourpicker'
+ 'kdeplasma-addons-applets-konqprofiles'
+ 'kdeplasma-addons-applets-konsoleprofiles'
+ 'kdeplasma-addons-applets-lancelot'
+ 'kdeplasma-addons-applets-leavenote'
+ 'kdeplasma-addons-applets-life'
+ 'kdeplasma-addons-applets-luna'
+ 'kdeplasma-addons-applets-magnifique'
+ 'kdeplasma-addons-applets-mediaplayer'
+ 'kdeplasma-addons-applets-microblog'
+ 'kdeplasma-addons-applets-news'
+ 'kdeplasma-addons-applets-notes'
+ 'kdeplasma-addons-applets-nowplaying'
+ 'kdeplasma-addons-applets-paste'
+ 'kdeplasma-addons-applets-pastebin'
+ 'kdeplasma-addons-applets-plasmaboard'
+ 'kdeplasma-addons-applets-previewer'
+ 'kdeplasma-addons-applets-qalculate'
+ 'kdeplasma-addons-applets-rememberthemilk'
+ 'kdeplasma-addons-applets-rssnow'
+ 'kdeplasma-addons-applets-showdashboard'
+ 'kdeplasma-addons-applets-showdesktop'
+ 'kdeplasma-addons-applets-social-news'
+ 'kdeplasma-addons-applets-spellcheck'
+ 'kdeplasma-addons-applets-systemloadviewer'
+ 'kdeplasma-addons-applets-timer'
+ 'kdeplasma-addons-applets-unitconverter'
+ 'kdeplasma-addons-applets-weather'
+ 'kdeplasma-addons-applets-weatherstation'
+ 'kdeplasma-addons-applets-webslice'
+ 'kdeplasma-addons-containments'
+ 'kdeplasma-addons-libs'
+ 'kdeplasma-addons-runners-audioplayercontrol'
+ 'kdeplasma-addons-runners-browserhistory'
+ 'kdeplasma-addons-runners-characters'
+ 'kdeplasma-addons-runners-contacts'
+ 'kdeplasma-addons-runners-converter'
+ 'kdeplasma-addons-runners-datetime'
+ 'kdeplasma-addons-runners-events'
+ 'kdeplasma-addons-runners-katesessions'
+ 'kdeplasma-addons-runners-konquerorsessions'
+ 'kdeplasma-addons-runners-konsolesessions'
+ 'kdeplasma-addons-runners-kopete'
+ 'kdeplasma-addons-runners-mediawiki'
+ 'kdeplasma-addons-runners-spellchecker'
+ 'kdeplasma-addons-wallpapers-mandelbrot'
+ 'kdeplasma-addons-wallpapers-marble'
+ 'kdeplasma-addons-wallpapers-pattern'
+ 'kdeplasma-addons-wallpapers-potd'
+ 'kdeplasma-addons-wallpapers-virus'
+ 'kdeplasma-addons-wallpapers-weather')
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+groups=('kde' 'kdeplasma-addons')
+makedepends=('cmake' 'automoc4' 'kdebase-workspace' 'kdeedu-marble' 'eigen'
+ 'scim' 'qwt' 'boost' 'libkexiv2')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('fd27a14fc2ad676a4d5ddf4cd8658d80fc7aa8e9')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeplasma-addons-applets-bball() {
+ pkgdesc='A bouncy ball for plasma'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/bball
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-binary-clock() {
+ pkgdesc='Time displayed in binary format'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/binary-clock
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-blackboard() {
+ pkgdesc='Black Board'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/blackboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bookmarks() {
+ pkgdesc='Quick Access to the Bookmarks'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/bookmarks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bubblemon() {
+ pkgdesc='A pretty bubble that monitors your system.'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/bubblemon
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-calculator() {
+ pkgdesc='Calculate simple sums'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/calculator
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-charselect() {
+ pkgdesc='View, select, and copy characters from a font collection'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/charselect
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-comic() {
+ pkgdesc='View comic strips from the Internet'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/comic
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-community() {
+ pkgdesc='Communicate using the Social Desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/community
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-dict() {
+ pkgdesc='Look up the meaning of words and their translation into different languages'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/dict
+ make DESTDIR=$pkgdir install
+ # FIXME
+ # /usr/share/icons/oxygen/scalable/apps/accessories-dictionary.svgz
+ rm -rf $pkgdir/usr/share/icons
+}
+
+package_kdeplasma-addons-applets-eyes() {
+ pkgdesc='XEyes clone'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/eyes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fifteenpuzzle() {
+ pkgdesc='Put the pieces in order'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/fifteenPuzzle
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-filewatcher() {
+ pkgdesc='Watch for changes in specified files'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/fileWatcher
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-frame() {
+ pkgdesc='Display your favorite pictures'
+ depends=('kdebase-workspace' 'libkexiv2')
+ cd $srcdir/build/applets/frame
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fuzzy-clock() {
+ pkgdesc='Time displayed in a less precise format'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/fuzzy-clock
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-icontasks() {
+ pkgdesc='Switch between running applications'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/icontasks
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-incomingmsg() {
+ pkgdesc='Notification of new messages'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/incomingmsg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kdeobservatory() {
+ pkgdesc='Visualize the KDE ecosystem'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs' 'qwt')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/kdeobservatory
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kimpanel() {
+ pkgdesc='A generic input method panel for Oriental languages'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ optdepends=('scim: SCIM backend'
+ 'fcitx: FCITX backend')
+ cd $srcdir/build/applets/kimpanel
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-knowledgebase() {
+ pkgdesc='Opendesktop Knowledgebase'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/knowledgebase
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kolourpicker() {
+ pkgdesc='Pick a color from the desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/kolourpicker
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-konqprofiles() {
+ pkgdesc='List and launch Konqueror profiles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/konqprofiles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-konsoleprofiles() {
+ pkgdesc='List and launch Konsole profiles'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/konsoleprofiles
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-lancelot() {
+ pkgdesc='Launcher to start applications'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ replaces=('lancelot')
+ provides=('lancelot')
+ conflicts=('lancelot')
+ install='kdeplasma-addons-applets-lancelot.install'
+ cd $srcdir/build/applets/lancelot
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-leavenote() {
+ pkgdesc='Leave notes for users while they are away'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/leavenote
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-life() {
+ pkgdesc='Life'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/life
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-luna() {
+ pkgdesc='Display moon phases for your location'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/luna
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-magnifique() {
+ pkgdesc='A magnification glass for the Plasma desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/magnifique
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-mediaplayer() {
+ pkgdesc='Widget that can play video and sound'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/mediaplayer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-microblog() {
+ pkgdesc='Update and view your microblog status.'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs' 'qoauth' 'qca-ossl')
+ cd $srcdir/build/applets/microblog
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-news() {
+ pkgdesc='Show news from various sources'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/news
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-notes() {
+ pkgdesc='Desktop sticky notes'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/notes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-nowplaying() {
+ pkgdesc='Displays currently playing audio'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/nowplaying
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-paste() {
+ pkgdesc='Paste text snippets'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/paste
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-pastebin() {
+ pkgdesc='Paste text/images to a remote server'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/pastebin
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-plasmaboard() {
+ pkgdesc='A virtual, on-screen keyboard'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/plasmaboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-previewer() {
+ pkgdesc='Preview This File'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/previewer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-qalculate() {
+ pkgdesc='A powerful mathematical equation solver'
+ depends=('kdebase-workspace')
+ install='kdeplasma-addons-applets.install'
+ cd $srcdir/build/applets/qalculate
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-rememberthemilk() {
+ pkgdesc='Remember The Milk Todo list applet'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/rememberthemilk
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-rssnow() {
+ pkgdesc='Show news from various sources'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/rssnow
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-showdashboard() {
+ pkgdesc='Show the Plasma widget dashboard above other windows'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/showdashboard
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-showdesktop() {
+ pkgdesc='Show the Plasma desktop'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/showdesktop
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-social-news() {
+ pkgdesc='Stay informed with the Social Desktop'
+ replaces=('kdeplasma-addons-applets-opendesktop' 'kdeplasma-addons-applets-opendesktop-activities')
+ conflicts=('kdeplasma-addons-applets-opendesktop' 'kdeplasma-addons-applets-opendesktop-activities')
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/social-news
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-spellcheck() {
+ pkgdesc='Fast spell checking'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/spellcheck
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-systemloadviewer() {
+ pkgdesc='Tiny CPU/RAM/Swap monitor'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/systemloadviewer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-timer() {
+ pkgdesc='Countdown over a specified time period'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/timer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-unitconverter() {
+ pkgdesc='Plasmoid for converting units'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/unitconverter
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-weather() {
+ pkgdesc='Displays Weather information'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/weather
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-weatherstation() {
+ pkgdesc='Weather reports with an LCD display style'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/applets/weatherstation
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-webslice() {
+ pkgdesc='Show a part of a webpage'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/applets/webslice
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-containments() {
+ pkgdesc='Activities types for Plasma shells'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/containments
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-libs() {
+ pkgdesc='Plasma Addon Library'
+ depends=('kdebase-workspace')
+ groups=()
+ replaces=('kdeplasma-addons-dataengines')
+ provides=('kdeplasma-addons-dataengines')
+ conflicts=('kdeplasma-addons-dataengines')
+ cd $srcdir/build/libs
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/dataengines
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-audioplayercontrol() {
+ pkgdesc='Allows to control MPRIS audio players (it is able to search through Amarok´s collection, too)'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/audioplayercontrol
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-browserhistory() {
+ pkgdesc='Searches in Konqueror´s history'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/browserhistory
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-characters() {
+ pkgdesc='special Characters'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/characters
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-contacts() {
+ pkgdesc='Finds entries in your address book'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/contacts
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-converter() {
+ pkgdesc='Convert values to different units'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/converter
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-datetime() {
+ pkgdesc='The current date and time, locally or in any timezone'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/datetime
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-events() {
+ pkgdesc='Calendar Events runner'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/events
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-katesessions() {
+ pkgdesc='Matches Kate Sessions'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/katesessions
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-konquerorsessions() {
+ pkgdesc='Matches Konqueror Sessions'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/konquerorsessions
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-konsolesessions() {
+ pkgdesc='Matches Konsole Sessions'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/konsolesessions
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-kopete() {
+ pkgdesc='Kopete Contact runner'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/kopete
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-mediawiki() {
+ pkgdesc='Search on Wikitravel'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/mediawiki
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-spellchecker() {
+ pkgdesc='Check the spelling of a word'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/runners/spellchecker
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-mandelbrot() {
+ pkgdesc='Mandelbrot'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/wallpapers/mandelbrot
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-marble() {
+ pkgdesc='Globe'
+ depends=('kdebase-workspace' 'kdeedu-marble')
+ cd $srcdir/build/wallpapers/marble
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-pattern() {
+ pkgdesc='Pattern'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/wallpapers/pattern
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-potd() {
+ pkgdesc='Picture of the Day'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/wallpapers/potd
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-virus() {
+ pkgdesc='Virus'
+ depends=('kdebase-workspace')
+ cd $srcdir/build/wallpapers/virus
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-weather() {
+ pkgdesc='Weather'
+ depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+ cd $srcdir/build/wallpapers/weather
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/kde-unstable/calligra/calligra-plan.install b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install
index c2179f6e2..c4ef46ba8 100644
--- a/kde-unstable/calligra/calligra-plan.install
+++ b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install
@@ -1,6 +1,5 @@
post_install() {
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
- update-desktop-database -q
}
post_upgrade() {
diff --git a/kde-unstable/kdesdk-kate/PKGBUILD b/kde-unstable/kdesdk-kate/PKGBUILD
new file mode 100644
index 000000000..84619e271
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 143294 2011-11-24 16:13:37Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=kdesdk-kate
+pkgname=('kdebase-kwrite'
+ 'kdesdk-kate')
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+makedepends=('kdelibs ''cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kate-${pkgver}.tar.bz2"
+ 'pkgbuild-syntax-highlight.patch')
+sha1sums=('6c243a3fc1f114b8c1d9a6d644ec61e3ebf332e8'
+ '0a928253bd2077f0264d96a6c8823c69c47b6a8d')
+
+build() {
+ cd "${srcdir}"/kate-${pkgver}
+ patch -p1 -i "${srcdir}"/pkgbuild-syntax-highlight.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kate-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_KTEXTEDITOR=OFF
+ make
+}
+
+package_kdebase-kwrite() {
+ pkgdesc="Text Editor"
+ depends=('kdebase-runtime')
+ groups=('kde' 'kdebase')
+ install='kdebase-kwrite.install'
+
+ cd "${srcdir}"/build/kwrite
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}"/build/part
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}"/build/doc/kwrite
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdesdk-kate() {
+ pkgdesc="Advanced Text Editor"
+ depends=('kdebase-kwrite')
+ groups=('kde' 'kdesdk')
+ install='kdesdk-kate.install'
+
+ cd "${srcdir}"/build/kate
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}"/build/doc/kate
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdesdk-kate/kdebase-kwrite.install b/kde-unstable/kdesdk-kate/kdebase-kwrite.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/kdebase-kwrite.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk-kate/kdesdk-kate.install b/kde-unstable/kdesdk-kate/kdesdk-kate.install
new file mode 100644
index 000000000..a9c01ef06
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/kdesdk-kate.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+ update-mime-database usr/share/mime
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch b/kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch
new file mode 100644
index 000000000..27729d1ad
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch
@@ -0,0 +1,11 @@
+--- kate-4.7.80/part/syntax/data/bash.xml~ 2011-11-20 06:14:30.581097154 +0000
++++ kate-4.7.80/part/syntax/data/bash.xml 2011-11-20 06:14:45.494553146 +0000
+@@ -8,7 +8,7 @@
+ <!ENTITY noword "(?![\w$+-])"> <!-- no word, $, + or - following -->
+ <!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )"> <!-- valid character in a file name -->
+ ]>
+-<language name="Bash" version="2.14" kateversion="2.4" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;.bashrc;.bash_profile;.bash_login;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
++<language name="Bash" version="2.14" kateversion="2.4" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
+
+ <!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl)
+ Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)
diff --git a/kde-unstable/kdesdk/PKGBUILD b/kde-unstable/kdesdk/PKGBUILD
new file mode 100644
index 000000000..87d3ca27d
--- /dev/null
+++ b/kde-unstable/kdesdk/PKGBUILD
@@ -0,0 +1,258 @@
+# $Id: PKGBUILD 143420 2011-11-24 16:16:37Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdesdk
+pkgname=('kdesdk-cervisia'
+ 'kdesdk-dolphin-plugins'
+ 'kdesdk-kapptemplate'
+ 'kdesdk-kcachegrind'
+ 'kdesdk-kdeaccounts-plugin'
+ 'kdesdk-kdepalettes'
+ 'kdesdk-kioslave'
+ 'kdesdk-kmtrace'
+ 'kdesdk-kompare'
+ 'kdesdk-kpartloader'
+ 'kdesdk-kprofilemethod'
+ 'kdesdk-kstartperf'
+ 'kdesdk-kuiviewer'
+ 'kdesdk-lokalize'
+ 'kdesdk-okteta'
+ 'kdesdk-poxml'
+ 'kdesdk-scripts'
+ 'kdesdk-strigi-analyzer'
+ 'kdesdk-umbrello')
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdesdk')
+makedepends=('cmake' 'automoc4' 'boost' 'subversion' 'antlr2' 'kdepimlibs'
+ 'kdebase-lib')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'fix-python2-path.patch')
+sha1sums=('725ca18c5bbf16061911bde15d98cb0e86db4471'
+ '923cabd7a877cf9a68efeb24fbf3d5827e1d949e')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+
+ # Fix hardcoded python2 cmd
+ patch -Np1 -i ${srcdir}/fix-python2-path.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdesdk-cervisia() {
+ pkgdesc='CVS Frontend'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/cervisia/"
+ install='kdesdk-cervisia.install'
+ cd $srcdir/build/cervisia
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/cervisia
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-dolphin-plugins() {
+ pkgdesc='Extra Dolphin plugins'
+ depends=('kdebase-dolphin' 'subversion' 'git' 'kdesdk-kompare')
+ install='kdesdk.install'
+ cd $srcdir/build/dolphin-plugins/git
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/dolphin-plugins/svn
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kapptemplate() {
+ pkgdesc='KDE Template Generator'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/kapptemplate/"
+ install='kdesdk.install'
+ cd $srcdir/build/kapptemplate
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kapptemplate
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kcachegrind() {
+ pkgdesc='Visualization of Performance Profiling Data'
+ depends=('kdebase-runtime' 'python2')
+ optdepends=('php: PHP support')
+ url="http://kde.org/applications/development/kcachegrind/"
+ install='kdesdk-kcachegrind.install'
+ cd $srcdir/build/kcachegrind
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcachegrind
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/bin/hotshot2calltree
+}
+
+package_kdesdk-kdeaccounts-plugin() {
+ pkgdesc='KDE Repository Accounts'
+ depends=('kdepim-runtime')
+ cd $srcdir/build/kdeaccounts-plugin
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kdepalettes() {
+ pkgdesc='Palettes for the Gimp that match the KDE standard color palette'
+ optdepends=('gimp')
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/kdepalettes/KDE_Gimp \
+ $pkgdir/usr/share/gimp/2.0/palettes/KDE.gpl
+}
+
+package_kdesdk-kioslave() {
+ pkgdesc='KDED Subversion Module'
+ depends=('kdebase-runtime' 'subversion')
+ install='kdesdk.install'
+ cd $srcdir/build/kioslave
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kmtrace() {
+ pkgdesc='A KDE tool to assist with malloc debugging using glibc´s "mtrace" functionality'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kmtrace
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmtrace
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kompare() {
+ pkgdesc='Diff/Patch Frontend'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/kompare/"
+ install='kdesdk.install'
+ cd $srcdir/build/kompare
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kompare
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kpartloader() {
+ pkgdesc='A test application for KParts'
+ depends=('kdebase-runtime')
+ install='kdesdk.install'
+ cd $srcdir/build/kpartloader
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kprofilemethod() {
+ pkgdesc='Macros helping to profile'
+ cd $srcdir/build/kprofilemethod
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kspy() {
+ pkgdesc='An Object Inspector for Qt/KDE applications'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kspy
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kstartperf() {
+ pkgdesc='Startup time measurement tool for KDE applications'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kstartperf
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-kuiviewer() {
+ pkgdesc='Qt Designer UI File Viewer'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/kuiviewer/"
+ install='kdesdk-kuiviewer.install'
+ cd $srcdir/build/kuiviewer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-lokalize() {
+ pkgdesc='Computer-Aided Translation System'
+ depends=('kdebase-runtime' 'kdebindings-python')
+ url="http://kde.org/applications/development/lokalize/"
+ optdepends=('translate-toolkit: enable extra python script')
+ install='kdesdk-lokalize.install'
+ cd $srcdir/build/lokalize
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/lokalize
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/share/apps/lokalize/scripts/odf/xliffmerge.py
+}
+
+package_kdesdk-okteta() {
+ pkgdesc='Hex Editor'
+ depends=('kdebase-runtime')
+ replaces=('kdeutils-okteta')
+ conflicts=('kdeutils-okteta')
+ url="http://kde.org/applications/utilities/okteta"
+ install='kdesdk-okteta.install'
+ cd $srcdir/build/okteta
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/okteta
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-poxml() {
+ pkgdesc='Translates DocBook XML files using gettext po files'
+ depends=('qt' 'antlr2')
+ cd $srcdir/build/poxml
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/poxml
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-scheck() {
+ pkgdesc='An interface style to highlight accel and style guide conflicts'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/scheck
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-scripts() {
+ pkgdesc='KDE SDK scripts'
+ depends=('python2')
+ cd $srcdir/build/scripts
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/scripts
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/bin/{{kde-systemsettings-tree,kdelnk2desktop,zonetab2pot}.py,kde_generate_export_header}
+}
+
+package_kdesdk-strigi-analyzer() {
+ pkgdesc='Strigi-Analyzer for KDE SDK'
+ depends=('kdelibs')
+ cd $srcdir/build/strigi-analyzer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdesdk-umbrello() {
+ pkgdesc='UML Modeller'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/umbrello/"
+ install='kdesdk-umbrello.install'
+ cd $srcdir/build/umbrello
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/umbrello
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/share/apps/umbrello/headings/heading.py
+}
diff --git a/kde-unstable/kdesdk/fix-python2-path.patch b/kde-unstable/kdesdk/fix-python2-path.patch
new file mode 100644
index 000000000..720487031
--- /dev/null
+++ b/kde-unstable/kdesdk/fix-python2-path.patch
@@ -0,0 +1,32 @@
+--- kdesdk-4.5.80/lokalize/scripts/msgmerge.py~ 2010-11-24 11:22:42.120000002 +0100
++++ kdesdk-4.5.80/lokalize/scripts/msgmerge.py 2010-11-24 11:22:42.146666670 +0100
+@@ -114,7 +114,7 @@
+ print >>sys.stderr, "Execution failed:", e
+
+ cmd='%s/odf/xliffmerge.py -i %s -t %s -o %s' % (ourPath,xliffpathname,xlifftemplatepathname,xliffpathname)
+- if os.name!='nt': cmd='python '+cmd
++ if os.name!='nt': cmd='python2 '+cmd
+ else: cmd=cmd.replace('/','\\')
+ os.system(cmd)
+
+--- kdesdk-4.5.80/lokalize/scripts/xliff2odf.py~ 2010-11-24 11:24:10.853333336 +0100
++++ kdesdk-4.5.80/lokalize/scripts/xliff2odf.py 2010-11-24 11:24:10.883333336 +0100
+@@ -42,7 +42,7 @@
+ xliff2odf.convertxliff(xliffinput, translatedodfpathname, odf)
+
+ ourpath=([p for p in sys.path if os.path.exists(p+'/xliff2odf.py')]+[''])[0]
+- os.system('python "'+ourpath+'/xliff2odf-standalone.py" "%s" "%s" &'%(translatedodfpathname, Editor.currentEntryId()))
++ os.system('python2 "'+ourpath+'/xliff2odf-standalone.py" "%s" "%s" &'%(translatedodfpathname, Editor.currentEntryId()))
+
+ try: convert()
+ except: print 'error occured'
+--- kdesdk-4.5.80/scripts/svn2log.sh~ 2010-11-24 11:46:24.863333337 +0100
++++ kdesdk-4.5.80/scripts/svn2log.sh 2010-11-24 11:46:24.896666669 +0100
+@@ -17,6 +17,6 @@
+ svn cat svn://anonsvn.kde.org/home/kde/trunk/kde-common/accounts > /tmp/accounts.$PPID
+
+ echo "Creating changelog...";
+-svn log -v --xml $1 | python $CURRENT/svn2log.py --users=/tmp/accounts.$PPID --users-charset=UTF8
++svn log -v --xml $1 | python2 $CURRENT/svn2log.py --users=/tmp/accounts.$PPID --users-charset=UTF8
+
+ rm /tmp/accounts.$PPID \ No newline at end of file
diff --git a/kde-unstable/kdesdk/kdesdk-cervisia.install b/kde-unstable/kdesdk/kdesdk-cervisia.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-cervisia.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-kcachegrind.install b/kde-unstable/kdesdk/kdesdk-kcachegrind.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-kcachegrind.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-kompare.install b/kde-unstable/kdesdk/kdesdk-kompare.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-kompare.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-kuiviewer.install b/kde-unstable/kdesdk/kdesdk-kuiviewer.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-kuiviewer.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-lokalize.install b/kde-unstable/kdesdk/kdesdk-lokalize.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-lokalize.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-okteta.install b/kde-unstable/kdesdk/kdesdk-okteta.install
new file mode 100644
index 000000000..3f06b8deb
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-okteta.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk-umbrello.install b/kde-unstable/kdesdk/kdesdk-umbrello.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk-umbrello.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdesdk/kdesdk.install b/kde-unstable/kdesdk/kdesdk.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdesdk/kdesdk.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdetoys/PKGBUILD b/kde-unstable/kdetoys/PKGBUILD
new file mode 100644
index 000000000..7c515243d
--- /dev/null
+++ b/kde-unstable/kdetoys/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 143422 2011-11-24 16:16:40Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdetoys
+pkgname=('kdetoys-amor'
+ 'kdetoys-kteatime'
+ 'kdetoys-ktux')
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdetoys')
+makedepends=('cmake' 'automoc4' 'kdebase-workspace')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('5462cdc809f22fcc2837844fb7b5fad0b5f716c5')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdetoys-amor() {
+ pkgdesc='On-Screen Creature'
+ depends=('kdebase-runtime')
+ install='kdetoys.install'
+ cd $srcdir/build/amor
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/amor
+ make DESTDIR=$pkgdir install
+}
+
+package_kdetoys-kteatime() {
+ pkgdesc='Tea Cooker'
+ depends=('kdebase-runtime')
+ install='kdetoys.install'
+ cd $srcdir/build/kteatime
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kteatime
+ make DESTDIR=$pkgdir install
+}
+
+package_kdetoys-ktux() {
+ pkgdesc='KTux'
+ depends=('kdebase-workspace' )
+ install='kdetoys.install'
+ cd $srcdir/build/ktux
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdetoys/kdetoys.install b/kde-unstable/kdetoys/kdetoys.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdetoys/kdetoys.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-filelight/PKGBUILD b/kde-unstable/kdeutils-filelight/PKGBUILD
new file mode 100644
index 000000000..85976db3b
--- /dev/null
+++ b/kde-unstable/kdeutils-filelight/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 143426 2011-11-24 16:16:44Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-filelight
+pkgver=4.7.80
+pkgrel=1
+pkgdesc='View disk usage information'
+url='http://kde.org/applications/utilities/filelight'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+replaces=('filelight')
+conflicts=('filelight')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/filelight-${pkgver}.tar.bz2")
+sha1sums=('e77283760f0a787e7090dbd121e133036e5e57de')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../filelight-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-filelight/kdeutils-filelight.install b/kde-unstable/kdeutils-filelight/kdeutils-filelight.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeutils-filelight/kdeutils-filelight.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kcalc/PKGBUILD b/kde-unstable/kdeutils-kcalc/PKGBUILD
new file mode 100644
index 000000000..c5ec6c1e4
--- /dev/null
+++ b/kde-unstable/kdeutils-kcalc/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 143428 2011-11-24 16:16:47Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kcalc
+pkgver=4.7.80
+pkgrel=1
+pkgdesc='Scientific Calculator'
+url='http://kde.org/applications/utilities/kcalc'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kcalc-${pkgver}.tar.bz2")
+sha1sums=('0fce57dbbd39028bb3b5749959368c35d8aa0442')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kcalc-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kcalc/kdeutils-kcalc.install b/kde-unstable/kdeutils-kcalc/kdeutils-kcalc.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeutils-kcalc/kdeutils-kcalc.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kcharselect/PKGBUILD b/kde-unstable/kdeutils-kcharselect/PKGBUILD
new file mode 100644
index 000000000..478a59212
--- /dev/null
+++ b/kde-unstable/kdeutils-kcharselect/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143430 2011-11-24 16:16:50Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kcharselect
+pkgver=4.7.80
+pkgrel=1
+pkgdesc='Character Selector'
+url="http://kde.org/applications/utilities/kcharselect/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+source=("http://download.kde.org/unstable/${pkgver}/src/kcharselect-${pkgver}.tar.bz2")
+sha1sums=('d5938cdba2aa32970fa7211827c1ee0e614f4acf')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kcharselect-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kdf/PKGBUILD b/kde-unstable/kdeutils-kdf/PKGBUILD
new file mode 100644
index 000000000..7d27cec82
--- /dev/null
+++ b/kde-unstable/kdeutils-kdf/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 143432 2011-11-24 16:16:52Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kdf
+pkgver=4.7.80
+pkgrel=1
+url="http://kde.org/applications/system/kdiskfree/"
+arch=('i686' 'x86_64')
+pkgdesc='View Disk Usage'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kdf-${pkgver}.tar.bz2")
+sha1sums=('22f42048664ab76cb7a5357c4ce18e3ac9321120')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kdf-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kdf/kdeutils-kdf.install b/kde-unstable/kdeutils-kdf/kdeutils-kdf.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeutils-kdf/kdeutils-kdf.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kfloppy/PKGBUILD b/kde-unstable/kdeutils-kfloppy/PKGBUILD
new file mode 100644
index 000000000..213d1a741
--- /dev/null
+++ b/kde-unstable/kdeutils-kfloppy/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 143434 2011-11-24 16:16:54Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kfloppy
+pkgver=4.7.80
+pkgrel=1
+pkgdesc='Floppy Formatter'
+url='http://kde.org/applications/utilities/kfloppy'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kfloppy-${pkgver}.tar.bz2")
+sha1sums=('c7669a2c35fff0a403ecf8df23e0da03238dc6ae')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kfloppy-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kfloppy/kdeutils-kfloppy.install b/kde-unstable/kdeutils-kfloppy/kdeutils-kfloppy.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeutils-kfloppy/kdeutils-kfloppy.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kgpg/PKGBUILD b/kde-unstable/kdeutils-kgpg/PKGBUILD
new file mode 100644
index 000000000..9c6f639a7
--- /dev/null
+++ b/kde-unstable/kdeutils-kgpg/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 143436 2011-11-24 16:16:56Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kgpg
+pkgver=4.7.80
+pkgrel=1
+pkgdesc='A GnuPG frontend'
+url='http://kde.org/applications/utilities/kgpg'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdepim-runtime' 'kde-agent')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kgpg-${pkgver}.tar.bz2")
+sha1sums=('ee2143a2c5ecc04608e7b037a364b2f360d06574')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kgpg-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kgpg/kdeutils-kgpg.install b/kde-unstable/kdeutils-kgpg/kdeutils-kgpg.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeutils-kgpg/kdeutils-kgpg.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kremotecontrol/PKGBUILD b/kde-unstable/kdeutils-kremotecontrol/PKGBUILD
new file mode 100644
index 000000000..51c1c9397
--- /dev/null
+++ b/kde-unstable/kdeutils-kremotecontrol/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kremotecontrol
+pkgver=4.7.80
+pkgrel=1
+pkgdesc='Configure your remote controls for use with applications'
+url='http://kde.org/applications/utilities/kremotecontrol'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-workspace')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+replaces=('kdeutils-kdelirc')
+conflicts=('kdeutils-kdelirc')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kremotecontrol-${pkgver}.tar.bz2")
+sha1sums=('fae17c72a67fbcd3333815838ff1d934a3fc7c53')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kremotecontrol-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kremotecontrol/kdeutils-kremotecontrol.install b/kde-unstable/kdeutils-kremotecontrol/kdeutils-kremotecontrol.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeutils-kremotecontrol/kdeutils-kremotecontrol.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-ktimer/PKGBUILD b/kde-unstable/kdeutils-ktimer/PKGBUILD
new file mode 100644
index 000000000..37886965e
--- /dev/null
+++ b/kde-unstable/kdeutils-ktimer/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 143440 2011-11-24 16:17:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-ktimer
+pkgver=4.7.80
+pkgrel=1
+pkgdesc='Countdown Launcher'
+url='http://kde.org/applications/utilities/ktimer/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/ktimer-${pkgver}.tar.bz2")
+sha1sums=('763c0116dc99f3c428fa1f48721b9dd37a9b53e1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../ktimer-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-ktimer/kdeutils-ktimer.install b/kde-unstable/kdeutils-ktimer/kdeutils-ktimer.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeutils-ktimer/kdeutils-ktimer.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-kwallet/PKGBUILD b/kde-unstable/kdeutils-kwallet/PKGBUILD
new file mode 100644
index 000000000..b48789a39
--- /dev/null
+++ b/kde-unstable/kdeutils-kwallet/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 143442 2011-11-24 16:17:02Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-kwallet
+pkgver=4.7.80
+pkgrel=1
+pkgdesc='Wallet Management Tool'
+url='http://kde.org/applications/system/kwalletmanager/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kwallet-${pkgver}.tar.bz2")
+sha1sums=('ba1fc1e070c8d84af6d8a3e58452854f4b504214')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../kwallet-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-kwallet/kdeutils-kwallet.install b/kde-unstable/kdeutils-kwallet/kdeutils-kwallet.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdeutils-kwallet/kdeutils-kwallet.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-printer-applet/PKGBUILD b/kde-unstable/kdeutils-printer-applet/PKGBUILD
new file mode 100644
index 000000000..43f4f2a39
--- /dev/null
+++ b/kde-unstable/kdeutils-printer-applet/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 143444 2011-11-24 16:17:04Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-printer-applet
+pkgver=4.7.80
+pkgrel=1
+pkgdesc='System tray icon for managing print jobs'
+url='http://kde.org/applications/system/printerapplet/'
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime' 'kdebindings-python' 'system-config-printer-common')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+source=("http://download.kde.org/unstable/${pkgver}/src/printer-applet-${pkgver}.tar.bz2")
+sha1sums=('d1fc4913baf8ca7a938347f7ce4efcb5b1e2ab85')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../printer-applet-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+
+ # Fix python 2 path
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ "${pkgdir}"/usr/share/apps/printer-applet/{authconn,debug,monitor,printer-applet,statereason}.py
+}
diff --git a/kde-unstable/kdeutils-superkaramba/PKGBUILD b/kde-unstable/kdeutils-superkaramba/PKGBUILD
new file mode 100644
index 000000000..e7b4a7039
--- /dev/null
+++ b/kde-unstable/kdeutils-superkaramba/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143446 2011-11-24 16:17:06Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-superkaramba
+pkgver=4.7.80
+pkgrel=1
+pkgdesc='An engine for cool desktop eyecandy'
+url='http://kde.org/applications/utilities/superkaramba'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime' 'qimageblitz')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/superkaramba-${pkgver}.tar.bz2")
+sha1sums=('16c505363cf3dac342eb411d8a5ffea80216563d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../superkaramba-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeutils-superkaramba/kdeutils-superkaramba.install b/kde-unstable/kdeutils-superkaramba/kdeutils-superkaramba.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeutils-superkaramba/kdeutils-superkaramba.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdeutils-sweeper/PKGBUILD b/kde-unstable/kdeutils-sweeper/PKGBUILD
new file mode 100644
index 000000000..9225f5813
--- /dev/null
+++ b/kde-unstable/kdeutils-sweeper/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 143448 2011-11-24 16:17:08Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdeutils-sweeper
+pkgver=4.7.80
+pkgrel=1
+pkgdesc='System Cleaner'
+url='http://kde.org/applications/utilities/sweeper'
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+groups=('kde' 'kdeutils')
+source=("http://download.kde.org/unstable/${pkgver}/src/sweeper-${pkgver}.tar.bz2")
+sha1sums=('18c915a8057fd63edcb47c7e7c2a4503e5141856')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../sweeper-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdewebdev/PKGBUILD b/kde-unstable/kdewebdev/PKGBUILD
new file mode 100644
index 000000000..a3638ccd0
--- /dev/null
+++ b/kde-unstable/kdewebdev/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 143450 2011-11-24 16:17:10Z andrea $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdewebdev
+pkgname=('kdewebdev-kfilereplace'
+ 'kdewebdev-kimagemapeditor'
+ 'kdewebdev-klinkstatus'
+ 'kdewebdev-kommander')
+pkgver=4.7.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdewebdev')
+makedepends=('cmake' 'automoc4' 'ruby' 'tidyhtml' 'kdepim-runtime' 'boost')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('505444a089b88b210a34dc31d09ae2926892aee0')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdewebdev-kfilereplace() {
+ pkgdesc='Search & Replace Tool'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kfilereplace/"
+ install='kdewebdev.install'
+ cd $srcdir/build/kfilereplace
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfilereplace
+ make DESTDIR=$pkgdir install
+}
+
+package_kdewebdev-kimagemapeditor() {
+ pkgdesc='HTML Image Map Editor'
+ depends=('kdebase-runtime')
+ install='kdewebdev-kimagemapeditor.install'
+ cd $srcdir/build/kimagemapeditor
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kimagemapeditor
+ make DESTDIR=$pkgdir install
+}
+
+package_kdewebdev-klinkstatus() {
+ pkgdesc='Link Checker'
+ depends=('kdepim-runtime' 'tidyhtml')
+ install='kdewebdev.install'
+ cd $srcdir/build/klinkstatus
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klinkstatus
+ make DESTDIR=$pkgdir install
+}
+
+package_kdewebdev-kommander() {
+ pkgdesc='Executor for Kommander dialogs'
+ depends=('kdebase-runtime')
+ cd $srcdir/build/kommander
+ make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdewebdev/kdewebdev-kimagemapeditor.install b/kde-unstable/kdewebdev/kdewebdev-kimagemapeditor.install
new file mode 100644
index 000000000..5495fb1b5
--- /dev/null
+++ b/kde-unstable/kdewebdev/kdewebdev-kimagemapeditor.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/kdewebdev/kdewebdev.install b/kde-unstable/kdewebdev/kdewebdev.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdewebdev/kdewebdev.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/libkdcraw/PKGBUILD b/kde-unstable/libkdcraw/PKGBUILD
new file mode 100644
index 000000000..5abf08e05
--- /dev/null
+++ b/kde-unstable/libkdcraw/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143316 2011-11-24 16:14:06Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkdcraw
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="A C++ interface used to decode RAW picture"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs' 'lcms')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('67f6b65a98a4ab24e946fdf2c4b3523c803c935a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkdcraw/libkdcraw.install b/kde-unstable/libkdcraw/libkdcraw.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/libkdcraw/libkdcraw.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/libkdeedu/PKGBUILD b/kde-unstable/libkdeedu/PKGBUILD
new file mode 100644
index 000000000..15624153e
--- /dev/null
+++ b/kde-unstable/libkdeedu/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143312 2011-11-24 16:14:02Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkdeedu
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="Libraries used by KDE Education applications"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+replaces=('kdeedu-libkdeedu' 'kdeedu-data')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('31113d9c884d37d36a6af10d5a3b9ab66dcb7396')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkdeedu/libkdeedu.install b/kde-unstable/libkdeedu/libkdeedu.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/libkdeedu/libkdeedu.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/libkexiv2/PKGBUILD b/kde-unstable/libkexiv2/PKGBUILD
new file mode 100644
index 000000000..aaf47b893
--- /dev/null
+++ b/kde-unstable/libkexiv2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 143318 2011-11-24 16:14:08Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkexiv2
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="A library to manipulate pictures metadata"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('50916f1f47653f1a3fb84f07cd8eeed4296bf9b1')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkipi/PKGBUILD b/kde-unstable/libkipi/PKGBUILD
new file mode 100644
index 000000000..0e45757c6
--- /dev/null
+++ b/kde-unstable/libkipi/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143320 2011-11-24 16:14:10Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libkipi
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="An interface to use kipi-plugins from a KDE application"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('cd223fb1dbdbfbdea39b3abf79291fe81f534906')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libkipi/libkipi.install b/kde-unstable/libkipi/libkipi.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/libkipi/libkipi.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/kde-unstable/libksane/PKGBUILD b/kde-unstable/libksane/PKGBUILD
new file mode 100644
index 000000000..58f01f20a
--- /dev/null
+++ b/kde-unstable/libksane/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 143322 2011-11-24 16:14:12Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libksane
+pkgver=4.7.80
+pkgrel=1
+pkgdesc="An image scanning library"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs' 'sane')
+makedepends=('cmake' 'automoc4')
+replaces=('kdegraphics-libs')
+conflicts=('kdegraphics-libs')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('331914883d031e9e56560d6c6fbef08de304767e')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/libksane/libksane.install b/kde-unstable/libksane/libksane.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/libksane/libksane.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/hugin/PKGBUILD b/staging/hugin/PKGBUILD
new file mode 100644
index 000000000..af979e2b7
--- /dev/null
+++ b/staging/hugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 143262 2011-11-24 07:45:07Z eric $
+# Maintainer: Tobias Kieslich <tobias@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Dominik Ryba <domryba@post.pl>
+
+pkgname=hugin
+pkgver=2011.2.0
+pkgrel=2
+pkgdesc="A frontend to the panorama-tools"
+arch=('i686' 'x86_64')
+url="http://hugin.sourceforge.net/"
+license=('GPL')
+depends=('wxgtk' 'boost-libs' 'enblend-enfuse' 'exiv2' 'autopano-sift-c'
+ 'lapack' 'desktop-file-utils' 'make' 'perl-exiftool')
+makedepends=('zip' 'cmake' 'boost' 'tclap')
+install=hugin.install
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('79dfdac229b4e58f50c893c1238bdd0921ad9da6')
+
+build() {
+ cd "${srcdir}"
+ mkdir build && cd build
+ cmake "${srcdir}/${pkgname}-${pkgver}" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_EXE_LINKER_FLAGS="-lpthread" \
+ -DENABLE_LAPACK=yes
+ make
+}
+
+package(){
+ cd "${srcdir}/build"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/hugin/hugin.install b/staging/hugin/hugin.install
new file mode 100644
index 000000000..362749233
--- /dev/null
+++ b/staging/hugin/hugin.install
@@ -0,0 +1,15 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/gnome
+ update-desktop-database -q
+ update-mime-database usr/share/mime > /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/gnome
+ update-desktop-database -q
+ update-mime-database usr/share/mime > /dev/null
+}
diff --git a/testing/apr-util/PKGBUILD b/testing/apr-util/PKGBUILD
new file mode 100644
index 000000000..5fc373942
--- /dev/null
+++ b/testing/apr-util/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 143458 2011-11-24 17:02:48Z stephane $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=apr-util
+pkgver=1.3.12
+pkgrel=3
+pkgdesc="The Apache Portable Runtime"
+arch=('i686' 'x86_64')
+url="http://apr.apache.org/"
+depends=('apr' 'gdbm' 'expat' 'db' 'libldap' 'unixodbc')
+options=('!libtool')
+license=('APACHE')
+source=("http://www.apache.org/dist/apr/apr-util-${pkgver}.tar.bz2")
+md5sums=('0f671b037ca62751a8a7005578085560')
+
+build() {
+ cd "${srcdir}/apr-util-${pkgver}"
+ ./configure --prefix=/usr --with-apr=/usr \
+ --without-pgsql --without-mysql --without-sqlite2 --without-sqlite3 \
+ --with-berkeley-db=/usr --with-gdbm=/usr --with-ldap
+ make
+}
+
+package() {
+ cd "${srcdir}/apr-util-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/avahi/PKGBUILD b/testing/avahi/PKGBUILD
new file mode 100644
index 000000000..0d4d0bc97
--- /dev/null
+++ b/testing/avahi/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 143460 2011-11-24 17:02:50Z stephane $
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=avahi
+pkgver=0.6.30
+pkgrel=6
+pkgdesc='A multicast/unicast DNS-SD framework'
+arch=('i686' 'x86_64')
+url='http://www.avahi.org/'
+license=('LGPL')
+depends=('expat' 'libdaemon' 'glib2' 'dbus' 'libcap' 'gdbm')
+optdepends=('gtk3: avahi-discover-standalone, bshell, bssh, bvnc'
+ 'gtk2: gtk2 bindings'
+ 'qt3: qt3 bindings'
+ 'qt: qt bindings'
+ 'pygtk: avahi-bookmarks, avahi-discover'
+ 'twisted: avahi-bookmarks'
+ 'mono: mono bindings'
+ 'dbus-python: avahi-discover'
+ 'nss-mdns: NSS support for mDNS')
+makedepends=('qt' 'qt3' 'pygtk' 'mono' 'intltool' 'dbus-python'
+ 'gtk-sharp-2' 'gobject-introspection' 'gtk3')
+backup=(etc/avahi/avahi-daemon.conf etc/avahi/services/{sftp-,}ssh.service)
+install=install
+conflicts=('howl' 'mdnsresponder')
+provides=('howl' 'mdnsresponder')
+replaces=('howl' 'mdnsresponder')
+options=('!libtool')
+source=("http://www.avahi.org/download/avahi-${pkgver}.tar.gz"
+ 'gnome-nettool.png'
+ 'rc.d.patch')
+sha1sums=('5b77443537600a00770e4c77e3c443eeb5861d06'
+ 'cf56387c88aed246b9f435efc182ef44de4d52f3'
+ '625ad7c131c0c1c383caeddef18fc7a32d8f3ab9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's/netdev/network/g' avahi-daemon/avahi-dbus.conf
+ patch -p1 -i "../rc.d.patch"
+
+ # pygtk requires python2; make it explicit in case other python are installed: FS#21865
+ PYTHON=python2 \
+ PKG_CONFIG_PATH=/opt/qt/lib/pkgconfig \
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-monodoc \
+ --disable-doxygen-doc \
+ --disable-xmltoman \
+ --enable-compat-libdns_sd \
+ --enable-compat-howl \
+ --with-distro=archlinux \
+ --with-avahi-priv-access-group=network \
+ --with-autoipd-user=avahi \
+ --with-autoipd-group=avahi \
+ --with-systemdsystemunitdir=/lib/systemd/system # See FS#20999
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m 644 ../gnome-nettool.png "${pkgdir}"/usr/share/pixmaps/gnome-nettool.png
+
+ cd "${pkgdir}"
+ sed -i '1c #!/usr/bin/python2' usr/bin/avahi-{bookmarks,discover}
+ # howl and mdnsresponder compatability
+ (cd usr/include; ln -s avahi-compat-libdns_sd/dns_sd.h dns_sd.h; ln -s avahi-compat-howl howl)
+ (cd usr/lib/pkgconfig; ln -s avahi-compat-howl.pc howl.pc)
+}
diff --git a/testing/avahi/gnome-nettool.png b/testing/avahi/gnome-nettool.png
new file mode 100644
index 000000000..227d0678a
--- /dev/null
+++ b/testing/avahi/gnome-nettool.png
Binary files differ
diff --git a/testing/avahi/install b/testing/avahi/install
new file mode 100644
index 000000000..7c75c3dd4
--- /dev/null
+++ b/testing/avahi/install
@@ -0,0 +1,21 @@
+post_install() {
+ getent group avahi &>/dev/null || groupadd -r -g 84 avahi >/dev/null
+ getent passwd avahi &>/dev/null || useradd -r -u 84 -g avahi -d / -s /bin/false -c avahi avahi >/dev/null
+
+ cat <<EOF
+==> The following daemons may be added to DAEMONS in /etc/rc.conf:
+==> avahi-daemon: the mdns responder, you probably want this.
+==> dbus needs to be running when you start it.
+==> avahi-dnsconfd: daemon used for peer-to-peer automatic dns
+==> configuration on dhcp-less networks.
+
+==> To use some of the client applications you will have to install python.
+==> In addition, pygtk is required for the graphical ones and
+==> twisted for avahi-bookmarks.
+EOF
+}
+
+post_remove() {
+ getent passwd avahi &>/dev/null && userdel avahi >/dev/null
+ getent group avahi &>/dev/null && groupdel avahi >/dev/null
+}
diff --git a/testing/avahi/rc.d.patch b/testing/avahi/rc.d.patch
new file mode 100644
index 000000000..fd735734b
--- /dev/null
+++ b/testing/avahi/rc.d.patch
@@ -0,0 +1,11 @@
+diff -aur old/initscript/archlinux/avahi-daemon.in new/initscript/archlinux/avahi-daemon.in
+--- old/initscript/archlinux/avahi-daemon.in 2011-06-24 03:07:00.916170590 +0200
++++ new/initscript/archlinux/avahi-daemon.in 2011-06-24 03:16:32.220596377 +0200
+@@ -33,6 +33,7 @@
+
+ case "$1" in
+ start)
++ ck_daemon dbus && { echo -n "Start dbus first." >&2; stat_die; }
+ stat_busy "Starting $DESC"
+ $DAEMON -D > /dev/null 2>&1
+ if [ $? -gt 0 ]; then
diff --git a/testing/bison/PKGBUILD b/testing/bison/PKGBUILD
new file mode 100644
index 000000000..ea49664d9
--- /dev/null
+++ b/testing/bison/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 143498 2011-11-25 03:24:12Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+
+pkgname=bison
+pkgver=2.5
+pkgrel=3
+pkgdesc="The GNU general-purpose parser generator"
+arch=('i686' 'x86_64')
+license=('GPL3')
+url="http://www.gnu.org/software/bison/bison.html"
+depends=('glibc' 'm4' 'sh')
+groups=('base-devel')
+install=bison.install
+source=(ftp://ftp.gnu.org/gnu/bison/${pkgname}-${pkgver}.tar.bz2{,.sig}
+ bison-2.5-undefined-reference.patch)
+md5sums=('9dba20116b13fc61a0846b0058fbe004'
+ '610b73db67bd4760209458efe7554ca3'
+ '2015c5421b2ad99032154f27bf5c4772')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # workaround for FS#26794
+ patch -Np1 -i $srcdir/bison-2.5-undefined-reference.patch
+
+ ./configure --prefix=/usr --datadir=/usr/share
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/testing/bison/bison-2.5-undefined-reference.patch b/testing/bison/bison-2.5-undefined-reference.patch
new file mode 100644
index 000000000..ea390259e
--- /dev/null
+++ b/testing/bison/bison-2.5-undefined-reference.patch
@@ -0,0 +1,11 @@
+diff -Naur bison-2.5-orig/lib/yyerror.c bison-2.5/lib/yyerror.c
+--- bison-2.5-orig/lib/yyerror.c 2011-01-04 00:50:42.000000000 +1000
++++ bison-2.5/lib/yyerror.c 2011-11-09 22:01:48.725507079 +1000
+@@ -18,6 +18,7 @@
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+ #include <stdio.h>
++#undef fprintf
+
+ int yyerror (char const *);
+
diff --git a/testing/bison/bison.install b/testing/bison/bison.install
new file mode 100644
index 000000000..0081a194f
--- /dev/null
+++ b/testing/bison/bison.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+file=bison.info.gz
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+}
diff --git a/testing/gdbm/PKGBUILD b/testing/gdbm/PKGBUILD
new file mode 100644
index 000000000..f5bf6c5ac
--- /dev/null
+++ b/testing/gdbm/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 143462 2011-11-24 17:02:53Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=gdbm
+pkgver=1.10
+pkgrel=1
+pkgdesc="GNU database library"
+url="http://www.gnu.org/software/gdbm/gdbm.html"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('glibc' 'sh')
+source=(ftp://ftp.gnu.org/gnu/gdbm/${pkgname}-${pkgver}.tar.gz
+ gdbm-1.10-zeroheaders.patch)
+options=('!libtool' '!makeflags')
+install=gdbm.install
+md5sums=('88770493c2559dc80b561293e39d3570'
+ 'ac255b10452005237836cd2d3a470733')
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Prevent gdbm from storing uninitialized memory content
+ # to database files. This patch improves security, as the
+ # uninitialized memory might contain sensitive informations
+ # from other applications.
+ # https://bugzilla.redhat.com/show_bug.cgi?id=4457
+ # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=208927
+ patch -Np1 -i ../gdbm-1.10-zeroheaders.patch
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --enable-libgdbm-compat
+
+ make prefix=/usr
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix="${pkgdir}"/usr \
+ manprefix="${pkgdir}"/usr/share/man \
+ man3dir="${pkgdir}"/usr/share/man/man3 \
+ infodir="${pkgdir}"/usr/share/info \
+ install
+
+ # create symlinks for compatibility
+ install -dm755 "${pkgdir}"/usr/include/gdbm
+ ln -sf ../gdbm.h "${pkgdir}"/usr/include/gdbm/gdbm.h
+ ln -sf ../ndbm.h "${pkgdir}"/usr/include/gdbm/ndbm.h
+ ln -sf ../dbm.h "${pkgdir}"/usr/include/gdbm/dbm.h
+}
diff --git a/testing/gdbm/gdbm-1.10-zeroheaders.patch b/testing/gdbm/gdbm-1.10-zeroheaders.patch
new file mode 100644
index 000000000..a268f6bdf
--- /dev/null
+++ b/testing/gdbm/gdbm-1.10-zeroheaders.patch
@@ -0,0 +1,33 @@
+diff -up gdbm-1.10/src/falloc.c.zeroheaders gdbm-1.10/src/falloc.c
+--- gdbm-1.10/src/falloc.c.zeroheaders 2011-11-11 11:59:11.000000000 +0100
++++ gdbm-1.10/src/falloc.c 2011-11-14 17:34:32.487604027 +0100
+@@ -255,7 +255,7 @@ push_avail_block (GDBM_FILE dbf)
+
+
+ /* Split the header block. */
+- temp = (avail_block *) malloc (av_size);
++ temp = (avail_block *) calloc (1, av_size);
+ if (temp == NULL) _gdbm_fatal (dbf, _("malloc error"));
+ /* Set the size to be correct AFTER the pop_avail_block. */
+ temp->size = dbf->header->avail.size;
+diff -up gdbm-1.10/src/gdbmopen.c.zeroheaders gdbm-1.10/src/gdbmopen.c
+--- gdbm-1.10/src/gdbmopen.c.zeroheaders 2011-11-11 19:39:42.000000000 +0100
++++ gdbm-1.10/src/gdbmopen.c 2011-11-14 17:33:24.867608650 +0100
+@@ -264,7 +264,7 @@ gdbm_open (const char *file, int block_s
+ (dbf->header->block_size - sizeof (hash_bucket))
+ / sizeof (bucket_element) + 1;
+ dbf->header->bucket_size = dbf->header->block_size;
+- dbf->bucket = (hash_bucket *) malloc (dbf->header->bucket_size);
++ dbf->bucket = (hash_bucket *) calloc (1, dbf->header->bucket_size);
+ if (dbf->bucket == NULL)
+ {
+ gdbm_close (dbf);
+@@ -456,7 +456,7 @@ _gdbm_init_cache(GDBM_FILE dbf, size_t s
+ for(index = 0; index < size; index++)
+ {
+ (dbf->bucket_cache[index]).ca_bucket
+- = (hash_bucket *) malloc (dbf->header->bucket_size);
++ = (hash_bucket *) calloc (1, dbf->header->bucket_size);
+ if ((dbf->bucket_cache[index]).ca_bucket == NULL)
+ {
+ gdbm_errno = GDBM_MALLOC_ERROR;
diff --git a/testing/gdbm/gdbm.install b/testing/gdbm/gdbm.install
new file mode 100644
index 000000000..2d1ce2c5a
--- /dev/null
+++ b/testing/gdbm/gdbm.install
@@ -0,0 +1,21 @@
+infodir=/usr/share/info
+filelist=(gdbm.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/testing/lighttpd/PKGBUILD b/testing/lighttpd/PKGBUILD
new file mode 100644
index 000000000..1a41dd995
--- /dev/null
+++ b/testing/lighttpd/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 143464 2011-11-24 17:02:56Z stephane $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=lighttpd
+pkgver=1.4.29
+pkgrel=3
+pkgdesc='a secure, fast, compliant and very flexible web-server'
+license=('custom')
+arch=('i686' 'x86_64')
+url="http://www.lighttpd.net/"
+depends=('pcre' 'bzip2' 'libldap' 'util-linux')
+makedepends=('fcgi' 'libmysqlclient' 'lua' 'libxml2' 'e2fsprogs' 'sqlite3' 'gdbm' 'pkgconfig')
+optdepends=('libxml2: mod_webdav'
+ 'lua: mod_cml/mod_magnet'
+ 'libmysqlclient: mod_mysql_vhost'
+ 'sqlite3: mod_webdav')
+backup=('etc/lighttpd/lighttpd.conf' 'etc/logrotate.d/lighttpd')
+options=('!libtool' 'emptydirs')
+source=("http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${pkgver}.tar.bz2"
+ "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${pkgver}.tar.bz2.asc"
+ 'lighttpd.rc.d' 'lighttpd.logrotate.d' 'lighttpd.conf')
+md5sums=('e6e67b09986cb504db630b5a86b2dd76'
+ 'de2afb4ed6a088fd7fa5f13c387a08f0'
+ '268386e71f5748dc1d887b9a0ab65589'
+ '913e2157fa78d990c32146f387d44c2b'
+ 'acdaa94299e6299cb5085e6d88babeca')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/lighttpd/modules \
+ --sysconfdir=/etc/lighttpd \
+ --with-mysql \
+ --with-ldap \
+ --with-attr \
+ --with-openssl \
+ --with-kerberos5 \
+ --without-fam \
+ --with-webdav-props \
+ --with-webdav-locks \
+ --with-gdbm \
+ --with-memcache \
+ --with-lua
+ make
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+
+ install -D -m755 $srcdir/lighttpd.rc.d $pkgdir/etc/rc.d/lighttpd
+ install -D -m644 $srcdir/lighttpd.logrotate.d $pkgdir/etc/logrotate.d/lighttpd
+ install -D -m644 $srcdir/lighttpd.conf $pkgdir/etc/lighttpd/lighttpd.conf
+ install -d -m755 -o http -g http $pkgdir/var/{log,cache}/lighttpd/
+
+ pushd doc/config >/dev/null
+ find . -type f ! -name 'Makefile*' -exec install -D -m644 {} ${pkgdir}/usr/share/doc/lighttpd/config/{} \;
+ popd >/dev/null
+
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/testing/lighttpd/lighttpd.conf b/testing/lighttpd/lighttpd.conf
new file mode 100644
index 000000000..4ca1b23a4
--- /dev/null
+++ b/testing/lighttpd/lighttpd.conf
@@ -0,0 +1,12 @@
+# This is a minimal example config
+# See /usr/share/doc/lighttpd
+# and http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions
+
+server.port = 80
+server.username = "http"
+server.groupname = "http"
+server.document-root = "/srv/http"
+server.errorlog = "/var/log/lighttpd/error.log"
+dir-listing.activate = "enable"
+index-file.names = ( "index.html" )
+mimetype.assign = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png" )
diff --git a/testing/lighttpd/lighttpd.logrotate.d b/testing/lighttpd/lighttpd.logrotate.d
new file mode 100644
index 000000000..5ff32a0c5
--- /dev/null
+++ b/testing/lighttpd/lighttpd.logrotate.d
@@ -0,0 +1,6 @@
+/var/log/lighttpd/*log {
+ missingok
+ postrotate
+ /etc/rc.d/lighttpd reload >/dev/null || true
+ endscript
+}
diff --git a/testing/lighttpd/lighttpd.rc.d b/testing/lighttpd/lighttpd.rc.d
new file mode 100644
index 000000000..88f0a1474
--- /dev/null
+++ b/testing/lighttpd/lighttpd.rc.d
@@ -0,0 +1,132 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+
+pid_file='/var/run/lighttpd/lighttpd-angel.pid'
+
+get_pid() {
+ if [ -r "${pid_file}" ]; then
+ cat "${pid_file}"
+ else
+ pgrep -f /usr/sbin/lighttpd-angel
+ fi
+}
+
+test_config() {
+ stat_busy 'Checking configuration'
+ if [ $(id -u) -ne 0 ]; then
+ stat_append '(This script must be run as root)'
+ stat_die
+ fi
+
+ if [ ! -r /etc/lighttpd/lighttpd.conf ]; then
+ stat_append '(/etc/lighttpd/lighttpd.conf not found)'
+ stat_die
+ fi
+
+ /usr/sbin/lighttpd -t -f /etc/lighttpd/lighttpd.conf >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_append '(error in /etc/lighttpd/lighttpd.conf)'
+ stat_die
+ fi
+
+ local piddir=$(dirname "${pid_file}")
+ if [ ! -d "${piddir}" ]; then
+ install -d -m755 -o http -g http "${piddir}"
+ fi
+
+ stat_done
+}
+
+start() {
+ stat_busy 'Starting lighttpd'
+
+ local PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ nohup /usr/sbin/lighttpd-angel -D -f /etc/lighttpd/lighttpd.conf >>/var/log/lighttpd/lighttpd-angel.log 2>&1 &
+ if [ $? -gt 0 ]; then
+ stat_die
+ else
+ echo $! > "${pid_file}"
+ add_daemon lighttpd
+ stat_done
+ fi
+ else
+ stat_die
+ fi
+}
+
+stop() {
+ stat_busy 'Stopping lighttpd'
+ local PID=$(get_pid)
+ [ -n "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ [ -f "${pid_file}" ] && rm -f "${pid_file}"
+ rm_daemon lighttpd
+ stat_done
+ fi
+}
+
+gracefull-stop() {
+ stat_busy 'Stopping lighttpd gracefully'
+ local PID=$(get_pid)
+ [ -n "$PID" ] && kill -INT $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ [ -f "${pid_file}" ] && rm -f "${pid_file}"
+ rm_daemon lighttpd
+ stat_done
+ fi
+}
+
+reload() {
+ stat_busy 'Reloading lighttpd'
+ local PID=$(get_pid)
+ [ -n "$PID" ] && kill -HUP $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_die
+ else
+ stat_done
+ fi
+}
+
+
+case "$1" in
+ start)
+ test_config
+ start
+ ;;
+ stop)
+ test_config
+ stop
+ ;;
+ gracefull-stop)
+ test_config
+ stop
+ ;;
+ reload)
+ test_config
+ reload
+ ;;
+ restart)
+ test_config
+ stop
+ while [ -n "$(get_pid)" ]; do
+ sleep 1
+ done
+ start
+ ;;
+ status)
+ stat_busy 'Checking lighttpd status'
+ ck_status lighttpd
+ ;;
+ *)
+ echo "usage: $0 {start|stop|gracefull-stop|reload|restart|status}"
+esac
+
+exit 0
diff --git a/testing/links/PKGBUILD b/testing/links/PKGBUILD
new file mode 100644
index 000000000..511ef96d3
--- /dev/null
+++ b/testing/links/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 143456 2011-11-24 16:44:18Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=links
+pkgver=2.4
+pkgrel=1
+pkgdesc="A text WWW browser, similar to Lynx"
+arch=('i686' 'x86_64')
+url="http://links.twibright.com/"
+license=('GPL')
+depends=('bzip2' 'zlib' 'openssl' 'gpm')
+makedepends=('libtiff' 'libpng' 'libxt')
+optdepends=('libx11: for using xlinks' 'libtiff: for using xlinks' 'libpng: for using xlinks')
+provides=('links-g')
+conflicts=('links-g')
+replaces=('links-g')
+source=(http://links.twibright.com/download/${pkgname}-${pkgver}.tar.bz2 links.desktop)
+sha1sums=('c09fcb03874b1d0586f582f73833bb2f4c9ed7ac'
+ 'f600e27c2a71184444f7dd07a10230aa44463a02')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ (cd intl; ./gen-intl; ./synclang)
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-javascript \
+ --enable-graphics --with-x --with-fb
+ make
+ mv links xlinks
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-javascript \
+ --disable-graphics --without-x --without-fb
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 xlinks "${pkgdir}/usr/bin/xlinks"
+ ln -s links.1.gz "${pkgdir}/usr/share/man/man1/xlinks.1.gz"
+
+ install -D -m644 "${srcdir}/links.desktop" "${pkgdir}/usr/share/applications/links.desktop"
+ install -d "${pkgdir}/usr/share/pixmaps"
+ install -m644 links_16x16_1.xpm links_16x16_2.xpm links_32x32.xpm "${pkgdir}/usr/share/pixmaps/"
+
+ install -d "${pkgdir}/usr/share/doc/links/calibration"
+ install -m644 doc/links_cal/* "${pkgdir}/usr/share/doc/links/calibration/"
+}
diff --git a/testing/links/links.desktop b/testing/links/links.desktop
new file mode 100644
index 000000000..9d6338a5b
--- /dev/null
+++ b/testing/links/links.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=Links
+Exec=xlinks -g
+Icon=links_32x32.xpm
+Type=Application
+Terminal=false
+Categories=Network;WebBrowser;
diff --git a/testing/man-db/1361_1360.diff b/testing/man-db/1361_1360.diff
new file mode 100644
index 000000000..c93856980
--- /dev/null
+++ b/testing/man-db/1361_1360.diff
@@ -0,0 +1,25 @@
+=== modified file 'src/straycats.c'
+--- src/straycats.c 2011-01-10 20:08:22 +0000
++++ src/straycats.c 2011-06-04 06:34:51 +0000
+@@ -177,6 +177,7 @@
+ char *lang, *page_encoding;
+ char *mandir_base;
+ pipecmd *col_cmd;
++ char *col_locale;
+ char *fullpath;
+
+ /* we have a straycat. Need to filter it and get
+@@ -226,6 +227,12 @@
+ col_cmd = pipecmd_new_argstr
+ (get_def_user ("col", COL));
+ pipecmd_arg (col_cmd, "-bx");
++ col_locale = find_charset_locale ("UTF-8");
++ if (col_locale) {
++ pipecmd_setenv (col_cmd, "LC_CTYPE",
++ col_locale);
++ free (col_locale);
++ }
+ pipeline_command (decomp, col_cmd);
+
+ fullpath = canonicalize_file_name (catdir);
+
diff --git a/testing/man-db/PKGBUILD b/testing/man-db/PKGBUILD
new file mode 100644
index 000000000..f2cdff3c3
--- /dev/null
+++ b/testing/man-db/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 143466 2011-11-24 17:02:58Z stephane $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
+
+pkgname=man-db
+pkgver=2.6.0.2
+pkgrel=3
+pkgdesc="A utility for reading man pages"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/man-db/"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=( 'bash' 'gdbm' 'zlib' 'groff' 'libpipeline')
+optdepends=('less' 'gzip')
+backup=('etc/man_db.conf'
+ 'etc/cron.daily/man-db')
+conflicts=('man')
+provides=('man')
+replaces=('man')
+install=${pkgname}.install
+source=(http://savannah.nongnu.org/download/man-db/$pkgname-$pkgver.tar.gz
+ 1361_1360.diff
+ #http://launchpad.net/man-db/main/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz
+ convert-mans man-db.cron.daily)
+options=('!libtool')
+md5sums=('2b41c96efec032d2b74ccbf2e401f93e'
+ '08b76b1f924c5493a280b79fc0aebde4'
+ '2b7662a7d5b33fe91f9f3e034361a2f6'
+ 'd30c39ae47560304471b5461719e0f03')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # https://bugs.archlinux.org/task/18722
+ patch -Np0 -i $srcdir/1361_1360.diff
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
+ --with-db=gdbm --disable-setuid --enable-mandirs=GNU \
+ --with-sections="1 n l 8 3 0 2 5 4 9 6 7"
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # part of groff pkg
+ rm -f ${pkgdir}/usr/bin/zsoelim
+
+ # script from LFS to convert manpages, see
+ # http://www.linuxfromscratch.org/lfs/view/6.4/chapter06/man-db.html
+ install -D -m755 ${srcdir}/convert-mans ${pkgdir}/usr/bin/convert-mans
+
+ #install whatis cron script
+ install -D -m744 ${srcdir}/man-db.cron.daily ${pkgdir}/etc/cron.daily/man-db
+}
+
diff --git a/testing/man-db/convert-mans b/testing/man-db/convert-mans
new file mode 100644
index 000000000..58a0224b0
--- /dev/null
+++ b/testing/man-db/convert-mans
@@ -0,0 +1,11 @@
+#!/bin/sh -e
+FROM="$1"
+TO="$2"
+shift ; shift
+while [ $# -gt 0 ]
+do
+ FILE="$1"
+ shift
+ iconv -f "$FROM" -t "$TO" "$FILE" >.tmp.iconv
+ mv .tmp.iconv "$FILE"
+done
diff --git a/testing/man-db/man-db.cron.daily b/testing/man-db/man-db.cron.daily
new file mode 100755
index 000000000..53e66e1e9
--- /dev/null
+++ b/testing/man-db/man-db.cron.daily
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# nicenesses range from -20 (most favorable scheduling) to 19 (least favorable)
+NICE=19
+
+# 0 for none, 1 for real time, 2 for best-effort, 3 for idle
+IONICE_CLASS=2
+
+# 0-7 (for IONICE_CLASS 1 and 2 only), 0=highest, 7=lowest
+IONICE_PRIORITY=7
+
+UPDATEMANDB="/usr/bin/mandb --quiet"
+
+# Update the "whatis" database
+#/usr/sbin/makewhatis -u -w
+
+# taken from Debian
+# man-db cron daily
+set -e
+
+if ! [ -d /var/cache/man ]; then
+ # Recover from deletion, per FHS.
+ mkdir -p /var/cache/man
+ chmod 755 /var/cache/man
+fi
+
+# regenerate man database
+
+if [ -x /usr/bin/nice ]; then
+ UPDATEMANDB="/usr/bin/nice -n ${NICE:-19} ${UPDATEMANDB}"
+fi
+
+if [ -x /usr/bin/ionice ]; then
+ UPDATEMANDB="/usr/bin/ionice -c ${IONICE_CLASS:-2} -n ${IONICE_PRIORITY:-7} ${UPDATEMANDB}"
+fi
+
+${UPDATEMANDB}
+
+exit 0
diff --git a/testing/man-db/man-db.install b/testing/man-db/man-db.install
new file mode 100644
index 000000000..f6f0f27a6
--- /dev/null
+++ b/testing/man-db/man-db.install
@@ -0,0 +1,22 @@
+post_install() {
+ echo "it's recommended to create an initial"
+ echo "database running as root:"
+ echo "\"/usr/bin/mandb --quiet\""
+}
+
+post_upgrade() {
+ if [ "`vercmp $2 2.5.3-2`" -lt 0 ]; then
+ echo "systemuser \"man\" is no more required"
+ echo "run \"userdel man\". please also"
+ echo "chown root:root /var/cache/man"
+ fi
+ # force database rebuild to get rid off badly imported pages
+ if [ "`vercmp $2 2.6.0.2`" -lt 0 ]; then
+ echo "(re)building database..."
+ mandb -c --quiet
+ fi
+}
+
+post_remove() {
+ rm -rf /var/cache/man
+}
diff --git a/testing/mutt/PKGBUILD b/testing/mutt/PKGBUILD
new file mode 100644
index 000000000..57b14432d
--- /dev/null
+++ b/testing/mutt/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 143468 2011-11-24 17:03:00Z stephane $
+# Contributor: tobias [tobias [at] archlinux.org]
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=mutt
+pkgver=1.5.21
+pkgrel=6
+pkgdesc='Small but very powerful text-based mail client'
+url='http://www.mutt.org/'
+license=('GPL')
+backup=('etc/Muttrc')
+arch=('i686' 'x86_64')
+optdepends=('smtp-forwarder: to send mail')
+depends=('gpgme' 'ncurses' 'openssl' 'libsasl' 'gdbm' 'libidn' 'mime-types' 'krb5')
+source=("ftp://ftp.mutt.org/mutt/devel/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('a8475f2618ce5d5d33bff85c0affdf21ab1d76b9')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-gpgme \
+ --enable-pop \
+ --enable-imap \
+ --enable-smtp \
+ --enable-hcache \
+ --with-curses=/usr \
+ --with-regex \
+ --with-gss=/usr \
+ --with-ssl=/usr \
+ --with-sasl \
+ --with-idn \
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm "${pkgdir}"/usr/bin/{flea,muttbug}
+ rm "${pkgdir}"/usr/share/man/man1/{flea,muttbug}.1
+ rm "${pkgdir}"/etc/mime.types{,.dist}
+ install -Dm644 contrib/gpg.rc "${pkgdir}"/etc/Muttrc.gpg.dist
+}
diff --git a/testing/mutt/install b/testing/mutt/install
new file mode 100644
index 000000000..d65675c06
--- /dev/null
+++ b/testing/mutt/install
@@ -0,0 +1,8 @@
+post_install() {
+ cat <<EOF
+
+==> For GPG support, add the following to your muttrc:
+==> source /etc/Muttrc.gpg.dist
+
+EOF
+}
diff --git a/testing/ocaml/PKGBUILD b/testing/ocaml/PKGBUILD
new file mode 100644
index 000000000..1ea6e5ccd
--- /dev/null
+++ b/testing/ocaml/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 143470 2011-11-24 17:03:04Z stephane $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgbase='ocaml'
+pkgname=('ocaml' 'ocaml-compiler-libs')
+pkgver=3.12.1
+pkgrel=3
+pkgdesc="A functional language with OO extensions"
+arch=('i686' 'x86_64')
+license=('LGPL2' 'custom: QPL-1.0')
+url="http://caml.inria.fr/"
+depends=('gdbm')
+makedepends=('tk' 'ncurses>=5.6-7' 'libx11')
+optdepends=('ncurses: advanced ncurses features' 'tk: advanced tk features')
+source=(http://caml.inria.fr/distrib/ocaml-3.12/${pkgname}-${pkgver}.tar.gz)
+md5sums=('814a047085f0f901ab7d8e3a4b7a9e65')
+options=('!makeflags' '!emptydirs')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure -prefix /usr
+ make world.opt
+}
+
+package_ocaml() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make PREFIX="${pkgdir}/usr" MANDIR="${pkgdir}/usr/share/man" install
+
+ # Save >10MB with this one, makepkg only strips debug symbols.
+ #find "${pkgdir}/usr/lib" -type f -name '*.so.*' -exec strip --strip-unneeded {} \;
+
+ # install license
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
+
+package_ocaml-compiler-libs() {
+pkgdesc="Several modules used internally by the OCaml compiler"
+license=('custom: QPL-1.0')
+depends=('ocaml')
+optdepends=()
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ # Install compiler libraries
+ local compiler_libs="${pkgdir}/usr/lib/ocaml/compiler-libs"
+ mkdir -p "$compiler_libs"/{parsing,typing,utils}
+ cp parsing/*.{cmi,cmo,cmx,ml,mli,mll,o} "$compiler_libs"/parsing
+ cp typing/*.{cmi,cmo,cmx,ml,mli,o} "$compiler_libs"/typing
+ cp utils/*.{cmi,cmo,cmx,ml,mli,o} "$compiler_libs"/utils
+ # duplicated by installation
+ rm -f "$compiler_libs"/typing/outcometree.{cmi,mli}
+
+ # install license
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/ocaml/fix-ocaml-binutils-2.21.patch b/testing/ocaml/fix-ocaml-binutils-2.21.patch
new file mode 100644
index 000000000..fa7664cec
--- /dev/null
+++ b/testing/ocaml/fix-ocaml-binutils-2.21.patch
@@ -0,0 +1,66 @@
+From: Stephane Glondu <steph@glondu.net>
+Date: Tue, 8 Mar 2011 21:17:40 +0100
+Subject: [PATCH] Fix ocamlopt w.r.t. binutils 2.21
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Bug: http://caml.inria.fr/mantis/view.php?id=5237
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=617404
+Authors: Eric Cooper, spiralvoice
+Reviewed-by: Stéphane Glondu <steph@glondu.net>
+---
+ asmcomp/amd64/emit.mlp | 13 +++++++------
+ asmcomp/i386/emit.mlp | 6 +++---
+ 2 files changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/asmcomp/amd64/emit.mlp b/asmcomp/amd64/emit.mlp
+index 4a3f844..525c6e6 100644
+--- a/asmcomp/amd64/emit.mlp
++++ b/asmcomp/amd64/emit.mlp
+@@ -679,17 +679,18 @@ let fundecl fundecl =
+ emit_all true fundecl.fun_body;
+ List.iter emit_call_gc !call_gc_sites;
+ emit_call_bound_errors ();
++ begin match Config.system with
++ "linux" | "gnu" ->
++ ` .type {emit_symbol fundecl.fun_name},@function\n`;
++ ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
++ | _ -> ()
++ end;
+ if !float_constants <> [] then begin
+ if macosx
+ then ` .literal8\n`
+ else ` .section .rodata.cst8,\"a\",@progbits\n`;
+ List.iter emit_float_constant !float_constants
+- end;
+- match Config.system with
+- "linux" | "gnu" ->
+- ` .type {emit_symbol fundecl.fun_name},@function\n`;
+- ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
+- | _ -> ()
++ end
+
+ (* Emission of data *)
+
+diff --git a/asmcomp/i386/emit.mlp b/asmcomp/i386/emit.mlp
+index 2992f29..0b1252c 100644
+--- a/asmcomp/i386/emit.mlp
++++ b/asmcomp/i386/emit.mlp
+@@ -905,12 +905,12 @@ let fundecl fundecl =
+ emit_all true fundecl.fun_body;
+ List.iter emit_call_gc !call_gc_sites;
+ emit_call_bound_errors ();
+- List.iter emit_float_constant !float_constants;
+- match Config.system with
++ begin match Config.system with
+ "linux_elf" | "bsd_elf" | "gnu" ->
+ ` .type {emit_symbol fundecl.fun_name},@function\n`;
+ ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n`
+- | _ -> ()
++ | _ -> () end;
++ List.iter emit_float_constant !float_constants
+
+
+ (* Emission of data *)
+--
diff --git a/testing/perl/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch b/testing/perl/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch
new file mode 100644
index 000000000..1404460df
--- /dev/null
+++ b/testing/perl/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch
@@ -0,0 +1,83 @@
+From bb249b0b26c2e79a6f55355ef94889070f07fd21 Mon Sep 17 00:00:00 2001
+From: Niko Tyni <ntyni@debian.org>
+Date: Thu, 28 Apr 2011 09:18:54 +0300
+Subject: [PATCH] Append CFLAGS and LDFLAGS to their Config.pm counterparts in
+ EU::CBuilder
+
+Since ExtUtils::CBuilder 0.27_04 (bleadperl commit 06e8058f27e4),
+CFLAGS and LDFLAGS from the environment have overridden the Config.pm
+ccflags and ldflags settings. This can cause binary incompatibilities
+between the core Perl and extensions built with EU::CBuilder.
+
+Append to the Config.pm values rather than overriding them.
+---
+ .../lib/ExtUtils/CBuilder/Base.pm | 6 +++-
+ dist/ExtUtils-CBuilder/t/04-base.t | 25 +++++++++++++++++++-
+ 2 files changed, 28 insertions(+), 3 deletions(-)
+
+diff --git a/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm b/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm
+index b572312..2255c51 100644
+--- a/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm
++++ b/dist/ExtUtils-CBuilder/lib/ExtUtils/CBuilder/Base.pm
+@@ -40,11 +40,13 @@ sub new {
+ $self->{config}{$k} = $v unless exists $self->{config}{$k};
+ }
+ $self->{config}{cc} = $ENV{CC} if defined $ENV{CC};
+- $self->{config}{ccflags} = $ENV{CFLAGS} if defined $ENV{CFLAGS};
++ $self->{config}{ccflags} = join(" ", $self->{config}{ccflags}, $ENV{CFLAGS})
++ if defined $ENV{CFLAGS};
+ $self->{config}{cxx} = $ENV{CXX} if defined $ENV{CXX};
+ $self->{config}{cxxflags} = $ENV{CXXFLAGS} if defined $ENV{CXXFLAGS};
+ $self->{config}{ld} = $ENV{LD} if defined $ENV{LD};
+- $self->{config}{ldflags} = $ENV{LDFLAGS} if defined $ENV{LDFLAGS};
++ $self->{config}{ldflags} = join(" ", $self->{config}{ldflags}, $ENV{LDFLAGS})
++ if defined $ENV{LDFLAGS};
+
+ unless ( exists $self->{config}{cxx} ) {
+ my ($ccpath, $ccbase, $ccsfx ) = fileparse($self->{config}{cc}, qr/\.[^.]*/);
+diff --git a/dist/ExtUtils-CBuilder/t/04-base.t b/dist/ExtUtils-CBuilder/t/04-base.t
+index c3bf6b5..1bb15aa 100644
+--- a/dist/ExtUtils-CBuilder/t/04-base.t
++++ b/dist/ExtUtils-CBuilder/t/04-base.t
+@@ -1,7 +1,7 @@
+ #! perl -w
+
+ use strict;
+-use Test::More tests => 50;
++use Test::More tests => 64;
+ use Config;
+ use Cwd;
+ use File::Path qw( mkpath );
+@@ -326,6 +326,29 @@ is_deeply( $mksymlists_args,
+ "_prepare_mksymlists_args(): got expected arguments for Mksymlists",
+ );
+
++my %testvars = (
++ CFLAGS => 'ccflags',
++ LDFLAGS => 'ldflags',
++);
++
++while (my ($VAR, $var) = each %testvars) {
++ local $ENV{$VAR};
++ $base = ExtUtils::CBuilder::Base->new( quiet => 1 );
++ ok( $base, "ExtUtils::CBuilder::Base->new() returned true value" );
++ isa_ok( $base, 'ExtUtils::CBuilder::Base' );
++ like($base->{config}{$var}, qr/\Q$Config{$var}/,
++ "honours $var from Config.pm");
++
++ $ENV{$VAR} = "-foo -bar";
++ $base = ExtUtils::CBuilder::Base->new( quiet => 1 );
++ ok( $base, "ExtUtils::CBuilder::Base->new() returned true value" );
++ isa_ok( $base, 'ExtUtils::CBuilder::Base' );
++ like($base->{config}{$var}, qr/\Q$ENV{$VAR}/,
++ "honours $VAR from the environment");
++ like($base->{config}{$var}, qr/\Q$Config{$var}/,
++ "doesn't override $var from Config.pm with $VAR from the environment");
++}
++
+ #####
+
+ for ($source_file, $object_file, $lib_file) {
+--
+1.7.4.4
+
diff --git a/testing/perl/ChangeLog b/testing/perl/ChangeLog
new file mode 100644
index 000000000..9add39e20
--- /dev/null
+++ b/testing/perl/ChangeLog
@@ -0,0 +1,66 @@
+2011-06-22 Angel Velasquez <angvp@archlinux.org>
+ * Added a patch for ExtUtils doesnt overwrite CFLAGS and LDFLAGS
+ * Fixed #FS22197, FS#22441, FS#24767
+ * Rebuilt perl 5.14.1-2 against db 5.2.28
+
+2011-06-16 Angel Velasquez <angvp@archlinux.org>
+ * Fixed #FS24660
+ * Rebuilt against db 5.2.28
+
+2011-05-16 Angel Velasquez <angvp@archlinux.org>
+ * perl 5.14.0
+ * Removed patch for h2ph warning from 5.12.3
+ * Removed provides array, you can use corelist -v 5.14.0 to know the
+ modules included with the perl core, through Module::CoreList (thx j3nnn1
+ for the tip)
+
+2010-11-07 kevin <kevin@archlinux.org>
+
+ * perl 5.12.2-1
+ - Using /usr/bin/*_perl for script directories
+
+2010-11-06 kevin <kevin@archlinux.org>
+
+ - Removed otherlibdirs directive from Configure
+ - Removed /usr/*/perl5/site_perl/5.10.1 from INC
+ - Finally removed legacy dirs /usr/lib/perl5/current and
+ /usr/lib/perl5/site_perl/current from @INC
+
+2010-05-23 kevin <kevin@archlinux.org>
+
+ * perl 5.12.1-2
+ - Francois updated the provides array.
+
+2010-05-23 kevin <kevin@archlinux.org>
+
+ * perl 5.12.1-1
+
+2010-05-16 kevin <kevin@archlinux.org>
+
+ * perl 5.12.0-2
+
+2010-05-12 kevin <kevin@archlinux.org>
+
+ - FS#19411. Removed the for loop in perlbin.sh which didn't work on zsh.
+ This makes the loop variables unnecessary so the script no longer
+ pollutes the user's environment.
+ - FS#19427. Added /usr/*/perl5/site_perl/5.10.1 to otherlibdirs to support
+ user built modules.
+
+2010-05-09 kevin <kevin@archlinux.org>
+
+ * perl 5.12.0-1
+ - Modified perlbin.sh to only add existing dirs to PATH. Fixes FS#17402,
+ path points to non-existant directories
+
+2010-05-07 kevin <kevin@archlinux.org>
+
+ - Added this changelog.
+ - Added -Dinc_version_list=none to fix FS#19136, double entry in @INC.
+ This removes the duplicates and versioned directory entries.
+ - Change scriptdirs to /usr/lib/perl5/{core,vendor,site}_perl/bin to fix
+ Fix FS#13808, binaries don't follow FHS.
+ - Stopped using versioned directories in sitelib and sitearch.
+
+
+# vim: set ft=changelog ts=4 sw=4 et:
diff --git a/testing/perl/PKGBUILD b/testing/perl/PKGBUILD
new file mode 100644
index 000000000..496ca3fdd
--- /dev/null
+++ b/testing/perl/PKGBUILD
@@ -0,0 +1,109 @@
+# $Id: PKGBUILD 143472 2011-11-24 17:03:10Z stephane $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: kevin <kevin.archlinux.org>
+# Contributor: judd <jvinet.zeroflux.org>
+# Contributor: francois <francois.archlinux.org>
+pkgname=perl
+pkgver=5.14.2
+pkgrel=3
+pkgdesc="A highly capable, feature-rich programming language"
+arch=(i686 x86_64)
+license=('GPL' 'PerlArtistic')
+url="http://www.perl.org"
+groups=('base')
+depends=('gdbm' 'db' 'coreutils' 'glibc' 'sh')
+changelog=ChangeLog
+source=(http://www.cpan.org/src/5.0/perl-${pkgver}.tar.bz2
+perlbin.sh
+perlbin.csh
+provides.pl
+0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch)
+install=perl.install
+options=('!makeflags' '!purge')
+md5sums=('04a4c5d3c1f9f19d77daff8e8cd19a26'
+ '5ed2542fdb9a60682f215bd33701e61a'
+ '1f0cbbee783e8a6d32f01be5118e0d5e'
+ '31fc0b5bb4935414394c5cfbec2cb8e5'
+ 'c25d86206d649046538c3daab7874564')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ # for x86_64
+ arch_opts="-Dcccdlflags='-fPIC'"
+ else
+ # for i686
+ arch_opts=""
+ fi
+ ./Configure -des -Dusethreads -Duseshrplib -Doptimize="${CFLAGS}" \
+ -Dprefix=/usr -Dinstallprefix=${pkgdir}/usr -Dvendorprefix=/usr \
+ -Dprivlib=/usr/share/perl5/core_perl \
+ -Darchlib=/usr/lib/perl5/core_perl \
+ -Dsitelib=/usr/share/perl5/site_perl \
+ -Dsitearch=/usr/lib/perl5/site_perl \
+ -Dvendorlib=/usr/share/perl5/vendor_perl \
+ -Dvendorarch=/usr/lib/perl5/vendor_perl \
+ -Dscriptdir=/usr/bin/core_perl \
+ -Dsitescript=/usr/bin/site_perl \
+ -Dvendorscript=/usr/bin/vendor_perl \
+ -Dinc_version_list=none \
+ -Dman1ext=1perl -Dman3ext=3perl ${arch_opts} \
+ -Dlddlflags="-shared ${LDFLAGS}" -Dldflags="${LDFLAGS}"
+ patch -Np1 -i $srcdir/0001-Append-CFLAGS-and-LDFLAGS-to-their-Config.pm-counter.patch
+ make
+}
+package() {
+ # hack to work around makepkg running the subshell in check_sanity()
+ new_provides=($(cd "$srcdir/perl-$pkgver"; LD_PRELOAD=./libperl.so ./perl -Ilib "$srcdir/provides.pl" .))
+ provides=(${new_provides[@]})
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make install
+
+ ### Perl Settings ###
+ # Change man page extensions for site and vendor module builds.
+ # Use archlinux email address instead of my own.
+ sed -e '/^man1ext=/ s/1perl/1p/' -e '/^man3ext=/ s/3perl/3pm/' \
+ -e "/^cf_email=/ s/'.*'/'kevin@archlinux.org'/" \
+ -e "/^perladmin=/ s/'.*'/'kevin@archlinux.org'/" \
+ -i ${pkgdir}/usr/lib/perl5/core_perl/Config_heavy.pl
+
+ ### CPAN Settings ###
+ # Set CPAN default config to use the site directories.
+ sed -e '/(makepl_arg =>/ s/""/"INSTALLDIRS=site"/' \
+ -e '/(mbuildpl_arg =>/ s/""/"installdirs=site"/' \
+ -i ${pkgdir}/usr/share/perl5/core_perl/CPAN/FirstTime.pm
+
+ ### CPANPLUS Settings ###
+ # Set CPANPLUS default config to use the site directories.
+ sed -e "/{'makemakerflags'}/ s/'';/'INSTALLDIRS=site';/" \
+ -e "/{'buildflags'}/ s/'';/'installdirs=site';/" \
+ -i ${pkgdir}/usr/share/perl5/core_perl/CPANPLUS/Config.pm
+
+ # Profile script to set paths to perl scripts.
+ install -D -m755 ${srcdir}/perlbin.sh \
+ ${pkgdir}/etc/profile.d/perlbin.sh
+ # Profile script to set paths to perl scripts on csh. (FS#22441)
+ install -D -m755 ${srcdir}/perlbin.csh \
+ ${pkgdir}/etc/profile.d/perlbin.csh
+
+ (cd ${pkgdir}/usr/bin; mv perl${pkgver} perl)
+ (cd ${pkgdir}/usr/bin/core_perl; ln -sf c2ph pstruct; ln -sf s2p psed)
+ grep -Rl "${pkgdir}" ${pkgdir}/usr | \
+ xargs sed -i "s^${pkgdir}^^g"
+
+ # Remove all pod files *except* those under /usr/share/perl5/core_perl/pod/
+ # (FS#16488)
+ rm -f $pkgdir/usr/share/perl5/core_perl/*.pod
+ for d in $pkgdir/usr/share/perl5/core_perl/*; do
+ if [ -d $d -a $(basename $d) != "pod" ]; then
+ find $d -name *.pod -delete
+ fi
+ done
+ find $pkgdir/usr/lib -name *.pod -delete
+ find $pkgdir -name .packlist -delete
+ # Add /usr/lib/perl5/core_perl/CORE/ to standard library path (FS#24660)
+ install -dv ${pkgdir}/etc/ld.so.conf.d
+ echo "/usr/lib/perl5/core_perl/CORE" > ${pkgdir}/etc/ld.so.conf.d/perl.conf
+}
diff --git a/testing/perl/fix-h2ph-and-tests.patch b/testing/perl/fix-h2ph-and-tests.patch
new file mode 100644
index 000000000..a2d176ec6
--- /dev/null
+++ b/testing/perl/fix-h2ph-and-tests.patch
@@ -0,0 +1,104 @@
+From 8d66b3f930dc6d88b524d103e304308ae73a46e7 Mon Sep 17 00:00:00 2001
+From: Robin Barker <rmbarker@cpan.org>
+Date: Thu, 22 Apr 2010 11:51:20 +0100
+Subject: [PATCH 1/1] Fix h2ph and test
+
+---
+ lib/h2ph.t | 12 ++++++++++--
+ utils/h2ph.PL | 28 +++++++++++++++++++++++-----
+ 2 files changed, 33 insertions(+), 7 deletions(-)
+
+diff --git a/lib/h2ph.t b/lib/h2ph.t
+index 27dd7b9..8d62d46 100644
+--- a/lib/h2ph.t
++++ b/lib/h2ph.t
+@@ -18,7 +18,7 @@ if (!(-e $extracted_program)) {
+ exit 0;
+ }
+
+-plan(4);
++plan(5);
+
+ # quickly compare two text files
+ sub txt_compare {
+@@ -41,8 +41,16 @@ $result = runperl( progfile => 'lib/h2ph.pht',
+ stderr => 1 );
+ like( $result, qr/syntax OK$/, "output compiles");
+
++$result = runperl( progfile => '_h2ph_pre.ph',
++ switches => ['-c'],
++ stderr => 1 );
++like( $result, qr/syntax OK$/, "preamble compiles");
++
+ $result = runperl( switches => ["-w"],
+- prog => '$SIG{__WARN__} = sub { die $_[0] }; require q(lib/h2ph.pht);');
++ stderr => 1,
++ prog => <<'PROG' );
++$SIG{__WARN__} = sub { die $_[0] }; require q(lib/h2ph.pht);
++PROG
+ is( $result, '', "output free of warnings" );
+
+ # cleanup
+diff --git a/utils/h2ph.PL b/utils/h2ph.PL
+index 8f56db4..1255807 100644
+--- a/utils/h2ph.PL
++++ b/utils/h2ph.PL
+@@ -401,7 +401,10 @@ if ($opt_e && (scalar(keys %bad_file) > 0)) {
+ exit $Exit;
+
+ sub expr {
+- $new = '"(assembly code)"' and return if /\b__asm__\b/; # freak out.
++ if (/\b__asm__\b/) { # freak out
++ $new = '"(assembly code)"';
++ return
++ }
+ my $joined_args;
+ if(keys(%curargs)) {
+ $joined_args = join('|', keys(%curargs));
+@@ -770,7 +773,7 @@ sub inc_dirs
+ sub build_preamble_if_necessary
+ {
+ # Increment $VERSION every time this function is modified:
+- my $VERSION = 2;
++ my $VERSION = 3;
+ my $preamble = "$Dest_dir/_h2ph_pre.ph";
+
+ # Can we skip building the preamble file?
+@@ -798,7 +801,16 @@ sub build_preamble_if_necessary
+ # parenthesized value: d=(v)
+ $define{$_} = $1;
+ }
+- if ($define{$_} =~ /^([+-]?(\d+)?\.\d+([eE][+-]?\d+)?)[FL]?$/) {
++ if (/^(\w+)\((\w)\)$/) {
++ my($macro, $arg) = ($1, $2);
++ my $def = $define{$_};
++ $def =~ s/$arg/\$\{$arg\}/g;
++ print PREAMBLE <<DEFINE;
++unless (defined &$macro) { sub $macro(\$) { my (\$$arg) = \@_; \"$def\" } }
++
++DEFINE
++ } elsif
++ ($define{$_} =~ /^([+-]?(\d+)?\.\d+([eE][+-]?\d+)?)[FL]?$/) {
+ # float:
+ print PREAMBLE
+ "unless (defined &$_) { sub $_() { $1 } }\n\n";
+@@ -807,8 +819,14 @@ sub build_preamble_if_necessary
+ print PREAMBLE
+ "unless (defined &$_) { sub $_() { $1 } }\n\n";
+ } elsif ($define{$_} =~ /^\w+$/) {
+- print PREAMBLE
+- "unless (defined &$_) { sub $_() { &$define{$_} } }\n\n";
++ my $def = $define{$_};
++ if ($isatype{$def}) {
++ print PREAMBLE
++ "unless (defined &$_) { sub $_() { \"$def\" } }\n\n";
++ } else {
++ print PREAMBLE
++ "unless (defined &$_) { sub $_() { &$def } }\n\n";
++ }
+ } else {
+ print PREAMBLE
+ "unless (defined &$_) { sub $_() { \"",
+--
+1.6.5.2.74.g610f9.dirty
+
diff --git a/testing/perl/perl.install b/testing/perl/perl.install
new file mode 100644
index 000000000..a355c5bbe
--- /dev/null
+++ b/testing/perl/perl.install
@@ -0,0 +1,10 @@
+# arg 1: the new package version
+post_install() {
+ for ver in 5.8.{0,1,2,3,4,5,6,7,8}; do
+ [ -h usr/lib/perl5/$ver ] && rm usr/lib/perl5/$ver
+ [ -h usr/lib/perl5/site_perl/$ver ] && rm usr/lib/perl5/site_perl/$ver
+ [ -h usr/bin/perl$ver ] && rm usr/bin/perl$ver
+ done
+ return 0
+}
+
diff --git a/testing/perl/perlbin.csh b/testing/perl/perlbin.csh
new file mode 100644
index 000000000..535f0b18d
--- /dev/null
+++ b/testing/perl/perlbin.csh
@@ -0,0 +1,15 @@
+# Set path to perl scriptdirs if they exist
+# https://wiki.archlinux.org/index.php/Perl_Policy#Binaries_and_Scripts
+# Added /usr/bin/*_perl dirs for scripts
+# Remove /usr/lib/perl5/*_perl/bin in next release
+
+[ -d /usr/bin/site_perl ] && setenv PATH ${PATH}:/usr/bin/site_perl
+[ -d /usr/lib/perl5/site_perl/bin ] && setenv PATH ${PATH}:/usr/lib/perl5/site_perl/bin
+
+[ -d /usr/bin/vendor_perl ] && setenv PATH ${PATH}:/usr/bin/vendor_perl
+[ -d /usr/lib/perl5/vendor_perl/bin ] && setenv PATH ${PATH}:/usr/lib/perl5/vendor_perl/bin
+
+[ -d /usr/bin/core_perl ] && setenv PATH ${PATH}:/usr/bin/core_perl
+
+# If you have modules in non-standard directories you can add them here.
+#export PERLLIB=dir1:dir2
diff --git a/testing/perl/perlbin.sh b/testing/perl/perlbin.sh
new file mode 100755
index 000000000..20f830436
--- /dev/null
+++ b/testing/perl/perlbin.sh
@@ -0,0 +1,18 @@
+# Set path to perl scriptdirs if they exist
+# https://wiki.archlinux.org/index.php/Perl_Policy#Binaries_and_Scripts
+# Added /usr/bin/*_perl dirs for scripts
+# Remove /usr/lib/perl5/*_perl/bin in next release
+
+[ -d /usr/bin/site_perl ] && PATH=$PATH:/usr/bin/site_perl
+[ -d /usr/lib/perl5/site_perl/bin ] && PATH=$PATH:/usr/lib/perl5/site_perl/bin
+
+[ -d /usr/bin/vendor_perl ] && PATH=$PATH:/usr/bin/vendor_perl
+[ -d /usr/lib/perl5/vendor_perl/bin ] && PATH=$PATH:/usr/lib/perl5/vendor_perl/bin
+
+[ -d /usr/bin/core_perl ] && PATH=$PATH:/usr/bin/core_perl
+
+export PATH
+
+# If you have modules in non-standard directories you can add them here.
+#export PERLLIB=dir1:dir2
+
diff --git a/testing/perl/provides.pl b/testing/perl/provides.pl
new file mode 100644
index 000000000..3bf369577
--- /dev/null
+++ b/testing/perl/provides.pl
@@ -0,0 +1,286 @@
+# provides.pl
+##
+# Script for printing out a provides list of every CPAN distribution
+# that is bundled with perl.
+#
+# Justin Davis <jrcd83@gmail.com>
+
+use warnings 'FATAL' => 'all';
+use strict;
+
+package Common;
+
+sub evalver
+{
+ my ($path, $mod) = @_;
+ $mod ||= "";
+
+ open my $fh, '<', $path or die "open $path: $!";
+
+ while (<$fh>) {
+ next unless /\s*(?:\$${mod}::|\$)VERSION\s*=\s*(.+)/;
+ my $ver = eval $1;
+ return $ver unless $@;
+ warn qq{$path:$. bad version string "$ver"\n};
+ }
+
+ close $fh;
+ return undef;
+}
+
+#-----------------------------------------------------------------------------
+
+package Dists;
+
+sub maindistfile
+{
+ my ($dist, $dir) = @_;
+
+ # libpath is the modern style, installing modules under lib/
+ # with dirs matching the name components.
+ my $libpath = join q{/}, 'lib', split /-/, "${dist}.pm";
+
+ # dumbpath is an old style where there's no subdirs and just
+ # a .pm file.
+ my $dumbpath = $dist;
+ $dumbpath =~ s/\A.+-//;
+ $dumbpath .= ".pm";
+
+ my @paths = ($libpath, $dumbpath);
+ # Some modules (with simple names like XSLoader, lib, etc) are
+ # generated by Makefile.PL. Search through their generating code.
+ push @paths, "${dist}_pm.PL" if $dist =~ tr/-/-/ == 0;
+
+ for my $path (map { "$dir/$_" } @paths) { return $path if -f $path; }
+ return undef;
+}
+
+sub module_ver
+{
+ my ($dist, $dir) = @_;
+
+ my $path = maindistfile($dist, $dir) or return undef;
+
+ my $mod = $dist;
+ $mod =~ s/-/::/g;
+ my $ver = Common::evalver($path, $mod);
+ unless ($ver) {
+ warn "failed to find version in module file for $dist\n";
+ return undef;
+ }
+
+ return $ver;
+}
+
+sub changelog_ver
+{
+ my ($dist, $dir) = @_;
+
+ my $path;
+ for my $tmp (glob "$dir/{Changes,ChangeLog}") {
+ if (-f $tmp) { $path = $tmp; last; }
+ }
+ return undef unless $path;
+
+ open my $fh, '<', $path or die "open: $!";
+ while (<$fh>) {
+ return $1 if /\A\s*(?:$dist[ \t]*)?([0-9._]+)/;
+ return $1 if /\A\s*version\s+([0-9._]+)/i;
+ }
+ close $fh;
+
+ return undef;
+}
+
+# for some reason podlators has a VERSION file with perl code in it
+sub verfile_ver
+{
+ my ($dist, $dir) = @_;
+
+ my $path = "$dir/VERSION";
+ return undef unless -f $path; # no warning, only podlaters has it
+
+ return Common::evalver($path);
+}
+
+# scans a directory full of nicely separated dist. directories.
+sub scan_distroot
+{
+ my ($distroot) = @_;
+ opendir my $cpand, "$distroot" or die "failed to open $distroot";
+ my @dists = grep { !/^\./ && -d "$distroot/$_" } readdir $cpand;
+ closedir $cpand;
+
+ my @found;
+ for my $dist (@dists) {
+ my $distdir = "$distroot/$dist";
+ my $ver = (module_ver($dist, $distdir)
+ || changelog_ver($dist, $distdir)
+ || verfile_ver($dist, $distdir));
+
+ if ($ver) { push @found, [ $dist, $ver ]; }
+ else { warn "failed to find version for $dist\n"; }
+ }
+ return @found;
+}
+
+sub find
+{
+ my ($srcdir) = @_;
+ return map { scan_distroot($_) } glob "$srcdir/{cpan,dist}";
+}
+
+#-----------------------------------------------------------------------------
+
+package Modules;
+
+use HTTP::Tiny qw();
+use File::Find qw();
+use File::stat;
+
+*findfile = *File::Find::find;
+
+sub cpan_provider
+{
+ my ($module) = @_;
+ my $url = "http://cpanmetadb.appspot.com/v1.0/package/$module";
+ my $http = HTTP::Tiny->new;
+ my $resp = $http->get($url);
+ return undef unless $resp->{'success'};
+
+ my ($cpanpath) = $resp->{'content'} =~ /^distfile: (.*)$/m
+ or return undef;
+
+ my $dist = $cpanpath;
+ $dist =~ s{\A.+/}{}; # remove author directory
+ $dist =~ s{-[^-]+\z}{}; # remove version and extension
+ return ($dist eq 'perl' ? undef : $dist);
+}
+
+sub find
+{
+ my ($srcdir) = @_;
+ my $libdir = "$srcdir/lib/";
+ die "failed to find $libdir directory" unless -d $libdir;
+
+ # Find only the module files that have not changed since perl
+ # was extracted. We don't want the files perl just recently
+ # installed into lib/. We processed those already.
+ my @modfiles;
+ my $finder = sub {
+ return unless /[.]pm\z/;
+ push @modfiles, $_;
+ };
+ findfile({ 'no_chdir' => 1, 'wanted' => $finder }, $libdir);
+
+ # First we have to find what the oldest ctime actually is.
+ my $oldest = time;
+ @modfiles = map {
+ my $modfile = $_;
+ my $ctime = (stat $modfile)->ctime;
+ $oldest = $ctime if $ctime < $oldest;
+ [ $modfile, $ctime ]; # save ctime for later
+ } @modfiles;
+
+ # Then we filter out any file that was created more than a
+ # few seconds after that. Process the rest.
+ my @mods;
+ for my $modfile (@modfiles) {
+ my ($mod, $ctime) = @$modfile;
+ next if $ctime - $oldest > 5; # ignore newer files
+
+ my $path = $mod;
+ $mod =~ s{[.]pm\z}{};
+ $mod =~ s{\A$libdir}{};
+ $mod =~ s{/}{::}g;
+
+ my $ver = Common::evalver($path) || q{};
+ push @mods, [ $mod, $ver ];
+ }
+
+ # Convert modules names to the dist names who provide them.
+ my %seen;
+ my @dists;
+ for my $modref (@mods) {
+ my ($mod, $ver) = @$modref;
+ my $dist = cpan_provider($mod) or next; # filter out core modules
+ next if $seen{$dist}++; # avoid duplicate dists
+ push @dists, [ $dist, $ver ];
+ }
+ return @dists;
+}
+
+#-----------------------------------------------------------------------------
+
+package Dist2Pkg;
+
+sub name
+{
+ my ($name) = @_;
+ my $orig = $name;
+
+ # Package names should be lowercase and consist of alphanumeric
+ # characters only (and hyphens!)...
+ $name =~ tr/A-Z/a-z/;
+ $name =~ tr/_+/-/; # _ and +'s converted to - (ie Tabbed-Text+Wrap)
+ $name =~ tr/-a-z0-9+//cd; # Delete all other chars.
+ $name =~ tr/-/-/s;
+
+ # Delete leading or trailing hyphens...
+ $name =~ s/\A-|-\z//g;
+
+ die qq{Dist. name '$orig' completely violates packaging standards}
+ unless $name;
+
+ return "perl-$name";
+}
+
+sub version
+{
+ my ($version) = @_;
+
+ # Package versions should be numbers and decimal points only...
+ $version =~ tr/-/./;
+ $version =~ tr/_0-9.-//cd;
+
+ # Remove developer versions because pacman has no special logic
+ # to compare them to regular versions like perl does.
+ $version =~ s/_[^_]+\z//;
+
+ $version =~ tr/_//d; # delete other underscores
+ $version =~ tr/././s; # only one period at a time
+ $version =~ s/\A[.]|[.]\z//g; # shouldn't start or stop with a period
+
+ return $version;
+}
+
+#-----------------------------------------------------------------------------
+
+package main;
+
+my %CPANNAME = ('List-Util' => 'Scalar-List-Utils',
+ 'Text-Tabs' => 'Text-Tabs+Wrap',
+ 'Cwd' => 'PathTools');
+
+my $perldir = shift or die "Usage: $0 [path to perl source directory]\n";
+die "$perldir is not a valid directory." unless -d $perldir;
+
+my @dists = (Dists::find($perldir), Modules::find($perldir));
+for my $dist (@dists) {
+ my $name = $dist->[0];
+ $dist->[0] = $CPANNAME{$name} if exists $CPANNAME{$name};
+}
+
+my @pkgs = map {
+ my ($name, $ver) = @$_;
+ $name = Dist2Pkg::name($name);
+ $ver = Dist2Pkg::version($ver);
+ [ $name, $ver ];
+} @dists;
+
+@pkgs = sort { $a->[0] cmp $b->[0] } @pkgs;
+
+for my $pkg (@pkgs) {
+ my ($name, $ver) = @$pkg;
+ print "$name=$ver\n";
+}
diff --git a/testing/php/PKGBUILD b/testing/php/PKGBUILD
new file mode 100644
index 000000000..59bdfd2dd
--- /dev/null
+++ b/testing/php/PKGBUILD
@@ -0,0 +1,365 @@
+# $Id: PKGBUILD 143474 2011-11-24 17:03:15Z stephane $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=php
+pkgname=('php'
+ 'php-cgi'
+ 'php-apache'
+ 'php-fpm'
+ 'php-embed'
+ 'php-pear'
+ 'php-enchant'
+ 'php-gd'
+ 'php-intl'
+ 'php-ldap'
+ 'php-mcrypt'
+ 'php-mssql'
+ 'php-odbc'
+ 'php-pgsql'
+ 'php-pspell'
+ 'php-snmp'
+ 'php-sqlite'
+ 'php-tidy'
+ 'php-xsl')
+pkgver=5.3.8
+_suhosinver=5.3.7-0.9.10
+pkgrel=5
+arch=('i686' 'x86_64')
+license=('PHP')
+url='http://www.php.net'
+makedepends=('apache' 'imap' 'postgresql-libs' 'libldap' 'postfix'
+ 'sqlite3' 'unixodbc' 'net-snmp' 'libzip' 'enchant' 'file' 'freetds'
+ 'libmcrypt' 'tidyhtml' 'aspell' 'libltdl' 'libpng' 'libjpeg' 'icu'
+ 'curl' 'libxslt' 'openssl' 'bzip2' 'db' 'gmp' 'freetype2')
+source=("http://www.php.net/distributions/${pkgbase}-${pkgver}.tar.bz2"
+ "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz"
+ "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz.sig"
+ 'php.ini.patch' 'apache.conf' 'rc.d.php-fpm' 'php-fpm.conf.in.patch'
+ 'logrotate.d.php-fpm')
+md5sums=('704cd414a0565d905e1074ffdc1fadfb'
+ '08582e502fed8221c6577042ca45ddb8'
+ '5bf4473f658404aa9a97bf026ecef8e9'
+ '65606c606df97a0760dfe5aaf9893afc'
+ 'dec2cbaad64e3abf4f0ec70e1de4e8e9'
+ 'b01be5f816988fcee7e78225836e5e27'
+ '09005dabd90c48ddd392b3dbf05f8a82'
+ '07c4e412909ac65a44ec90e7a2c4bade')
+
+build() {
+ phpconfig="--srcdir=../${pkgbase}-${pkgver} \
+ --prefix=/usr \
+ --sysconfdir=/etc/php \
+ --localstatedir=/var \
+ --with-layout=GNU \
+ --with-config-file-path=/etc/php \
+ --with-config-file-scan-dir=/etc/php/conf.d \
+ --enable-inline-optimization \
+ --disable-debug \
+ --disable-rpath \
+ --disable-static \
+ --enable-shared \
+ --mandir=/usr/share/man \
+ --without-pear \
+ "
+
+ phpextensions="--enable-bcmath=shared \
+ --enable-calendar=shared \
+ --enable-dba=shared \
+ --enable-exif=shared \
+ --enable-ftp=shared \
+ --enable-gd-native-ttf \
+ --enable-intl=shared \
+ --enable-json=shared \
+ --enable-mbregex \
+ --enable-mbstring \
+ --enable-pdo \
+ --enable-phar=shared \
+ --enable-posix=shared \
+ --enable-session \
+ --enable-shmop=shared \
+ --enable-soap=shared \
+ --enable-sockets=shared \
+ --enable-sqlite-utf8 \
+ --enable-sysvmsg=shared \
+ --enable-sysvsem=shared \
+ --enable-sysvshm=shared \
+ --enable-xml \
+ --enable-zip=shared \
+ --with-bz2=shared \
+ --with-curl=shared \
+ --with-db4=/usr \
+ --with-enchant=shared,/usr \
+ --with-freetype-dir=shared,/usr \
+ --with-gd=shared \
+ --with-gdbm=shared \
+ --with-gettext=shared \
+ --with-gmp=shared \
+ --with-iconv=shared \
+ --with-icu-dir=/usr \
+ --with-imap-ssl=shared \
+ --with-imap=shared \
+ --with-jpeg-dir=shared,/usr \
+ --with-ldap=shared \
+ --with-ldap-sasl \
+ --with-mcrypt=shared \
+ --with-mhash \
+ --with-mssql=shared \
+ --with-mysql-sock=/var/run/mysqld/mysqld.sock \
+ --with-mysql=shared,mysqlnd \
+ --with-mysqli=shared,mysqlnd \
+ --with-openssl=shared \
+ --with-pcre-regex=/usr \
+ --with-pdo-mysql=shared,mysqlnd \
+ --with-pdo-odbc=shared,unixODBC,/usr \
+ --with-pdo-pgsql=shared \
+ --with-pdo-sqlite=shared,/usr \
+ --with-pgsql=shared \
+ --with-png-dir=shared,/usr \
+ --with-pspell=shared \
+ --with-regex=php \
+ --with-snmp=shared \
+ --with-sqlite3=shared,/usr \
+ --with-sqlite=shared \
+ --with-tidy=shared \
+ --with-unixODBC=shared,/usr \
+ --with-xmlrpc=shared \
+ --with-xsl=shared \
+ --with-zlib \
+ --without-db2 \
+ --without-db3 \
+ "
+
+ EXTENSION_DIR=/usr/lib/php/modules
+ export EXTENSION_DIR
+ PEAR_INSTALLDIR=/usr/share/pear
+ export PEAR_INSTALLDIR
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+
+ # apply suhosin patch
+ patch -p1 -i ${srcdir}/suhosin-patch-${_suhosinver}.patch
+
+ # adjust paths
+ patch -p0 -i ${srcdir}/php.ini.patch
+ patch -p0 -i ${srcdir}/php-fpm.conf.in.patch
+
+ # php
+ mkdir ${srcdir}/build-php
+ cd ${srcdir}/build-php
+ ln -s ../${pkgbase}-${pkgver}/configure
+ ./configure ${phpconfig} \
+ --disable-cgi \
+ --with-readline \
+ --enable-pcntl \
+ ${phpextensions}
+ make
+
+ # cgi and fcgi
+ # reuse the previous run; this will save us a lot of time
+ cp -a ${srcdir}/build-php ${srcdir}/build-cgi
+ cd ${srcdir}/build-cgi
+ ./configure ${phpconfig} \
+ --disable-cli \
+ --enable-cgi \
+ ${phpextensions}
+ make
+
+ # apache
+ cp -a ${srcdir}/build-php ${srcdir}/build-apache
+ cd ${srcdir}/build-apache
+ ./configure ${phpconfig} \
+ --disable-cli \
+ --with-apxs2 \
+ ${phpextensions}
+ make
+
+ # fpm
+ cp -a ${srcdir}/build-php ${srcdir}/build-fpm
+ cd ${srcdir}/build-fpm
+ ./configure ${phpconfig} \
+ --disable-cli \
+ --enable-fpm \
+ --with-fpm-user=http \
+ --with-fpm-group=http \
+ ${phpextensions}
+ make
+
+ # embed
+ cp -a ${srcdir}/build-php ${srcdir}/build-embed
+ cd ${srcdir}/build-embed
+ ./configure ${phpconfig} \
+ --disable-cli \
+ --enable-embed=shared \
+ ${phpextensions}
+ make
+
+ # pear
+ cp -a ${srcdir}/build-php ${srcdir}/build-pear
+ cd ${srcdir}/build-pear
+ ./configure ${phpconfig} \
+ --disable-cgi \
+ --with-readline \
+ --enable-pcntl \
+ --with-pear \
+ ${phpextensions}
+ make
+}
+
+# check() {
+# cd ${srcdir}/build-php
+# make test
+# }
+
+package_php() {
+ pkgdesc='An HTML-embedded scripting language'
+ depends=('pcre' 'libxml2' 'bzip2' 'curl')
+ replaces=('php-fileinfo' 'php-gmp' 'php-curl')
+ provides=('php-fileinfo' 'php-gmp' 'php-curl')
+ conflicts=('php-fileinfo' 'php-gmp' 'php-curl')
+ backup=('etc/php/php.ini')
+
+ cd ${srcdir}/build-php
+ make -j1 INSTALL_ROOT=${pkgdir} install
+ install -d -m755 ${pkgdir}/usr/share/pear
+ # install php.ini
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/php.ini-production ${pkgdir}/etc/php/php.ini
+ install -d -m755 ${pkgdir}/etc/php/conf.d/
+
+ # remove static modules
+ rm -f ${pkgdir}/usr/lib/php/modules/*.a
+ # remove modules provided by sub packages
+ rm -f ${pkgdir}/usr/lib/php/modules/{enchant,gd,intl,ldap,mcrypt,mssql,odbc,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl}.so
+ # remove empty directory
+ rmdir ${pkgdir}/usr/include/php/include
+}
+
+package_php-cgi() {
+ pkgdesc='CGI and FCGI SAPI for PHP'
+ depends=('php')
+
+ install -D -m755 ${srcdir}/build-cgi/sapi/cgi/php-cgi ${pkgdir}/usr/bin/php-cgi
+}
+
+package_php-apache() {
+ pkgdesc='Apache SAPI for PHP'
+ depends=('php' 'apache')
+ backup=('etc/httpd/conf/extra/php5_module.conf')
+
+ install -D -m755 ${srcdir}/build-apache/libs/libphp5.so ${pkgdir}/usr/lib/httpd/modules/libphp5.so
+ install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/php5_module.conf
+}
+
+package_php-fpm() {
+ pkgdesc='FastCGI Process Manager for PHP'
+ depends=('php')
+ backup=('etc/php/php-fpm.conf')
+
+ install -D -m755 ${srcdir}/build-fpm/sapi/fpm/php-fpm ${pkgdir}/usr/sbin/php-fpm
+ install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.8 ${pkgdir}/usr/share/man/man8/php-fpm.8
+ install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.conf ${pkgdir}/etc/php/php-fpm.conf
+ install -D -m755 ${srcdir}/rc.d.php-fpm ${pkgdir}/etc/rc.d/php-fpm
+ install -D -m644 ${srcdir}/logrotate.d.php-fpm ${pkgdir}/etc/logrotate.d/php-fpm
+ install -d -m755 ${pkgdir}/etc/php/fpm.d
+}
+
+package_php-embed() {
+ pkgdesc='Embed SAPI for PHP'
+ depends=('php')
+
+ install -D -m755 ${srcdir}/build-embed/libs/libphp5.so ${pkgdir}/usr/lib/libphp5.so
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/sapi/embed/php_embed.h ${pkgdir}/usr/include/php/sapi/embed/php_embed.h
+}
+
+package_php-pear() {
+ pkgdesc='PHP Extension and Application Repository'
+ depends=('php')
+ backup=('etc/php/pear.conf')
+
+ cd ${srcdir}/build-pear
+ make -j1 install-pear INSTALL_ROOT=${pkgdir}
+ local i
+ while read i; do
+ [ ! -e "$i" ] || rm -rf "$i"
+ done < <(find ${pkgdir} -name '.*')
+}
+
+package_php-enchant() {
+ depends=('php' 'enchant')
+ pkgdesc='enchant module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/enchant.so ${pkgdir}/usr/lib/php/modules/enchant.so
+}
+
+package_php-gd() {
+ depends=('php' 'libpng' 'libjpeg' 'freetype2')
+ pkgdesc='gd module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/gd.so ${pkgdir}/usr/lib/php/modules/gd.so
+}
+
+package_php-intl() {
+ depends=('php' 'icu')
+ pkgdesc='intl module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/intl.so ${pkgdir}/usr/lib/php/modules/intl.so
+}
+
+package_php-ldap() {
+ depends=('php' 'libldap')
+ pkgdesc='ldap module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/ldap.so ${pkgdir}/usr/lib/php/modules/ldap.so
+}
+
+package_php-mcrypt() {
+ depends=('php' 'libmcrypt' 'libltdl')
+ pkgdesc='mcrypt module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/mcrypt.so ${pkgdir}/usr/lib/php/modules/mcrypt.so
+}
+
+package_php-mssql() {
+ depends=('php' 'freetds')
+ pkgdesc='mssql module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/mssql.so ${pkgdir}/usr/lib/php/modules/mssql.so
+}
+
+package_php-odbc() {
+ depends=('php' 'unixodbc')
+ pkgdesc='ODBC modules for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/odbc.so ${pkgdir}/usr/lib/php/modules/odbc.so
+ install -D -m755 ${srcdir}/build-php/modules/pdo_odbc.so ${pkgdir}/usr/lib/php/modules/pdo_odbc.so
+}
+
+package_php-pgsql() {
+ depends=('php' 'postgresql-libs')
+ pkgdesc='PostgreSQL modules for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/pgsql.so ${pkgdir}/usr/lib/php/modules/pgsql.so
+ install -D -m755 ${srcdir}/build-php/modules/pdo_pgsql.so ${pkgdir}/usr/lib/php/modules/pdo_pgsql.so
+}
+
+package_php-pspell() {
+ depends=('php' 'aspell')
+ pkgdesc='pspell module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/pspell.so ${pkgdir}/usr/lib/php/modules/pspell.so
+}
+
+package_php-snmp() {
+ depends=('php' 'net-snmp')
+ pkgdesc='snmp module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/snmp.so ${pkgdir}/usr/lib/php/modules/snmp.so
+}
+
+package_php-sqlite() {
+ depends=('php' 'sqlite3')
+ pkgdesc='sqlite3 module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/sqlite3.so ${pkgdir}/usr/lib/php/modules/sqlite3.so
+ install -D -m755 ${srcdir}/build-php/modules/pdo_sqlite.so ${pkgdir}/usr/lib/php/modules/pdo_sqlite.so
+}
+
+package_php-tidy() {
+ depends=('php' 'tidyhtml')
+ pkgdesc='tidy module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/tidy.so ${pkgdir}/usr/lib/php/modules/tidy.so
+}
+
+package_php-xsl() {
+ depends=('php' 'libxslt')
+ pkgdesc='xsl module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/xsl.so ${pkgdir}/usr/lib/php/modules/xsl.so
+}
diff --git a/testing/php/apache.conf b/testing/php/apache.conf
new file mode 100644
index 000000000..c3ca0aad5
--- /dev/null
+++ b/testing/php/apache.conf
@@ -0,0 +1,13 @@
+# Required modules: dir_module, php5_module
+
+<IfModule dir_module>
+ <IfModule php5_module>
+ DirectoryIndex index.php index.html
+ <FilesMatch "\.php$">
+ SetHandler application/x-httpd-php
+ </FilesMatch>
+ <FilesMatch "\.phps$">
+ SetHandler application/x-httpd-php-source
+ </FilesMatch>
+ </IfModule>
+</IfModule>
diff --git a/testing/php/logrotate.d.php-fpm b/testing/php/logrotate.d.php-fpm
new file mode 100644
index 000000000..7a1ba2597
--- /dev/null
+++ b/testing/php/logrotate.d.php-fpm
@@ -0,0 +1,6 @@
+/var/log/php-fpm.log {
+ missingok
+ postrotate
+ /etc/rc.d/php-fpm logrotate >/dev/null || true
+ endscript
+}
diff --git a/testing/php/php-fpm.conf.in.patch b/testing/php/php-fpm.conf.in.patch
new file mode 100644
index 000000000..b4dd32f96
--- /dev/null
+++ b/testing/php/php-fpm.conf.in.patch
@@ -0,0 +1,80 @@
+--- sapi/fpm/php-fpm.conf.in 2011-07-04 23:22:56.000000000 +0200
++++ sapi/fpm/php-fpm.conf.in 2011-08-12 16:56:23.686606725 +0200
+@@ -12,7 +12,7 @@
+ ; Relative path can also be used. They will be prefixed by:
+ ; - the global prefix if it's been set (-p arguement)
+ ; - @prefix@ otherwise
+-;include=etc/fpm.d/*.conf
++;include=/etc/php/fpm.d/*.conf
+
+ ;;;;;;;;;;;;;;;;;;
+ ; Global Options ;
+@@ -22,7 +22,7 @@
+ ; Pid file
+ ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
+ ; Default Value: none
+-;pid = run/php-fpm.pid
++pid = run/php-fpm/php-fpm.pid
+
+ ; Error log file
+ ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
+@@ -102,7 +102,8 @@
+ ; specific port;
+ ; '/path/to/unix/socket' - to listen on a unix socket.
+ ; Note: This value is mandatory.
+-listen = 127.0.0.1:9000
++;listen = 127.0.0.1:9000
++listen = /var/run/php-fpm/php-fpm.sock
+
+ ; Set listen(2) backlog. A value of '-1' means unlimited.
+ ; Default Value: 128 (-1 on FreeBSD and OpenBSD)
+@@ -121,9 +122,9 @@
+ ; BSD-derived systems allow connections regardless of permissions.
+ ; Default Values: user and group are set as the running user
+ ; mode is set to 0666
+-;listen.owner = @php_fpm_user@
+-;listen.group = @php_fpm_group@
+-;listen.mode = 0666
++listen.owner = @php_fpm_user@
++listen.group = @php_fpm_group@
++listen.mode = 0660
+
+ ; Unix user/group of processes
+ ; Note: The user is mandatory. If the group is not set, the default user's group
+@@ -163,23 +164,23 @@
+ ; The number of child processes created on startup.
+ ; Note: Used only when pm is set to 'dynamic'
+ ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
+-;pm.start_servers = 20
++pm.start_servers = 20
+
+ ; The desired minimum number of idle server processes.
+ ; Note: Used only when pm is set to 'dynamic'
+ ; Note: Mandatory when pm is set to 'dynamic'
+-;pm.min_spare_servers = 5
++pm.min_spare_servers = 5
+
+ ; The desired maximum number of idle server processes.
+ ; Note: Used only when pm is set to 'dynamic'
+ ; Note: Mandatory when pm is set to 'dynamic'
+-;pm.max_spare_servers = 35
++pm.max_spare_servers = 35
+
+ ; The number of requests each child process should execute before respawning.
+ ; This can be useful to work around memory leaks in 3rd party libraries. For
+ ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
+ ; Default Value: 0
+-;pm.max_requests = 500
++pm.max_requests = 500
+
+ ; The URI to view the FPM status page. If this value is not set, no URI will be
+ ; recognized as a status page. By default, the status page shows the following
+@@ -333,7 +334,7 @@
+ ; Chdir to this directory at the start.
+ ; Note: relative path can be used.
+ ; Default Value: current directory or / when chroot
+-;chdir = /var/www
++;chdir = /srv/http
+
+ ; Redirect worker stdout and stderr into main error log. If not set, stdout and
+ ; stderr will be redirected to /dev/null according to FastCGI specs.
diff --git a/testing/php/php.ini.patch b/testing/php/php.ini.patch
new file mode 100644
index 000000000..46c842921
--- /dev/null
+++ b/testing/php/php.ini.patch
@@ -0,0 +1,126 @@
+--- php.ini-production 2011-02-09 01:25:44.000000000 +0100
++++ php.ini-production 2011-03-19 11:11:44.496987763 +0100
+@@ -376,7 +376,7 @@
+ ; or per-virtualhost web server configuration file. This directive is
+ ; *NOT* affected by whether Safe Mode is turned On or Off.
+ ; http://php.net/open-basedir
+-;open_basedir =
++open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/
+
+ ; This directive allows you to disable certain functions for security reasons.
+ ; It receives a comma-delimited list of function names. This directive is
+@@ -781,7 +781,7 @@
+ ;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ ; UNIX: "/path1:/path2"
+-;include_path = ".:/php/includes"
++include_path = ".:/usr/share/pear"
+ ;
+ ; Windows: "\path1;\path2"
+ ;include_path = ".;c:\php\includes"
+@@ -804,7 +804,7 @@
+
+ ; Directory in which the loadable extensions (modules) reside.
+ ; http://php.net/extension-dir
+-; extension_dir = "./"
++extension_dir = "/usr/lib/php/modules/"
+ ; On windows:
+ ; extension_dir = "ext"
+
+@@ -938,53 +938,49 @@
+ ; If you only provide the name of the extension, PHP will look for it in its
+ ; default extension directory.
+ ;
+-; Windows Extensions
+-; Note that ODBC support is built in, so no dll is needed for it.
+-; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
+-; extension folders as well as the separate PECL DLL download (PHP 5).
+-; Be sure to appropriately set the extension_dir directive.
+-;
+-;extension=php_bz2.dll
+-;extension=php_curl.dll
+-;extension=php_fileinfo.dll
+-;extension=php_gd2.dll
+-;extension=php_gettext.dll
+-;extension=php_gmp.dll
+-;extension=php_intl.dll
+-;extension=php_imap.dll
+-;extension=php_interbase.dll
+-;extension=php_ldap.dll
+-;extension=php_mbstring.dll
+-;extension=php_exif.dll ; Must be after mbstring as it depends on it
+-;extension=php_mysql.dll
+-;extension=php_mysqli.dll
+-;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
+-;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
+-;extension=php_openssl.dll
+-;extension=php_pdo_firebird.dll
+-;extension=php_pdo_mssql.dll
+-;extension=php_pdo_mysql.dll
+-;extension=php_pdo_oci.dll
+-;extension=php_pdo_odbc.dll
+-;extension=php_pdo_pgsql.dll
+-;extension=php_pdo_sqlite.dll
+-;extension=php_pgsql.dll
+-;extension=php_pspell.dll
+-;extension=php_shmop.dll
+-
+-; The MIBS data available in the PHP distribution must be installed.
+-; See http://www.php.net/manual/en/snmp.installation.php
+-;extension=php_snmp.dll
+-
+-;extension=php_soap.dll
+-;extension=php_sockets.dll
+-;extension=php_sqlite.dll
+-;extension=php_sqlite3.dll
+-;extension=php_sybase_ct.dll
+-;extension=php_tidy.dll
+-;extension=php_xmlrpc.dll
+-;extension=php_xsl.dll
+-;extension=php_zip.dll
++;extension=bcmath.so
++;extension=bz2.so
++;extension=calendar.so
++extension=curl.so
++;extension=dba.so
++;extension=enchant.so
++;extension=exif.so
++;extension=ftp.so
++;extension=gd.so
++extension=gettext.so
++;extension=gmp.so
++;extension=iconv.so
++;extension=imap.so
++;extension=intl.so
++extension=json.so
++;extension=ldap.so
++;extension=mcrypt.so
++;extension=mssql.so
++;extension=mysqli.so
++;extension=mysql.so
++;extension=odbc.so
++;extension=openssl.so
++;extension=pdo_mysql.so
++;extension=pdo_odbc.so
++;extension=pdo_pgsql.so
++;extension=pdo_sqlite.so
++;extension=pgsql.so
++;extension=phar.so
++;extension=posix.so
++;extension=pspell.so
++;extension=shmop.so
++;extension=snmp.so
++;extension=soap.so
++;extension=sockets.so
++;extension=sqlite3.so
++;extension=sqlite.so
++;extension=sysvmsg.so
++;extension=sysvsem.so
++;extension=sysvshm.so
++;extension=tidy.so
++;extension=xmlrpc.so
++;extension=xsl.so
++;extension=zip.so
+
+ ;;;;;;;;;;;;;;;;;;;
+ ; Module Settings ;
diff --git a/testing/php/rc.d.php-fpm b/testing/php/rc.d.php-fpm
new file mode 100644
index 000000000..54bcf4d5b
--- /dev/null
+++ b/testing/php/rc.d.php-fpm
@@ -0,0 +1,158 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+
+wait_for_pid () {
+ try=0
+ while test $try -lt 35 ; do
+ case "$1" in
+ 'created')
+ if [ -f "$2" ] ; then
+ try=''
+ break
+ fi
+ ;;
+ 'removed')
+ if [ ! -f "$2" ] ; then
+ try=''
+ break
+ fi
+ ;;
+ esac
+
+ stat_append '.'
+ try=`expr $try + 1`
+ sleep 1
+ done
+}
+
+test_config() {
+ stat_busy 'Checking configuration'
+ if [ $(id -u) -ne 0 ]; then
+ stat_append '(This script must be run as root)'
+ stat_die
+ fi
+
+ if [ ! -r /etc/php/php-fpm.conf ]; then
+ stat_append '(/etc/php/php-fpm.conf not found)'
+ stat_die
+ fi
+
+ local test=$(/usr/sbin/php-fpm -t 2>&1)
+ if [ $? -gt 0 ]; then
+ stat_append '(error in /etc/php/php-fpm.conf)'
+ stat_die
+ elif echo $test | grep -qi 'error'; then
+ stat_append '(error in /etc/php/php.ini)'
+ stat_die
+ fi
+
+ [ -d /var/run/php-fpm ] || install -d -m755 /var/run/php-fpm
+
+ stat_done
+}
+
+case "$1" in
+ start)
+ test_config
+ stat_busy 'Starting php-fpm'
+
+ /usr/sbin/php-fpm
+
+ if [ "$?" != 0 ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ wait_for_pid created /var/run/php-fpm/php-fpm.pid
+
+ if [ -n "$try" ] ; then
+ stat_fail
+ exit 1
+ else
+ add_daemon php-fpm
+ stat_done
+ fi
+ ;;
+
+ stop)
+ test_config
+ stat_busy 'Gracefully shutting down php-fpm'
+
+ if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ kill -QUIT `cat /var/run/php-fpm/php-fpm.pid`
+
+ wait_for_pid removed /var/run/php-fpm.pid
+
+ if [ -n "$try" ] ; then
+ stat_fail
+ exit 1
+ else
+ rm_daemon php-fpm
+ stat_done
+ fi
+ ;;
+
+ force-quit)
+ stat_busy 'Terminating php-fpm'
+
+ if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ kill -TERM `cat /var/run/php-fpm/php-fpm.pid`
+
+ wait_for_pid removed /var/run/php-fpm/php-fpm.pid
+
+ if [ -n "$try" ] ; then
+ stat_fail
+ exit 1
+ else
+ rm_daemon php-fpm
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+
+ reload)
+ test_config
+ stat_busy 'Reload service php-fpm'
+
+ if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ kill -USR2 `cat /var/run/php-fpm/php-fpm.pid`
+ stat_done
+ ;;
+
+ logrotate)
+ stat_busy 'Reopen php-fpm log'
+
+ if [ ! -r /var/run/php-fpm/php-fpm.pid ] ; then
+ stat_fail
+ exit 1
+ fi
+
+ kill -USR1 `cat /var/run/php-fpm/php-fpm.pid`
+ stat_done
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|force-quit|restart|reload|logrotate}"
+ exit 1
+ ;;
+
+esac
diff --git a/testing/python/PKGBUILD b/testing/python/PKGBUILD
new file mode 100644
index 000000000..15e95141f
--- /dev/null
+++ b/testing/python/PKGBUILD
@@ -0,0 +1,81 @@
+# $Id: PKGBUILD 143476 2011-11-24 17:03:18Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=python
+pkgver=3.2.2
+pkgrel=2
+_pybasever=3.2
+pkgdesc="Next generation of the python high-level scripting language"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.python.org/"
+depends=('expat' 'bzip2' 'gdbm' 'openssl' 'libffi' 'zlib')
+makedepends=('tk' 'sqlite3' 'valgrind')
+optdepends=('tk: for tkinter' 'sqlite3')
+provides=('python3')
+replaces=('python3')
+options=('!makeflags')
+source=(http://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz
+ gdbm-magic-values.patch)
+sha1sums=('5e654dbd48476193ccdef4d604ed4f45b48c6769'
+ '43bfbe3e23360f412b95cb284ff29b2cbe338be9')
+
+build() {
+ cd "${srcdir}/Python-${pkgver}"
+
+ # FS#23997
+ sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python|" Lib/cgi.py
+
+ # gdbm has new magic that whichdb does not recognize
+ # http://bugs.python.org/issue13007
+ patch -Np1 -i ../gdbm-magic-values.patch
+
+ # Ensure that we are using the system copy of various libraries (expat, zlib and libffi),
+ # rather than copies shipped in the tarball
+ rm -r Modules/expat
+ rm -r Modules/zlib
+ rm -r Modules/_ctypes/{darwin,libffi}*
+
+ ./configure --prefix=/usr \
+ --enable-shared \
+ --with-threads \
+ --with-computed-gotos \
+ --enable-ipv6 \
+ --with-valgrind \
+ --with-wide-unicode \
+ --with-system-expat \
+ --with-dbmliborder=gdbm:ndbm \
+ --with-system-ffi
+
+ make
+}
+
+check() {
+ cd "${srcdir}/Python-${pkgver}"
+ LD_LIBRARY_PATH="${srcdir}/Python-${pkgver}":${LD_LIBRARY_PATH} \
+ "${srcdir}/Python-${pkgver}/python" -m test.regrtest -x test_distutils test_site test_uuid
+}
+
+package() {
+ cd "${srcdir}/Python-${pkgver}"
+ make DESTDIR="${pkgdir}" install maninstall
+
+ # Why are these not done by default...
+ ln -sf python3 "${pkgdir}/usr/bin/python"
+ ln -sf python3-config "${pkgdir}/usr/bin/python-config"
+ ln -sf idle3 "${pkgdir}/usr/bin/idle"
+ ln -sf pydoc3 "${pkgdir}/usr/bin/pydoc"
+ ln -sf python${_pybasever}.1 "${pkgdir}/usr/share/man/man1/python3.1"
+
+ # Fix FS#22552
+ ln -sf ../../libpython${_pybasever}mu.so \
+ "${pkgdir}/usr/lib/python${_pybasever}/config-${_pybasever}mu/libpython${_pybasever}mu.so"
+
+ # Clean-up reference to build directory
+ sed -i "s|$srcdir/Python-${pkgver}:||" "$pkgdir/usr/lib/python${_pybasever}/config-${_pybasever}mu/Makefile"
+
+ # License
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/testing/python/gdbm-magic-values.patch b/testing/python/gdbm-magic-values.patch
new file mode 100644
index 000000000..e8ce828cf
--- /dev/null
+++ b/testing/python/gdbm-magic-values.patch
@@ -0,0 +1,13 @@
+diff -up Python-3.2.2/Lib/dbm/__init__.py.gdbm-1.9-magic Python-3.2.2/Lib/dbm/__init__.py
+--- Python-3.2.2/Lib/dbm/__init__.py.gdbm-1.9-magic 2011-09-03 12:16:40.000000000 -0400
++++ Python-3.2.2/Lib/dbm/__init__.py 2011-09-30 15:47:27.488863694 -0400
+@@ -166,7 +166,7 @@ def whichdb(filename):
+ return ""
+
+ # Check for GNU dbm
+- if magic == 0x13579ace:
++ if magic in (0x13579ace, 0x13579acd, 0x13579acf):
+ return "dbm.gnu"
+
+ # Later versions of Berkeley db hash file have a 12-byte pad in
+diff -up Python-3.2.2/Misc/NEWS.gdbm-1.9-magic Python-3.2.2/Misc/NEWS
diff --git a/testing/ruby/PKGBUILD b/testing/ruby/PKGBUILD
new file mode 100644
index 000000000..b12032df5
--- /dev/null
+++ b/testing/ruby/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 143480 2011-11-24 17:03:21Z stephane $
+# Maintainer:
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+# Contributor: Jeramy Rutley <jrutley@gmail.com>
+
+pkgbase=ruby
+pkgname=('ruby' 'ruby-docs')
+pkgver=1.9.3_p0
+pkgrel=2
+pkgdesc="An object-oriented language for quick and easy programming"
+arch=('i686' 'x86_64')
+url="http://www.ruby-lang.org/en/"
+license=('BSD' 'custom')
+makedepends=('openssl' 'tk' 'libffi' 'doxygen' 'graphviz' 'libyaml')
+options=('!emptydirs' '!makeflags')
+source=(ftp://ftp.ruby-lang.org/pub/${pkgbase}/${pkgver%.*}/${pkgbase}-${pkgver//_/-}.tar.bz2)
+sha1sums=('f63c116411b981ef54c2caeefb9ccc4d71a5d2cf')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver//_/-}"
+ DOXYGEN=/usr/bin/doxygen PKG_CONFIG=/usr/bin/pkg-config ./configure --prefix=/usr --sysconfdir=/etc \
+ --enable-shared --enable-pthread --disable-rpath
+ make
+}
+
+package_ruby() {
+ depends=('openssl' 'libffi' 'libyaml')
+ provides=('rubygems' 'rake')
+ conflicts=('rake')
+ optdepends=('tk: for Ruby/TK')
+
+ cd "${srcdir}/${pkgbase}-${pkgver//_/-}"
+ make DESTDIR="${pkgdir}" install-nodoc
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -D -m644 BSDL "${pkgdir}/usr/share/licenses/${pkgname}/BSDL"
+}
+
+package_ruby-docs() {
+ pkgdesc="Documentation files for ruby"
+
+ cd "${srcdir}/${pkgbase}-${pkgver//_/-}"
+ make DESTDIR="${pkgdir}" install-doc install-capi
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -D -m644 BSDL "${pkgdir}/usr/share/licenses/${pkgname}/BSDL"
+}
diff --git a/testing/subversion/PKGBUILD b/testing/subversion/PKGBUILD
new file mode 100644
index 000000000..ddc575e91
--- /dev/null
+++ b/testing/subversion/PKGBUILD
@@ -0,0 +1,100 @@
+# $Id: PKGBUILD 143482 2011-11-24 17:03:24Z stephane $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=subversion
+pkgver=1.6.17
+pkgrel=7
+pkgdesc="A Modern Concurrent Version Control System"
+arch=('i686' 'x86_64')
+license=('apache' 'bsd')
+depends=('neon' 'apr-util' 'sqlite3')
+optdepends=('libgnome-keyring' 'kdeutils-kwallet' 'bash-completion: for svn bash completion')
+makedepends=('krb5' 'apache' 'python2' 'perl' 'swig' 'ruby' 'java-runtime' 'java-environment'
+ 'autoconf' 'db' 'e2fsprogs' 'libgnome-keyring' 'kdelibs')
+backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve')
+url="http://subversion.apache.org/"
+provides=('svn')
+options=('!makeflags' '!libtool')
+source=(http://subversion.tigris.org/downloads/$pkgname-$pkgver.tar.bz2
+ svnserve svn svnserve.conf svnmerge.py
+ subversion.rpath.fix.patch
+ subversion.suppress.deprecation.warnings.patch
+ subversion-perl-bindings.patch)
+md5sums=('81e5dc5beee4b3fc025ac70c0b6caa14'
+ 'a2b029e8385007ffb99b437b30521c90'
+ 'a0db6dd43af33952739b6ec089852630'
+ 'c459e299192552f61578f3438abf0664'
+ 'a6371baeda7e224504629ecdda2749b4'
+ '6b4340ba9d8845cd8497e013ae01be3f'
+ '1166f3b7413d7e7450299b3525680bbe'
+ '0591aa39837931161b4d61ff35c7b147')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export PYTHON=/usr/bin/python2
+
+ # apply patches
+ patch -Np0 -i ../subversion.rpath.fix.patch
+ patch -Np1 -i ../subversion.suppress.deprecation.warnings.patch
+ patch -Np1 -i ../subversion-perl-bindings.patch
+
+ # configure
+ autoreconf
+ ./configure --prefix=/usr --with-apr=/usr --with-apr-util=/usr \
+ --with-zlib=/usr --with-neon=/usr --with-apxs \
+ --with-sqlite=/usr --with-berkeley-db=:/usr/include/:/usr/lib:db-5.2 \
+ --enable-javahl --with-gnome-keyring --with-kwallet
+
+ # build
+ (make external-all && make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all )
+}
+
+#check() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+# export LANG=C LC_ALL=C
+# make check check-swig-pl check-swig-py CLEANUP=yes
+#}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # install
+ export LD_LIBRARY_PATH=${pkgdir}/usr/lib:$LD_LIBRARY_PATH
+ make DESTDIR=${pkgdir} install
+
+ make DESTDIR=${pkgdir} swig-py
+ make install-swig-py DESTDIR=${pkgdir}
+
+ install -d ${pkgdir}/usr/lib/python2.7
+ mv ${pkgdir}/usr/lib/svn-python/ ${pkgdir}/usr/lib/python2.7/site-packages
+
+ install -d ${pkgdir}/usr/share/subversion
+ install -d -m 755 tools/hook-scripts ${pkgdir}/usr/share/subversion/
+ rm -f ${pkgdir}/usr/share/subversion/hook-scripts/*.in
+
+ make DESTDIR=${pkgdir} swig-pl
+ make install-swig-pl DESTDIR=${pkgdir} INSTALLDIRS=vendor
+ rm -f ${pkgdir}/usr/lib/perl5/vendor_perl/auto/SVN/_Core/.packlist
+ rm -rf ${pkgdir}/usr/lib/perl5/core_perl
+
+ make DESTDIR=${pkgdir} swig-rb
+ make install-swig-rb DESTDIR=${pkgdir}
+
+ make DESTDIR=${pkgdir} javahl
+ make DESTDIR=${pkgdir} install-javahl
+
+ install -d ${pkgdir}/etc/{rc.d,xinetd.d,conf.d}
+
+ install -m 755 ${srcdir}/svnserve ${pkgdir}/etc/rc.d
+ install -m 644 ${srcdir}/svn ${pkgdir}/etc/xinetd.d
+ install -m 644 ${srcdir}/svnserve.conf ${pkgdir}/etc/conf.d/svnserve
+ install -m 755 ${srcdir}/svnmerge.py ${pkgdir}/usr/bin/svnmerge
+ install -D -m 644 ${srcdir}/subversion-$pkgver/COPYING \
+ ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+
+ # bash completion
+ install -Dm 644 ${srcdir}/${pkgname}-${pkgver}/tools/client-side/bash_completion \
+ ${pkgdir}/etc/bash_completion.d/subversion
+}
diff --git a/testing/subversion/subversion-perl-bindings.patch b/testing/subversion/subversion-perl-bindings.patch
new file mode 100644
index 000000000..3c34daa47
--- /dev/null
+++ b/testing/subversion/subversion-perl-bindings.patch
@@ -0,0 +1,12 @@
+diff -Naur subversion-1.6.17.ori/subversion/bindings/swig/perl/native/Makefile.PL.in subversion-1.6.17/subversion/bindings/swig/perl/native/Makefile.PL.in
+--- subversion-1.6.17.ori/subversion/bindings/swig/perl/native/Makefile.PL.in 2010-11-24 20:42:16.000000000 +0000
++++ subversion-1.6.17/subversion/bindings/swig/perl/native/Makefile.PL.in 2011-07-01 20:16:16.520892074 +0000
+@@ -43,7 +43,7 @@
+ my %config = (
+ ABSTRACT => 'Perl bindings for Subversion',
+ DEFINE => $cppflags,
+- CCFLAGS => $cflags,
++ CCFLAGS => $Config{ccflags},
+ INC => join(' ',$apr_cflags, $apu_cflags,
+ " -I$swig_srcdir/perl/libsvn_swig_perl",
+ " -I$svnlib_srcdir/include",
diff --git a/testing/subversion/subversion.rpath.fix.patch b/testing/subversion/subversion.rpath.fix.patch
new file mode 100644
index 000000000..ba6ee9e4e
--- /dev/null
+++ b/testing/subversion/subversion.rpath.fix.patch
@@ -0,0 +1,10 @@
+--- Makefile.in.orig 2009-02-16 14:10:48.000000000 -0200
++++ Makefile.in 2009-06-04 00:56:29.000000000 -0300
+@@ -678,6 +678,7 @@
+
+ $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL
+ cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL
++ cd $(SWIG_PL_DIR)/native; sed -i 's|LD_RUN_PATH|DIE_RPATH_DIE|g' Makefile{,.{client,delta,fs,ra,repos,wc}}
+
+ swig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \
+ $(SWIG_PL_DIR)/native/Makefile
diff --git a/testing/subversion/subversion.suppress.deprecation.warnings.patch b/testing/subversion/subversion.suppress.deprecation.warnings.patch
new file mode 100644
index 000000000..94ce89b18
--- /dev/null
+++ b/testing/subversion/subversion.suppress.deprecation.warnings.patch
@@ -0,0 +1,22 @@
+diff -urN subversion-1.6.9/subversion/bindings/swig/python/svn/core.py subversion-1.6.9-fixed/subversion/bindings/swig/python/svn/core.py
+--- subversion-1.6.9/subversion/bindings/swig/python/svn/core.py 2009-02-13 11:22:26.000000000 -0500
++++ subversion-1.6.9-fixed/subversion/bindings/swig/python/svn/core.py 2010-02-08 07:46:29.000000000 -0500
+@@ -19,6 +19,7 @@
+ from libsvn.core import *
+ import libsvn.core as _libsvncore
+ import atexit as _atexit
++import warnings
+
+ class SubversionException(Exception):
+ def __init__(self, message=None, apr_err=None, child=None,
+@@ -44,7 +45,9 @@
+ Exception.__init__(self, *args)
+
+ self.apr_err = apr_err
+- self.message = message
++ with warnings.catch_warnings():
++ warnings.simplefilter("ignore", DeprecationWarning)
++ self.message = message
+ self.child = child
+ self.file = file
+ self.line = line
diff --git a/testing/subversion/svn b/testing/subversion/svn
new file mode 100644
index 000000000..8988aaf63
--- /dev/null
+++ b/testing/subversion/svn
@@ -0,0 +1,11 @@
+service svn
+{
+ flags = REUSE
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/bin/svnserve
+ server_args = -i
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/testing/subversion/svnmerge.py b/testing/subversion/svnmerge.py
new file mode 100644
index 000000000..d8931648f
--- /dev/null
+++ b/testing/subversion/svnmerge.py
@@ -0,0 +1,2370 @@
+#!/usr/bin/env python2
+# -*- coding: utf-8 -*-
+# Copyright (c) 2005, Giovanni Bajo
+# Copyright (c) 2004-2005, Awarix, Inc.
+# All rights reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+#
+# Author: Archie Cobbs <archie at awarix dot com>
+# Rewritten in Python by: Giovanni Bajo <rasky at develer dot com>
+#
+# Acknowledgments:
+# John Belmonte <john at neggie dot net> - metadata and usability
+# improvements
+# Blair Zajac <blair at orcaware dot com> - random improvements
+# Raman Gupta <rocketraman at fastmail dot fm> - bidirectional and transitive
+# merging support
+# Dustin J. Mitchell <dustin at zmanda dot com> - support for multiple
+# location identifier formats
+#
+# $HeadURL$
+# $LastChangedDate$
+# $LastChangedBy$
+# $LastChangedRevision$
+#
+# Requisites:
+# svnmerge.py has been tested with all SVN major versions since 1.1 (both
+# client and server). It is unknown if it works with previous versions.
+#
+# Differences from svnmerge.sh:
+# - More portable: tested as working in FreeBSD and OS/2.
+# - Add double-verbose mode, which shows every svn command executed (-v -v).
+# - "svnmerge avail" now only shows commits in source, not also commits in
+# other parts of the repository.
+# - Add "svnmerge block" to flag some revisions as blocked, so that
+# they will not show up anymore in the available list. Added also
+# the complementary "svnmerge unblock".
+# - "svnmerge avail" has grown two new options:
+# -B to display a list of the blocked revisions
+# -A to display both the blocked and the available revisions.
+# - Improved generated commit message to make it machine parsable even when
+# merging commits which are themselves merges.
+# - Add --force option to skip working copy check
+# - Add --record-only option to "svnmerge merge" to avoid performing
+# an actual merge, yet record that a merge happened.
+# - Can use a variety of location-identifier formats
+#
+# TODO:
+# - Add "svnmerge avail -R": show logs in reverse order
+#
+# Information for Hackers:
+#
+# Identifiers for branches:
+# A branch is identified in three ways within this source:
+# - as a working copy (variable name usually includes 'dir')
+# - as a fully qualified URL
+# - as a path identifier (an opaque string indicating a particular path
+# in a particular repository; variable name includes 'pathid')
+# A "target" is generally user-specified, and may be a working copy or
+# a URL.
+
+import sys, os, getopt, re, types, tempfile, time, locale
+from bisect import bisect
+from xml.dom import pulldom
+
+NAME = "svnmerge"
+if not hasattr(sys, "version_info") or sys.version_info < (2, 0):
+ error("requires Python 2.0 or newer")
+
+# Set up the separator used to separate individual log messages from
+# each revision merged into the target location. Also, create a
+# regular expression that will find this same separator in already
+# committed log messages, so that the separator used for this run of
+# svnmerge.py will have one more LOG_SEPARATOR appended to the longest
+# separator found in all the commits.
+LOG_SEPARATOR = 8 * '.'
+LOG_SEPARATOR_RE = re.compile('^((%s)+)' % re.escape(LOG_SEPARATOR),
+ re.MULTILINE)
+
+# Each line of the embedded log messages will be prefixed by LOG_LINE_PREFIX.
+LOG_LINE_PREFIX = 2 * ' '
+
+# Set python to the default locale as per environment settings, same as svn
+# TODO we should really parse config and if log-encoding is specified, set
+# the locale to match that encoding
+locale.setlocale(locale.LC_ALL, '')
+
+# We want the svn output (such as svn info) to be non-localized
+# Using LC_MESSAGES should not affect localized output of svn log, for example
+if os.environ.has_key("LC_ALL"):
+ del os.environ["LC_ALL"]
+os.environ["LC_MESSAGES"] = "C"
+
+###############################################################################
+# Support for older Python versions
+###############################################################################
+
+# True/False constants are Python 2.2+
+try:
+ True, False
+except NameError:
+ True, False = 1, 0
+
+def lstrip(s, ch):
+ """Replacement for str.lstrip (support for arbitrary chars to strip was
+ added in Python 2.2.2)."""
+ i = 0
+ try:
+ while s[i] == ch:
+ i = i+1
+ return s[i:]
+ except IndexError:
+ return ""
+
+def rstrip(s, ch):
+ """Replacement for str.rstrip (support for arbitrary chars to strip was
+ added in Python 2.2.2)."""
+ try:
+ if s[-1] != ch:
+ return s
+ i = -2
+ while s[i] == ch:
+ i = i-1
+ return s[:i+1]
+ except IndexError:
+ return ""
+
+def strip(s, ch):
+ """Replacement for str.strip (support for arbitrary chars to strip was
+ added in Python 2.2.2)."""
+ return lstrip(rstrip(s, ch), ch)
+
+def rsplit(s, sep, maxsplits=0):
+ """Like str.rsplit, which is Python 2.4+ only."""
+ L = s.split(sep)
+ if not 0 < maxsplits <= len(L):
+ return L
+ return [sep.join(L[0:-maxsplits])] + L[-maxsplits:]
+
+###############################################################################
+
+def kwextract(s):
+ """Extract info from a svn keyword string."""
+ try:
+ return strip(s, "$").strip().split(": ")[1]
+ except IndexError:
+ return "<unknown>"
+
+__revision__ = kwextract('$Rev$')
+__date__ = kwextract('$Date$')
+
+# Additional options, not (yet?) mapped to command line flags
+default_opts = {
+ "svn": "svn",
+ "prop": NAME + "-integrated",
+ "block-prop": NAME + "-blocked",
+ "commit-verbose": True,
+ "verbose": 0,
+}
+logs = {}
+
+def console_width():
+ """Get the width of the console screen (if any)."""
+ try:
+ return int(os.environ["COLUMNS"])
+ except (KeyError, ValueError):
+ pass
+
+ try:
+ # Call the Windows API (requires ctypes library)
+ from ctypes import windll, create_string_buffer
+ h = windll.kernel32.GetStdHandle(-11)
+ csbi = create_string_buffer(22)
+ res = windll.kernel32.GetConsoleScreenBufferInfo(h, csbi)
+ if res:
+ import struct
+ (bufx, bufy,
+ curx, cury, wattr,
+ left, top, right, bottom,
+ maxx, maxy) = struct.unpack("hhhhHhhhhhh", csbi.raw)
+ return right - left + 1
+ except ImportError:
+ pass
+
+ # Parse the output of stty -a
+ if os.isatty(1):
+ out = os.popen("stty -a").read()
+ m = re.search(r"columns (\d+);", out)
+ if m:
+ return int(m.group(1))
+
+ # sensible default
+ return 80
+
+def error(s):
+ """Subroutine to output an error and bail."""
+ print >> sys.stderr, "%s: %s" % (NAME, s)
+ sys.exit(1)
+
+def report(s):
+ """Subroutine to output progress message, unless in quiet mode."""
+ if opts["verbose"]:
+ print "%s: %s" % (NAME, s)
+
+def prefix_lines(prefix, lines):
+ """Given a string representing one or more lines of text, insert the
+ specified prefix at the beginning of each line, and return the result.
+ The input must be terminated by a newline."""
+ assert lines[-1] == "\n"
+ return prefix + lines[:-1].replace("\n", "\n"+prefix) + "\n"
+
+def recode_stdout_to_file(s):
+ if locale.getdefaultlocale()[1] is None or not hasattr(sys.stdout, "encoding") \
+ or sys.stdout.encoding is None:
+ return s
+ u = s.decode(sys.stdout.encoding)
+ return u.encode(locale.getdefaultlocale()[1])
+
+class LaunchError(Exception):
+ """Signal a failure in execution of an external command. Parameters are the
+ exit code of the process, the original command line, and the output of the
+ command."""
+
+try:
+ """Launch a sub-process. Return its output (both stdout and stderr),
+ optionally split by lines (if split_lines is True). Raise a LaunchError
+ exception if the exit code of the process is non-zero (failure).
+
+ This function has two implementations, one based on subprocess (preferred),
+ and one based on popen (for compatibility).
+ """
+ import subprocess
+ import shlex
+
+ def launch(cmd, split_lines=True):
+ # Requiring python 2.4 or higher, on some platforms we get
+ # much faster performance from the subprocess module (where python
+ # doesn't try to close an exhorbitant number of file descriptors)
+ stdout = ""
+ stderr = ""
+ try:
+ if os.name == 'nt':
+ p = subprocess.Popen(cmd, stdout=subprocess.PIPE, \
+ close_fds=False, stderr=subprocess.PIPE)
+ else:
+ # Use shlex to break up the parameters intelligently,
+ # respecting quotes. shlex can't handle unicode.
+ args = shlex.split(cmd.encode('ascii'))
+ p = subprocess.Popen(args, stdout=subprocess.PIPE, \
+ close_fds=False, stderr=subprocess.PIPE)
+ stdoutAndErr = p.communicate()
+ stdout = stdoutAndErr[0]
+ stderr = stdoutAndErr[1]
+ except OSError, inst:
+ # Using 1 as failure code; should get actual number somehow? For
+ # examples see svnmerge_test.py's TestCase_launch.test_failure and
+ # TestCase_launch.test_failurecode.
+ raise LaunchError(1, cmd, stdout + " " + stderr + ": " + str(inst))
+
+ if p.returncode == 0:
+ if split_lines:
+ # Setting keepends=True for compatibility with previous logic
+ # (where file.readlines() preserves newlines)
+ return stdout.splitlines(True)
+ else:
+ return stdout
+ else:
+ raise LaunchError(p.returncode, cmd, stdout + stderr)
+except ImportError:
+ # support versions of python before 2.4 (slower on some systems)
+ def launch(cmd, split_lines=True):
+ if os.name not in ['nt', 'os2']:
+ import popen2
+ p = popen2.Popen4(cmd)
+ p.tochild.close()
+ if split_lines:
+ out = p.fromchild.readlines()
+ else:
+ out = p.fromchild.read()
+ ret = p.wait()
+ if ret == 0:
+ ret = None
+ else:
+ ret >>= 8
+ else:
+ i,k = os.popen4(cmd)
+ i.close()
+ if split_lines:
+ out = k.readlines()
+ else:
+ out = k.read()
+ ret = k.close()
+
+ if ret is None:
+ return out
+ raise LaunchError(ret, cmd, out)
+
+def launchsvn(s, show=False, pretend=False, **kwargs):
+ """Launch SVN and grab its output."""
+ username = password = configdir = ""
+ if opts.get("username", None):
+ username = "--username=" + opts["username"]
+ if opts.get("password", None):
+ password = "--password=" + opts["password"]
+ if opts.get("config-dir", None):
+ configdir = "--config-dir=" + opts["config-dir"]
+ cmd = ' '.join(filter(None, [opts["svn"], "--non-interactive",
+ username, password, configdir, s]))
+ if show or opts["verbose"] >= 2:
+ print cmd
+ if pretend:
+ return None
+ return launch(cmd, **kwargs)
+
+def svn_command(s):
+ """Do (or pretend to do) an SVN command."""
+ out = launchsvn(s, show=opts["show-changes"] or opts["dry-run"],
+ pretend=opts["dry-run"],
+ split_lines=False)
+ if not opts["dry-run"]:
+ print out
+
+def check_dir_clean(dir):
+ """Check the current status of dir for local mods."""
+ if opts["force"]:
+ report('skipping status check because of --force')
+ return
+ report('checking status of "%s"' % dir)
+
+ # Checking with -q does not show unversioned files or external
+ # directories. Though it displays a debug message for external
+ # directories, after a blank line. So, practically, the first line
+ # matters: if it's non-empty there is a modification.
+ out = launchsvn("status -q %s" % dir)
+ if out and out[0].strip():
+ error('"%s" has local modifications; it must be clean' % dir)
+
+class PathIdentifier:
+ """Abstraction for a path identifier, so that we can start talking
+ about it before we know the form that it takes in the properties (its
+ external_form). Objects are referenced in the class variable 'locobjs',
+ keyed by all known forms."""
+
+ # a map of UUID (or None) to repository root URL.
+ repo_hints = {}
+
+ # a map from any known string form to the corresponding PathIdentifier
+ locobjs = {}
+
+ def __init__(self, repo_relative_path, uuid=None, url=None, external_form=None):
+ self.repo_relative_path = repo_relative_path
+ self.uuid = uuid
+ self.url = url
+ self.external_form = external_form
+
+ def __repr__(self):
+ return "<PathIdentifier " + ', '.join('%s=%r' % i for i in self.__dict__.items()) + '>'
+
+ def __str__(self):
+ """Return a printable string representation"""
+ if self.external_form:
+ return self.external_form
+ if self.url:
+ return self.format('url')
+ if self.uuid:
+ return self.format('uuid')
+ return self.format('path')
+
+ def from_pathid(pathid_str):
+ """convert pathid_str to a PathIdentifier"""
+ if not PathIdentifier.locobjs.has_key(pathid_str):
+ if is_url(pathid_str):
+ # we can determine every form; PathIdentifier.hint knows how to do that
+ PathIdentifier.hint(pathid_str)
+ elif pathid_str[:7] == 'uuid://':
+ mo = re.match('uuid://([^/]*)(.*)', pathid_str)
+ if not mo:
+ error("Invalid path identifier '%s'" % pathid_str)
+ uuid, repo_relative_path = mo.groups()
+ pathid = PathIdentifier(repo_relative_path, uuid=uuid)
+ # we can cache this by uuid:// pathid and by repo-relative path
+ PathIdentifier.locobjs[pathid_str] = PathIdentifier.locobjs[repo_relative_path] = pathid
+ elif pathid_str and pathid_str[0] == '/':
+ # strip any trailing slashes
+ pathid_str = pathid_str.rstrip('/')
+ pathid = PathIdentifier(repo_relative_path=pathid_str)
+ # we can only cache this by repo-relative path
+ PathIdentifier.locobjs[pathid_str] = pathid
+ else:
+ error("Invalid path identifier '%s'" % pathid_str)
+ return PathIdentifier.locobjs[pathid_str]
+ from_pathid = staticmethod(from_pathid)
+
+ def from_target(target):
+ """Convert a target (either a working copy path or an URL) into a
+ path identifier."""
+ # prime the cache first if we don't know about this target yet
+ if not PathIdentifier.locobjs.has_key(target):
+ PathIdentifier.hint(target)
+
+ try:
+ return PathIdentifier.locobjs[target]
+ except KeyError:
+ error("Could not recognize path identifier '%s'" % target)
+ from_target = staticmethod(from_target)
+
+ def hint(target):
+ """Cache some information about target, as it may be referenced by
+ repo-relative path in subversion properties; the cache can help to
+ expand such a relative path to a full path identifier."""
+ if PathIdentifier.locobjs.has_key(target): return
+ if not is_url(target) and not is_wc(target): return
+
+ url = target_to_url(target)
+
+ root = get_repo_root(url)
+ assert root[-1] != "/"
+ assert url[:len(root)] == root, "url=%r, root=%r" % (url, root)
+ repo_relative_path = url[len(root):]
+
+ try:
+ uuid = get_svninfo(target)['Repository UUID']
+ uuid_pathid = 'uuid://%s%s' % (uuid, repo_relative_path)
+ except KeyError:
+ uuid = None
+ uuid_pathid = None
+
+ locobj = PathIdentifier.locobjs.get(url) or \
+ (uuid_pathid and PathIdentifier.locobjs.get(uuid_pathid))
+ if not locobj:
+ locobj = PathIdentifier(repo_relative_path, uuid=uuid, url=url)
+
+ PathIdentifier.repo_hints[uuid] = root # (uuid may be None)
+
+ PathIdentifier.locobjs[target] = locobj
+ PathIdentifier.locobjs[url] = locobj
+ if uuid_pathid:
+ PathIdentifier.locobjs[uuid_pathid] = locobj
+ if not PathIdentifier.locobjs.has_key(repo_relative_path):
+ PathIdentifier.locobjs[repo_relative_path] = locobj
+ hint = staticmethod(hint)
+
+ def format(self, fmt):
+ if fmt == 'path':
+ return self.repo_relative_path
+ elif fmt == 'uuid':
+ return "uuid://%s%s" % (self.uuid, self.repo_relative_path)
+ elif fmt == 'url':
+ return self.url
+ else:
+ error("Unkonwn path type '%s'" % fmt)
+
+ def match_substring(self, str):
+ """Test whether str is a substring of any representation of this
+ PathIdentifier."""
+ if self.repo_relative_path.find(str) >= 0:
+ return True
+
+ if self.uuid:
+ if ("uuid://%s%s" % (self.uuid, self.repo_relative_path)).find(str) >= 0:
+ return True
+
+ if self.url:
+ if (self.url + self.repo_relative_path).find(str) >= 0:
+ return True
+
+ return False
+
+ def get_url(self):
+ """Convert a pathid into a URL. If this is not possible, error out."""
+ if self.url:
+ return self.url
+ # if we have a uuid and happen to know the URL for it, use that
+ elif self.uuid and PathIdentifier.repo_hints.has_key(self.uuid):
+ self.url = PathIdentifier.repo_hints[self.uuid] + self.repo_relative_path
+ PathIdentifier.locobjs[self.url] = self
+ return self.url
+ # if we've only seen one rep, use that (a guess, but an educated one)
+ elif not self.uuid and len(PathIdentifier.repo_hints) == 1:
+ uuid, root = PathIdentifier.repo_hints.items()[0]
+ if uuid:
+ self.uuid = uuid
+ PathIdentifier.locobjs['uuid://%s%s' % (uuid, self.repo_relative_path)] = self
+ self.url = root + self.repo_relative_path
+ PathIdentifier.locobjs[self.url] = self
+ report("Guessing that '%s' refers to '%s'" % (self, self.url))
+ return self.url
+ else:
+ error("Cannot determine URL for '%s'; " % self +
+ "Explicit source argument (-S/--source) required.\n")
+
+class RevisionLog:
+ """
+ A log of the revisions which affected a given URL between two
+ revisions.
+ """
+
+ def __init__(self, url, begin, end, find_propchanges=False):
+ """
+ Create a new RevisionLog object, which stores, in self.revs, a list
+ of the revisions which affected the specified URL between begin and
+ end. If find_propchanges is True, self.propchange_revs will contain a
+ list of the revisions which changed properties directly on the
+ specified URL. URL must be the URL for a directory in the repository.
+ """
+ self.url = url
+
+ # Setup the log options (--quiet, so we don't show log messages)
+ log_opts = '--xml --quiet -r%s:%s "%s"' % (begin, end, url)
+ if find_propchanges:
+ # The --verbose flag lets us grab merge tracking information
+ # by looking at propchanges
+ log_opts = "--verbose " + log_opts
+
+ # Read the log to look for revision numbers and merge-tracking info
+ self.revs = []
+ self.propchange_revs = []
+ repos_pathid = PathIdentifier.from_target(url)
+ for chg in SvnLogParser(launchsvn("log %s" % log_opts,
+ split_lines=False)):
+ self.revs.append(chg.revision())
+ for p in chg.paths():
+ if p.action() == 'M' and p.pathid() == repos_pathid.repo_relative_path:
+ self.propchange_revs.append(chg.revision())
+
+ # Save the range of the log
+ self.begin = int(begin)
+ if end == "HEAD":
+ # If end is not provided, we do not know which is the latest
+ # revision in the repository. So we set 'end' to the latest
+ # known revision.
+ self.end = self.revs[-1]
+ else:
+ self.end = int(end)
+
+ self._merges = None
+ self._blocks = None
+
+ def merge_metadata(self):
+ """
+ Return a VersionedProperty object, with a cached view of the merge
+ metadata in the range of this log.
+ """
+
+ # Load merge metadata if necessary
+ if not self._merges:
+ self._merges = VersionedProperty(self.url, opts["prop"])
+ self._merges.load(self)
+
+ return self._merges
+
+ def block_metadata(self):
+ if not self._blocks:
+ self._blocks = VersionedProperty(self.url, opts["block-prop"])
+ self._blocks.load(self)
+
+ return self._blocks
+
+
+class VersionedProperty:
+ """
+ A read-only, cached view of a versioned property.
+
+ self.revs contains a list of the revisions in which the property changes.
+ self.values stores the new values at each corresponding revision. If the
+ value of the property is unknown, it is set to None.
+
+ Initially, we set self.revs to [0] and self.values to [None]. This
+ indicates that, as of revision zero, we know nothing about the value of
+ the property.
+
+ Later, if you run self.load(log), we cache the value of this property over
+ the entire range of the log by noting each revision in which the property
+ was changed. At the end of the range of the log, we invalidate our cache
+ by adding the value "None" to our cache for any revisions which fall out
+ of the range of our log.
+
+ Once self.revs and self.values are filled, we can find the value of the
+ property at any arbitrary revision using a binary search on self.revs.
+ Once we find the last revision during which the property was changed,
+ we can lookup the associated value in self.values. (If the associated
+ value is None, the associated value was not cached and we have to do
+ a full propget.)
+
+ An example: We know that the 'svnmerge' property was added in r10, and
+ changed in r21. We gathered log info up until r40.
+
+ revs = [0, 10, 21, 40]
+ values = [None, "val1", "val2", None]
+
+ What these values say:
+ - From r0 to r9, we know nothing about the property.
+ - In r10, the property was set to "val1". This property stayed the same
+ until r21, when it was changed to "val2".
+ - We don't know what happened after r40.
+ """
+
+ def __init__(self, url, name):
+ """View the history of a versioned property at URL with name"""
+ self.url = url
+ self.name = name
+
+ # We know nothing about the value of the property. Setup revs
+ # and values to indicate as such.
+ self.revs = [0]
+ self.values = [None]
+
+ # We don't have any revisions cached
+ self._initial_value = None
+ self._changed_revs = []
+ self._changed_values = []
+
+ def load(self, log):
+ """
+ Load the history of property changes from the specified
+ RevisionLog object.
+ """
+
+ # Get the property value before the range of the log
+ if log.begin > 1:
+ self.revs.append(log.begin-1)
+ try:
+ self._initial_value = self.raw_get(log.begin-1)
+ except LaunchError:
+ # The specified URL might not exist before the
+ # range of the log. If so, we can safely assume
+ # that the property was empty at that time.
+ self._initial_value = { }
+ self.values.append(self._initial_value)
+ else:
+ self._initial_value = { }
+ self.values[0] = self._initial_value
+
+ # Cache the property values in the log range
+ old_value = self._initial_value
+ for rev in log.propchange_revs:
+ new_value = self.raw_get(rev)
+ if new_value != old_value:
+ self._changed_revs.append(rev)
+ self._changed_values.append(new_value)
+ self.revs.append(rev)
+ self.values.append(new_value)
+ old_value = new_value
+
+ # Indicate that we know nothing about the value of the property
+ # after the range of the log.
+ if log.revs:
+ self.revs.append(log.end+1)
+ self.values.append(None)
+
+ def raw_get(self, rev=None):
+ """
+ Get the property at revision REV. If rev is not specified, get
+ the property at revision HEAD.
+ """
+ return get_revlist_prop(self.url, self.name, rev)
+
+ def get(self, rev=None):
+ """
+ Get the property at revision REV. If rev is not specified, get
+ the property at revision HEAD.
+ """
+
+ if rev is not None:
+
+ # Find the index using a binary search
+ i = bisect(self.revs, rev) - 1
+
+ # Return the value of the property, if it was cached
+ if self.values[i] is not None:
+ return self.values[i]
+
+ # Get the current value of the property
+ return self.raw_get(rev)
+
+ def changed_revs(self, key=None):
+ """
+ Get a list of the revisions in which the specified dictionary
+ key was changed in this property. If key is not specified,
+ return a list of revisions in which any key was changed.
+ """
+ if key is None:
+ return self._changed_revs
+ else:
+ changed_revs = []
+ old_val = self._initial_value
+ for rev, val in zip(self._changed_revs, self._changed_values):
+ if val.get(key) != old_val.get(key):
+ changed_revs.append(rev)
+ old_val = val
+ return changed_revs
+
+ def initialized_revs(self):
+ """
+ Get a list of the revisions in which keys were added or
+ removed in this property.
+ """
+ initialized_revs = []
+ old_len = len(self._initial_value)
+ for rev, val in zip(self._changed_revs, self._changed_values):
+ if len(val) != old_len:
+ initialized_revs.append(rev)
+ old_len = len(val)
+ return initialized_revs
+
+class RevisionSet:
+ """
+ A set of revisions, held in dictionary form for easy manipulation. If we
+ were to rewrite this script for Python 2.3+, we would subclass this from
+ set (or UserSet). As this class does not include branch
+ information, it's assumed that one instance will be used per
+ branch.
+ """
+ def __init__(self, parm):
+ """Constructs a RevisionSet from a string in property form, or from
+ a dictionary whose keys are the revisions. Raises ValueError if the
+ input string is invalid."""
+
+ self._revs = {}
+
+ revision_range_split_re = re.compile('[-:]')
+
+ if isinstance(parm, types.DictType):
+ self._revs = parm.copy()
+ elif isinstance(parm, types.ListType):
+ for R in parm:
+ self._revs[int(R)] = 1
+ else:
+ parm = parm.strip()
+ if parm:
+ for R in parm.split(","):
+ rev_or_revs = re.split(revision_range_split_re, R)
+ if len(rev_or_revs) == 1:
+ self._revs[int(rev_or_revs[0])] = 1
+ elif len(rev_or_revs) == 2:
+ for rev in range(int(rev_or_revs[0]),
+ int(rev_or_revs[1])+1):
+ self._revs[rev] = 1
+ else:
+ raise ValueError, 'Ill formatted revision range: ' + R
+
+ def sorted(self):
+ revnums = self._revs.keys()
+ revnums.sort()
+ return revnums
+
+ def normalized(self):
+ """Returns a normalized version of the revision set, which is an
+ ordered list of couples (start,end), with the minimum number of
+ intervals."""
+ revnums = self.sorted()
+ revnums.reverse()
+ ret = []
+ while revnums:
+ s = e = revnums.pop()
+ while revnums and revnums[-1] in (e, e+1):
+ e = revnums.pop()
+ ret.append((s, e))
+ return ret
+
+ def __str__(self):
+ """Convert the revision set to a string, using its normalized form."""
+ L = []
+ for s,e in self.normalized():
+ if s == e:
+ L.append(str(s))
+ else:
+ L.append(str(s) + "-" + str(e))
+ return ",".join(L)
+
+ def __contains__(self, rev):
+ return self._revs.has_key(rev)
+
+ def __sub__(self, rs):
+ """Compute subtraction as in sets."""
+ revs = {}
+ for r in self._revs.keys():
+ if r not in rs:
+ revs[r] = 1
+ return RevisionSet(revs)
+
+ def __and__(self, rs):
+ """Compute intersections as in sets."""
+ revs = {}
+ for r in self._revs.keys():
+ if r in rs:
+ revs[r] = 1
+ return RevisionSet(revs)
+
+ def __nonzero__(self):
+ return len(self._revs) != 0
+
+ def __len__(self):
+ """Return the number of revisions in the set."""
+ return len(self._revs)
+
+ def __iter__(self):
+ return iter(self.sorted())
+
+ def __or__(self, rs):
+ """Compute set union."""
+ revs = self._revs.copy()
+ revs.update(rs._revs)
+ return RevisionSet(revs)
+
+def merge_props_to_revision_set(merge_props, pathid):
+ """A converter which returns a RevisionSet instance containing the
+ revisions from PATH as known to BRANCH_PROPS. BRANCH_PROPS is a
+ dictionary of pathid -> revision set branch integration information
+ (as returned by get_merge_props())."""
+ if not merge_props.has_key(pathid):
+ error('no integration info available for path "%s"' % pathid)
+ return RevisionSet(merge_props[pathid])
+
+def dict_from_revlist_prop(propvalue):
+ """Given a property value as a string containing per-source revision
+ lists, return a dictionary whose key is a source path identifier
+ and whose value is the revisions for that source."""
+ prop = {}
+
+ # Multiple sources are separated by any whitespace.
+ for L in propvalue.split():
+ # We use rsplit to play safe and allow colons in pathids.
+ pathid_str, revs = rsplit(L.strip(), ":", 1)
+
+ pathid = PathIdentifier.from_pathid(pathid_str)
+
+ # cache the "external" form we saw
+ pathid.external_form = pathid_str
+
+ prop[pathid] = revs
+ return prop
+
+def get_revlist_prop(url_or_dir, propname, rev=None):
+ """Given a repository URL or working copy path and a property
+ name, extract the values of the property which store per-source
+ revision lists and return a dictionary whose key is a source path
+ identifier, and whose value is the revisions for that source."""
+
+ # Note that propget does not return an error if the property does
+ # not exist, it simply does not output anything. So we do not need
+ # to check for LaunchError here.
+ args = '--strict "%s" "%s"' % (propname, url_or_dir)
+ if rev:
+ args = '-r %s %s' % (rev, args)
+ out = launchsvn('propget %s' % args, split_lines=False)
+
+ return dict_from_revlist_prop(out)
+
+def get_merge_props(dir):
+ """Extract the merged revisions."""
+ return get_revlist_prop(dir, opts["prop"])
+
+def get_block_props(dir):
+ """Extract the blocked revisions."""
+ return get_revlist_prop(dir, opts["block-prop"])
+
+def get_blocked_revs(dir, source_pathid):
+ p = get_block_props(dir)
+ if p.has_key(source_pathid):
+ return RevisionSet(p[source_pathid])
+ return RevisionSet("")
+
+def format_merge_props(props, sep=" "):
+ """Formats the hash PROPS as a string suitable for use as a
+ Subversion property value."""
+ assert sep in ["\t", "\n", " "] # must be a whitespace
+ props = props.items()
+ props.sort()
+ L = []
+ for h, r in props:
+ L.append("%s:%s" % (h, r))
+ return sep.join(L)
+
+def _run_propset(dir, prop, value):
+ """Set the property 'prop' of directory 'dir' to value 'value'. We go
+ through a temporary file to not run into command line length limits."""
+ try:
+ fd, fname = tempfile.mkstemp()
+ f = os.fdopen(fd, "wb")
+ except AttributeError:
+ # Fallback for Python <= 2.3 which does not have mkstemp (mktemp
+ # suffers from race conditions. Not that we care...)
+ fname = tempfile.mktemp()
+ f = open(fname, "wb")
+
+ try:
+ f.write(value)
+ f.close()
+ report("property data written to temp file: %s" % value)
+ svn_command('propset "%s" -F "%s" "%s"' % (prop, fname, dir))
+ finally:
+ os.remove(fname)
+
+def set_props(dir, name, props):
+ props = format_merge_props(props)
+ if props:
+ _run_propset(dir, name, props)
+ else:
+ # Check if NAME exists on DIR before trying to delete it.
+ # As of 1.6 propdel no longer supports deleting a
+ # non-existent property.
+ out = launchsvn('propget "%s" "%s"' % (name, dir))
+ if out:
+ svn_command('propdel "%s" "%s"' % (name, dir))
+
+def set_merge_props(dir, props):
+ set_props(dir, opts["prop"], props)
+
+def set_block_props(dir, props):
+ set_props(dir, opts["block-prop"], props)
+
+def set_blocked_revs(dir, source_pathid, revs):
+ props = get_block_props(dir)
+ if revs:
+ props[source_pathid] = str(revs)
+ elif props.has_key(source_pathid):
+ del props[source_pathid]
+ set_block_props(dir, props)
+
+def is_url(url):
+ """Check if url looks like a valid url."""
+ return re.search(r"^[a-zA-Z][-+\.\w]*://[^\s]+$", url) is not None and url[:4] != 'uuid'
+
+def check_url(url):
+ """Similar to is_url, but actually invoke get_svninfo to find out"""
+ return get_svninfo(url) != {}
+
+def is_pathid(pathid):
+ return isinstance(pathid, PathIdentifier)
+
+def is_wc(dir):
+ """Check if a directory is a working copy."""
+ return os.path.isdir(os.path.join(dir, ".svn")) or \
+ os.path.isdir(os.path.join(dir, "_svn"))
+
+_cache_svninfo = {}
+def get_svninfo(target):
+ """Extract the subversion information for a target (through 'svn info').
+ This function uses an internal cache to let clients query information
+ many times."""
+ if _cache_svninfo.has_key(target):
+ return _cache_svninfo[target]
+ info = {}
+ for L in launchsvn('info "%s"' % target):
+ L = L.strip()
+ if not L:
+ continue
+ key, value = L.split(": ", 1)
+ info[key] = value.strip()
+ _cache_svninfo[target] = info
+ return info
+
+def target_to_url(target):
+ """Convert working copy path or repos URL to a repos URL."""
+ if is_wc(target):
+ info = get_svninfo(target)
+ return info["URL"]
+ return target
+
+_cache_reporoot = {}
+def get_repo_root(target):
+ """Compute the root repos URL given a working-copy path, or a URL."""
+ # Try using "svn info WCDIR". This works only on SVN clients >= 1.3
+ if not is_url(target):
+ try:
+ info = get_svninfo(target)
+ root = info["Repository Root"]
+ _cache_reporoot[root] = None
+ return root
+ except KeyError:
+ pass
+ url = target_to_url(target)
+ assert url[-1] != '/'
+ else:
+ url = target
+
+ # Go through the cache of the repository roots. This avoids extra
+ # server round-trips if we are asking the root of different URLs
+ # in the same repository (the cache in get_svninfo() cannot detect
+ # that of course and would issue a remote command).
+ assert is_url(url)
+ for r in _cache_reporoot:
+ if url.startswith(r):
+ return r
+
+ # Try using "svn info URL". This works only on SVN clients >= 1.2
+ try:
+ info = get_svninfo(url)
+ # info may be {}, in which case we'll see KeyError here
+ root = info["Repository Root"]
+ _cache_reporoot[root] = None
+ return root
+ except (KeyError, LaunchError):
+ pass
+
+ # Constrained to older svn clients, we are stuck with this ugly
+ # trial-and-error implementation. It could be made faster with a
+ # binary search.
+ while url:
+ temp = os.path.dirname(url)
+ try:
+ launchsvn('proplist "%s"' % temp)
+ except LaunchError:
+ _cache_reporoot[url] = None
+ return rstrip(url, "/")
+ url = temp
+
+ error("svn repos root of %s not found" % target)
+
+class SvnLogParser:
+ """
+ Parse the "svn log", going through the XML output and using pulldom (which
+ would even allow streaming the command output).
+ """
+ def __init__(self, xml):
+ self._events = pulldom.parseString(xml)
+ def __getitem__(self, idx):
+ for event, node in self._events:
+ if event == pulldom.START_ELEMENT and node.tagName == "logentry":
+ self._events.expandNode(node)
+ return self.SvnLogRevision(node)
+ raise IndexError, "Could not find 'logentry' tag in xml"
+
+ class SvnLogRevision:
+ def __init__(self, xmlnode):
+ self.n = xmlnode
+ def revision(self):
+ return int(self.n.getAttribute("revision"))
+ def author(self):
+ return self.n.getElementsByTagName("author")[0].firstChild.data
+ def paths(self):
+ return [self.SvnLogPath(n)
+ for n in self.n.getElementsByTagName("path")]
+
+ class SvnLogPath:
+ def __init__(self, xmlnode):
+ self.n = xmlnode
+ def action(self):
+ return self.n.getAttribute("action")
+ def pathid(self):
+ return self.n.firstChild.data
+ def copyfrom_rev(self):
+ try: return self.n.getAttribute("copyfrom-rev")
+ except KeyError: return None
+ def copyfrom_pathid(self):
+ try: return self.n.getAttribute("copyfrom-path")
+ except KeyError: return None
+
+def get_copyfrom(target):
+ """Get copyfrom info for a given target (it represents the
+ repository-relative path from where it was branched). NOTE:
+ repos root has no copyfrom info. In this case None is returned.
+
+ Returns the:
+ - source file or directory from which the copy was made
+ - revision from which that source was copied
+ - revision in which the copy was committed
+ """
+ repos_path = PathIdentifier.from_target(target).repo_relative_path
+ for chg in SvnLogParser(launchsvn('log -v --xml --stop-on-copy "%s"'
+ % target, split_lines=False)):
+ for p in chg.paths():
+ if p.action() == 'A' and p.pathid() == repos_path:
+ # These values will be None if the corresponding elements are
+ # not found in the log.
+ return p.copyfrom_pathid(), p.copyfrom_rev(), chg.revision()
+ return None,None,None
+
+def get_latest_rev(url):
+ """Get the latest revision of the repository of which URL is part."""
+ try:
+ info = get_svninfo(url)
+ if not info.has_key("Revision"):
+ error("Not a valid URL: %s" % url)
+ return info["Revision"]
+ except LaunchError:
+ # Alternative method for latest revision checking (for svn < 1.2)
+ report('checking latest revision of "%s"' % url)
+ L = launchsvn('proplist --revprop -r HEAD "%s"' % opts["source-url"])[0]
+ rev = re.search("revision (\d+)", L).group(1)
+ report('latest revision of "%s" is %s' % (url, rev))
+ return rev
+
+def get_created_rev(url):
+ """Lookup the revision at which the path identified by the
+ provided URL was first created."""
+ oldest_rev = -1
+ report('determining oldest revision for URL "%s"' % url)
+ ### TODO: Refactor this to use a modified RevisionLog class.
+ lines = None
+ cmd = "log -r1:HEAD --stop-on-copy -q " + url
+ try:
+ lines = launchsvn(cmd + " --limit=1")
+ except LaunchError:
+ # Assume that --limit isn't supported by the installed 'svn'.
+ lines = launchsvn(cmd)
+ if lines and len(lines) > 1:
+ i = lines[1].find(" ")
+ if i != -1:
+ oldest_rev = int(lines[1][1:i])
+ if oldest_rev == -1:
+ error('unable to determine oldest revision for URL "%s"' % url)
+ return oldest_rev
+
+def get_commit_log(url, revnum):
+ """Return the log message for a specific integer revision
+ number."""
+ out = launchsvn("log --incremental -r%d %s" % (revnum, url))
+ return recode_stdout_to_file("".join(out[1:]))
+
+def construct_merged_log_message(url, revnums):
+ """Return a commit log message containing all the commit messages
+ in the specified revisions at the given URL. The separator used
+ in this log message is determined by searching for the longest
+ svnmerge separator existing in the commit log messages and
+ extending it by one more separator. This results in a new commit
+ log message that is clearer in describing merges that contain
+ other merges. Trailing newlines are removed from the embedded
+ log messages."""
+ messages = ['']
+ longest_sep = ''
+ for r in revnums.sorted():
+ message = get_commit_log(url, r)
+ if message:
+ message = re.sub(r'(\r\n|\r|\n)', "\n", message)
+ message = rstrip(message, "\n") + "\n"
+ messages.append(prefix_lines(LOG_LINE_PREFIX, message))
+ for match in LOG_SEPARATOR_RE.findall(message):
+ sep = match[1]
+ if len(sep) > len(longest_sep):
+ longest_sep = sep
+
+ longest_sep += LOG_SEPARATOR + "\n"
+ messages.append('')
+ return longest_sep.join(messages)
+
+def get_default_source(branch_target, branch_props):
+ """Return the default source for branch_target (given its branch_props).
+ Error out if there is ambiguity."""
+ if not branch_props:
+ error("no integration info available")
+
+ props = branch_props.copy()
+ pathid = PathIdentifier.from_target(branch_target)
+
+ # To make bidirectional merges easier, find the target's
+ # repository local path so it can be removed from the list of
+ # possible integration sources.
+ if props.has_key(pathid):
+ del props[pathid]
+
+ if len(props) > 1:
+ err_msg = "multiple sources found. "
+ err_msg += "Explicit source argument (-S/--source) required.\n"
+ err_msg += "The merge sources available are:"
+ for prop in props:
+ err_msg += "\n " + str(prop)
+ error(err_msg)
+
+ return props.keys()[0]
+
+def should_find_reflected(branch_dir):
+ should_find_reflected = opts["bidirectional"]
+
+ # If the source has integration info for the target, set find_reflected
+ # even if --bidirectional wasn't specified
+ if not should_find_reflected:
+ source_props = get_merge_props(opts["source-url"])
+ should_find_reflected = source_props.has_key(PathIdentifier.from_target(branch_dir))
+
+ return should_find_reflected
+
+def analyze_revs(target_pathid, url, begin=1, end=None,
+ find_reflected=False):
+ """For the source of the merges in the source URL being merged into
+ target_pathid, analyze the revisions in the interval begin-end (which
+ defaults to 1-HEAD), to find out which revisions are changes in
+ the url, which are changes elsewhere (so-called 'phantom'
+ revisions), optionally which are reflected changes (to avoid
+ conflicts that can occur when doing bidirectional merging between
+ branches), and which revisions initialize merge tracking against other
+ branches. Return a tuple of four RevisionSet's:
+ (real_revs, phantom_revs, reflected_revs, initialized_revs).
+
+ NOTE: To maximize speed, if "end" is not provided, the function is
+ not able to find phantom revisions following the last real
+ revision in the URL.
+ """
+
+ begin = str(begin)
+ if end is None:
+ end = "HEAD"
+ else:
+ end = str(end)
+ if long(begin) > long(end):
+ return RevisionSet(""), RevisionSet(""), \
+ RevisionSet(""), RevisionSet("")
+
+ logs[url] = RevisionLog(url, begin, end, find_reflected)
+ revs = RevisionSet(logs[url].revs)
+
+ if end == "HEAD":
+ # If end is not provided, we do not know which is the latest revision
+ # in the repository. So return the phantom revision set only up to
+ # the latest known revision.
+ end = str(list(revs)[-1])
+
+ phantom_revs = RevisionSet("%s-%s" % (begin, end)) - revs
+
+ if find_reflected:
+ reflected_revs = logs[url].merge_metadata().changed_revs(target_pathid)
+ reflected_revs += logs[url].block_metadata().changed_revs(target_pathid)
+ else:
+ reflected_revs = []
+
+ initialized_revs = RevisionSet(logs[url].merge_metadata().initialized_revs())
+ reflected_revs = RevisionSet(reflected_revs)
+
+ return revs, phantom_revs, reflected_revs, initialized_revs
+
+def analyze_source_revs(branch_target, source_url, **kwargs):
+ """For the given branch and source, extract the real and phantom
+ source revisions."""
+ branch_url = target_to_url(branch_target)
+ branch_pathid = PathIdentifier.from_target(branch_target)
+
+ # Extract the latest repository revision from the URL of the branch
+ # directory (which is already cached at this point).
+ end_rev = get_latest_rev(source_url)
+
+ # Calculate the base of analysis. If there is a "1-XX" interval in the
+ # merged_revs, we do not need to check those.
+ base = 1
+ r = opts["merged-revs"].normalized()
+ if r and r[0][0] == 1:
+ base = r[0][1] + 1
+
+ # See if the user filtered the revision set. If so, we are not
+ # interested in something outside that range.
+ if opts["revision"]:
+ revs = RevisionSet(opts["revision"]).sorted()
+ if base < revs[0]:
+ base = revs[0]
+ if end_rev > revs[-1]:
+ end_rev = revs[-1]
+
+ return analyze_revs(branch_pathid, source_url, base, end_rev, **kwargs)
+
+def minimal_merge_intervals(revs, phantom_revs):
+ """Produce the smallest number of intervals suitable for merging. revs
+ is the RevisionSet which we want to merge, and phantom_revs are phantom
+ revisions which can be used to concatenate intervals, thus minimizing the
+ number of operations."""
+ revnums = revs.normalized()
+ ret = []
+
+ cur = revnums.pop()
+ while revnums:
+ next = revnums.pop()
+ assert next[1] < cur[0] # otherwise it is not ordered
+ assert cur[0] - next[1] > 1 # otherwise it is not normalized
+ for i in range(next[1]+1, cur[0]):
+ if i not in phantom_revs:
+ ret.append(cur)
+ cur = next
+ break
+ else:
+ cur = (next[0], cur[1])
+
+ ret.append(cur)
+ ret.reverse()
+ return ret
+
+def display_revisions(revs, display_style, revisions_msg, source_url):
+ """Show REVS as dictated by DISPLAY_STYLE, either numerically, in
+ log format, or as diffs. When displaying revisions numerically,
+ prefix output with REVISIONS_MSG when in verbose mode. Otherwise,
+ request logs or diffs using SOURCE_URL."""
+ if display_style == "revisions":
+ if revs:
+ report(revisions_msg)
+ print revs
+ elif display_style == "logs":
+ for start,end in revs.normalized():
+ svn_command('log --incremental -v -r %d:%d %s' % \
+ (start, end, source_url))
+ elif display_style in ("diffs", "summarize"):
+ if display_style == 'summarize':
+ summarize = '--summarize '
+ else:
+ summarize = ''
+
+ for start, end in revs.normalized():
+ print
+ if start == end:
+ print "%s: changes in revision %d follow" % (NAME, start)
+ else:
+ print "%s: changes in revisions %d-%d follow" % (NAME,
+ start, end)
+ print
+
+ # Note: the starting revision number to 'svn diff' is
+ # NOT inclusive so we have to subtract one from ${START}.
+ svn_command("diff -r %d:%d %s %s" % (start - 1, end, summarize,
+ source_url))
+ else:
+ assert False, "unhandled display style: %s" % display_style
+
+def action_init(target_dir, target_props):
+ """Initialize for merges."""
+ # Check that directory is ready for being modified
+ check_dir_clean(target_dir)
+
+ target_pathid = PathIdentifier.from_target(target_dir)
+ source_pathid = opts['source-pathid']
+ if source_pathid == target_pathid:
+ error("cannot init integration source path '%s'\nIts path identifier does not "
+ "differ from the path identifier of the current directory, '%s'."
+ % (source_pathid, target_pathid))
+
+ source_url = opts['source-url']
+
+ # If the user hasn't specified the revisions to use, see if the
+ # "source" is a copy from the current tree and if so, we can use
+ # the version data obtained from it.
+ revision_range = opts["revision"]
+ if not revision_range:
+ # If source was originally copied from target, and we are merging
+ # changes from source to target (the copy target is the merge source,
+ # and the copy source is the merge target), then we want to mark as
+ # integrated up to the rev in which the copy was committed which
+ # created the merge source:
+ cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(source_url)
+
+ cf_pathid = None
+ if cf_source:
+ cf_url = get_repo_root(source_url) + cf_source
+ if is_url(cf_url) and check_url(cf_url):
+ cf_pathid = PathIdentifier.from_target(cf_url)
+
+ if target_pathid == cf_pathid:
+ report('the source "%s" was copied from "%s" in rev %s and committed in rev %s' %
+ (source_url, target_dir, cf_rev, copy_committed_in_rev))
+ revision_range = "1-" + str(copy_committed_in_rev)
+
+ if not revision_range:
+ # If the reverse is true: copy source is the merge source, and
+ # the copy target is the merge target, then we want to mark as
+ # integrated up to the specific rev of the merge target from
+ # which the merge source was copied. (Longer discussion at:
+ # http://subversion.tigris.org/issues/show_bug.cgi?id=2810 )
+ cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(target_dir)
+
+ cf_pathid = None
+ if cf_source:
+ cf_url = get_repo_root(target_dir) + cf_source
+ if is_url(cf_url) and check_url(cf_url):
+ cf_pathid = PathIdentifier.from_target(cf_url)
+
+ source_pathid = PathIdentifier.from_target(source_url)
+ if source_pathid == cf_pathid:
+ report('the target "%s" was copied the source "%s" in rev %s and committed in rev %s' %
+ (target_dir, source_url, cf_rev, copy_committed_in_rev))
+ revision_range = "1-" + cf_rev
+
+ # When neither the merge source nor target is a copy of the other, and
+ # the user did not specify a revision range, then choose a default which is
+ # the current revision; saying, in effect, "everything has been merged, so
+ # mark as integrated up to the latest rev on source url).
+ if not revision_range:
+ revision_range = "1-" + get_latest_rev(source_url)
+
+ revs = RevisionSet(revision_range)
+
+ report('marking "%s" as already containing revisions "%s" of "%s"' %
+ (target_dir, revs, source_url))
+
+ revs = str(revs)
+ # If the local svnmerge-integrated property already has an entry
+ # for the source-pathid, simply error out.
+ if not opts["force"] and target_props.has_key(source_pathid):
+ error('Repository-relative path %s has already been initialized at %s\n'
+ 'Use --force to re-initialize' % (source_pathid, target_dir))
+ # set the pathid's external_form based on the user's options
+ source_pathid.external_form = source_pathid.format(opts['location-type'])
+
+ revs = str(revs)
+ target_props[source_pathid] = revs
+
+ # Set property
+ set_merge_props(target_dir, target_props)
+
+ # Write out commit message if desired
+ if opts["commit-file"]:
+ f = open(opts["commit-file"], "w")
+ print >>f, 'Initialized merge tracking via "%s" with revisions "%s" from ' \
+ % (NAME, revs)
+ print >>f, '%s' % source_url
+ f.close()
+ report('wrote commit message to "%s"' % opts["commit-file"])
+
+def action_avail(branch_dir, branch_props):
+ """Show commits available for merges."""
+ source_revs, phantom_revs, reflected_revs, initialized_revs = \
+ analyze_source_revs(branch_dir, opts["source-url"],
+ find_reflected=
+ should_find_reflected(branch_dir))
+ report('skipping phantom revisions: %s' % phantom_revs)
+ if reflected_revs:
+ report('skipping reflected revisions: %s' % reflected_revs)
+ report('skipping initialized revisions: %s' % initialized_revs)
+
+ blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
+ avail_revs = source_revs - opts["merged-revs"] - blocked_revs - \
+ reflected_revs - initialized_revs
+
+ # Compose the set of revisions to show
+ revs = RevisionSet("")
+ report_msg = "revisions available to be merged are:"
+ if "avail" in opts["avail-showwhat"]:
+ revs |= avail_revs
+ if "blocked" in opts["avail-showwhat"]:
+ revs |= blocked_revs
+ report_msg = "revisions blocked are:"
+
+ # Limit to revisions specified by -r (if any)
+ if opts["revision"]:
+ revs = revs & RevisionSet(opts["revision"])
+
+ display_revisions(revs, opts["avail-display"],
+ report_msg,
+ opts["source-url"])
+
+def action_integrated(branch_dir, branch_props):
+ """Show change sets already merged. This set of revisions is
+ calculated from taking svnmerge-integrated property from the
+ branch, and subtracting any revision older than the branch
+ creation revision."""
+ # Extract the integration info for the branch_dir
+ branch_props = get_merge_props(branch_dir)
+ revs = merge_props_to_revision_set(branch_props, opts["source-pathid"])
+
+ # Lookup the oldest revision on the branch path.
+ oldest_src_rev = get_created_rev(opts["source-url"])
+
+ # Subtract any revisions which pre-date the branch.
+ report("subtracting revisions which pre-date the source URL (%d)" %
+ oldest_src_rev)
+ revs = revs - RevisionSet(range(1, oldest_src_rev))
+
+ # Limit to revisions specified by -r (if any)
+ if opts["revision"]:
+ revs = revs & RevisionSet(opts["revision"])
+
+ display_revisions(revs, opts["integrated-display"],
+ "revisions already integrated are:", opts["source-url"])
+
+def action_merge(branch_dir, branch_props):
+ """Record merge meta data, and do the actual merge (if not
+ requested otherwise via --record-only)."""
+ # Check branch directory is ready for being modified
+ check_dir_clean(branch_dir)
+
+ source_revs, phantom_revs, reflected_revs, initialized_revs = \
+ analyze_source_revs(branch_dir, opts["source-url"],
+ find_reflected=
+ should_find_reflected(branch_dir))
+
+ if opts["revision"]:
+ revs = RevisionSet(opts["revision"])
+ else:
+ revs = source_revs
+
+ blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
+ merged_revs = opts["merged-revs"]
+
+ # Show what we're doing
+ if opts["verbose"]: # just to avoid useless calculations
+ if merged_revs & revs:
+ report('"%s" already contains revisions %s' % (branch_dir,
+ merged_revs & revs))
+ if phantom_revs:
+ report('memorizing phantom revision(s): %s' % phantom_revs)
+ if reflected_revs:
+ report('memorizing reflected revision(s): %s' % reflected_revs)
+ if blocked_revs & revs:
+ report('skipping blocked revisions(s): %s' % (blocked_revs & revs))
+ if initialized_revs:
+ report('skipping initialized revision(s): %s' % initialized_revs)
+
+ # Compute final merge set.
+ revs = revs - merged_revs - blocked_revs - reflected_revs - \
+ phantom_revs - initialized_revs
+ if not revs:
+ report('no revisions to merge, exiting')
+ return
+
+ # When manually marking revisions as merged, we only update the
+ # integration meta data, and don't perform an actual merge.
+ record_only = opts["record-only"]
+
+ if record_only:
+ report('recording merge of revision(s) %s from "%s"' %
+ (revs, opts["source-url"]))
+ else:
+ report('merging in revision(s) %s from "%s"' %
+ (revs, opts["source-url"]))
+
+ # Do the merge(s). Note: the starting revision number to 'svn merge'
+ # is NOT inclusive so we have to subtract one from start.
+ # We try to keep the number of merge operations as low as possible,
+ # because it is faster and reduces the number of conflicts.
+ old_block_props = get_block_props(branch_dir)
+ merge_metadata = logs[opts["source-url"]].merge_metadata()
+ block_metadata = logs[opts["source-url"]].block_metadata()
+ for start,end in minimal_merge_intervals(revs, phantom_revs):
+ if not record_only:
+ # Preset merge/blocked properties to the source value at
+ # the start rev to avoid spurious property conflicts
+ set_merge_props(branch_dir, merge_metadata.get(start - 1))
+ set_block_props(branch_dir, block_metadata.get(start - 1))
+ # Do the merge
+ svn_command("merge --force -r %d:%d %s %s" % \
+ (start - 1, end, opts["source-url"], branch_dir))
+ # TODO: to support graph merging, add logic to merge the property
+ # meta-data manually
+
+ # Update the set of merged revisions.
+ merged_revs = merged_revs | revs | reflected_revs | phantom_revs | initialized_revs
+ branch_props[opts["source-pathid"]] = str(merged_revs)
+ set_merge_props(branch_dir, branch_props)
+ # Reset the blocked revs
+ set_block_props(branch_dir, old_block_props)
+
+ # Write out commit message if desired
+ if opts["commit-file"]:
+ f = open(opts["commit-file"], "w")
+ if record_only:
+ print >>f, 'Recorded merge of revisions %s via %s from ' % \
+ (revs, NAME)
+ else:
+ print >>f, 'Merged revisions %s via %s from ' % \
+ (revs, NAME)
+ print >>f, '%s' % opts["source-url"]
+ if opts["commit-verbose"]:
+ print >>f
+ print >>f, construct_merged_log_message(opts["source-url"], revs),
+
+ f.close()
+ report('wrote commit message to "%s"' % opts["commit-file"])
+
+def action_block(branch_dir, branch_props):
+ """Block revisions."""
+ # Check branch directory is ready for being modified
+ check_dir_clean(branch_dir)
+
+ source_revs, phantom_revs, reflected_revs, initialized_revs = \
+ analyze_source_revs(branch_dir, opts["source-url"])
+ revs_to_block = source_revs - opts["merged-revs"]
+
+ # Limit to revisions specified by -r (if any)
+ if opts["revision"]:
+ revs_to_block = RevisionSet(opts["revision"]) & revs_to_block
+
+ if not revs_to_block:
+ error('no available revisions to block')
+
+ # Change blocked information
+ blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
+ blocked_revs = blocked_revs | revs_to_block
+ set_blocked_revs(branch_dir, opts["source-pathid"], blocked_revs)
+
+ # Write out commit message if desired
+ if opts["commit-file"]:
+ f = open(opts["commit-file"], "w")
+ print >>f, 'Blocked revisions %s via %s' % (revs_to_block, NAME)
+ if opts["commit-verbose"]:
+ print >>f
+ print >>f, construct_merged_log_message(opts["source-url"],
+ revs_to_block),
+
+ f.close()
+ report('wrote commit message to "%s"' % opts["commit-file"])
+
+def action_unblock(branch_dir, branch_props):
+ """Unblock revisions."""
+ # Check branch directory is ready for being modified
+ check_dir_clean(branch_dir)
+
+ blocked_revs = get_blocked_revs(branch_dir, opts["source-pathid"])
+ revs_to_unblock = blocked_revs
+
+ # Limit to revisions specified by -r (if any)
+ if opts["revision"]:
+ revs_to_unblock = revs_to_unblock & RevisionSet(opts["revision"])
+
+ if not revs_to_unblock:
+ error('no available revisions to unblock')
+
+ # Change blocked information
+ blocked_revs = blocked_revs - revs_to_unblock
+ set_blocked_revs(branch_dir, opts["source-pathid"], blocked_revs)
+
+ # Write out commit message if desired
+ if opts["commit-file"]:
+ f = open(opts["commit-file"], "w")
+ print >>f, 'Unblocked revisions %s via %s' % (revs_to_unblock, NAME)
+ if opts["commit-verbose"]:
+ print >>f
+ print >>f, construct_merged_log_message(opts["source-url"],
+ revs_to_unblock),
+ f.close()
+ report('wrote commit message to "%s"' % opts["commit-file"])
+
+def action_rollback(branch_dir, branch_props):
+ """Rollback previously integrated revisions."""
+
+ # Make sure the revision arguments are present
+ if not opts["revision"]:
+ error("The '-r' option is mandatory for rollback")
+
+ # Check branch directory is ready for being modified
+ check_dir_clean(branch_dir)
+
+ # Extract the integration info for the branch_dir
+ branch_props = get_merge_props(branch_dir)
+ # Get the list of all revisions already merged into this source-pathid.
+ merged_revs = merge_props_to_revision_set(branch_props,
+ opts["source-pathid"])
+
+ # At which revision was the src created?
+ oldest_src_rev = get_created_rev(opts["source-url"])
+ src_pre_exist_range = RevisionSet("1-%d" % oldest_src_rev)
+
+ # Limit to revisions specified by -r (if any)
+ revs = merged_revs & RevisionSet(opts["revision"])
+
+ # make sure there's some revision to rollback
+ if not revs:
+ report("Nothing to rollback in revision range r%s" % opts["revision"])
+ return
+
+ # If even one specified revision lies outside the lifetime of the
+ # merge source, error out.
+ if revs & src_pre_exist_range:
+ err_str = "Specified revision range falls out of the rollback range.\n"
+ err_str += "%s was created at r%d" % (opts["source-pathid"],
+ oldest_src_rev)
+ error(err_str)
+
+ record_only = opts["record-only"]
+
+ if record_only:
+ report('recording rollback of revision(s) %s from "%s"' %
+ (revs, opts["source-url"]))
+ else:
+ report('rollback of revision(s) %s from "%s"' %
+ (revs, opts["source-url"]))
+
+ # Do the reverse merge(s). Note: the starting revision number
+ # to 'svn merge' is NOT inclusive so we have to subtract one from start.
+ # We try to keep the number of merge operations as low as possible,
+ # because it is faster and reduces the number of conflicts.
+ rollback_intervals = minimal_merge_intervals(revs, [])
+ # rollback in the reverse order of merge
+ rollback_intervals.reverse()
+ for start, end in rollback_intervals:
+ if not record_only:
+ # Do the merge
+ svn_command("merge --force -r %d:%d %s %s" % \
+ (end, start - 1, opts["source-url"], branch_dir))
+
+ # Write out commit message if desired
+ # calculate the phantom revs first
+ if opts["commit-file"]:
+ f = open(opts["commit-file"], "w")
+ if record_only:
+ print >>f, 'Recorded rollback of revisions %s via %s from ' % \
+ (revs , NAME)
+ else:
+ print >>f, 'Rolled back revisions %s via %s from ' % \
+ (revs , NAME)
+ print >>f, '%s' % opts["source-url"]
+
+ f.close()
+ report('wrote commit message to "%s"' % opts["commit-file"])
+
+ # Update the set of merged revisions.
+ merged_revs = merged_revs - revs
+ branch_props[opts["source-pathid"]] = str(merged_revs)
+ set_merge_props(branch_dir, branch_props)
+
+def action_uninit(branch_dir, branch_props):
+ """Uninit SOURCE URL."""
+ # Check branch directory is ready for being modified
+ check_dir_clean(branch_dir)
+
+ # If the source-pathid does not have an entry in the svnmerge-integrated
+ # property, simply error out.
+ if not branch_props.has_key(opts["source-pathid"]):
+ error('Repository-relative path "%s" does not contain merge '
+ 'tracking information for "%s"' \
+ % (opts["source-pathid"], branch_dir))
+
+ del branch_props[opts["source-pathid"]]
+
+ # Set merge property with the selected source deleted
+ set_merge_props(branch_dir, branch_props)
+
+ # Set blocked revisions for the selected source to None
+ set_blocked_revs(branch_dir, opts["source-pathid"], None)
+
+ # Write out commit message if desired
+ if opts["commit-file"]:
+ f = open(opts["commit-file"], "w")
+ print >>f, 'Removed merge tracking for "%s" for ' % NAME
+ print >>f, '%s' % opts["source-url"]
+ f.close()
+ report('wrote commit message to "%s"' % opts["commit-file"])
+
+###############################################################################
+# Command line parsing -- options and commands management
+###############################################################################
+
+class OptBase:
+ def __init__(self, *args, **kwargs):
+ self.help = kwargs["help"]
+ del kwargs["help"]
+ self.lflags = []
+ self.sflags = []
+ for a in args:
+ if a.startswith("--"): self.lflags.append(a)
+ elif a.startswith("-"): self.sflags.append(a)
+ else:
+ raise TypeError, "invalid flag name: %s" % a
+ if kwargs.has_key("dest"):
+ self.dest = kwargs["dest"]
+ del kwargs["dest"]
+ else:
+ if not self.lflags:
+ raise TypeError, "cannot deduce dest name without long options"
+ self.dest = self.lflags[0][2:]
+ if kwargs:
+ raise TypeError, "invalid keyword arguments: %r" % kwargs.keys()
+ def repr_flags(self):
+ f = self.sflags + self.lflags
+ r = f[0]
+ for fl in f[1:]:
+ r += " [%s]" % fl
+ return r
+
+class Option(OptBase):
+ def __init__(self, *args, **kwargs):
+ self.default = kwargs.setdefault("default", 0)
+ del kwargs["default"]
+ self.value = kwargs.setdefault("value", None)
+ del kwargs["value"]
+ OptBase.__init__(self, *args, **kwargs)
+ def apply(self, state, value):
+ assert value == ""
+ if self.value is not None:
+ state[self.dest] = self.value
+ else:
+ state[self.dest] += 1
+
+class OptionArg(OptBase):
+ def __init__(self, *args, **kwargs):
+ self.default = kwargs["default"]
+ del kwargs["default"]
+ self.metavar = kwargs.setdefault("metavar", None)
+ del kwargs["metavar"]
+ OptBase.__init__(self, *args, **kwargs)
+
+ if self.metavar is None:
+ if self.dest is not None:
+ self.metavar = self.dest.upper()
+ else:
+ self.metavar = "arg"
+ if self.default:
+ self.help += " (default: %s)" % self.default
+ def apply(self, state, value):
+ assert value is not None
+ state[self.dest] = value
+ def repr_flags(self):
+ r = OptBase.repr_flags(self)
+ return r + " " + self.metavar
+
+class CommandOpts:
+ class Cmd:
+ def __init__(self, *args):
+ self.name, self.func, self.usage, self.help, self.opts = args
+ def short_help(self):
+ return self.help.split(".")[0]
+ def __str__(self):
+ return self.name
+ def __call__(self, *args, **kwargs):
+ return self.func(*args, **kwargs)
+
+ def __init__(self, global_opts, common_opts, command_table, version=None):
+ self.progname = NAME
+ self.version = version.replace("%prog", self.progname)
+ self.cwidth = console_width() - 2
+ self.ctable = command_table.copy()
+ self.gopts = global_opts[:]
+ self.copts = common_opts[:]
+ self._add_builtins()
+ for k in self.ctable.keys():
+ cmd = self.Cmd(k, *self.ctable[k])
+ opts = []
+ for o in cmd.opts:
+ if isinstance(o, types.StringType) or \
+ isinstance(o, types.UnicodeType):
+ o = self._find_common(o)
+ opts.append(o)
+ cmd.opts = opts
+ self.ctable[k] = cmd
+
+ def _add_builtins(self):
+ self.gopts.append(
+ Option("-h", "--help", help="show help for this command and exit"))
+ if self.version is not None:
+ self.gopts.append(
+ Option("-V", "--version", help="show version info and exit"))
+ self.ctable["help"] = (self._cmd_help,
+ "help [COMMAND]",
+ "Display help for a specific command. If COMMAND is omitted, "
+ "display brief command description.",
+ [])
+
+ def _cmd_help(self, cmd=None, *args):
+ if args:
+ self.error("wrong number of arguments", "help")
+ if cmd is not None:
+ cmd = self._command(cmd)
+ self.print_command_help(cmd)
+ else:
+ self.print_command_list()
+
+ def _paragraph(self, text, width=78):
+ chunks = re.split("\s+", text.strip())
+ chunks.reverse()
+ lines = []
+ while chunks:
+ L = chunks.pop()
+ while chunks and len(L) + len(chunks[-1]) + 1 <= width:
+ L += " " + chunks.pop()
+ lines.append(L)
+ return lines
+
+ def _paragraphs(self, text, *args, **kwargs):
+ pars = text.split("\n\n")
+ lines = self._paragraph(pars[0], *args, **kwargs)
+ for p in pars[1:]:
+ lines.append("")
+ lines.extend(self._paragraph(p, *args, **kwargs))
+ return lines
+
+ def _print_wrapped(self, text, indent=0):
+ text = self._paragraphs(text, self.cwidth - indent)
+ print text.pop(0)
+ for t in text:
+ print " " * indent + t
+
+ def _find_common(self, fl):
+ for o in self.copts:
+ if fl in o.lflags+o.sflags:
+ return o
+ assert False, fl
+
+ def _compute_flags(self, opts, check_conflicts=True):
+ back = {}
+ sfl = ""
+ lfl = []
+ for o in opts:
+ sapp = lapp = ""
+ if isinstance(o, OptionArg):
+ sapp, lapp = ":", "="
+ for s in o.sflags:
+ if check_conflicts and back.has_key(s):
+ raise RuntimeError, "option conflict: %s" % s
+ back[s] = o
+ sfl += s[1:] + sapp
+ for l in o.lflags:
+ if check_conflicts and back.has_key(l):
+ raise RuntimeError, "option conflict: %s" % l
+ back[l] = o
+ lfl.append(l[2:] + lapp)
+ return sfl, lfl, back
+
+ def _extract_command(self, args):
+ """
+ Try to extract the command name from the argument list. This is
+ non-trivial because we want to allow command-specific options even
+ before the command itself.
+ """
+ opts = self.gopts[:]
+ for cmd in self.ctable.values():
+ opts.extend(cmd.opts)
+ sfl, lfl, _ = self._compute_flags(opts, check_conflicts=False)
+
+ lopts,largs = getopt.getopt(args, sfl, lfl)
+ if not largs:
+ return None
+ return self._command(largs[0])
+
+ def _fancy_getopt(self, args, opts, state=None):
+ if state is None:
+ state= {}
+ for o in opts:
+ if not state.has_key(o.dest):
+ state[o.dest] = o.default
+
+ sfl, lfl, back = self._compute_flags(opts)
+ try:
+ lopts,args = getopt.gnu_getopt(args, sfl, lfl)
+ except AttributeError:
+ # Before Python 2.3, there was no gnu_getopt support.
+ # So we can't parse intermixed positional arguments
+ # and options.
+ lopts,args = getopt.getopt(args, sfl, lfl)
+
+ for o,v in lopts:
+ back[o].apply(state, v)
+ return state, args
+
+ def _command(self, cmd):
+ if not self.ctable.has_key(cmd):
+ self.error("unknown command: '%s'" % cmd)
+ return self.ctable[cmd]
+
+ def parse(self, args):
+ if not args:
+ self.print_small_help()
+ sys.exit(0)
+
+ cmd = None
+ try:
+ cmd = self._extract_command(args)
+ opts = self.gopts[:]
+ if cmd:
+ opts.extend(cmd.opts)
+ args.remove(cmd.name)
+ state, args = self._fancy_getopt(args, opts)
+ except getopt.GetoptError, e:
+ self.error(e, cmd)
+
+ # Handle builtins
+ if self.version is not None and state["version"]:
+ self.print_version()
+ sys.exit(0)
+ if state["help"]: # special case for --help
+ if cmd:
+ self.print_command_help(cmd)
+ sys.exit(0)
+ cmd = self.ctable["help"]
+ else:
+ if cmd is None:
+ self.error("command argument required")
+ if str(cmd) == "help":
+ cmd(*args)
+ sys.exit(0)
+ return cmd, args, state
+
+ def error(self, s, cmd=None):
+ print >>sys.stderr, "%s: %s" % (self.progname, s)
+ if cmd is not None:
+ self.print_command_help(cmd)
+ else:
+ self.print_small_help()
+ sys.exit(1)
+ def print_small_help(self):
+ print "Type '%s help' for usage" % self.progname
+ def print_usage_line(self):
+ print "usage: %s <subcommand> [options...] [args...]\n" % self.progname
+ def print_command_list(self):
+ print "Available commands (use '%s help COMMAND' for more details):\n" \
+ % self.progname
+ cmds = self.ctable.keys()
+ cmds.sort()
+ indent = max(map(len, cmds))
+ for c in cmds:
+ h = self.ctable[c].short_help()
+ print " %-*s " % (indent, c),
+ self._print_wrapped(h, indent+6)
+ def print_command_help(self, cmd):
+ cmd = self.ctable[str(cmd)]
+ print 'usage: %s %s\n' % (self.progname, cmd.usage)
+ self._print_wrapped(cmd.help)
+ def print_opts(opts, self=self):
+ if not opts: return
+ flags = [o.repr_flags() for o in opts]
+ indent = max(map(len, flags))
+ for f,o in zip(flags, opts):
+ print " %-*s :" % (indent, f),
+ self._print_wrapped(o.help, indent+5)
+ print '\nCommand options:'
+ print_opts(cmd.opts)
+ print '\nGlobal options:'
+ print_opts(self.gopts)
+
+ def print_version(self):
+ print self.version
+
+###############################################################################
+# Options and Commands description
+###############################################################################
+
+global_opts = [
+ Option("-F", "--force",
+ help="force operation even if the working copy is not clean, or "
+ "there are pending updates"),
+ Option("-n", "--dry-run",
+ help="don't actually change anything, just pretend; "
+ "implies --show-changes"),
+ Option("-s", "--show-changes",
+ help="show subversion commands that make changes"),
+ Option("-v", "--verbose",
+ help="verbose mode: output more information about progress"),
+ OptionArg("-u", "--username",
+ default=None,
+ help="invoke subversion commands with the supplied username"),
+ OptionArg("-p", "--password",
+ default=None,
+ help="invoke subversion commands with the supplied password"),
+ OptionArg("-c", "--config-dir", metavar="DIR",
+ default=None,
+ help="cause subversion commands to consult runtime config directory DIR"),
+]
+
+common_opts = [
+ Option("-b", "--bidirectional",
+ value=True,
+ default=False,
+ help="remove reflected and initialized revisions from merge candidates. "
+ "Not required but may be specified to speed things up slightly"),
+ OptionArg("-f", "--commit-file", metavar="FILE",
+ default="svnmerge-commit-message.txt",
+ help="set the name of the file where the suggested log message "
+ "is written to"),
+ Option("-M", "--record-only",
+ value=True,
+ default=False,
+ help="do not perform an actual merge of the changes, yet record "
+ "that a merge happened"),
+ OptionArg("-r", "--revision",
+ metavar="REVLIST",
+ default="",
+ help="specify a revision list, consisting of revision numbers "
+ 'and ranges separated by commas, e.g., "534,537-539,540"'),
+ OptionArg("-S", "--source", "--head",
+ default=None,
+ help="specify a merge source for this branch. It can be either "
+ "a working directory path, a full URL, or an unambiguous "
+ "substring of one of the locations for which merge tracking was "
+ "already initialized. Needed only to disambiguate in case of "
+ "multiple merge sources"),
+]
+
+command_table = {
+ "init": (action_init,
+ "init [OPTION...] [SOURCE]",
+ """Initialize merge tracking from SOURCE on the current working
+ directory.
+
+ If SOURCE is specified, all the revisions in SOURCE are marked as already
+ merged; if this is not correct, you can use --revision to specify the
+ exact list of already-merged revisions.
+
+ If SOURCE is omitted, then it is computed from the "svn cp" history of the
+ current working directory (searching back for the branch point); in this
+ case, %s assumes that no revision has been integrated yet since
+ the branch point (unless you teach it with --revision).""" % NAME,
+ [
+ "-f", "-r", # import common opts
+ OptionArg("-L", "--location-type",
+ dest="location-type",
+ default="path",
+ help="Use this type of location identifier in the new " +
+ "Subversion properties; 'uuid', 'url', or 'path' " +
+ "(default)"),
+ ]),
+
+ "avail": (action_avail,
+ "avail [OPTION...] [PATH]",
+ """Show unmerged revisions available for PATH as a revision list.
+ If --revision is given, the revisions shown will be limited to those
+ also specified in the option.
+
+ When svnmerge is used to bidirectionally merge changes between a
+ branch and its source, it is necessary to not merge the same changes
+ forth and back: e.g., if you committed a merge of a certain
+ revision of the branch into the source, you do not want that commit
+ to appear as available to merged into the branch (as the code
+ originated in the branch itself!). svnmerge will automatically
+ exclude these so-called "reflected" revisions.""",
+ [
+ Option("-A", "--all",
+ dest="avail-showwhat",
+ value=["blocked", "avail"],
+ default=["avail"],
+ help="show both available and blocked revisions (aka ignore "
+ "blocked revisions)"),
+ "-b",
+ Option("-B", "--blocked",
+ dest="avail-showwhat",
+ value=["blocked"],
+ help="show the blocked revision list (see '%s block')" % NAME),
+ Option("-d", "--diff",
+ dest="avail-display",
+ value="diffs",
+ default="revisions",
+ help="show corresponding diff instead of revision list"),
+ Option("--summarize",
+ dest="avail-display",
+ value="summarize",
+ help="show summarized diff instead of revision list"),
+ Option("-l", "--log",
+ dest="avail-display",
+ value="logs",
+ help="show corresponding log history instead of revision list"),
+ "-r",
+ "-S",
+ ]),
+
+ "integrated": (action_integrated,
+ "integrated [OPTION...] [PATH]",
+ """Show merged revisions available for PATH as a revision list.
+ If --revision is given, the revisions shown will be limited to
+ those also specified in the option.""",
+ [
+ Option("-d", "--diff",
+ dest="integrated-display",
+ value="diffs",
+ default="revisions",
+ help="show corresponding diff instead of revision list"),
+ Option("-l", "--log",
+ dest="integrated-display",
+ value="logs",
+ help="show corresponding log history instead of revision list"),
+ "-r",
+ "-S",
+ ]),
+
+ "rollback": (action_rollback,
+ "rollback [OPTION...] [PATH]",
+ """Rollback previously merged in revisions from PATH. The
+ --revision option is mandatory, and specifies which revisions
+ will be rolled back. Only the previously integrated merges
+ will be rolled back.
+
+ When manually rolling back changes, --record-only can be used to
+ instruct %s that a manual rollback of a certain revision
+ already happened, so that it can record it and offer that
+ revision for merge henceforth.""" % (NAME),
+ [
+ "-f", "-r", "-S", "-M", # import common opts
+ ]),
+
+ "merge": (action_merge,
+ "merge [OPTION...] [PATH]",
+ """Merge in revisions into PATH from its source. If --revision is omitted,
+ all the available revisions will be merged. In any case, already merged-in
+ revisions will NOT be merged again.
+
+ When svnmerge is used to bidirectionally merge changes between a
+ branch and its source, it is necessary to not merge the same changes
+ forth and back: e.g., if you committed a merge of a certain
+ revision of the branch into the source, you do not want that commit
+ to appear as available to merged into the branch (as the code
+ originated in the branch itself!). svnmerge will automatically
+ exclude these so-called "reflected" revisions.
+
+ When manually merging changes across branches, --record-only can
+ be used to instruct %s that a manual merge of a certain revision
+ already happened, so that it can record it and not offer that
+ revision for merge anymore. Conversely, when there are revisions
+ which should not be merged, use '%s block'.""" % (NAME, NAME),
+ [
+ "-b", "-f", "-r", "-S", "-M", # import common opts
+ ]),
+
+ "block": (action_block,
+ "block [OPTION...] [PATH]",
+ """Block revisions within PATH so that they disappear from the available
+ list. This is useful to hide revisions which will not be integrated.
+ If --revision is omitted, it defaults to all the available revisions.
+
+ Do not use this option to hide revisions that were manually merged
+ into the branch. Instead, use '%s merge --record-only', which
+ records that a merge happened (as opposed to a merge which should
+ not happen).""" % NAME,
+ [
+ "-f", "-r", "-S", # import common opts
+ ]),
+
+ "unblock": (action_unblock,
+ "unblock [OPTION...] [PATH]",
+ """Revert the effect of '%s block'. If --revision is omitted, all the
+ blocked revisions are unblocked""" % NAME,
+ [
+ "-f", "-r", "-S", # import common opts
+ ]),
+
+ "uninit": (action_uninit,
+ "uninit [OPTION...] [PATH]",
+ """Remove merge tracking information from PATH. It cleans any kind of merge
+ tracking information (including the list of blocked revisions). If there
+ are multiple sources, use --source to indicate which source you want to
+ forget about.""",
+ [
+ "-f", "-S", # import common opts
+ ]),
+}
+
+
+def main(args):
+ global opts
+
+ # Initialize default options
+ opts = default_opts.copy()
+ logs.clear()
+
+ optsparser = CommandOpts(global_opts, common_opts, command_table,
+ version="%%prog r%s\n modified: %s\n\n"
+ "Copyright (C) 2004,2005 Awarix Inc.\n"
+ "Copyright (C) 2005, Giovanni Bajo"
+ % (__revision__, __date__))
+
+ cmd, args, state = optsparser.parse(args)
+ opts.update(state)
+
+ source = opts.get("source", None)
+ branch_dir = "."
+
+ if str(cmd) == "init":
+ if len(args) == 1:
+ source = args[0]
+ elif len(args) > 1:
+ optsparser.error("wrong number of parameters", cmd)
+ elif str(cmd) in command_table.keys():
+ if len(args) == 1:
+ branch_dir = args[0]
+ elif len(args) > 1:
+ optsparser.error("wrong number of parameters", cmd)
+ else:
+ assert False, "command not handled: %s" % cmd
+
+ # Validate branch_dir
+ if not is_wc(branch_dir):
+ if str(cmd) == "avail":
+ info = None
+ # it should be noted here that svn info does not error exit
+ # if an invalid target is specified to it (as is
+ # intuitive). so the try, except code is not absolutely
+ # necessary. but, I retain it to indicate the intuitive
+ # handling.
+ try:
+ info = get_svninfo(branch_dir)
+ except LaunchError:
+ pass
+ # test that we definitely targeted a subversion directory,
+ # mirroring the purpose of the earlier is_wc() call
+ if info is None or not info.has_key("Node Kind") or info["Node Kind"] != "directory":
+ error('"%s" is neither a valid URL, nor a working directory' % branch_dir)
+ else:
+ error('"%s" is not a subversion working directory' % branch_dir)
+
+ # give out some hints as to potential pathids
+ PathIdentifier.hint(branch_dir)
+ if source: PathIdentifier.hint(source)
+
+ # Extract the integration info for the branch_dir
+ branch_props = get_merge_props(branch_dir)
+
+ # Calculate source_url and source_path
+ report("calculate source path for the branch")
+ if not source:
+ if str(cmd) == "init":
+ cf_source, cf_rev, copy_committed_in_rev = get_copyfrom(branch_dir)
+ if not cf_source:
+ error('no copyfrom info available. '
+ 'Explicit source argument (-S/--source) required.')
+ opts["source-url"] = get_repo_root(branch_dir) + cf_source
+ opts["source-pathid"] = PathIdentifier.from_target(opts["source-url"])
+
+ if not opts["revision"]:
+ opts["revision"] = "1-" + cf_rev
+ else:
+ opts["source-pathid"] = get_default_source(branch_dir, branch_props)
+ opts["source-url"] = opts["source-pathid"].get_url()
+
+ assert is_pathid(opts["source-pathid"])
+ assert is_url(opts["source-url"])
+ else:
+ # The source was given as a command line argument and is stored in
+ # SOURCE. Ensure that the specified source does not end in a /,
+ # otherwise it's easy to have the same source path listed more
+ # than once in the integrated version properties, with and without
+ # trailing /'s.
+ source = rstrip(source, "/")
+ if not is_wc(source) and not is_url(source):
+ # Check if it is a substring of a pathid recorded
+ # within the branch properties.
+ found = []
+ for pathid in branch_props.keys():
+ if pathid.match_substring(source):
+ found.append(pathid)
+ if len(found) == 1:
+ # (assumes pathid is a repository-relative-path)
+ source_pathid = found[0]
+ source = source_pathid.get_url()
+ else:
+ error('"%s" is neither a valid URL, nor an unambiguous '
+ 'substring of a repository path, nor a working directory'
+ % source)
+ else:
+ source_pathid = PathIdentifier.from_target(source)
+
+ source_pathid = PathIdentifier.from_target(source)
+ if str(cmd) == "init" and \
+ source_pathid == PathIdentifier.from_target("."):
+ error("cannot init integration source path '%s'\n"
+ "Its repository-relative path must differ from the "
+ "repository-relative path of the current directory."
+ % source_pathid)
+ opts["source-pathid"] = source_pathid
+ opts["source-url"] = target_to_url(source)
+
+ # Sanity check source_url
+ assert is_url(opts["source-url"])
+ # SVN does not support non-normalized URL (and we should not
+ # have created them)
+ assert opts["source-url"].find("/..") < 0
+
+ report('source is "%s"' % opts["source-url"])
+
+ # Get previously merged revisions (except when command is init)
+ if str(cmd) != "init":
+ opts["merged-revs"] = merge_props_to_revision_set(branch_props,
+ opts["source-pathid"])
+
+ # Perform the action
+ cmd(branch_dir, branch_props)
+
+
+if __name__ == "__main__":
+ try:
+ main(sys.argv[1:])
+ except LaunchError, (ret, cmd, out):
+ err_msg = "command execution failed (exit code: %d)\n" % ret
+ err_msg += cmd + "\n"
+ err_msg += "".join(out)
+ error(err_msg)
+ except KeyboardInterrupt:
+ # Avoid traceback on CTRL+C
+ print "aborted by user"
+ sys.exit(1)
diff --git a/testing/subversion/svnserve b/testing/subversion/svnserve
new file mode 100755
index 000000000..670fee742
--- /dev/null
+++ b/testing/subversion/svnserve
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/svnserve
+
+PID=`pidof -o %PPID /usr/bin/svnserve`
+case "$1" in
+ start)
+ stat_busy "Starting svnserve"
+ if [ -z "$PID" ]; then
+ if [ -n "$SVNSERVE_USER" ]; then
+ su -s '/bin/sh' $SVNSERVE_USER -c "/usr/bin/svnserve -d $SVNSERVE_ARGS" &
+ else
+ /usr/bin/svnserve -d $SVNSERVE_ARGS &
+ fi
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon svnserve
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping svnserve"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon svnserve
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/testing/subversion/svnserve.conf b/testing/subversion/svnserve.conf
new file mode 100644
index 000000000..37fb7ea10
--- /dev/null
+++ b/testing/subversion/svnserve.conf
@@ -0,0 +1,7 @@
+#
+# Parameters to be passed to svnserve
+#
+#SVNSERVE_ARGS="-r /path/to/some/repos"
+SVNSERVE_ARGS=""
+
+#SVNSERVE_USER="svn"
diff --git a/testing/syslog-ng/PKGBUILD b/testing/syslog-ng/PKGBUILD
new file mode 100644
index 000000000..595c4585b
--- /dev/null
+++ b/testing/syslog-ng/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 143455 2011-11-24 16:44:04Z dreisner $
+# Maintainer: Dave Reisner <dreisner@archlinux.org>
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=syslog-ng
+pkgver=3.3.3
+pkgrel=1
+pkgdesc="Next-generation syslogd with advanced networking and filtering capabilities"
+arch=('i686' 'x86_64')
+license=('GPL2')
+groups=('base')
+url="http://www.balabit.com/network-security/syslog-ng/"
+depends=('glib2' 'eventlog' 'openssl' 'libcap' 'awk')
+makedepends=('flex' 'pkg-config')
+optdepends=('logrotate: for rotating log files')
+provides=('logger')
+options=('!libtool')
+backup=('etc/syslog-ng/modules.conf' 'etc/syslog-ng/scl.conf' \
+ 'etc/syslog-ng/syslog-ng.conf' 'etc/logrotate.d/syslog-ng')
+source=("http://www.balabit.com/downloads/files/syslog-ng/sources/$pkgver/source/${pkgname}_$pkgver.tar.gz"
+ syslog-ng.conf
+ syslog-ng.logrotate
+ syslog-ng.rc)
+sha1sums=('e2ec8ba4bde24809630a7675bf5d97f00be467f8'
+ '98074e0facfc6ef036202662cc86d04b38a2c142'
+ '949128fe3d7f77a7aab99048061f885bc758000c'
+ 'a6ad26912b5bcbe1b47b003309945d733613b98f')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc/syslog-ng \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var/lib/syslog-ng \
+ --with-pidfile-dir=/run \
+ --disable-spoof-source \
+ --enable-systemd \
+ --with-systemdsystemunitdir=/lib/systemd/system
+
+ make
+}
+
+package() {
+ make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install
+
+ install -dm755 "$pkgdir/var/lib/syslog-ng" "$pkgdir/etc/syslog-ng/patterndb.d"
+ install -Dm644 "$srcdir/syslog-ng.conf" "$pkgdir/etc/syslog-ng/syslog-ng.conf"
+ install -Dm644 "$srcdir/syslog-ng.logrotate" "$pkgdir/etc/logrotate.d/syslog-ng"
+ install -Dm755 "$srcdir/syslog-ng.rc" "$pkgdir/etc/rc.d/syslog-ng"
+}
diff --git a/testing/syslog-ng/syslog-ng.conf b/testing/syslog-ng/syslog-ng.conf
new file mode 100644
index 000000000..8f86eac2f
--- /dev/null
+++ b/testing/syslog-ng/syslog-ng.conf
@@ -0,0 +1,92 @@
+@version: 3.3
+#
+# /etc/syslog-ng/syslog-ng.conf
+#
+
+options {
+ stats_freq (0);
+ flush_lines (0);
+ time_reopen (10);
+ log_fifo_size (10000);
+ chain_hostnames (off);
+ use_dns (no);
+ use_fqdn (no);
+ create_dirs (no);
+ keep_hostname (yes);
+ perm(0640);
+ group("log");
+};
+
+source src {
+ unix-dgram("/dev/log");
+ internal();
+ file("/proc/kmsg");
+};
+
+destination d_authlog { file("/var/log/auth.log"); };
+destination d_syslog { file("/var/log/syslog.log"); };
+destination d_cron { file("/var/log/crond.log"); };
+destination d_daemon { file("/var/log/daemon.log"); };
+destination d_kernel { file("/var/log/kernel.log"); };
+destination d_lpr { file("/var/log/lpr.log"); };
+destination d_user { file("/var/log/user.log"); };
+destination d_uucp { file("/var/log/uucp.log"); };
+destination d_mail { file("/var/log/mail.log"); };
+destination d_news { file("/var/log/news.log"); };
+destination d_ppp { file("/var/log/ppp.log"); };
+destination d_debug { file("/var/log/debug.log"); };
+destination d_messages { file("/var/log/messages.log"); };
+destination d_errors { file("/var/log/errors.log"); };
+destination d_everything { file("/var/log/everything.log"); };
+destination d_iptables { file("/var/log/iptables.log"); };
+destination d_acpid { file("/var/log/acpid.log"); };
+destination d_console { usertty("root"); };
+
+# Log everything to tty12
+destination console_all { file("/dev/tty12"); };
+
+filter f_auth { facility(auth); };
+filter f_authpriv { facility(auth, authpriv); };
+filter f_syslog { program(syslog-ng); };
+filter f_cron { facility(cron); };
+filter f_daemon { facility(daemon); };
+filter f_kernel { facility(kern) and not filter(f_iptables); };
+filter f_lpr { facility(lpr); };
+filter f_mail { facility(mail); };
+filter f_news { facility(news); };
+filter f_user { facility(user); };
+filter f_uucp { facility(uucp); };
+filter f_ppp { facility(local2); };
+filter f_debug { not facility(auth, authpriv, news, mail); };
+filter f_messages { level(info..warn) and not facility(auth, authpriv, mail, news, cron) and not program(syslog-ng) and not filter(f_iptables); };
+filter f_everything { level(debug..emerg) and not facility(auth, authpriv); };
+filter f_emergency { level(emerg); };
+filter f_info { level(info); };
+filter f_notice { level(notice); };
+filter f_warn { level(warn); };
+filter f_crit { level(crit); };
+filter f_err { level(err); };
+filter f_iptables { match("IN=" value("MESSAGE")) and match("OUT=" value("MESSAGE")); };
+filter f_acpid { program("acpid"); };
+
+log { source(src); filter(f_acpid); destination(d_acpid); };
+log { source(src); filter(f_authpriv); destination(d_authlog); };
+log { source(src); filter(f_syslog); destination(d_syslog); };
+log { source(src); filter(f_cron); destination(d_cron); };
+log { source(src); filter(f_daemon); destination(d_daemon); };
+log { source(src); filter(f_kernel); destination(d_kernel); };
+log { source(src); filter(f_lpr); destination(d_lpr); };
+log { source(src); filter(f_mail); destination(d_mail); };
+log { source(src); filter(f_news); destination(d_news); };
+log { source(src); filter(f_ppp); destination(d_ppp); };
+log { source(src); filter(f_user); destination(d_user); };
+log { source(src); filter(f_uucp); destination(d_uucp); };
+#log { source(src); filter(f_debug); destination(d_debug); };
+log { source(src); filter(f_messages); destination(d_messages); };
+log { source(src); filter(f_err); destination(d_errors); };
+log { source(src); filter(f_emergency); destination(d_console); };
+log { source(src); filter(f_everything); destination(d_everything); };
+log { source(src); filter(f_iptables); destination(d_iptables); };
+
+# Log everything to tty12
+#log { source(src); destination(console_all); };
diff --git a/testing/syslog-ng/syslog-ng.logrotate b/testing/syslog-ng/syslog-ng.logrotate
new file mode 100644
index 000000000..3509f2970
--- /dev/null
+++ b/testing/syslog-ng/syslog-ng.logrotate
@@ -0,0 +1,7 @@
+/var/log/messages.log /var/log/auth.log /var/log/mail.log /var/log/kernel.log /var/log/errors.log /var/log/daemon.log /var/log/user.log /var/log/iptables.log /var/log/everything.log /var/log/syslog.log /var/log/acpid.log /var/log/crond.log /var/log/lpr.log /var/log/uucp.log /var/log/news.log /var/log/ppp.log /var/log/debug.log {
+ missingok
+ sharedscripts
+ postrotate
+ /bin/kill -HUP $(cat /run/syslog-ng.pid 2>/dev/null) 2>/dev/null || true
+ endscript
+}
diff --git a/testing/syslog-ng/syslog-ng.rc b/testing/syslog-ng/syslog-ng.rc
new file mode 100755
index 000000000..516b03da3
--- /dev/null
+++ b/testing/syslog-ng/syslog-ng.rc
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+checkconfig() {
+ if ! syslog-ng -s -f /etc/syslog-ng/syslog-ng.conf; then
+ stat_fail
+ exit 1
+ fi
+}
+
+pidfile=/run/syslog-ng.pid
+if [[ -r $pidfile ]]; then
+ read -r PID < "$pidfile"
+ if [[ $PID && ! -d /proc/$PID ]]; then
+ # stale pidfile
+ unset PID
+ rm -f "$pidfile"
+ fi
+fi
+
+case $1 in
+ start)
+ stat_busy "Starting Syslog-NG"
+ checkconfig
+ if [[ -z $PID ]] && /usr/sbin/syslog-ng; then
+ add_daemon syslog-ng
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Syslog-NG"
+ if [[ $PID ]] && kill $PID &>/dev/null; then
+ rm_daemon syslog-ng
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ reload)
+ stat_busy "Reloading Syslog-NG configuration and re-opening log files"
+ if [[ -z $PID ]]; then
+ stat_fail
+ else
+ checkconfig
+ if kill -HUP $PID &>/dev/null; then
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|reload}"
+esac
diff --git a/testing/ypserv/PKGBUILD b/testing/ypserv/PKGBUILD
new file mode 100644
index 000000000..25b52721f
--- /dev/null
+++ b/testing/ypserv/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 143484 2011-11-24 17:03:26Z stephane $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ypserv
+pkgver=2.26
+pkgrel=2
+pkgdesc='Linux NIS Server'
+arch=('i686' 'x86_64')
+url='http://www.linux-nis.org/nis/ypserv/'
+license=('GPL2')
+depends=('gdbm' 'openslp')
+backup=('etc/ypserv.conf' 'etc/netgroup' 'var/yp/securenets')
+source=("ftp://ftp.kernel.org/pub/linux/utils/net/NIS/${pkgname}-${pkgver}.tar.gz" \
+ 'yppasswd'
+ 'ypserv')
+sha1sums=('0d7ab3f04ff7fa5f611e71ea0f3c188659602743'
+ '96192b628afe36709496e4801d016c4bff343f0e'
+ 'b625381bfa6cf62345377a7df30b8f45935206c5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 etc/netgroup "${pkgdir}"/etc/netgroup
+ install -D -m644 etc/ypserv.conf "${pkgdir}"/etc/ypserv.conf
+ install -D -m644 etc/securenets "${pkgdir}"/var/yp/securenets
+ install -D -m755 ../ypserv "${pkgdir}"/etc/rc.d/ypserv
+ install -D -m755 ../yppasswd "${pkgdir}"/etc/rc.d/yppasswd
+}
diff --git a/testing/ypserv/yppasswd b/testing/ypserv/yppasswd
new file mode 100755
index 000000000..c2b00b2ca
--- /dev/null
+++ b/testing/ypserv/yppasswd
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting NIS Password Daemon"
+ /usr/sbin/rpc.yppasswdd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon yppasswd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping NIS Password Daemon"
+ killall -q /usr/sbin/rpc.yppasswdd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon yppasswd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/testing/ypserv/ypserv b/testing/ypserv/ypserv
new file mode 100755
index 000000000..c36e6901b
--- /dev/null
+++ b/testing/ypserv/ypserv
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting NIS Server"
+ /usr/sbin/ypserv
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon ypserv
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping NIS Server"
+ killall -q /usr/sbin/ypserv
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ypserv
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/testing/zsh/PKGBUILD b/testing/zsh/PKGBUILD
new file mode 100644
index 000000000..35561cb90
--- /dev/null
+++ b/testing/zsh/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 143486 2011-11-24 17:03:28Z stephane $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=zsh
+pkgver=4.3.12
+pkgrel=3
+pkgdesc='A very advanced and programmable command interpreter (shell) for UNIX'
+arch=('i686' 'x86_64')
+url='http://www.zsh.org/'
+license=('custom')
+depends=('pcre' 'libcap' 'gdbm')
+install=zsh.install
+source=("ftp://ftp.zsh.org/pub/${pkgname}-${pkgver}.tar.bz2" 'modules.patch')
+md5sums=('7a82c0bf0635e046ca4e9ec1bdef3811'
+ 'b367c1398b60242f7044a93a837227f9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # upstream patch to fix handling of compressed kernel modules
+ patch -p1 -i ${srcdir}/modules.patch
+ # FS#16360
+ sed -i 's/init.d/rc.d/g' Doc/Zsh/compsys.yo \
+ Doc/zsh.texi \
+ Completion/Unix/Type/_services \
+ Completion/Unix/Command/_init_d
+ ./configure --prefix=/usr \
+ --bindir=/bin \
+ --enable-etcdir=/etc/zsh \
+ --enable-zshenv=/etc/zsh/zshenv \
+ --enable-zlogin=/etc/zsh/zlogin \
+ --enable-zlogout=/etc/zsh/zlogout \
+ --enable-zprofile=/etc/profile \
+ --enable-zshrc=/etc/zsh/zshrc \
+ --enable-maildir-support \
+ --with-term-lib='ncursesw' \
+ --enable-multibyte \
+ --enable-function-subdirs \
+ --enable-fndir=/usr/share/zsh/functions \
+ --enable-scriptdir=/usr/share/zsh/scripts \
+ --with-tcsetpgrp \
+ --enable-pcre \
+ --enable-cap \
+ --enable-zsh-secure-free
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # This test wont work with the noatime mount option
+ rm Test/C02cond.ztst
+ HOME="${srcdir}" make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}/" install
+ install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/testing/zsh/modules.patch b/testing/zsh/modules.patch
new file mode 100644
index 000000000..315d40b98
--- /dev/null
+++ b/testing/zsh/modules.patch
@@ -0,0 +1,11 @@
+--- a/Completion/Linux/Command/_modutils
++++ b/Completion/Linux/Command/_modutils
+@@ -107,7 +107,7 @@ case "$state" in
+ ! _retrieve_cache modules-$kver;
+ then
+ # 2011-01-02 gi1242: Do we need .o files? Or is .ko enough?
+- modules=( $modules_dir/$kver/(*~(source|build))/**/*.(o|ko)(.:t:r) )
++ modules=( $modules_dir/$kver/(*~(source|build))/**/*.(o|ko|ko.gz)(.:t:r:r) )
+ _store_cache modules-$kver modules
+ fi
+
diff --git a/testing/zsh/zsh.install b/testing/zsh/zsh.install
new file mode 100644
index 000000000..e2a53bea8
--- /dev/null
+++ b/testing/zsh/zsh.install
@@ -0,0 +1,11 @@
+post_install() {
+ grep -q '/bin/zsh' etc/shells || echo '/bin/zsh' >> etc/shells
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ sed -i '/^\/bin\/zsh/d' etc/shells
+}